20.2. ブロックデバイスと関連メタデータの削除
実行中のシステムからブロックデバイスを安全に削除するには、システムメモリーのオーバーロードとデータ損失を防ぐために、最初にブロックデバイスからメタデータを削除する必要があります。ファイルシステムから始めて、スタック内の各レイヤーに対処し、ディスクに進みます。これらのアクションにより、システムが不整合な状態になるのを防ぎます。
削除するデバイスの種類に応じて、特定のコマンドを使用します。
-
LVM の場合は、
lvremove
、vgremove
、pvremove
を実行します。 -
ソフトウェア RAID の場合、
mdadm
を実行してアレイを削除します。詳細は、RAID の管理 を参照してください。 - LUKS を使用して暗号化されたブロックデバイスの場合、特定の追加手順があります。次の手順は、LUKS を使用して暗号化されたブロックデバイスでは機能しません。詳細は、LUKS を使用したブロックデバイスの暗号化 を参照してください。
SCSI バスを再びスキャンしたり、ここで説明されている手順に従わずにオペレーティングシステムを変更する別のアクションを実行すると、I/O タイムアウトが原因で遅延が発生したり、デバイスやデータが予期せず削除されたりする可能性があります。
前提条件
- ファイルシステム、論理ボリューム、およびボリュームグループを含む既存のブロックデバイススタックがある。
- 削除するデバイスを他のアプリケーションやサービスが使用していないことを確認した。
- 削除するデバイスからデータをバックアップした。
オプション: マルチパスデバイスを削除する必要があり、そのパスデバイスにアクセスできない場合は、次のコマンドを実行してマルチパスデバイスのキューイングを無効にしておく。
multipathd disablequeueing map multipath-device
# multipathd disablequeueing map multipath-device
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 無効にすることで、デバイスの I/O が失敗し、デバイスを使用しているアプリケーションがシャットダウンできるようになります。
メタデータを含むデバイスを一度に 1 レイヤーずつ削除することで、ディスクに古い署名が残らないようにします。
手順
ファイルシステムをアンマウントします。
umount /mnt/mount-point
# umount /mnt/mount-point
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルシステムを削除します。
wipefs -a /dev/vg0/myvol
# wipefs -a /dev/vg0/myvol
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/fstab
ファイルにエントリーを追加して、ファイルシステムとマウントポイントの間の永続的な関連付けを作成した場合は、この時点で/etc/fstab
を編集してそのエントリーを削除します。削除するデバイスのタイプに応じて、次の手順に進みます。
ファイルシステムを含む論理ボリューム (LV) を削除します。
lvremove vg0/myvol
# lvremove vg0/myvol
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ボリュームグループ (VG) に他の論理ボリュームが残っていない場合は、デバイスを含む VG を安全に削除できます。
vgremove vg0
# vgremove vg0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 物理ボリューム (PV) メタデータを PV デバイスから削除します。
pvremove /dev/sdc1
# pvremove /dev/sdc1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow wipefs -a /dev/sdc1
# wipefs -a /dev/sdc1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PV が含まれていたパーティションを削除します。
parted /dev/sdc rm 1
# parted /dev/sdc rm 1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デバイスを完全に消去する場合は、パーティションテーブルを削除します。
wipefs -a /dev/sdc
# wipefs -a /dev/sdc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デバイスを物理的に取り外す場合にのみ、次の手順を実行します。
マルチパスデバイスを削除する場合は,次のコマンドを実行します。
デバイスへの全パスを表示します。
multipath -l
# multipath -l
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドの出力は、後のステップで必要になります。
I/O をフラッシュして、マルチパスデバイスを削除します。
multipath -f multipath-device
# multipath -f multipath-device
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
デバイスがマルチパスデバイスとして設定されていない場合や、デバイスがマルチパスデバイスとして設定されていて、過去に I/O を個別のパスに渡している場合は、未処理の I/O を、使用されている全デバイスパスにフラッシュします。
blockdev --flushbufs device
# blockdev --flushbufs device
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この操作は、
umount
コマンドまたはvgreduce
コマンドで I/O がフラッシュされないデバイスに直接アクセスする場合に重要になります。SCSI デバイスを取り外す場合は、以下のコマンドを実行します。
-
システム上のアプリケーション、スクリプト、またはユーティリティーで、
/dev/sd
、/dev/disk/by-path
、またはmajor:minor
番号など、デバイスのパスベースの名前への参照をすべて削除します。参照を削除することで、今後追加される別のデバイスが現在のデバイスと混同されないようにします。 SCSI サブシステムからデバイスへの各パスを削除します。
echo 1 > /sys/block/device-name/device/delete
# echo 1 > /sys/block/device-name/device/delete
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デバイスが以前にマルチパスデバイスとして使用されていた場合、
device-name
は、multipath -l
コマンドの出力からの内容に置き換えます。
-
システム上のアプリケーション、スクリプト、またはユーティリティーで、
- 稼働中のシステムから物理デバイスを削除します。このデバイスを削除しても、他のデバイスへの I/O は停止しないことに注意してください。
検証
削除したデバイスが
lsblk
コマンドの出力に表示されないことを確認します。出力例を以下に示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow