第 3 章 使用 odf-cli 命令
odf-cli 命令及其子命令有助于减少重复性任务并提供更好的体验。您可以从客户门户网站下载 odf-cli 工具。
odf get 命令的子命令
- odf get recovery-profile
显示为 OSD 设置的 recovery-profile 值。默认情况下,如果没有使用
odf set recovery-profile命令设置值,则会显示空值。设置值后,会显示适当的值。示例:
$ odf get recovery-profile
# high_recovery_ops
- ODF 获取健康状况
检查 Ceph 集群的运行状况和常见配置问题。这个命令检查以下内容:
- 至少三个 mon pod 在不同的节点上运行
- mon quorum 和 Ceph 健康详情
- 至少三个 OSD pod 在不同的节点上运行
- 所有 pod 的"Running"状态
- 放置组状态
至少一个 MGR pod 正在运行
示例:
$ odf get health Info: Checking if at least three mon pods are running on different nodes rook-ceph-mon-a-7fb76597dc-98pxz Running openshift-storage ip-10-0-69-145.us-west-1.compute.internal rook-ceph-mon-b-885bdc59c-4vvcm Running openshift-storage ip-10-0-64-239.us-west-1.compute.internal rook-ceph-mon-c-5f59bb5dbc-8vvlg Running openshift-storage ip-10-0-30-197.us-west-1.compute.internal Info: Checking mon quorum and ceph health details Info: HEALTH_OK [...]
- ODF get dr-health
在启用了镜像的集群中,从另一个集群获取集群的连接状态。
cephblockpool通过启用了镜像功能查询,如果未找到,则会退出相关日志。示例:
$ odf get dr-health Info: fetching the cephblockpools with mirroring enabled Info: found "ocs-storagecluster-cephblockpool" cephblockpool with mirroring enabled Info: running ceph status from peer cluster Info: cluster: id: 9a2e7e55-40e1-4a79-9bfa-c3e4750c6b0f health: HEALTH_OK [...]- ODF 获取 dr-prereq
检查并获取所有先决条件的状态,以便在一对集群中启用灾难恢复。该命令取对等集群名称作为参数,并使用它来比较当前的集群配置与对等集群配置。根据比较结果,会显示先决条件的状态。
Example
$ odf get dr-prereq peer-cluster-1 Info: Submariner is installed. Info: Globalnet is required. Info: Globalnet is enabled. odf get mon-endpoints Displays the mon endpoints $ odf get dr-prereq peer-cluster-1 Info: Submariner is installed. Info: Globalnet is required. Info: Globalnet is enabled.
odf operator 命令的子命令
- ODF operator rook set
在 rook-ceph-operator config
configmap中设置提供的属性值示例:
$ odf operator rook set ROOK_LOG_LEVEL DEBUG configmap/rook-ceph-operator-config patched其中,
ROOK_LOG_LEVEL可以是DEBUG、INFO或WARNING- ODF operator rook restart
重启 Rook-Ceph operator
示例:
$ odf operator rook restart deployment.apps/rook-ceph-operator restarted- ODF 恢复 mon-quorum
当大多数 mons 不在仲裁且集群停机时,恢复 mon 仲裁。当大多数 mons 永久丢失时,需要恢复到剩余的 mon 状态,以便再次启动 Ceph 集群。
示例:
$ odf restore mon-quorum c- ODF restore 已删除 <crd>
当组件、CephClusters、CephFilesystems 和 CephBlockPools 仍然保留数据时,恢复已删除的 Rook CR。通常,当 Rook CR 被删除并保留数据时,Rook operator 不会删除 CR,以确保数据不会丢失,Operator 不会删除 CR 上的终结器。因此,CR 会一直处于 Deleting 状态,集群健康状况不会被保证。升级也会被阻断。此命令有助于在不停机集群的情况下修复 CR。
注意此时会出现一个需要确认进行恢复的警告信息。确认后,您需要输入
继续启动操作符,然后再次扩展到完整的 mon-quorum。示例:
$ odf restore deleted cephclusters
Info: Detecting which resources to restore for crd "cephclusters"
Info: Restoring CR my-cluster
Warning: The resource my-cluster was found deleted. Do you want to restore it? yes | no
[...]
3.1. 配置 Ceph 组件的调试详细程度 复制链接链接已复制到粘贴板!
您可以通过为 OpenShift Data Foundation 的特定 Ceph 子系统启用或增加日志调试来配置 Ceph 组件的详细程度。有关 Ceph 子系统和可更新的日志级别的信息,请参阅 Ceph 子系统默认日志记录级别值。
流程
为 Ceph 守护进程设置日志级别:
$ odf set ceph log-level <ceph-subsystem1> <ceph-subsystem2> <log-level>其中
ceph-subsystem可以是osd、mds或mon。例如,
$ odf set ceph log-level osd crush 20$ odf set ceph log-level mds crush 20$ odf set ceph log-level mon crush 20