6.3. 验证 CRUSH 规则已创建,并且您的池已设置为正确的 CRUSH 规则


WARNING
在现有环境中定义性能层可能会导致 Ceph 集群中大量数据移动。Ceph-ansible (director 在堆栈更新期间触发)没有逻辑来检查集群中是否已定义池,以及它是否包含数据。这意味着,在现有环境中定义性能层可能会危险,因为更改与池关联的默认 CRUSH 规则会导致数据移动。如果您需要帮助或建议添加或删除节点,请联系红帽支持。

流程

  1. heat-admin 用户身份登录 overcloud Controller 节点。
  2. 要验证您的 OSD 层是否已成功设置,请输入以下命令。将 <controller_hostname > 替换为主机控制器节点的名称。

    $ sudo podman exec -it ceph-mon-<controller_hostname> ceph osd tree
  3. 在生成的树视图中,验证 CLASS 列是否显示您设置的每个 OSD 的正确设备类。
  4. 另外,使用以下命令验证 OSD 是否已正确分配给设备类。将 <controller_hostname > 替换为主机控制器节点的名称。

    $ sudo podman exec -it ceph-mon-<controller_hostname> ceph osd crush tree --show-shadow
  5. 将生成的层次结构与以下命令的结果进行比较,以确保每个规则都应用相同的值。

    • <controller_hostname > 替换为主机控制器节点的名称。
    • <rule_name > 替换为您要检查的规则的名称。

      $ sudo podman exec <controller_hostname> ceph osd crush rule dump <rule_name>
  6. 根据部署期间使用的 crush_rules 参数,验证您创建的规则名称和 ID 是否正确。将 <controller_hostname > 替换为主机控制器节点的名称。

    $ sudo podman exec -it ceph-mon-<controller_hostname>  ceph osd crush rule dump | grep -E "rule_(id|name)"
  7. 验证 Ceph 池已绑定到在第 3 步中获得的正确 CRUSH 规则 ID。将 <controller_hostname > 替换为主机控制器节点的名称。

    $ sudo podman exec -it ceph-mon-<controller_hostname> ceph osd dump | grep pool
  8. 对于每个池,确保规则 ID 与您所期望的规则名称匹配。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.