1. 存储方式
1.1. 区别
分布式存储的应用场景相对于其存储接口,分为三种:
- 对象存储: 也就是通常意义的键值存储,其接口就是简单的GET、PUT、DEL和其他扩展,如七牛、又拍、Swift、S3
- 块存储: 这种接口通常以QEMU Driver或者Kernel Module的方式存在,这种接口需要实现Linux的Block Device的接口或者QEMU提供的Block Driver接口,如Sheepdog,AWS的EBS,青云的云硬盘和阿里云的盘古系统,还有Ceph的RBD(RBD是Ceph面向块存储的接口)
- 文件存储: 通常意义是支持POSIX接口,它跟传统的文件系统如Ext4是一个类型的,但区别在于分布式存储提供了并行化的能力,如Ceph的CephFS(CephFS是Ceph面向文件存储的接口),但是有时候又会把GFS,HDFS这种非POSIX接口的类文件存储接口归入此类。
1.2. 总结
比较项 | 对象存储 | 块存储 | 文件存储 |
---|---|---|---|
存储单位 | 对象 | 块 | 文件 |
存储系统 | 块存储设备+文件系统+定位逻辑+应用程序 | 块存储设备 | 块存储设备+文件系统 |
典型应用 | NAS,swift | SAN,ISCSI | NAS,NFS |
优点 | 支持高并行性 支持可伸缩的数据访问 管理性好 安全性高 |
高性能的随机I/O和数据吞吐率 | 扩展性好 易于管理 价格便宜 |
缺点 | 处于发展阶段,相应的硬件/软件支持有待进一步完善 | 可扩展性和管理性较差 价格较高 不能满足成千上万CPU规模的系统 |
开销高 带宽低 延迟大 不利于在高性能集群中应用 |
技术实现 | 以灵活可定制的对象为存储单元,元数据服务器提供快速并发寻址 | 裸盘上划分逻辑卷,逻辑卷格式化成任意文件系统 | 在格式化的磁盘上存储文件 |