15.2. 缩减和替换 Ceph Storage 节点


在某些情况下,您可能需要缩减 Ceph Storage 集群或替换 Ceph Storage 节点。在这两种情况下,您必须禁用并重新平衡您要从 overcloud 中删除的 Ceph Storage 节点,以防止数据丢失。

流程

如果 Ceph Storage 集群没有丢失 OSD 的容量,则不要继续这个过程。

  1. tripleo-admin 用户身份登录 overcloud Controller 节点。
  2. 使用 sudo cephadm shell 命令启动 Ceph shell。
  3. 使用 ceph osd tree 命令识别要被服务器移除的 OSD。

    在以下示例中,我们希望识别 ceph-2 主机的 OSD。

    [ceph: root@oc0-controller-0 /]# ceph osd tree
    ID  CLASS  WEIGHT   TYPE NAME            STATUS  REWEIGHT  PRI-AFF
    -1         0.58557  root default
    -7         0.19519  host ceph-2
     5    hdd  0.04880       osd.5           up      1.00000  1.00000
     7    hdd  0.04880       osd.7           up      1.00000  1.00000
     9    hdd  0.04880       osd.9           up      1.00000  1.00000
    11    hdd  0.04880       osd.11          up      1.00000  1.00000
  4. 将 Ceph 集群规格导出到 YAML 文件。

    [ceph: root@oc0-controller-0 /]# ceph orch ls --export > spec.yml
  5. 编辑导出的规格文件,使适用的主机从 service-type: osd hosts 列表中删除,适用的主机具有 placement: hosts 值被删除。
  6. 保存编辑的文件。
  7. 应用修改后的 Ceph 规范文件。

    [ceph: root@oc0-controller-0 /]# ceph orch apply -i spec.yml
    重要

    如果在删除 OSD 前没有导出和导入 Ceph 规格文件,Ceph 管理器将尝试重新创建 OSD。

  8. 使用 ceph orch osd rm --zap <osd_list&gt; 命令来移除 OSD。

    [ceph: root@oc0-controller-0 /]# ceph orch osd rm --zap 5 7 9 11
    Scheduled OSD(s) for removal
    [ceph: root@oc0-controller-0 /]# ceph orch osd rm status
    OSD_ID HOST   STATE    PG_COUNT REPLACE  FORCE  DRAIN_STARTED_AT
    7      ceph-2 draining 27       False    False  2021-04-23 21:35:51.215361
    9      ceph-2 draining 8        False    False  2021-04-23 21:35:49.111500
    11     ceph-2 draining 14       False    False  2021-04-23 21:35:50.243762
  9. 使用 ceph orch osd status 命令检查 OSD 移除的状态。

    [ceph: root@oc0-controller-0 /]# ceph orch osd rm status
    OSD_ID HOST   STATE    PG_COUNT REPLACE FORCE DRAIN_STARTED_AT
    7      ceph-2 draining 34       False   False 2021-04-23 21:35:51.215361
    11     ceph-2 draining 14       False   False 2021-04-23 21:35:50.243762
    警告

    在此命令没有返回结果前,不要继续下一步。

  10. 使用 ceph orch host drain <HOST&gt; 命令排空任何剩余的守护进程。

    [ceph: root@oc0-controller-0 /]# ceph orch host drain ceph-2
  11. 使用命令 ceph orch host rm <HOST& gt; 删除主机。

    [ceph: root@oc0-controller-0 /]# ceph orch host rm ceph-2
  12. 结束 Ceph shell 会话。
  13. 注销 tripleo-admin 帐户。
  14. stack 用户身份登录 undercloud 节点。
  15. 使用以下方法修改 ~/overcloud-baremetal-deploy.yaml

    • 减少要缩减的角色中的 count 属性。
    • 为被取消置备的每个节点添加一个 instances 条目。每个条目都必须包含以下内容:

      • baremetal 节点的名称
      • 分配给该节点的主机名
      • 一个 provisioned: false 值。

        以下示例将移除节点 overcloud-compute-1

        - name: Compute
          count: 1
          instances:
          - hostname: overcloud-compute-0
            name: node10
            # Removed from deployment due to disk failure
            provisioned: false
          - hostname: overcloud-compute-1
            name: node11
  16. 使用 openstack overcloud node delete 命令删除节点。

    openstack overcloud node delete \
    --stack overcloud \
    --baremetal-deployment ~/overcloud-baremetal-deploy.yaml
    注意

    在删除节点前,要删除的节点列表将提供确认提示。

注意

如果缩减 Ceph 集群是临时的,并且稍后删除的节点将恢复,扩展操作可以在之前设置 provisioned: false 的节点上增加计数和设置 provisioned: true如果节点永远不会重复使用,它可以无限期地设置 provision: false,并且扩展操作可以指定新实例条目。

+ 以下示例提供了每个实例的一些示例。

+

- name: Compute
  count: 2
  instances:
  - hostname: overcloud-compute-0
    name: node10
    # Removed from deployment due to disk failure
    provisioned: false
  - hostname: overcloud-compute-1
    name: node11
  - hostname: overcloud-compute-2
    name: node12
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.