25.9. ストレージデバイスの削除

ストレージデバイス自体へのアクセスを削除する前に、デバイスのデータのバックアップを取ることをお勧めします。次に、I/O をフラッシュしてオペレーティングシステムのデバイスへのすべての参照を削除します (以下を参照)。デバイスでマルチパス機能を使用している場合は、マルチパスの「擬似デバイス」 (「World Wide Identifier (WWID)」) とそのデバイスへのパスを表す各識別子に対してこれを行います。マルチパスデバイスへの 1 つのパスだけを削除してその他のパスをそのまま残しておく場合は 「ストレージデバイスまたはパスの追加」 に記載されているように、手順はより単純になります。
システムのメモリーが不足している際に I/O をフラッシュするとさらに負荷がかかるため、メモリーが不足している状態でのストレージデバイスの削除は推奨しません。メモリーレベルを判別するには、vmstat 1 100 コマンドを実行します。以下の場合にはデバイスの削除は推奨されません。
  • 100 中 10 を超えるサンプルで空きメモリーがメモリー合計の 5% を下回っている場合 (free を使用してメモリー合計を表示することもできます)
  • swap 機能がアクティブになっている場合 (vmstat 出力で siso の欄がゼロ以外の値になっている場合はアクティブです)
デバイスへのすべてのアクセスを削除する一般的な手順は以下になります。

手順25.11 デバイスの完全削除

  1. デバイスのユーザーをすべて終了させ、必要に応じてデータのバックアップを取ります。
  2. umount を使ってデバイスにマウントしているファイルシステムをすべてアンマウントします。
  3. デバイスを使用している md および LVM ボリュームからそのデバイスを削除します。デバイスが LVM ボリュームグループのメンバーである場合、pvmove コマンドを使ってデータをデバイスから移動させる必要がある場合があります。次に vgreduce コマンドを使って物理ボリュームを削除し、(オプションで) pvremove コマンドを使ってディスクから LVM のメタデータを削除します。
  4. multipath -l コマンドを実行して、multipath デバイスとして設定されたデバイスのリストを見つけます。デバイスがマルチパスデバイスとして設定されている場合は、multipath -f device コマンドを実行して、未処理の I/O をフラッシュし、マルチパスデバイスを削除します。
  5. 使用したパスに未処理の I/O をフラッシュします。これは、I/O のフラッシュを行うための umount または vgreduce 操作のない raw デバイスに重要です。これは、以下の条件の際に行う必要があります。
    • デバイスがマルチパスデバイスとして設定されていない場合や、
    • デバイスがマルチパスデバイスとして設定され、I/O が過去において個別のパスに直接発行されている場合。
    以下のコマンドを使用して、未処理の I/O をフラッシュします。
    # blockdev --flushbufs device
  6. /dev/sd/dev/disk/by-path、または major:minor 番号など、システム上のアプリケーション、スクリプトおよびユーティリティーのデバイスのパスに基づく名前への参照をすべて削除します。これは将来別のデバイスを追加する場合に、それらのデバイスが現在のデバイスと間違われないようにするのに重要です。
  7. 最後に SCSI サブシステムからデバイスへの各パスを削除します。これを実行するには、echo 1 > /sys/block/device-name/device/delete コマンドを使用します。ここで device-namesde などになります。
    echo 1 > /sys/class/scsi_device/h:c:t:l/device/delete は上記の変形です。h は HBA 番号、c は HBA 上のチャネル、t は SCSI のターゲット ID、l は LUN になります。

    注記

    これらのコマンドの古い形式である echo "scsi remove-single-device 0 0 0 0" > /proc/scsi/scsi は廃止予定になっています。
デバイスの device-name、HBA 番号、HBA チャネル、SCSI のターゲット ID、LUN などは、lsscsiscsi_idmultipath -lls -l /dev/disk/by-* など各種のコマンドで確認することができます。
手順25.11「デバイスの完全削除」 の実行後は、実行中のシステムからデバイスを物理的にかつ安全に取り除くことができるようになります。実行中に他のデバイスに対する I/O を停止する必要はありません。
物理的なデバイスの除去とその後に SCSI バスの再スキャン (「ストレージの相互接続のスキャン」) を実行して物理的なオペレーティングシステムの状態を更新し、変更を反映するなどの他の手順は推奨されません。これにより、I/O タイムアウトによる遅延が生じ、デバイスが予期せず削除される可能性があります。相互接続の再スキャンを行う必要がある場合には I/O を一時停止してから行ってください (「ストレージの相互接続のスキャン」 を参照)。