Red Hat Training

A Red Hat training course is available for RHEL 8

24.2. ブロックデバイスと関連メタデータの削除

実行中のシステムからブロックデバイスを安全に削除するには、システムメモリーのオーバーロードとデータ損失を防ぐために、最初にブロックデバイスからメタデータを削除する必要があります。ファイルシステムから始めて、スタック内の各レイヤーに対処し、ディスクに進みます。これらのアクションにより、システムが不整合な状態になるのを防ぎます。

削除するデバイスのタイプに応じて異なる特定のコマンドを使用します。

  • lvremovevgremove、および pvremove は LVM に固有です。
  • ソフトウェア RAID の場合、mdadm を実行してアレイを削除します。詳細は、RAID の管理 を参照してください。
  • LUKS を使用して暗号化されたブロックデバイスの場合、特定の追加手順があります。次の手順は、LUKS を使用して暗号化されたブロックデバイスでは機能しません。詳細は、LUKS を使用したブロックデバイスの暗号化 を参照してください。
警告

SCSI バスを再びスキャンしたり、ここで説明されている手順に従わずにオペレーティングシステムを変更する別のアクションを実行すると、I/O タイムアウトが原因で遅延が発生したり、デバイスやデータが予期せず削除されたりする可能性があります。

前提条件

  • ファイルシステム、論理ボリューム、およびボリュームグループを含む既存のブロックデバイススタックがある。
  • 削除するデバイスを他のアプリケーションやサービスが使用していないことを確認した。
  • 削除するデバイスからデータをバックアップした。
  • オプション: マルチパスデバイスを削除する必要があり、そのパスデバイスにアクセスできない場合は、次のコマンドを実行してマルチパスデバイスのキューイングを無効にしておく。

    # multipathd disablequeueing map multipath-device

    無効にすることで、デバイスの I/O が失敗し、デバイスを使用しているアプリケーションがシャットダウンできるようになります。

注記

メタデータを含むデバイスを一度に 1 レイヤーずつ削除することで、ディスクに古い署名が残らないようにします。

手順

  1. ファイルシステムをアンマウントします。

    # umount /mnt/mount-point
  2. ファイルシステムを削除します。

    # wipefs -a /dev/vg0/myvol
    注記

    /etc/fstab ファイルにエントリーを追加して、ファイルシステムとマウントポイントの間の永続的な関連付けを作成した場合は、この時点で /etc/fstab を編集してそのエントリーを削除する必要もあります。

    削除するデバイスのタイプに応じて、次の手順に進みます。

  3. ファイルシステムを含む論理ボリューム (LV) を削除します。

    # lvremove vg0/myvol
  4. ボリュームグループ (VG) に他の論理ボリュームが残っていない場合は、デバイスを含む VG を安全に削除できます。

    # vgremove vg0
  5. 物理ボリューム (PV) メタデータを PV デバイスから削除します。

    # pvremove /dev/sdc1
    # wipefs -a /dev/sdc1
  6. PV が含まれていたパーティションを削除します。

    # parted /dev/sdc rm 1
注記

デバイスを完全にワイプする場合にのみ、次の手順に従います。

  1. パーティションテーブルを削除します。

    # wipefs -a /dev/sdc
注記

デバイスを物理的に取り外す場合にのみ、次の手順に従います。

  • マルチパスデバイスを削除する場合は,次のコマンドを実行します。

    1. デバイスへの全パスを表示します。

      # multipath -l

      このコマンドの出力は、後のステップで必要になります。

      1. I/O をフラッシュして、マルチパスデバイスを削除します。

        # multipath -f multipath-device
  • デバイスがマルチパスデバイスとして設定されていない場合や、デバイスがマルチパスデバイスとして設定されていて、過去に I/O を個別のパスに渡している場合は、未処理の I/O を、使用されている全デバイスパスにフラッシュします。

    # blockdev --flushbufs device

    この操作は、umount コマンドまたは vgreduce コマンドで I/O がフラッシュされないデバイスに直接アクセスする場合に重要になります。

  • SCSI デバイスを取り外す場合は、以下のコマンドを実行します。

    1. システム上のアプリケーション、スクリプト、またはユーティリティーで、/dev/sd/dev/disk/by-path、または major:minor 番号など、デバイスのパスベースの名前への参照をすべて削除します。参照を削除することで、今後追加される別のデバイスが現在のデバイスと混同されないようにします。
    2. SCSI サブシステムからデバイスへの各パスを削除します。

      # echo 1 > /sys/block/device-name/device/delete

      デバイスが以前にマルチパスデバイスとして使用されていた場合、device-name は、multipath -l コマンドの出力からの内容に置き換えます。

  1. 稼働中のシステムから物理デバイスを削除します。このデバイスを削除しても、他のデバイスへの I/O は停止しないことに注意してください。

検証

  • 削除したデバイスが lsblk コマンドの出力に表示されないことを確認します。出力例を以下に示します。

    # lsblk
    
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0    5G  0 disk
    sr0     11:0    1 1024M  0 rom
    vda    252:0    0   10G  0 disk
    |-vda1 252:1    0    1M  0 part
    |-vda2 252:2    0  100M  0 part /boot/efi
    `-vda3 252:3    0  9.9G  0 part /

関連情報

  • multipath (8)pvremove (8)vgremove (8)lvremove (8)wipefs (8)parted (8)blockdev (8)、および umount (8) man ページ。