25.9. ストレージデバイスの削除
ストレージデバイス自体へのアクセスを削除する前に、デバイスからのデータのバックアップを作成することが推奨されます。その後、I/O をフラッシュして、デバイスへのオペレーティングシステムの参照をすべて削除します (以下で説明します)。デバイスがマルチパスを使用している場合は、マルチパスの "pseudo device" (「World Wide Identifier (WWID)」) と、デバイスへのパスを表す識別子のそれぞれに対してこれを実行します。マルチパスデバイスへのパスのみを削除し、それ以外のパスが残る場合は、「ストレージデバイスまたはパスの追加」 で説明されているように、手順が簡単になります。
I/O フラッシュは負荷に追加されるため、システムがメモリー圧力下にある場合は、ストレージデバイスを取り外すことは推奨されません。メモリー不足のレベルを確認するには、vmstat 1 100 コマンドを実行します。以下の場合はデバイスの削除は推奨されません。
- 空きメモリーは、100 あたり 10 を超えるサンプルで、合計メモリーの 5% 未満です(コマンド free を使用して合計メモリーを表示することもできます)。
- スワッピングが有効である( vmstat 出力の
si
列およびso
列がゼロ以外の)。
デバイスへのアクセスをすべて削除する一般的な手順は、以下のとおりです。
手順25.11 デバイスの完全削除
- 必要に応じて、デバイスのすべてのユーザーとデバイスデータのバックアップを閉じます。
- umount を使用して、デバイスをマウントしたファイルシステムをアンマウントします。
- デバイスを使用して、md ボリュームおよび LVM ボリュームからデバイスを削除します。デバイスが LVM ボリュームグループのメンバーである場合は、pvmove コマンドを使用してデバイスからデータを移動し、vgreduce コマンドを使用して物理ボリュームを削除し、(必要に応じて) pvremove を使用してディスクから LVM メタデータを削除する必要がある場合があります。
- multipath -l コマンドを実行して、マルチパス デバイスとして設定されているデバイスの一覧を表示します。デバイスがマルチパスデバイスとして設定されている場合は、multipath -f device コマンドを実行して未処理の I/O をフラッシュし、マルチパスデバイスを削除します。
- 使用されているパスに、未処理の I/O をフラッシュします。これは、I/O フラッシュを引き起こす umount または vgreduce 操作がない raw デバイスにとって重要です。この手順は、次の場合にのみ行う必要があります。
- デバイスがマルチパスデバイスとして設定されていない場合。または、
- デバイスはマルチパスデバイスとして設定され、I/O は過去のある時点で個々のパスに直接発行されている場合。
未処理の I/O をフラッシュするには、次のコマンドを使用します。#
blockdev --flushbufs device - システム上のアプリケーション、スクリプト、またはユーティリティーで、
/dev/sd
、/dev/disk/by-path
、または major:minor 番号など、デバイスのパスベースの名前への参照をすべて削除します。これは、将来追加される別のデバイスが、現在のデバイスと誤認されないようにするために重要です。 - 最後に、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 が非推奨になりました。
lsscsi、scsi_id、multipath -l、ls -l /dev/disk/by-* などのさまざまなコマンドから、デバイスの device-name、HBA 番号、HBA チャンネル、SCSI ターゲット ID、および LUN を決定できます。
手順25.11「デバイスの完全削除」 を実行したら、実行中のシステムからデバイスを物理的に削除できます。その際に、他のデバイスへの I/O を停止する必要はありません。
変更を反映するようにオペレーティングシステムの状態を更新する他の手順 (「ストレージの相互接続のスキャン」 に説明されているようなデバイスの物理的な取り外しとそれに続く SCSI バスの再スキャンなど) は推奨しません。これにより、I/O タイムアウトによる遅延が発生し、デバイスが予想外に削除される可能性があります。相互接続の再スキャンを実行する必要がある場合は、「ストレージの相互接続のスキャン」 の説明に従って、I/O を一時停止しているときに再スキャンを実行する必要があります。