Ceph FS文件系统
相比NFS或CIFS,Ceph FS提供主副本冗余,具备高可靠性。Ceph FS使用Metadata Server(MDS)管理文件系统的命名空间以及客户端访问到后端OSD数据。Metadata Server是一个服务进程,提供一个包含智能缓存层的一致性文件系统,它不会直接向客户端提供任何实际数据,所有数据由OSD提供,降低自身读写的次数。Metadata Server可被配置成活跃或被动状态,活跃Metadata Server被称为主Metadata Server,其他则为Standby状态,当主Metadata发生故障,Standby节点接管工作升为主Metadata Server。
Metadata Server采用在内存中缓存的方式响应外部访问请求。客户端向MDS发送读请求,MDS先向OSD定位文件所在的文件索引节点,索引节点包含唯一的数字、文件所有者、大小和权限及其他元数据。MDS赋予客户端读以及缓存文件内容的权限,返回对应的元数据到客户端,客户端直接同OSD进行IO交互。
客户端发起写请求,MDS赋予客户端带缓冲区的的写权限,客户端执行完写操作,提交给MDS,MDS将文件的信息重新写入到OSD的object中。MDS集群为了适应分布式缓存元数据特点,采用动态子树分区的策略,可以理解为横跨多个MDS节点的目录层级结构,MDS统计一个目录中元数据被访问的频繁程度并计数,MDS同时维护权重的树,记录最近元数据的负载情况。MDS定期加载比较前后权重值的大小,根据权重值适当迁移子树实现工作流的负载均衡。访问程度频繁的热点目录可被hash后存在多个MDS上。