Ceph 文件系统介绍
Ceph的目标是提供一个general-purpose的并行文件系统,其具有 high performance, high scalibility, high available. 其最大的创新是分布式的元数据服务器 和 RADOS(resilient automatic distributed object storage).
Ceph文件系统另一个创新点,就是数据的定位是通过CRUSH算法来实现的,而不是通过传统的保存在metadata中的block table的查询来的。这和GlusterFS的思想是相同的,Glusterfs 是通过Elastic Hash,类似于DHT的算法实现的。这就有点像P2P的存储,其理论上可以做到 线性扩展的能力(line scale)。
元数据服务器最大的创新点就是其可以组成分布式的集群metadata server 服务。只要当我们了解了其结构后,感觉并没有太大的特点。元数据服务器一般就用来存储文件和目录的信息,提供统一的命名服务。 在Ceph中,元数据 的存储inode 和 dentry的,以及日志都是在 对象存储集群RADOS中存储,这就使得 metadata的 持久化都是在远程的RADOS中完成,metadata server 不保存状态,只是缓存最近的inode 和 dentry项,当metadata server 失效后,其所所有信息都可以从RADOS中获取,可以比较容易恢复。
RADOS 对象集群提供了对象的读写操作。数据和元数据以及日志操作都保存在这里。对于数据,主要是block级别操作,对于元数据,dentry的和inode的查找,这显然是两种不同数据的存储,不知道Ceph是如何实现的。RADOS对象通过replication 来实现高可用。其实现的细节,还需要进一步研究。
Ceph有一个Ceph Monitor的模块,其用来监控集群中所有节点的状态信息,完成类似配置服务的功能。其本身是高可用的,通过Parox算法实现。这和目前流行的zookeeper 的功能和实现都类似。