25.17. オンライン論理ユニットのサイズの変更
ほとんどの場合、オンライン論理ユニットの完全なサイズ変更には、論理ユニット自体のサイズ変更と、対応するマルチパスデバイスのサイズ変更の反映 (システムでマルチパスが有効になっている場合) の 2 つの作業が含まれます。
オンラインの論理ユニットのサイズを変更するには、まずストレージデバイスのアレイ管理インターフェイスを使用して、論理ユニットのサイズを変更します。この手順はアレイごとに異なります。そのため、詳細については、ストレージアレイベンダーのドキュメントを参照してください。
注記
オンラインのファイルシステムのサイズを変更するには、ファイルシステムがパーティションを設定したデバイスに存在してはいけません。
25.17.1. ファイバーチャネル論理ユニットのサイズ変更
オンラインの論理ユニットサイズを変更したら、論理ユニットを再スキャンして、システムが更新したサイズを検出したことを確認します。ファイバーチャネル論理ユニットにこれを行うには、以下のコマンドを使用します。
$ echo 1 > /sys/block/sdX/device/rescan
重要
マルチパスを使用するシステムでファイバーチャネル論理ユニットを再スキャンするには、マルチパスを設定した論理ユニットのパスを表す sd デバイス( sd1、sd2 など)ごとに、上記のコマンドを実行します。マルチパス論理ユニットのパスであるデバイスを特定するには、multipath -ll を使用します。次に、サイズ変更している論理ユニットに一致するエントリーを見つけます。サイズ変更される論理ユニットに一致するものを見つけやすくするために、各エントリーの WWID を参照することを推奨します。
25.17.2. iSCSI 論理ユニットのサイズを変更
オンラインの論理ユニットサイズを変更したら、論理ユニットを再スキャンして、システムが更新したサイズを検出したことを確認します。iSCSI デバイスに対してこれを行うには、以下のコマンドを使用します。
# iscsiadm -m node --targetname target_name -R [5]
target_name を、デバイスが置かれているターゲットの名前に置き換えます。
注記
次のコマンドを使用して、iSCSI 論理ユニットを再スキャンすることもできます。
# iscsiadm -m node -R -I interface
interface を、サイズ変更された論理ユニットの対応するインターフェイス名に置き換えます(例: iface0)。このコマンドは、2 つの操作を実行します。
- echo "- - -" > /sys/class/scsi_host/ host / scan コマンドと同じ方法で新しいデバイスをスキャンします( 「iSCSI 相互接続のスキャン」を参照)。
- echo 1 > /sys/block/sdX/device/rescan コマンドと同じ方法で、新規/ 変更された論理ユニットを再スキャンします。このコマンドは、ファイバーチャネルの論理ユニットを再スキャンする際に使用するコマンドと同じであることに注意してください。
25.17.3. マルチパスデバイスのサイズの更新
システムでマルチパスが有効になっている場合は、論理ユニットのサイズ変更を、(論理ユニットのサイズを変更した後 に ) 対応する論理ユニットのマルチパスデバイスに反映させる必要があります。これは、multipathd を介して実行できます。これを行うには、まず service multipathd status を使用して multipathd が実行していることを確認します。multipathd が機能していることを確認したら、次のコマンドを実行します。
# multipathd -k"resize map multipath_device"
multipath_device 変数は、
/dev/mapper
内のデバイスの対応するマルチパスエントリーです。システムでマルチパスの設定方法に応じて、multipath_device は 2 つの形式のいずれかになります。
- X: X はデバイスの対応するエントリーです(例: mpath0)。
- a WWID; for example, 3600508b400105e210000900000490000
サイズを変更した論理ユニットに対応するマルチパスエントリーを特定するには、multipath -ll を実行します。これにより、システムに存在するすべてのマルチパスエントリーと、対応するデバイスのメジャー番号およびマイナー番号のリストが表示されます。
重要な影響
multipath_device にキューに入れられたコマンドがある場合は、multipathd -k"resize map multipath_device " を使用しないでください。つまり、(
/etc/multipath.conf
で) no_path_retry パラメーターが "queue" に設定され、デバイスへのアクティブなパスがない場合は、このコマンドを使用しないでください。
マルチパスの詳細は、Red Hat Enterprise Linux 7 DM Multipathガイドを参照してください。
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 の状態の変更
- デバイスを RO から R/W に移動するには、手順 2 を参照してください。デバイスを R/W から RO に移動するには、それ以上の書き込みが発行されないようにします。これを行うには、アプリケーションを停止するか、適切なアプリケーション固有のアクションを実行します。次のコマンドを使用して、すべての未処理の書き込み I/O が完了していることを確認します。
# blockdev --flushbufs /dev/device
device を目的のデザイン者に置き換えます。デバイスマッパーマルチパスの場合、これはdev/mapper
のデバイスのエントリーになります。たとえば、/dev/mapper/mpath3
です。 - ストレージデバイスの管理インターフェイスを使用して、論理ユニットの状態を R/W から RO に、または RO から R/W に変更します。この手順は、アレイごとに異なります。詳細は、該当するストレージアレイベンダーのドキュメントを参照してください。
- デバイスの 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
25.17.4.2. マルチパスデバイスの R/W 状態の更新
マルチパスが有効になっている場合、論理ユニットを再スキャンした後、その状態の変更を論理ユニットの対応するマルチパスドライブに反映する必要があります。これを行うには、以下のコマンドでマルチパスデバイスマップを再読み込みします。
# multipath -r
その後 、multipath -11 コマンドを使用して変更を確認できます。
25.17.4.3. Documentation
詳細は、Red Hat ナレッジベースを参照してください。これにアクセスするには、https://www.redhat.com/wapps/sso/login.html?redirect=https://access.redhat.com/knowledge/ に移動してログインします。その後、https://access.redhat.com/kb/docs/DOC-32850 の記事を参照してください。