3.5. Ceph Monitor 一致性
将监控设置添加到 Ceph 配置文件时,您需要了解 Ceph 监控的一些架构方面。在发现集群中的另一个 Ceph monitor 时,Ceph 为 Ceph 监控器实施严格的一致性要求。Ceph 客户端和其他 Ceph 守护进程使用 Ceph 配置文件来发现 monitor,monitor 使用 monitor 映射(monmap
)而不是 Ceph 配置文件互相发现。
在发现 Red Hat Ceph Storage 集群中的其他 Ceph 监控器时,Ceph Monitor 始终指 monitor map 的本地副本。使用 monitor 映射而不是 Ceph 配置文件可以避免会破坏集群的错误。例如,在指定监控地址或端口时 Ceph 配置文件中的拼写错误。由于 monitor 使用 monitor map 进行发现,并且它们与客户端和其他 Ceph 守护进程共享 monitor 映射,monitor 映射为 monitor 提供严格保证其共识有效。
将更新应用到 monitor 映射时会要求严格的一致性
与 Ceph monitor 上的任何其他更新一样,对 monitor 映射的更改始终通过名为 Paxos 的分布式共识算法运行。Ceph monitor 必须同意对 monitor 映射的每个更新,如添加或移除 Ceph monitor,以确保仲裁中的每个 monitor 都有相同的监控器映射版本。monitor 映射的更新是递增的,使 Ceph monitor 具有最新的商定版本和一组之前的版本。
维护历史记录
维护历史记录可让具有较老版本的 monitor 来获取 Red Hat Ceph Storage 集群的当前状态。
如果 Ceph 监控通过 Ceph 配置文件而不是监视器映射发现相互发现,它将带来额外的风险,因为 Ceph 配置文件没有被自动更新并分发。Ceph 监控可能会意外地使用旧的 Ceph 配置文件,无法识别 Ceph monitor,无法承担仲裁状态,或者开发 Paxos 无法准确确定系统当前状态的情况。