1.6 Ceph文件系统
Ceph文件系统(也就是CephFS)是一个兼容POSIX的文件系统,它利用Ceph存储集群来保存用户数据。Linux内核驱动程序支持CephFS,这也使得CephFS高度适用于各大Linux操作系统发行版。CephFS将数据和元数据分开存储,为上层的应用程序提供较高的性能以及可靠性。
在Cpeh集群内部,Ceph文件系统库(libcephfs)运行在RADOS库(librados)之上,后者是Ceph存储集群协议,由文件、块和对象存储共用。要使用CephFS,你的集群节点上最少要配置一个Ceph元数据服务器(MDS)。然而,需要注意的是,单一的MDS服务器将成为Ceph文件系统的单点故障。MDS配置后,客户端可以采用多种方式使用CephFS。如果要把Ceph挂载成文件系统,客户端可以使用本地Linux内核的功能或者使用Ceph社区提供的ceph-fuse(用户空间文件系统)驱动。
除此之外,客户端可以使用第三方开源程序,例如NFS的Ganesha和SMB/CIFS的Samba。这些程序通过libcephfs将用户数据存入可靠的分布式Ceph存储集群。CephFS也可以用来替代Apache Hadoop File System (HDFS)。它也是通过libcephfs组件将数据存入Ceph集群。为了无缝实现这个功能,Ceph社区为Hadoop和Hadoop插件提供了必要的CephFS Java接口。libcephfs和librados组件都非常灵活,你甚至可以生成自定义程序与它交互,并将数据保存到底层的Ceph存储集群中。
截至本书创作期间,CephFS是Ceph存储系统中唯一一个还不能够用于生产环境的组件。它在快速完善,预计很快就能用于生产环境。目前,在测试和开发环境中,它很受欢迎,并且提供了企业级存储需要的特性,例如动态再平衡和子目录快照。下图展现了使用CephFS的不同方式。