第 6 章 删除 DCN 节点集
从 DCN 配置中删除未使用的边缘位置及其可用区。这可让您停用不再需要的站点,并回收资源。
6.1. 停用 DCN 边缘站点 复制链接链接已复制到粘贴板!
停用不再需要的边缘站点来回收硬件并清理资源。这个过程安全地从 DCN 部署中删除站点,同时保持剩余的站点的完整性。
先决条件
DCN 站点上的所有数据和工作负载都已迁移。
重要在完成此步骤后,未保存的数据和未迁移的工作负载将会丢失。
流程
删除您要删除的 DCN 站点的主机聚合,例如 "az2":
从您的工作站访问 OpenStackClient pod 的远程 shell:
$ oc rsh -n openstack openstackclient可选:查看分配给主机聚合的 Compute 节点:
# openstack aggregate show <aggregate_name>要从主机聚合中删除分配的 Compute 节点,为每个 Compute 节点输入以下命令:
# openstack aggregate remove host <aggregate_name> \ <host_name>-
将
<aggregate_name> 替换为与要删除的 DCN 站点对应的聚合,如 "az2"。 -
将
<host_name> 替换为要删除的聚合中的每个主机。
-
将
删除聚合:
openstack aggregate delete <aggregate_name>-
将
<aggregate_name> 替换为与要删除的 DCN 站点对应的聚合,如 "az2"。
-
将
退出 openstackclient pod:
$ exit
可选:删除单元:
- 在工作站上打开 OpenStackControlPlane CR 文件 openstack_control_plane.yaml。
从
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从 OpenStackControlPlane CR 中删除特定于单元的 RabbitMQ 定义:
spec: ... rabbitmq: templates: ... rabbitmq-<cellname>: ...从 'OpenStackControlPlane CR 文件中删除特定于单元的 Galera 定义:
spec: ... galera: templates: ... openstack-<cellname>: ...更新 control plane:
$ oc apply -f openstack_control_plane.yaml -n openstack
删除 DCN 站点的 Block storage (cinder) pod:
获取卷列表:
$ openstack volume service listExample
+------------------+--------------------------+------+---------+-------+----------------------------+ | 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 | +------------------+--------------------------+------+---------+-------+----------------------------+禁用要删除的可用区(AZ)的块存储卷服务:
$ openstack volume service set \ --disable cinder-volume-az2-0@ceph cinder-volume验证 Block 存储卷是否已禁用:
openstack volume service listExample
+------------------+--------------------------+------+----------+-------+----------------------------+ | 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 | +------------------+--------------------------+------+----------+-------+----------------------------+打开 OpenStackControlPlane 清单文件
openstack_control_plane.yaml。删除要删除的站点的CinderVolumepod,如下例所示: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
为您要删除的 DCN 站点删除 cinder 卷服务:
打开 Cinder 调度程序 pod 的 shell:
oc rsh cinder-scheduler-0删除 cinder 卷服务:
cinder-manage service remove cinder-volume cinder-volume-az2-0@ceph退出 shell
$ exit
移除正在移除的站点的
GlanceAPIpod:在 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重新应用 control plane:
oc apply -f openstack-control-plane.yaml确保 Image 服务(glance) pod 已被删除:
$ oc get pods | grep glance | grep -v purgeExample
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不会出现在此列表中。确保 az2 pod 已被删除:
$ oc get pods | grep cinder-volumeExample
cinder-volume-az0-0 2/2 Running 0 2d cinder-volume-az1-0 2/2 Running 0 2d
从 DCN 站点中删除 Ceph 集群:
关闭 Ceph 集群,但不要关闭主机。有关更多信息,请参阅" 使用 Ceph 编排器关闭并重启集群 "。
注意主机必须保持开机,才能完成以下步骤。
删除用于访问已删除 Ceph 集群的 secret:
$ oc delete secret ceph-conf-az-2 -n openstack为中央站点重新创建 secret,使其不包含 az2 上 ceph 集群的 secret。例如,如果您有三个可用区
az0、az1和az2,并且您要删除与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编辑 OpenStackControlPlane 中的
extraMounts,以删除对正在移除的 AZ 的引用,以及移除的 secret。例如,对于 AZ2,请删除以下 list 元素:- propagation: - az2 extraVolType: Ceph volumes: - name: ceph secret: name: ceph-conf-az-2
-
删除节点集。要删除与
az2可用区对应的节点集,请完成 删除 OpenStackDataPlaneNodeSet 资源 中的步骤。