第 3 章 监控配置参考
了解如何配置 Ceph 监控器是构建可靠的 Red Hat Ceph Storage 集群的重要部分。所有集群都至少有一个监控器。监控配置通常会保持大体一致,但您可以在集群中添加、删除或替换 monitor。
3.1. 背景信息 复制链接链接已复制到粘贴板!
Ceph 监视器维护集群映射的"主副本"。这意味着,Ceph 客户端可以通过连接到一个 Ceph 监视器并检索当前 cluster map 来确定所有 Ceph 监视器和 Ceph OSD 的位置。
Ceph 客户端必须先连接到 Ceph 监视器,然后才能从 Ceph OSD 读取或写入到 Ceph OSD。使用 cluster map 的当前副本和 CRUSH 算法时,Ceph 客户端可以计算任何对象的位置。通过计算对象的位置,Ceph 客户端可以直接与 Ceph OSD 通信,这是 Ceph 高可扩展性和性能的一个重要方面。
Ceph 监视器的主要角色是维护 cluster map 的主副本。Ceph 监视器也提供身份验证和日志记录服务。Ceph 监视器将监控服务中的所有更改写入单个 Paxos 实例,Paxos 会将更改写入到键值存储,以实现强一致性。Ceph 监视器可以在同步操作期间查询 cluster map 的最新版本。Ceph Monitor 利用键值存储的快照和迭代器(使用 leveldb 数据库)来执行存储范围的同步。
3.1.1. cluster map 复制链接链接已复制到粘贴板!
集群映射不同映射的一个组合,包括 monitor 映射、OSD 映射和放置组映射。集群映射跟踪多个重要事件:
-
哪些进程在 Red Hat Ceph Storage 集群中为
in -
哪些进程在 Red Hat Ceph Storage 集群中为
in,状态为up并在运行,或为down。 -
放置组是
活动还是非活动,以及清理或处于某些其他状态。 反映集群当前状态的其他详情,例如:
- 存储空间总量或
- 使用的存储量。
例如,当集群状态有重大改变时,一个 Ceph OSD 变为 down,放置组进入降级状态,等,集群映射会进行相应的更新以反映集群的当前状态。此外,Ceph 监控器也维护了群集之前状态的历史记录。monitor 映射、OSD 映射和放置组映射各自维护其映射版本的历史记录。每个版本称为一个 epoch。
运行 Red Hat Ceph Storage 集群时,要跟踪这些状态是集群管理的一个重要部分。
3.1.2. monitor Quorum 复制链接链接已复制到粘贴板!
集群将通过单一监控器运行。但是,如果只有一个监控器,则代表有单一故障点。为确保生产 Ceph 存储群集中的高可用性,可运行具有多个监控器的 Ceph,因此当一个控制器出现故障时不会造成整个群集故障。
当 Ceph 存储集群运行多个 Ceph Monitor 以实现高可用性时,Ceph Monitor 使用 Paxos 算法来建立与主集群映射相关的共识。共识需要大多数运行的监控器建立一个仲裁(quorum)以达成对集群映射的共识(例如 1; 2 out of 3; 3 out of 5; 4 out of 6; 等)。
mon_force_quorum_join
- 描述
- 强制 monitor 加入仲裁,即使之前已从映射中删除
- 类型
- 布尔值
- 默认
-
False
3.1.3. 一致性 复制链接链接已复制到粘贴板!
将监控设置添加到 Ceph 配置文件时,您需要了解 Ceph 监视器的一些架构方面。Ceph 在发现集群中的另一个 Ceph 监控器时,对 Ceph 监视器实施严格的一致性要求。Ceph 客户端和其他 Ceph 守护进程使用 Ceph 配置文件来发现 monitor,monitor 使用 monitor 映射 (monmap ) 而不是 Ceph 配置文件互相发现。
在发现 Red Hat Ceph Storage 集群中的其他 Ceph 监控器时,Ceph Monitor 始终指 monitor map 的本地副本。使用 monitor map 而不是 Ceph 配置文件可避免可能破坏集群的错误,例如,在指定监控地址或端口时 Ceph 配置文件中的拼写错误。由于 monitor 使用 monitor map 进行发现,并且它们与客户端和其他 Ceph 守护进程共享 monitor 映射,monitor 映射为 monitor 提供严格保证其共识有效。
严格一致性也适用于 monitor 映射的更新。与 Ceph 监视器上的任何其他更新一样,对 monitor 映射的更改始终通过名为 Paxos 的分布式共识算法运行。Ceph monitor 必须同意对 monitor 映射的每个更新,如添加或移除 Ceph monitor,以确保仲裁中的每个 monitor 都有相同的监控器映射版本。monitor 映射的更新递增,以便 Ceph 监视器在版本上具有最新的同意,以及一组以前的版本。维护历史记录可让具有较老版本的 monitor 来获取 Red Hat Ceph Storage 集群的当前状态。
如果 Ceph 监控通过 Ceph 配置文件而不是监视器映射发现相互发现,它将带来额外的风险,因为 Ceph 配置文件没有被自动更新并分发。Ceph 监控可能会意外地使用旧的 Ceph 配置文件,无法识别 Ceph monitor,无法承担仲裁状态,或者开发 Paxos 无法准确确定系统当前状态的情况。
3.1.4. bootstrap 监控器 复制链接链接已复制到粘贴板!
在大部分配置和部署情形中,部署 Ceph 的工具可以通过为您生成 monitor 映射(例如,Red Hat Storage Console 或 Ansible)帮助引导 Ceph 监视器。Ceph 监控需要一些显式设置:
-
文件系统 ID :
fsid是对象存储的唯一标识符。由于您可以在同一硬件上运行多个集群,所以您必须在引导 monitor 时指定对象存储的唯一 ID。使用部署工具,Red Hat Storage Console 或 Ansible 将生成文件系统标识符,但您也可以手动指定fsid。 -
Monitor ID : monitor ID 是分配给集群中各个 monitor 的唯一 ID。它是一个字母数字值,按惯例标识符通常会采用一个字母顺序递增(如
a、b等等)。您可以使用部署工具或使用ceph命令在 Ceph 配置文件中进行设置(例如[mon.a],[mon.b], 等)。 - Key: monitor 必须具有 secret 键。