注意

本文档适用于 Ceph 开发版本。

合规性检查

Ceph 集群的稳定性和可靠性不仅取决于 Ceph 守护进程,还取决于 Ceph 安装的操作系统和硬件。本文档旨在促进在 mgr/cephadm 中提供“合规性”功能的讨论设计,该功能将负责识别可能影响 Ceph 稳定性和操作的常见平台相关问题。

这些检查的最终目标是尽早识别问题并引发健康检查警告事件,以提醒管理员注意该问题。

前提条件

为了有效地分析 Ceph 部署的主机,此功能需要一个主机相关元数据的缓存。元数据已经可以从 cephadm 的 HostFacts 类和 cephadm 命令中获取。对于本文档而言,我们将假设这些数据在 mgr/cephadm “缓存”结构中可用。gather-facts cephadm command. For the purposes of this document, we will assume that this data is available within the mgr/cephadm “cache” structure.

某些检查需要主机状态也已填充,例如 ONLINE、OFFLINE、MAINTENANCE

管理员交互

并非所有用户都需要此功能,并且必须能够“退出”。为此,mgr/cephadm 必须提供控制,如下所示;

ceph cephadm compliance enable | disable | status [--format json]
ceph cephadm compliance ls [--format json]
ceph cephadm compliance enable-check <name>
ceph cephadm compliance disable-check <name>
ceph cephadm compliance set-check-interval <int>
ceph cephadm compliance get-check-interval

状态选项将显示功能的启用/禁用状态以及检查间隔。

The ls子命令将显示所有检查,格式如下;

check-name status description

提案集成

合规性检查不需要一直运行,而应该以离散的间隔运行。间隔可以通过子命令配置(默认为每 12 小时)set-check-interval subcommand (default would be every 12 hours)

mgr/cephadm 目前执行一个事件驱动(基于时间)的服务循环来处理部署/删除和协调活动。为了执行合规性检查,合规性检查代码将从这个主服务循环中调用 - 当满足set-check-interval时。

提案检查

所有检查都会将任何错误推送到一个列表中,以便多个问题可以同时升级给管理员。下面的列表提供了每个检查的描述,其后的文本表示简短版本(简短名称是启用或禁用检查时命令交互的参考)

操作系统一致性 (OS)

  • 所有主机必须使用相同的供应商

  • 所有主机必须在同一个主要版本上(此检查仅适用于提供长期支持策略的发行版(RHEL、CentOS、SLES、Ubuntu 等)

src: gather-facts 输出

Linux 内核安全模式 (LSM)

  • 所有主机应该具有一致的 SELINUX/AppArmor 配置

src: gather-facts 输出

服务检查 (SERVICES)

处于 ONLINE 状态的主机应遵守以下规定;

  • 所有守护进程(systemd 单元)都应启用

  • 所有守护进程都应正在运行(不是僵死的)

src: list_daemons 输出

支持状态 (SUPPORT)

如果检测到支持状态,则应在所有主机上保持一致。目前,支持状态仅适用于 Red Hat 机器。

src: gather-facts 输出

网络:MTU (MTU)

同一 Ceph 网络(公共/集群)上的所有网络接口应具有相同的 MTU

src: gather-facts 输出

网络:链路速度 (LINKSPEED)

同一 Ceph 网络(公共/集群)上的所有网络接口应具有相同的链路速度

src: gather-facts 输出

网络:一致性 (INTERFACE)

所有具有 OSD 的主机应具有一致的网络配置 - 例如,如果某些主机不分离集群/公共流量,而其他主机则分离,那么这是一个异常,将生成合规性检查警告。

src: gather-facts 输出

通知策略

如果任何检查失败,mgr/cephadm 将引发警告级别的警报

未来展望

这里突出显示的检查仅作为一个起点,我们预计随着时间的推移会扩展检查。

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.