上QQ阅读APP看书,第一时间看更新
2.6.2 CephFS限制因素
首先看一下客户端访问CephFS的过程。在CephFS中,客户端是使用CephFS的所有操作请求的入口。客户端将元数据读写请求发送到活跃的MDS,从中获取文件元数据,并且安全地缓存元数据和文件数据。
MDS将元数据提供给客户端,缓存热的元数据是为了减少对后端元数据池的请求,管理客户端的缓存是为了保证缓存一致性。CephFS工作过程是,在活跃的MDS之间复制热的元数据,并将元数据变化信息合并到日志,定期刷新到后端元数据池中,使数据在集群间实时同步,具体如图2-4所示。
在使用CephFS过程中,我们应注意以下几点。
(1)采用多MDS节点部署方式
为了使生产环境下的数据可用,你要采用多MDS节点部署方式。部署完成后,MDS节点分为主节点和备节点。当主节点异常时,备节点将接管客户端的访问,保证数据持续提供。默认情况下,CephFS仅使用一个活跃的MDS守护进程。但是,你可以给文件系统配置为使用多个活跃的的MDS守护进程,以处理更大的工作负载。
图2-4 CephFS工作过程
(2)重点保护元数据池
如图2-4所示,RADOS底层需要提供两个后端存储池,其中一个存储数据,另一个存储元数据。你在创建MDS的时候,要首先创建这两个数据池,且一定要做好对存储数据池的保护,比如采用更高的副本级别,这个池中的任何数据丢失都会导致整个文件系统无法访问。另外,你也可以考虑使用延迟较低的存储设备,例如固态驱动器(SSD)磁盘,因为这直接影响到客户端操作的反馈延迟。
(3)使用一个CephFS
默认情况下,禁止在一个集群中创建多个CephFS,因为创建多个CephFS可能会使得MDS或者客户端服务异常。