第 6 章 删除 DCN 节点集


从 DCN 配置中删除未使用的边缘位置及其可用区。这可让您停用不再需要的站点,并回收资源。

6.1. 停用 DCN 边缘站点

停用不再需要的边缘站点来回收硬件并清理资源。这个过程安全地从 DCN 部署中删除站点,同时保持剩余的站点的完整性。

先决条件

  • DCN 站点上的所有数据和工作负载都已迁移。

    重要

    在完成此步骤后,未保存的数据和未迁移的工作负载将会丢失。

流程

  1. 删除您要删除的 DCN 站点的主机聚合,例如 "az2":

    1. 从您的工作站访问 OpenStackClient pod 的远程 shell:

      $ oc rsh -n openstack openstackclient
    2. 可选:查看分配给主机聚合的 Compute 节点:

      # openstack aggregate show <aggregate_name>
    3. 要从主机聚合中删除分配的 Compute 节点,为每个 Compute 节点输入以下命令:

      # openstack aggregate remove host <aggregate_name> \
      <host_name>
      • <aggregate_name > 替换为与要删除的 DCN 站点对应的聚合,如 "az2"。
      • <host_name > 替换为要删除的聚合中的每个主机。
    4. 删除聚合:

      openstack aggregate delete <aggregate_name>
      • <aggregate_name > 替换为与要删除的 DCN 站点对应的聚合,如 "az2"。
    5. 退出 openstackclient pod:

      $ exit
  2. 可选:删除单元:

    1. 在工作站上打开 OpenStackControlPlane CR 文件 openstack_control_plane.yaml。
    2. cellTemplates 中删除单元定义:

            cellTemplates:
              cell0:
                hasAPIAccess: true
                cellDatabaseAccount: nova-cell0
                cellDatabaseInstance: openstack
                cellMessageBusInstance: rabbitmq
              cell1:
                hasAPIAccess: true
                cellDatabaseAccount: nova-cell1
                cellDatabaseInstance: openstack-cell1
                cellMessageBusInstance: rabbitmq-cell1
              cell2:
                hasAPIAccess: true
                cellDatabaseAccount: nova-cell2
                cellDatabaseInstance: openstack-cell2
                cellMessageBusInstance: rabbitmq-cell2
      -       cell3:
      -         hasAPIAccess: true
      -         cellDatabaseAccount: nova-cell3
      -         cellDatabaseInstance: openstack-cell3
      -         cellMessageBusInstance: rabbitmq-cell3
    3. 从 OpenStackControlPlane CR 中删除特定于单元的 RabbitMQ 定义:

      spec:
      ...
        rabbitmq:
          templates:
            ...
            rabbitmq-<cellname>:
              ...
    4. 从 'OpenStackControlPlane CR 文件中删除特定于单元的 Galera 定义:

      spec:
      ...
        galera:
          templates:
            ...
            openstack-<cellname>:
              ...
    5. 更新 control plane:

      $ oc apply -f openstack_control_plane.yaml -n openstack
  3. 删除 DCN 站点的 Block storage (cinder) pod:

    1. 获取卷列表:

      $ openstack volume service list

      Example

      +------------------+--------------------------+------+---------+-------+----------------------------+
      | Binary           | Host                     | Zone | Status  | State | Updated At                 |
      +------------------+--------------------------+------+---------+-------+----------------------------+
      | cinder-scheduler | cinder-e479e-scheduler-0 | nova | enabled | down  | 2024-11-10T16:29:40.000000 |
      | cinder-scheduler | cinder-scheduler-0       | nova | enabled | up    | 2024-11-12T19:11:08.000000 |
      | cinder-volume    | cinder-volume-az0-0@ceph | az0  | enabled | up    | 2024-11-12T19:11:09.000000 |
      | cinder-backup    | cinder-backup-0          | nova | enabled | up    | 2024-11-12T19:11:08.000000 |
      | cinder-backup    | cinder-backup-1          | nova | enabled | up    | 2024-11-12T19:11:13.000000 |
      | cinder-backup    | cinder-backup-2          | nova | enabled | up    | 2024-11-12T19:11:16.000000 |
      | cinder-volume    | cinder-volume-az1-0@ceph | az1  | enabled | up    | 2024-11-12T19:11:15.000000 |
      | cinder-volume    | cinder-volume-az2-0@ceph | az2  | enabled | up    | 2024-11-12T17:28:28.000000 |
      +------------------+--------------------------+------+---------+-------+----------------------------+
    2. 禁用要删除的可用区(AZ)的块存储卷服务:

      $ openstack volume service set \
      --disable cinder-volume-az2-0@ceph cinder-volume
    3. 验证 Block 存储卷是否已禁用:

      openstack volume service list

      Example

      +------------------+--------------------------+------+----------+-------+----------------------------+
      | Binary           | Host                     | Zone | Status   | State | Updated At                 |
      +------------------+--------------------------+------+----------+-------+----------------------------+
      | cinder-scheduler | cinder-e479e-scheduler-0 | nova | enabled  | down  | 2024-11-10T16:29:40.000000 |
      | cinder-scheduler | cinder-scheduler-0       | nova | enabled  | up    | 2024-11-12T19:23:38.000000 |
      | cinder-volume    | cinder-volume-az0-0@ceph | az0  | enabled  | up    | 2024-11-12T19:23:29.000000 |
      | cinder-backup    | cinder-backup-0          | nova | enabled  | up    | 2024-11-12T19:23:38.000000 |
      | cinder-backup    | cinder-backup-1          | nova | enabled  | up    | 2024-11-12T19:23:33.000000 |
      | cinder-backup    | cinder-backup-2          | nova | enabled  | up    | 2024-11-12T19:23:36.000000 |
      | cinder-volume    | cinder-volume-az1-0@ceph | az1  | enabled  | up    | 2024-11-12T19:23:35.000000 |
      | cinder-volume    | cinder-volume-az2-0@ceph | az2  | disabled | up    | 2024-11-12T19:23:24.000000 |
      +------------------+--------------------------+------+----------+-------+----------------------------+
    4. 打开 OpenStackControlPlane 清单文件 openstack_control_plane.yaml。删除要删除的站点的 CinderVolume pod,如下例所示:

           cinderVolumes:
              az2:
                customServiceConfig: |
                  [DEFAULT]
                  enabled_backends = ceph
                  glance_api_servers = https://glance-az2-internal.openstack.svc:9292
                  [ceph]
                  volume_backend_name = ceph
                  volume_driver = cinder.volume.drivers.rbd.RBDDriver
                  rbd_ceph_conf = /etc/ceph/az2.conf
                  rbd_user = openstack
                  rbd_pool = volumes
                  rbd_flatten_volume_from_snapshot = False
                  rbd_secret_uuid = 795dcbca-e715-5ac3-9b7e-a3f5c64eb89f
                  rbd_cluster_name = az2
                  backend_availability_zone = az2
  4. 为您要删除的 DCN 站点删除 cinder 卷服务:

    1. 打开 Cinder 调度程序 pod 的 shell:

      oc rsh cinder-scheduler-0
    2. 删除 cinder 卷服务:

      cinder-manage service remove cinder-volume cinder-volume-az2-0@ceph
    3. 退出 shell

      $ exit
  5. 移除正在移除的站点的 GlanceAPI pod:

    1. 在 openstack-control-plane.yaml 自定义资源(CR)文件中,删除 az2 字段及其下的所有字段:

           glanceAPIs:
              az0:
                <...>
              az1:
                <...>
             az2:
                apiTimeout: 60
                customServiceConfig: |
                  [DEFAULT]
                  enabled_import_methods = [web-download,copy-image,glance-direct]
                  enabled_backends = az0:rbd,az2:rbd
                  [glance_store]
                  default_backend = az2
                  [az0]
                  rbd_store_ceph_conf = /etc/ceph/az0.conf
                  store_description = "az0 RBD backend"
                  rbd_store_pool = images
                  rbd_store_user = openstack
                  rbd_thin_provisioning = True
                  [az2]
                  rbd_store_ceph_conf = /etc/ceph/az2.conf
                  store_description = "az2 RBD backend"
                  rbd_store_pool = images
                  rbd_store_user = openstack
                  rbd_thin_provisioning = True
                imageCache:
                  cleanerScheduler: '*/30 * * * *'
                  prunerScheduler: 1 0 * * *
                  size: ""
                networkAttachments:
                - storage
                override:
                  service:
                    internal:
                      metadata:
                        annotations:
                          metallb.universe.tf/address-pool: internalapi
                          metallb.universe.tf/allow-shared-ip: internalapi
                          metallb.universe.tf/loadBalancerIPs: 172.17.0.82
                      spec:
                        type: LoadBalancer
                replicas: 1
                resources: {}
                storage: {}
                tls:
                  api:
                    internal: {}
                    public: {}
                type: edge
    2. 重新应用 control plane:

      oc apply -f openstack-control-plane.yaml
    3. 确保 Image 服务(glance) pod 已被删除:

      $ oc get pods | grep glance | grep -v purge

      Example

      glance-e479e-az0-external-api-0           3/3     Running     0             2d
      glance-e479e-az0-external-api-1           3/3     Running     0             2d
      glance-e479e-az0-external-api-2           3/3     Running     0             2d
      glance-e479e-az0-internal-api-0           3/3     Running     0             2d
      glance-e479e-az0-internal-api-1           3/3     Running     0             2d
      glance-e479e-az0-internal-api-2           3/3     Running     0             2d
      glance-e479e-az1-edge-api-0
      注意

      glance-e4793-az2-edge-api-0 不会出现在此列表中。

    4. 确保 az2 pod 已被删除:

      $ oc get pods | grep cinder-volume

      Example

      cinder-volume-az0-0       2/2     Running     0   2d
      cinder-volume-az1-0       2/2     Running     0   2d
  6. 从 DCN 站点中删除 Ceph 集群:

    1. 关闭 Ceph 集群,但不要关闭主机。有关更多信息,请参阅" 使用 Ceph 编排器关闭并重启集群 "。

      注意

      主机必须保持开机,才能完成以下步骤。

    2. 删除用于访问已删除 Ceph 集群的 secret:

      $ oc delete secret ceph-conf-az-2 -n openstack
    3. 为中央站点重新创建 secret,使其不包含 az2 上 ceph 集群的 secret。例如,如果您有三个可用区 az0az1az2,并且您要删除与 az2 对应的边缘位置,请运行以下命令:

      oc delete secret ceph-conf-az-0 -n openstack
      oc create secret generic ceph-conf-az-0 \
      --from-file=az0.client.openstack.keyring \
      --from-file=az0.conf \
      --from-file=az1.client.openstack.keyring \
      --from-file=az1.conf -n openstack
    4. 编辑 OpenStackControlPlane 中的 extraMounts,以删除对正在移除的 AZ 的引用,以及移除的 secret。例如,对于 AZ2,请删除以下 list 元素:

              - propagation:
                - az2
                extraVolType: Ceph
                volumes:
                - name: ceph
                  secret:
                    name: ceph-conf-az-2
  7. 删除节点集。要删除与 az2 可用区对应的节点集,请完成 删除 OpenStackDataPlaneNodeSet 资源 中的步骤。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部