Menu Close

Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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

ストレージデバイス自体へのアクセスを削除する前に、デバイスからのデータのバックアップを作成することが推奨されます。その後、I/O をフラッシュして、デバイスへのオペレーティングシステムの参照をすべて削除します (以下で説明します)。デバイスがマルチパスを使用している場合は、マルチパスの "pseudo device" (「World Wide Identifier (WWID)」) と、デバイスへのパスを表す識別子のそれぞれに対してこれを実行します。マルチパスデバイスへのパスのみを削除し、それ以外のパスが残る場合は、「ストレージデバイスまたはパスの追加」 で説明されているように、手順が簡単になります。
I/O フラッシュは負荷に追加されるため、システムがメモリー圧力下にある場合は、ストレージデバイスを取り外すことは推奨されません。メモリーへの負荷を確認するには、vmstat 1 100 コマンドを実行します。以下の場合はデバイスを取り外すことが推奨されません。
  • 空きメモリーは、100 あたり 10 を超えるサンプルで、合計メモリーの 5% 未満 (コマンド free を使用して、合計メモリーを表示することもできます)。
  • スワップが有効になっている (vmstat 出力の si 列および so 列がゼロ以外の場合)。
デバイスへのアクセスをすべて削除する一般的な手順は、以下のとおりです。

手順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-name は、たとえば sde などになります。
    この操作の別のバリエーションは 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 は非推奨となりました。
lsscsiscsi_idmultipath -l、および ls -l /dev/disk/by-* などのさまざまなコマンドから、デバイスの device-name、HBA 番号、HBA チャンネル、SCSI ターゲット ID、および LUN を決定できます。
手順25.11「デバイスの完全削除」 を実行したら、実行中のシステムからデバイスを物理的に削除できます。その際に、他のデバイスへの I/O を停止する必要はありません。
変更を反映するようにオペレーティングシステムの状態を更新する他の手順 (「ストレージの相互接続のスキャン」 に説明されているようなデバイスの物理的な取り外しとそれに続く SCSI バスの再スキャンなど) はお勧めしません。これにより、I/O タイムアウトによる遅延が発生し、デバイスが予想外に削除される可能性があります。相互接続の再スキャンを実行する必要がある場合は、「ストレージの相互接続のスキャン」 の説明に従って、I/O を一時停止しているときに再スキャンを実行する必要があります。