2016-10-14 16:00
刘树东
分布式文件系统产生的背景:
- 数据爆炸式增长
- 亿级甚至百亿级的海量小文件
分布式存储:
将数据分散到多个存储设备上,通过网络保持通信
两个基本问题:
- 快速存,存到哪个设备
- 快速读,从哪个设备读
元数据管理:
元数据存储于Database做映射,如MogileFS
元数据隐藏在文件名中,如FastDFS
通过算法计算元数据位置,如Ceph
访问性能:
小文件合并存储
小文件合并请求
Cache
Ceph
既没通过Database做映射,也没把源文件隐藏在文件名中,而是通过Hash算法计算元数据的位置
元数据管理:通过算法计算元数据位置
写,强一致性
提供稳定对象(支持AmazonS3、文件重命名)
块存储
适合场景:
- 不变化的文件
- 文件需重命名
- http请求
- 并发请求不高
使用情况:京东、携程、网易等
FastDFS
(MogileFS的精简版,去掉DB映射,理论上可以无限扩充)
元数据隐藏在文件名中
写,弱一致性
提供稳定对象存储
底层采用socket通信
适合场景:
- 高并发访问、http、socket均可
- 文件反复变化
- field系统生成
使用情况:支付宝、360、京东、携程等
HDFS
GFS的Java版
适合存储大型文件
元数据管理:元数据置于内存,每个文件占用一块内存
写,强一致性
提供稳定对象存储
适合场景:
- 高延迟
- 文件不怎么变的
网友评论