【文件系统】cephfs数据池数据对象命名规则解析

 

参考资料

1. cephfs数据池数据对象命名规则解析

 

Ceph 文件系统或 CephFS 是一个兼容 POSIX 的文件系统,它构建在 Ceph 的分布式对象存储 RADOS 之上。CephFS 致力于为各种应用程序提供最新,多用途,高可用性和高性能的文件存储,包括传统用例(如共享主目录,HPC 暂存空间和分布式工作流共享存储)。

CephFS 实现这些目标,它是通过使用一些新颖的架构选择。 尤其是,文件元数据与文件数据存储在单独的 RADOS 池中(从数据中分离元数据),并通过可调整大小的元数据服务器或 MDS 集群提供服务,该集群可扩展以支持更高吞吐量的元数据工作负载。文件系统的客户端可以直接访问 RADOS 来读写文件数据块。因此,工作负载可能会随着基础 RADOS 对象存储的大小线性扩展。也就是说,没有网关或代理为客户端中介数据I / O。

通过集群中 MDS 协调对数据的访问,该集群充当由客户端和 MDS 协作维护的分布式元数据缓存状态的授权机构。每个 MDS 都会将对元数据的突变汇总为对 RADOS 上日记的一系列有效写入。MDS 不会在本地存储任何元数据状态。此模型允许在 POSIX 文件系统的上下文中客户端之间进行连贯且快速的协作

MDS:即 Metadata Servers,它主要存储的是文件的元数据信息,为了高可靠,通常MDS会部署一个集群,一个 Active,多个 Standby。它是如何保证高可靠性呢?它是把文件的元数据信息通过日志的形式写在 Metadata Pool 里面去;MDS 之间会对元数据信息进行交换,一个主的 Active MDS 宕机了,会有另外的 Standby MAD 来接管它,并且变为 Active MDS,因为数据都是写到 Metadata Pool 里面的,所以刚刚变化 Active MDS 拥有整个集群的元数据信息。

CephFS 客户端是直接向 Data Pool 池里面写数据的,Data Pool 与 Metadata Pool 都是直接构建在 RADOS 上面。

CephFS 成为很多学术论文的主题,因其新颖的设计和对文件系统的研究贡献,它是最老的存储接口在Ceph集群中,并且还是曾经 RADOS 的主要用例。 现在,它与另外两个存储接口结合在一起,形成了一个现代化的统一存储系统:RBD(Ceph块设备)和RGW(Ceph对象存储网关)。

功能

  • POSIX-compliant semantics    兼容 POSIX 语法

  • Separates metadata from data   从数据中分离元数据

  • Dynamic rebalancing  动态再平衡

  • Subdirectory snapshots 子目录快照

  • Configurable striping  可配置条带化

  • Kernel driver support 内核驱动程序支持

  • FUSE support  FUSE 支持

  • NFS/CIFS deployable  可部署NFS / CIFS

  • Use with Hadoop (replace HDFS) 与Hadoop一起使用(替换HDFS

getfattr --only-values -n ceph.file.layout.pool

CephFS工作模型

MDS是CephFS文件系统的唯一入口,MDS进程挂掉后,CephFS无法使用,所以MDS需要做冗余,所以我们部署多个MDS进程对元数据分区进行冗余,这几个MDS都是活跃的,所以叫做多主MDS冗余,其中有一个负责根文件系统的MDS,其它MDS只负责一个子树的解析,一般热点子树就会动态分裂,动态子树分区机制;这样一个每一个活动MDS都有可能成为单点,所以我们需要为其提供冗余或者公共冗余都可以;

https://zhuanlan.zhihu.com/p/386560843

 

文件挂载:

ceph-fuse -n client.admin -r / [mount_path]
# 例如:
ceph-fuse -n client.admin -r / /mnt

参考资料

1. Ceph 基础篇 - CephFS 文件系统

posted @ 2022-10-10 13:58  苏格拉底的落泪  阅读(172)  评论(0编辑  收藏  举报