正在加载...

基于GFS思想的分布式文件系统Kosmosfs

August 28th, 2008

KFS(KOSMOS DISTRIBUTED FILE SYSTEM),不是KFC(肯德基)哦,是一个类似GFS的开源分布式文件系统。

自从去年Google 发布了他的几款主要产品gfs,bigtable,map-reduce 的相关文档后,一些牛人就马上行动起来,折腾出来实现类似功能的开源产品了,kfs就是其中之一,主要模仿的是gfs的功能。

gfs,bigtable,map-reduce是google产品的三大基石,而这三个产品现在都有了对应的开源实现:

gfs:
kfs(据传google创始人的同窗所创),hdfs(hadoop的子项目)

bigtable:
hbase(hadoop的子项目),Hypertable(从hbase项目组分离出去的,用c++实现)

map-reduce:
hadoop(apache的项目,使用java实现,目前在yahoo全力打造,已可以支持2000个以上的节点并行计算的规模)

还是先说说KFS吧,这个项目说起来和Google还有点渊源,江湖传闻Google的两个共同创始人佩奇和布林有两个大学同窗,名叫Anand Rajaraman和Venky Harinarayan,是两个印度人,看到Google获得巨大成功之后,心里有点不服气,于是就动手做了个一个新的搜索引擎Kosmix,希望能证明他们的能力也是很强的,在做这个搜索引擎的过程中,他们实现了一个类似GFS的文件系统KFS,并把它开源了。

KFS是用C++写的,但是其客户端支持C++,Java,Python方式的调用。并且,现在已经可以被HadoopHypertable这两个项目支持,作为底层存储。

那么KFS到底有什么特性呢?

  1. 自动存储扩充(添加新的chunckserver,系统自动感知)
  2. 有效性(复制机制保证文件有效性,一般文件会被以三种方式存储,当其中一个chunkserver出现错误的时候,不会影响数据的读取;)
  3. 文件复制粒度:可以配置文件复制的粒度,最大可以被复制64份
  4. 还原复制:当其中一个Chunckserver出现故障的时候,Metaserver会强制使用其他的chunckserver
  5. 负载平衡(系统周期地检查chunkservers的磁盘利用,并重新平衡chunkservers的磁盘利用,HDFS现在还没有支持)
  6. 数据完整性(当要读取数据时检查数据的完整性,如果检验出错使用另外的备份覆盖当前的数据)
  7. 文件写入:当一个应用程序创建了一个文件,这个文件名会被立刻写入文件系统,但为了性能,写入的数据会被缓存在kfs客户端.并且周期性的从缓存中把数据更新到chunkserver中。当然,应用程序也可以强制把数据更新到服务器上。一旦数据被更新到服务器,就可以被有效的读取了。(我怎么能知道这个文件什么时候可以读取了呢?
  8. 契约(使用契约来保证Client缓存的数据和文件系统中的文件保持一致性)
  9. 支持FUSE(在linux系统下,可以通过Fuse 映射一个文件夹,从而可以很方便的读取kfs的文件)
  10. 支持C++,Java,Python方式的调用
  11. 提供了丰富的工具程序,如kfsshell,cp2kfs等
  12. 提供了启动和停止服务的脚本

KFS高级特性:

  1. 支持同一文件多次写入和Append,不过不能在文件中间插入数据。 (HDFS支持一次写入多次读取,不支持Append)
  2. 文件及时生效,当应用程序创建一个文件时,文件名在系统马上有效。(HDFS文件只当输入流关闭时才在系统中有效,因此,如果应用程序在关闭前出现异常导致没有关闭输入流,数据将会丢失。)
    这一点好像也不是很好,如果输入流中断,在kfs里会留下一个错误的文件,当读取时会出现错误,好像也没有太大的意义。 


我要留言


  • 热门文章

  • 最近评论

    • 吃饭: dxd...
    • 吃饭: 的第...
    • life: 呼唤Xuming老大啊! Datasto...
    • 洋洋: 放弃Micolog用wp了。。主要是ga...
    • hqnyan: 坚持一定可以的。。...
  • 最近文章

  • 分类杂谈

  • 标签

    Appdrop Google Google App Engine IT Micolog Python SCapture ajax apple appspot best gae bug buzz db gae gfw google google-app-engine-toturial hostmonster html5 linux live micolog picasa plugin python script skpye skydriver svn system taobao tutorial ubuntu vmware vs2008 windows live writer 乐一个 地震 女装 王石 现代寓言故事 生活 艺术 范跑跑 输入法 郭跳跳
  • 归档

  • 友情链接