分布式文件存储阶段小结
一. 分类
块存储
SAN,DAS, 网盘,EBS
块存储读写快,不利于共享
文件存储
NAS(NFS,CIFS)
文件存储读写慢,利于共享
对象存储
S3,OSS, TFS, HDFS
兼顾块存储和文件存储的优点
二. 基本概念
volume
fuse
posix
机架感知
存储自动rebalance
扩容/缩容
去重
元数据管理
中心化与去中心化
Erase Code(EC)
三. 主流DFS比较
NAS
使用简单,共享方便。但是支持的文件数有限制,备份/HA/跨机房双活运维成本高。系统层面的rsync增量备份延迟不是很可控,crontab job设置不合理时会给NAS服务器造成严重的性能问题。总的来说,应用层面控制能力不强。
TFS
Taobao自研并验证过小文件存储系统,借鉴了业内文件存储的先进的思想。支持的文件量大,扩容/缩容方便,完整的集群,HA,跨机房双活方案。缺点是社区缺乏支持,除非使用方吃透代码自己演进代码分支,否则开发,运维会变得不可控。据说淘宝OSS也没有继续采用TFS。 实际使用过程中nginx,meta server组件出问题比较多。2.2.16分支中block 迁移工具错误比较多,集群间文件迁移需要特别注意。
HDFS
apache开源的大文件存储方案。适合离线批处理系统,是hbase,hadoop的基础。社区支持好,特性丰富。
fastDFS
架构简单,但是不能直接支持自定义文件路径。据说稳定性待验证。
GlusterFS
提供类似于NAS,raid的网络存储方案。采用弹性hash算法路由具体存储(去中心)。性能待验证。
Ceph
提供了RBD(Ceph Block Device),CephFS(Ceph File System), RGW(RADOS GateWay)存储功能。功能丰富,重量级,有待生产验证。
MooseFS
MogileFS
perl based FS
GridFS
mongoDB based FS
OpenStack Cinder/Swift
- Cinder, openstack 块存储服务
- Swift, openstack 对象存储服务