12.3. システムから古いディスクを削除し、交換ディスクをインストールします。
置き換える必要のある OSD のあるコンテナーホストで、システムから古いディスクを削除し、交換ディスクをインストールします。
前提条件
- デバイス ID が変更されたことを確認します。詳細は、「デバイス名の変更の有無についての確認」 を参照してください。
ceph-volume コマンドは Ceph コンテナーにありますが、オーバークラウドノードにはインストールされません。ceph-volume コマンドが Ceph コンテナー内で ceph-volume バイナリーを実行できるようにエイリアスを作成します。次に、ceph-volume コマンドを使用して新規ディスクをクリーンアップし、これを OSD として追加します。
手順
障害のある OSD が実行されていないことを確認します。
systemctl stop ceph-osd@27
systemctl stop ceph-osd@27Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph コンテナーイメージのイメージ ID を特定して、これを
IMGという環境変数に保存します。IMG=$(podman images | grep ceph | awk {'print $3'})IMG=$(podman images | grep ceph | awk {'print $3'})Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-volumeコマンドにエイリアスを設定し、これがceph-volumeエントリーポイントおよび関連するディレクトリーを使用して$IMGCeph コンテナー内で実行されるようにします。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"
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"Copy to Clipboard Copied! Toggle word wrap Toggle overflow aliased コマンドが正常に実行されていることを確認します。
ceph-volume lvm list
ceph-volume lvm listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新規 OSD デバイスが LVM に含まれていないことを確認します。
pvdisplayコマンドを使用してデバイスを検査し、VG Nameフィールドが空であることを確認します。<NEW_DEVICE>を新規 OSD デバイスの/dev/*パスに置き換えます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この
VG Nameフィールドが空でない場合は、デバイスは削除する必要のあるボリュームグループに属します。デバイスがボリュームグループに属する場合は、
lvdisplayコマンドを使用して、ボリュームグループに論理ボリュームがあるかどうかを確認します。<VOLUME_GROUP>を、pvdisplayコマンドから取得したVG Nameフィールドの値に置き換えます。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 ~]# 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 ~]#Copy to Clipboard Copied! Toggle word wrap Toggle overflow この
LV Pathフィールドが空でない場合は、デバイスには、削除する必要のある論理ボリュームが含まれます。新規デバイスが論理ボリュームまたはボリュームグループの一部である場合、論理ボリューム、ボリュームグループ、および LVM システム内の物理ボリュームとしてのデバイスの関連付けを削除します。
-
<LV_PATH>をLV Pathフィールドの値に置き換えます。 -
<VOLUME_GROUP>をVG Nameフィールドの値に置き換えます。 <NEW_DEVICE>を新規 OSD デバイスの/dev/*パスに置き換えます。lvremove --force <LV_PATH> Logical volume "osd-data-a0810722-7673-43c7-8511-2fd9db1dbbc6" successfully removed
[root@overcloud-computehci-2 ~]# lvremove --force <LV_PATH> Logical volume "osd-data-a0810722-7673-43c7-8511-2fd9db1dbbc6" successfully removedCopy to Clipboard Copied! Toggle word wrap Toggle overflow vgremove --force <VOLUME_GROUP> Volume group "ceph-0fb0de13-fc8e-44c8-99ea-911e343191d2" successfully removed
[root@overcloud-computehci-2 ~]# vgremove --force <VOLUME_GROUP> Volume group "ceph-0fb0de13-fc8e-44c8-99ea-911e343191d2" successfully removedCopy to Clipboard Copied! Toggle word wrap Toggle overflow pvremove <NEW_DEVICE> Labels on physical volume "/dev/sdj" successfully wiped.
[root@overcloud-computehci-2 ~]# pvremove <NEW_DEVICE> Labels on physical volume "/dev/sdj" successfully wiped.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
新しい OSD デバイスがクリーンであることを確認します。以下の例では、デバイスは
/dev/sdjになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいデバイスを使用して既存の OSD ID で新しい OSD を作成しますが、
ceph-volumeが OSD の起動を試行しないように--no-systemdを渡します。これはコンテナー内からは実行できません。ceph-volume lvm create --osd-id 27 --data /dev/sdj --no-systemd
ceph-volume lvm create --osd-id 27 --data /dev/sdj --no-systemdCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナー外で OSD を起動します。
systemctl start ceph-osd@27
systemctl start ceph-osd@27Copy to Clipboard Copied! Toggle word wrap Toggle overflow