Red Hat Training

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

25.17.4. オンライン論理ユニットの読み取り/書き込み状態の変更

特定のストレージデバイスでは、デバイスの状態を読み取り/書き込み (R/W) から読み取り専用 (RO) に変更したり、RO から R/W に変更したりする機能をユーザーに提供します。通常、これはストレージデバイスの管理インターフェイスを介して行われます。変更が加えられた場合、オペレーティングシステムはデバイスの状態に関するビューを自動的に更新しません。本章で説明されている手順に従って、オペレーティングシステムに変更を認識させます。
次のコマンドを実行し、XYZ を目的のデバイス指定子に置き換えて、オペレーティングシステムが現在表示しているデバイスの R/W 状態を確認します。
# blockdev --getro /dev/sdXYZ
以下のコマンドは、Red Hat Enterprise Linux 7 でも使用できます。
# cat /sys/block/sdXYZ/ro 1 = read-only 0 = read-write
マルチパスを使用する場合は、multipath -ll コマンドの出力の 2 行目の ro または rw フィールドを参照してください。以下に例を示します。
36001438005deb4710000500000640000 dm-8 GZ,GZ500
[size=20G][features=0][hwhandler=0][ro]
\_ round-robin 0 [prio=200][active]
 \_ 6:0:4:1  sdax 67:16  [active][ready]
 \_ 6:0:5:1  sday 67:32  [active][ready]
\_ round-robin 0 [prio=40][enabled]
 \_ 6:0:6:1  sdaz 67:48  [active][ready]
 \_ 6:0:7:1  sdba 67:64  [active][ready]
R/W の状態を変更するには、以下の手順に従います。

手順25.14 R/W の状態の変更

  1. デバイスを RO から R/W に移動するには、手順 2 を参照してください。
    デバイスを R/W から RO に移動するには、それ以上の書き込みが発行されないようにします。これを行うには、アプリケーションを停止するか、適切なアプリケーション固有のアクションを実行します。
    次のコマンドを使用して、すべての未処理の書き込み I/O が完了していることを確認します。
    # blockdev --flushbufs /dev/device
    device を希望のデザインレーターに置き換えます。デバイスマッパーマルチパスの場合、これは dev/mapper のデバイスのエントリーです。たとえば、/dev/mapper/mpath3 です。
  2. ストレージデバイスの管理インターフェイスを使用して、論理ユニットの状態を R/W から RO に、または RO から R/W に変更します。この手順は、アレイごとに異なります。詳細は、該当するストレージアレイベンダーのドキュメントを参照してください。
  3. デバイスの R/W 状態に関するオペレーティングシステムのビューを更新するには、デバイスの再スキャンを実行します。デバイスマッパーマルチパスを使用している場合は、デバイスへのパスごとにこの再スキャンを実行してから、マルチパスにデバイスマップをリロードするように指示するコマンドを発行します。
    この手順は、「論理ユニットの再スキャン」 で詳細に説明されています。

25.17.4.1. 論理ユニットの再スキャン

「オンライン論理ユニットの読み取り/書き込み状態の変更」 の説明に従って、オンライン論理ユニットの読み取り/書き込み状態を変更したら、論理ユニットを再スキャンして、システムが以下のコマンドで更新した状態を検出します。
# echo 1 > /sys/block/sdX/device/rescan
マルチパスを使用するシステムで論理ユニットを再スキャンするには、マルチパスを設定した論理ユニットのパスを表す sd デバイスごとに、上記のコマンドを実行します。たとえば、sd1、sd2、およびその他のすべての sd デバイスでコマンドを実行します。マルチパスユニットのパスとなるデバイスを特定するには、multipath -11 を使用して、変更する論理ユニットに一致するエントリーを見つけます。

例25.15 multipath -11 コマンドの使用

たとえば、上記のmultipath -11は、WWID 36001438005deb4710000500000640000 の LUN のパスを示しています。この場合は、以下のコマンドを実行します。
# echo 1 > /sys/block/sdax/device/rescan
# echo 1 > /sys/block/sday/device/rescan
# echo 1 > /sys/block/sdaz/device/rescan
# echo 1 > /sys/block/sdba/device/rescan