12.3. 시스템에서 이전 디스크 제거 및 교체 디스크 설치
교체할 OSD가 있는 컨테이너 호스트에서 이전 디스크를 시스템에서 제거하고 대체 디스크를 설치합니다.
사전 요구 사항
- 장치 ID가 변경되었는지 확인합니다. 자세한 내용은 12.1절. “장치 이름 변경 여부 확인”의 내용을 참조하십시오.
ceph-volume 명령은 Ceph 컨테이너에 있지만 Overcloud 노드에 설치되지 않습니다. ceph-volume 명령이 Ceph 컨테이너 내에서 바이너리를 실행하도록 별칭을 만듭니다. 그런 다음 ceph-volume ceph-volume 명령을 사용하여 새 디스크를 정리하고 OSD로 추가합니다.
절차
실패한 OSD가 실행 중이 아닌지 확인합니다.
systemctl stop ceph-osd@27ceph 컨테이너 이미지의 이미지 ID를 식별하고
IMG라는 환경 변수에 저장합니다.IMG=$(podman images | grep ceph | awk {'print $3'})ceph-volume진입점과 관련 디렉터리를 사용하여$IMGCeph 컨테이너 내부에서 실행되도록ceph-volume명령을 별칭합니다.alias ceph-volume="podman run --rm --privileged --net=host --ipc=host -v /run/lock/lvm:/run/lock/lvm:z -v /var/run/udev/:/var/run/udev/:z -v /dev:/dev -v /etc/ceph:/etc/ceph:z -v /var/lib/ceph/:/var/lib/ceph/:z -v /var/log/ceph/:/var/log/ceph/:z --entrypoint=ceph-volume $IMG --cluster ceph"별칭 명령이 성공적으로 실행되는지 확인합니다.
ceph-volume lvm list새 OSD 장치가 LVM에 포함되어 있지 않은지 확인합니다.
pvdisplay명령을 사용하여 장치를 검사하고VG Name(VG 이름) 필드가 비어 있는지 확인합니다.<NEW_DEVICE>를 새 OSD 장치의/dev/*경로로 바꿉니다.[root@overcloud-computehci-2 ~]# pvdisplay <NEW_DEVICE> --- Physical volume --- PV Name /dev/sdj VG Name ceph-0fb0de13-fc8e-44c8-99ea-911e343191d2 PV Size 50.00 GiB / not usable 1.00 GiB Allocatable yes (but full) PE Size 1.00 GiB Total PE 49 Free PE 0 Allocated PE 49 PV UUID kOO0If-ge2F-UH44-6S1z-9tAv-7ypT-7by4cp [root@overcloud-computehci-2 ~]#VG Name(VG 이름) 필드가 비어 있지 않으면 장치는 제거해야 하는 볼륨 그룹에 속합니다.장치가 볼륨 그룹에 속하는 경우
lvdisplay명령을 사용하여 볼륨 그룹에 논리 볼륨이 있는지 확인합니다.<VOLUME_GROUP>을pvdisplay명령에서 검색한VG 이름필드 값으로 바꿉니다.[root@overcloud-computehci-2 ~]# lvdisplay | grep <VOLUME_GROUP> LV Path /dev/ceph-0fb0de13-fc8e-44c8-99ea-911e343191d2/osd-data-a0810722-7673-43c7-8511-2fd9db1dbbc6 VG Name ceph-0fb0de13-fc8e-44c8-99ea-911e343191d2 [root@overcloud-computehci-2 ~]#LV Path(LV 경로) 필드가 비어 있지 않으면 장치에 제거해야 하는 논리 볼륨이 포함됩니다.새 장치가 논리 볼륨 또는 볼륨 그룹의 일부인 경우 LVM 시스템 내의 물리 볼륨으로 논리 볼륨, 볼륨 그룹 및 장치 연결을 제거합니다.
-
<LV_PATH>를LV Path필드 값으로 바꿉니다. -
<VOLUME_GROUP>을VG 이름필드 값으로 바꿉니다. <NEW_DEVICE>를 새 OSD 장치의/dev/*경로로 바꿉니다.[root@overcloud-computehci-2 ~]# lvremove --force <LV_PATH> Logical volume "osd-data-a0810722-7673-43c7-8511-2fd9db1dbbc6" successfully removed[root@overcloud-computehci-2 ~]# vgremove --force <VOLUME_GROUP> Volume group "ceph-0fb0de13-fc8e-44c8-99ea-911e343191d2" successfully removed[root@overcloud-computehci-2 ~]# pvremove <NEW_DEVICE> Labels on physical volume "/dev/sdj" successfully wiped.
-
새 OSD 장치가 정리되었는지 확인합니다. 다음 예에서 장치는
/dev/sdj입니다.[root@overcloud-computehci-2 ~]# ceph-volume lvm zap /dev/sdj --> Zapping: /dev/sdj --> --destroy was not specified, but zapping a whole device will remove the partition table Running command: /usr/sbin/wipefs --all /dev/sdj Running command: /bin/dd if=/dev/zero of=/dev/sdj bs=1M count=10 stderr: 10+0 records in 10+0 records out 10485760 bytes (10 MB, 10 MiB) copied, 0.010618 s, 988 MB/s --> Zapping successful for: <Raw Device: /dev/sdj> [root@overcloud-computehci-2 ~]#ceph-volume이 OSD를 시작하지 않도록 새 장치를 사용하지만--no-systemd를 전달하여 기존 OSD ID로 새 OSD를 만듭니다. 컨테이너 내에서는 이 작업을 수행할 수 없습니다.ceph-volume lvm create --osd-id 27 --data /dev/sdj --no-systemd컨테이너 외부에서 OSD를 시작합니다.
systemctl start ceph-osd@27