Ceph Pacific:检测配置异常
Ceph Pacific 版本在 cephadm mgr 模块中引入了一项新功能,该功能利用了每个 Ceph 主机提供的元数据。cephadm 二进制文件(从 bootstrap 过程中的好帮手!)实现了一个 gather-facts 子命令,该命令检查主机并汇集相关元数据。然后,这些元数据使编排器/cephadm 逻辑能够更好地理解支持 Ceph 服务和守护进程的主机,并为检测 Ceph 集群中的配置异常提供了基础。
您可以通过直接运行 cephadm 二进制文件来查看 gather-facts 生成的元数据,如下所示;
[cephadmin@c8-node1 ~]# sudo cephadm gather-facts
{
"arch": "x86_64",
"bios_date": "04/01/2014",
"bios_version": "1.14.0-3.fc34",
"cpu_cores": 1,
"cpu_count": 4,
"cpu_load": {
"15min": 0.79,
"1min": 0.29,
"5min": 0.35
},
"cpu_model": "Intel Xeon Processor (Cooperlake)",
"cpu_threads": 1,
"flash_capacity": "0.0",
"flash_capacity_bytes": 0,
"flash_count": 0,
"flash_list": [],
"hdd_capacity": "3.3TB",
"hdd_capacity_bytes": 3341484556288,
"hdd_count": 4,
.
.
.
cephadm mgr 模块定期调用 gather-facts 命令以维护每个主机配置的“快照”。拥有此数据有助于调度决策,并为提前发现可能演变成性能或服务影响事件的任何配置异常或漂移提供了机会。这就是 config-check 功能的重点。
配置检查是否处于活动状态由 cephadm mgr 模块的 config_checks_enabled 设置决定。默认情况下,它是 禁用的。您可以通过从 cephadm shell 运行以下命令来检查此设置的状态;
[ceph: root@c8-node1 /]# ceph config get mgr mgr/cephadm/config_checks_enabled
false
即使禁用了该功能,您也可以使用 ceph cephadm -h 命令查看此功能引入的新命令。
| 命令 | 描述 |
|---|---|
| ceph cephadm config-check status | 显示配置检查器功能是否启用/禁用 |
| ceph cephadm config-check ls | 列出可用的配置检查及其当前状态 |
| ceph cephadm config-check disable <check_name> | 禁用特定的配置检查 |
| ceph cephadm config-check enable <check_name> | 启用特定的配置检查 |
这些检查中的一些可能适合您的环境,而另一些则可能不适合。重点是,选择权在您手中。您可以使用单个命令启用/禁用该功能,并选择对您有意义的检查。
这是一个示例,其中软件订阅检查和内核版本一致性检查已禁用。
[ceph: root@c8-node1 /]# ceph cephadm config-check disable os_subscription
ok
[ceph: root@c8-node1 /]# ceph cephadm config-check disable kernel_version
ok
[ceph: root@c8-node1 /]# ceph cephadm config-check ls
NAME HEALTHCHECK STATUS DESCRIPTION
kernel_security CEPHADM_CHECK_KERNEL_LSM enabled checks SELINUX/Apparmor profiles are consistent across cluster hosts
os_subscription CEPHADM_CHECK_SUBSCRIPTION disabled checks subscription states are consistent for all cluster hosts
public_network CEPHADM_CHECK_PUBLIC_MEMBERSHIP enabled check that all hosts have a NIC on the Ceph public_netork
osd_mtu_size CEPHADM_CHECK_MTU enabled check that OSD hosts share a common MTU setting
osd_linkspeed CEPHADM_CHECK_LINKSPEED enabled check that OSD hosts share a common linkspeed
network_missing CEPHADM_CHECK_NETWORK_MISSING enabled checks that the cluster/public networks defined exist on the Ceph hosts
ceph_release CEPHADM_CHECK_CEPH_RELEASE enabled check for Ceph version consistency - ceph daemons should be on the same
release (unless upgrade is active)
kernel_version CEPHADM_CHECK_KERNEL_VERSION disabled checks that the MAJ.MIN of the kernel on Ceph hosts is consistent
启用 config-check 功能很简单 - 只需要将 config_checks_enabled 标志设置为 true,如下所示;
[ceph: root@c8-node1 /]# ceph config set mgr mgr/cephadm/config_checks_enabled true
[ceph: root@c8-node1 /]# ceph cephadm config-check status
Enabled
现在 mgr/cephadm 可以根据您启用的检查自动分析主机元数据。任何问题都会生成一个 “WARN 级别” 健康警报,您可以使用 ceph -s 查看。但是,如果所有启用的检查都通过,您只会看到 ceph mgr 日志中的摘要消息,如下所示;
CEPHADM 6/8 checks enabled and executed (0 bypassed, 2 disabled). No issues detected
如果您想了解有关配置检查功能的更多信息,请在 此处 找到描述。
并非所有环境都能从这项功能中受益,这就是为什么默认情况下禁用它。但是,尝试一下很简单,您永远不知道 - 它可能会发现您意想不到的事情!如果您尝试了它并决定不适合您,只需将 config_checks_enabled 设置回 false,就完成了。
也许您对新的配置检查有想法,或者对可以帮助识别其他配置异常的元数据有想法。如果是这样,我们欢迎以 PR 形式进行贡献,但请随时通过 dev@ceph.io 发送任何问题或想法。只需在您的电子邮件主题前加上 “orchestrator/cephadm” 即可。