普通存储方案:Rsync、DAS(IDE/SATA/SAS/SCSI等块)、NAS(NFS、CIFS、SAMBA等文件系统)、SAN(FibreChannel, iSCSI, FoE存储网络块),Openfiler、FreeNas(ZFS快照复制)由于生产环境中往往由于对存储数据量很大,而SAN存储价格又比较昂贵,因此大多会选择分布式
存储来解决一下问题:
- 海量数据存储问题
- 数据高可用问题(冗余备份)问题
- 较高的读写性能和负载均衡问题
- 支持多平台多语言问题
- 高并发问题
二、常用的分布式文件系统
常见的分布式文件系统有FastDFS,GFS、HDFS、Ceph 、GridFS 、mogileFS、TFS等,各自适用于不同的领域。它们都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务:
指标 | 适合类型 | 文件分布 | 系统性能 | 复杂度 | FUSE | POSIX | 备份机制 | 通讯协议接口 | 社区支持 | 去重 | 开发语言 |
FastDFS | 4KB~500MB | 小文件合并存储不分片处理 | 很高 | 简单 | 不支持 | 不支持 | 组内冗余备份 | Api HTTP | 国内用户群 |
| C语言 |
TFS | 所有文件 | 小文件合并,以block组织分片 |
| 复杂 | 不支持 | 不支持 | Block存储多份,主辅灾备 | API http | 少 |
| C++ |
MFS | 大于64K | 分片存储 | Master占内存多 |
| 支持 | 支持 | 多点备份动态冗余 | 使用fuse挂在 | 较多 |
| Perl |
HDFS | 大文件 | 大文件分片分块存储 |
| 简单 | 支持 | 支持 | 多副本 | 原生api | 较多 |
| java |
Ceph | 对象文件块 | OSD一主多从 |
| 复杂 | 支持 | 支持 | 多副本 | 原生api | 较少 |
| C++ |
MogileFS | 海量小图片 |
| 高 | 复杂 | 可以支持 | 不支持 | 动态冗余 | 原生api | 文档少 |
| Perl |
ClusterFS | 大文件 |
|
| 简单 | 支持 | 支持 | 镜像 |
| 多 |
| C |