11.4. Ceph Storage 노드에서 OSD 제거
다음 절차에서는 노드에서 OSD를 제거하는 방법을 설명합니다. 환경에 대해 다음을 가정합니다.
-
서버(
ceph-storage0)에는/dev/sde에서실행되는 OSD( ceph-osd@4)가 있습니다. -
Ceph 모니터 서비스(
ceph-mon)는controller0에서 실행되고 있습니다. - 스토리지 클러스터의 비율이 거의 없는지 확인하기에 충분한 OSD가 있습니다.
Ceph OSD에 대한 자세한 내용은 Red Hat Ceph Storage Operations Guide의 Ceph OSD 를 참조하십시오.
절차
-
ceph-storage0에 SSH로 연결하고root로 로그인합니다. OSD 서비스를 비활성화하고 중지합니다.
[root@ceph-storage0 ~]# systemctl disable ceph-osd@4 [root@ceph-stoarge0 ~]# systemctl stop ceph-osd@4-
ceph-storage0에서 연결을 끊습니다. -
controller0에 SSH로 연결하고root로 로그인합니다. Ceph 모니터 컨테이너의 이름을 확인합니다.
[root@controller0 ~]# podman ps | grep ceph-mon ceph-mon-controller0 [root@controller0 ~]#Ceph 모니터 컨테이너를 활성화하여 바람직하지 않은 OSD를
외부로표시합니다.[root@controller0 ~]# podman exec ceph-mon-controller0 ceph osd out 4참고이 명령을 사용하면 Ceph에서 스토리지 클러스터를 리밸런싱하고 데이터를 클러스터의 다른 OSD에 복사합니다. 클러스터는 리밸런싱이 완료될 때까지
active+clean상태를 일시적으로 유지합니다.다음 명령을 실행하고 스토리지 클러스터 상태가
active+clean이 될 때까지 기다립니다.[root@controller0 ~]# podman exec ceph-mon-controller0 ceph -w더 이상 데이터를 받지 않도록 CRUSH 맵에서 OSD를 제거합니다.
[root@controller0 ~]# podman exec ceph-mon-controller0 ceph osd crush remove osd.4OSD 인증 키를 제거합니다.
[root@controller0 ~]# podman exec ceph-mon-controller0 ceph auth del osd.4OSD를 제거합니다.
[root@controller0 ~]# podman exec ceph-mon-controller0 ceph osd rm 4-
controller0에서 연결을 끊습니다. -
stack사용자로 언더클라우드에 SSH로 연결하고CephAnsibleDisksConfig매개변수를 정의한 heat 환경 파일을 찾습니다. heat 템플릿에 OSD 4개가 포함되어 있습니다.
parameter_defaults: CephAnsibleDisksConfig: devices: - /dev/sdb - /dev/sdc - /dev/sdd - /dev/sde osd_scenario: lvm osd_objectstore: bluestore/dev/sde를 제거하도록 템플릿을 수정합니다.parameter_defaults: CephAnsibleDisksConfig: devices: - /dev/sdb - /dev/sdc - /dev/sdd osd_scenario: lvm osd_objectstore: bluestoreopenstack overcloud deploy를실행하여 Overcloud를 업데이트합니다.참고이 예제에서는 OSD가 있는 모든 호스트에서
/dev/sde장치를 제거합니다. 모든 노드에서 동일한 장치를 제거하지 않으면 heat 템플릿을 업데이트합니다. 다양한장치목록을 사용하여 호스트를 정의하는 방법에 대한 자세한 내용은 5.5절. “유사한 Ceph Storage 노드의 매개변수 덮어쓰기” 을 참조하십시오.