6.11. Ceph Orchestrator를 사용하여 OSD 교체
디스크가 실패하면 물리적 스토리지 장치를 교체하고 동일한 OSD ID를 재사용하여 CRUSH 맵을 재구성할 필요가 없습니다.
--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 treeOSD를 교체합니다.
중요스토리지 클러스터에
health_warn또는 기타 오류가 연결된 경우 OSD를 교체하기 전에 오류를 확인하고 수정하여 데이터 손실을 방지합니다.구문
ceph orch osd rm OSD_ID --replace [--force]스토리지 클러스터에 지속적인 작업이 있는 경우
--force옵션을 사용할 수 있습니다.예
[ceph: root@host01 /]# ceph orch osd rm 0 --replaceOSD 교체 상태를 확인합니다.
예
[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 resumeOSD 교체 상태를 확인합니다.
예
[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",