6.11. Ceph Orchestrator를 사용하여 OSD 교체
디스크가 실패하면 물리 스토리지 장치를 교체하고 동일한 OSD ID를 재사용하여ECDHE 맵을 재구성하지 않도록 할 수 있습니다.
--replace
옵션을 사용하여 클러스터의 OSD를 교체할 수 있습니다.
단일 OSD를 교체하려면 특정 장치 및 호스트에 Ceph OSD 배포를 참조하십시오. 사용 가능한 모든 장치에 OSD를 배포하려면 사용 가능한 모든 장치에 Ceph OSD 배포를 참조하십시오.
이 옵션은 ceph orch rm
명령을 사용하여 OSD ID를 유지합니다. OSD는 CRUSH 계층에서 영구적으로 제거되지 않지만 삭제
플래그가 할당됩니다. 이 플래그는 다음 OSD 배포에서 재사용할 수 있는 OSD ID를 결정하는 데 사용됩니다. 삭제된 플래그는
다음 OSD 배포에서 재사용되는 OSD ID를 결정하는 데 사용됩니다.
rm
명령과 유사하게 클러스터에서 OSD를 교체하려면 다음 두 단계가 필요합니다.
- 클러스터에서 모든 배치 그룹(PG)을 비우십시오.
- 클러스터에서 PG가 없는 OSD 제거.
배포에 OSD 사양을 사용하는 경우 교체 중인 디스크의 OSD ID가 삽입되는 즉시 새로 추가된 디스크에 자동으로 할당됩니다.
OSD를 제거한 후 드라이브가 다시 사용 가능하게 되면 OSD가 다시 사용 가능하게 되면 기존 drivegroup 사양과 일치하는 경우 cephadm
에서 이러한 드라이브에 더 많은 OSD를 자동으로 배포할 수 있습니다. 사양을 사용하여 제거할 OSD를 배포하고 제거 후 새 OSD가 드라이브에 배포되지 않도록 하려면 제거하기 전에 drivegroup 사양을 수정합니다. OSD를 배포하는 동안 --all-available-devices
옵션을 사용한 경우 새 드라이브를 전혀 사용하지 않도록 unmanaged: true
를 설정합니다. 다른 배포의 경우 사양을 수정합니다. 자세한 내용은 고급 서비스 사양을 사용하여 Ceph OSD 배포를 참조하십시오.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 호스트가 클러스터에 추가됩니다.
- 모니터, 관리자 및 OSD 데몬이 스토리지 클러스터에 배포됩니다.
- 제거된 OSD를 대체하는 새 OSD는 OSD가 제거된 동일한 호스트에서 생성해야 합니다.
절차
Cephadm 쉘에 로그인합니다.
예제
[root@host01 ~]# cephadm shell
향후 참조를 위해 OSD 구성 매핑을 덤프하고 저장해야 합니다.
예제
[ceph: root@node /]# ceph osd metadata -f plain | grep device_paths "device_paths": "sde=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:1,sdi=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:1:0:1", "device_paths": "sde=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:1,sdf=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:1:0:1", "device_paths": "sdd=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:2,sdg=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:1:0:2", "device_paths": "sdd=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:2,sdh=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:1:0:2", "device_paths": "sdd=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:2,sdk=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:1:0:2", "device_paths": "sdc=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:3,sdl=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:1:0:3", "device_paths": "sdc=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:3,sdj=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:1:0:3", "device_paths": "sdc=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:3,sdm=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:1:0:3", [.. output omitted ..]
OSD를 교체해야 하는 장치와 노드를 확인합니다.
예제
[ceph: root@host01 /]# ceph osd tree
cephadm
관리 클러스터에서 OSD를 제거합니다.중요스토리지 클러스터에
health_warn
또는 기타 오류가 연결된 경우 OSD를 교체하기 전에 오류를 확인하고 수정하여 데이터 손실을 방지합니다.구문
ceph orch osd rm OSD_ID --replace [--force]
--force
옵션은 스토리지 클러스터에서 지속적인 작업이 있을 때 사용할 수 있습니다.예제
[ceph: root@host01 /]# ceph orch osd rm 0 --replace
다음 OSD 사양을 적용하여 새 OSD를 다시 생성합니다.
예제
service_type: osd service_id: osd placement: hosts: - myhost data_devices: paths: - /path/to/the/device
OSD 교체 상태를 확인합니다.
예제
[ceph: root@host01 /]# ceph orch osd rm status
오케스트레이터를 중지하여 기존 OSD 사양을 적용합니다.
예제
[ceph: root@node /]# ceph orch pause [ceph: root@node /]# ceph orch status Backend: cephadm Available: Yes Paused: Yes
제거된 OSD 장치를 zap합니다.
예제
[ceph: root@node /]# ceph orch device zap node.example.com /dev/sdi --force zap successful for /dev/sdi on node.example.com [ceph: root@node /]# ceph orch device zap node.example.com /dev/sdf --force zap successful for /dev/sdf on node.example.com
일시 중지 모드에서 Orcestrator를 다시 시작
예제
[ceph: root@node /]# ceph orch resume
OSD 교체 상태를 확인합니다.
예제
[ceph: root@node /]# ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.77112 root default -3 0.77112 host node 0 hdd 0.09639 osd.0 up 1.00000 1.00000 1 hdd 0.09639 osd.1 up 1.00000 1.00000 2 hdd 0.09639 osd.2 up 1.00000 1.00000 3 hdd 0.09639 osd.3 up 1.00000 1.00000 4 hdd 0.09639 osd.4 up 1.00000 1.00000 5 hdd 0.09639 osd.5 up 1.00000 1.00000 6 hdd 0.09639 osd.6 up 1.00000 1.00000 7 hdd 0.09639 osd.7 up 1.00000 1.00000 [.. output omitted ..]
검증
Ceph OSD가 교체되는 장치 및 노드의 세부 정보를 확인합니다.
예제
[ceph: root@host01 /]# ceph osd tree
동일한 호스트에서 실행을 교체한 것과 동일한 ID가 있는 OSD가 표시됩니다.
새로 배포된 OSD의
db_device
가 교체된db_device
인지 확인합니다.예제
[ceph: root@host01 /]# ceph osd metadata 0 | grep bluefs_db_devices "bluefs_db_devices": "nvme0n1", [ceph: root@host01 /]# ceph osd metadata 1 | grep bluefs_db_devices "bluefs_db_devices": "nvme0n1",
추가 리소스
- 자세한 내용은 Red Hat Ceph Storage 운영 가이드의 사용 가능한 모든 장치에 대해 CephOSD 배포 섹션을 참조하십시오.
- 자세한 내용은 Red Hat Ceph Storage 운영 가이드의 특정 장치 및 호스트에서 CephOSD 배포 섹션을 참조하십시오.