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

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里会留下一个错误的文件,当读取时会出现错误,好像也没有太大的意义。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值