各大分布式文件系统优劣势对比,读写对比,性能对比,数据安全性对比,使用场景对比?

专业大肠请来分析各大分布式文件系统优劣势对比,读写对比,性能对比,数据安全性对比,使用场景对比

参与10

2同行回答

youki2008youki2008系统架构师DDT
作者:知乎用户 链接:https://www.zhihu.com/question/26993542/answer/129451667 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 对于分布式文件系统应用,大致有以下场景大文件冷数据,比如片库并行读写,高though put,比如HPC 和视频在线编...显示全部

作者:知乎用户
链接:https://www.zhihu.com/question/26993542/answer/129451667
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
对于分布式文件系统应用,大致有以下场景

  • 大文件冷数据,比如片库
  • 并行读写,高though put,比如HPC 和视频在线编辑
  • 海量write once read many 的小文件
  • mapreduce 或者ml /dl 任务的输入和输出

对于开源的分布式文件系统
1.GlusterFS 文件系统标准的posix接口支持,可以做分布式的软件NAS,效果莫的HPC共享存储,k8s/openstack共享存储;主要特点如下

  • 实现了一个stack式可插拔的plugin模式,将文件系统的各种feature做成了不同的插件,比如stripe,replicate,hashErasureCode,consistent-hash等。胖客户端的设计导致了client的cpu利用率会比较高,虽然用c语言实现了协程做以应对网络io的高并发。
  • 成熟的3.x版本,服务器端没有强一致性的元数据设计,最新的4.x版本变化很大,主要是解决强者一性、集群扩展性瓶颈等问题
  • 扩容麻烦,副本rebalance效果不好,坑比较大
  • 国内有中科院高能所的刘爱贵博士出来做这方面的创业,提供商业化支持

2.cephfs,其底层是一个对象存储系统,即ceph的rados对象存储,主要特点如下

  • rados的crush算法比较有特点,是一种伪随机算法,既考虑了硬件的物理拓扑,也考虑了单点失败后,数据修复或者复制过程中,最小化data migrate。相对于一致性hash等副本allocation算法,在大规模的场景下,效果比较要好;
  • rados的基础上,ceph支持块存储ceph RBD,对象ceph RGW,文件系统cephfs;ceph RBD和ceph RGW比较成熟,ceph最初是跟着openstack一起火起来。ceph也可以作为openstack/k8s社区有用来共享存储,不过RBD只支持ReadWrite once,不支持多个共享写;
  • 回到cephfs上。cephfs设计的比较理想化,对目录树做了动态分区,每个分区是主备高可用,metadata server只是内存cache,持久化在rados中。cephfs的特性过于复杂,bug比较多。后期社区修改了bug,但是稳定性方面有待加强。目前只有单目录树的主备方式是可用的,三节点多活问题很多。社区方面,国内也一些创业公司和传统厂家在做ceph相关的产品,比如北京的xsky吧。
  • 目前ceph社区的关注点主要是本地存储引擎bluestore,以及用户态的block io stack(intel的spdk)。据说国内主流云数据库解决方案也是在ceph rbd基础上做的分布式存储引擎。

3.Lustre,比较老牌的分布式文件系统,部署在多个san阵列上,不支持副本,支持分布式锁,主要做HPC高性能计算;luster对posix的语义应该支持的比较好。之前intel在维护社区,主要目的是为了卖自己的cpu给一些HPC用户,后来intel是退出了。

4.HDFS只支持追加写,设计中没有考虑修改写、截断写、稀疏写等复杂的posix语义,目的并不是通用的文件系统,一般作为hadoop ecosystem的存储引擎;HDFS在bigdata领域使用很广泛,但其实big data用s3也是可以的。

5.moosefs 比较接近GoogleFS的c++实现,通过fuse支持了标准的posix,算是通用的文件系统,社区不是太活跃;

6.还有一些专有的文件系统,比如早年的fastDFS,tfs,BeeFS。大致思想跟facebook Haystack比较像,一个专有的图片存储系统的原型,适合小文件和worm场景(write once read many)。一般大型网站,搞视频流媒体之类,都会有一套类似的解决方案。

  1. 京东开源了一个ContainerFS,主要是给k8s用。
收起
互联网服务 · 2020-04-28
浏览4132
宁泽阳宁泽阳系统工程师某科技公司
各分布式文件系统数据安全性、使用场景区别不大,读写性能更取决于硬件配置,各产品区别主要在于发展过程不同带来的使用场景倾向不同,如ceph之于openstack,glusterfs之于openshift,建议根据不同用途选择该用途下使用最多的产品,一般这种常见的坑都被踩过了,更稳定、性能更好一些...显示全部

各分布式文件系统数据安全性、使用场景区别不大,读写性能更取决于硬件配置,各产品区别主要在于发展过程不同带来的使用场景倾向不同,如ceph之于openstack,glusterfs之于openshift,建议根据不同用途选择该用途下使用最多的产品,一般这种常见的坑都被踩过了,更稳定、性能更好一些。

收起
互联网服务 · 2020-03-27
浏览4456

提问者

Net_Zh
shouqianSAN
擅长领域: 存储灾备分布式系统

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2020-03-26
  • 关注会员:3 人
  • 问题浏览:5718
  • 最近回答:2020-04-28
  • X社区推广