第5章 マルチパス化されたボリュームの管理
DM Multipath は、マルチパスボリュームの管理に使用できるさまざまなツールとコマンドを提供します。
5.1. multipath コマンド
multipath
コマンドは、デバイスの複数のパスを検出および結合するために使用されます。マルチパス化されたデバイスの管理に使用できるさまざまなオプションを提供します。
表5.1「便利な multipath
コマンドオプション」では、multipath
コマンドの便利なオプションの一部を説明します。
表5.1 便利な multipath
コマンドオプション
オプション | 説明 |
---|---|
|
|
|
|
| 指定したマルチパスデバイスを削除します。 |
| 不要なマルチパスデバイスをすべて削除します。 |
|
|
|
現在のマルチパスデバイスのみが含まれるように、 |
5.1.1. Multipath コマンドの出力
マルチパスデバイスの作成、修正、一覧表示を行うと、現在のデバイス設定が表示されます。形式を以下に示します。
マルチパスデバイス
action_if_any: alias (wwid_if_different_from_alias) dm_device_name_if_known vendor,product size=size features='features' hwhandler='hardware_handler' wp=write_permission_if_known
パスグループ
-+- policy='scheduling_policy' prio=prio_if_known status=path_group_status_if_known
パス
`- host:channel:id:lun devnode major:minor dm_status_if_known path_status online_status
マルチパスコマンドの出力例を以下に示します。
3600d0230000000000e13955cc3757800 dm-1 WINSYS,SF2372 size=269G features='0' hwhandler='0' wp=rw |-+- policy='round-robin 0' prio=1 status=active | `- 6:0:0:0 sdb 8:16 active ready running `-+- policy='round-robin 0' prio=1 status=enabled `- 7:0:0:0 sdf 8:80 active ready running
パスが有効になり、I/O が可能になると、パスのステータスが ready
または ghost
になります。パスが停止している場合は、ステータスが faulty
または shaky
になります。パスのステータスは、/etc/multipath.conf
ファイルに定義されているポーリング間隔に基づき、multipathd
デーモンにより定期的に更新されます。
その他の可能なパスのステータス値は以下のとおりです。
-
i/o pending
:チェッカーがアクティブにこのパスを確認し、ステータスはまもなく更新されます。 -
i/o timeout
:これはfaulty
と同じです。タイムアウトする前にチェッカーが成功または失敗のいずれかを返さなかったことをユーザーに通知します。 -
削除
:システムからパスが削除され、マルチパスデバイスからまもなく削除されます。faulty
と同様に処理されます。 -
wild
- 内部エラーまたは設定の問題によって、multipathd
はパスチェッカーを実行できませんでした。マルチパスがパス上の多くのアクションをスキップすることを除いて、faulty
とほぼ同じです。 -
unchecked
:パスが今検出された、割り当てられたパスチェッカーがない、パスチェッカーにエラーが発生したなどの理由で、このパスでパスチェッカーが実行していません。これはwild
と同じように処理されます。 -
delayed
:パスチェッカーはパスが有効であると返したにも関わらず、パスが複数回失敗し、パスを遅延するようにマルチパスが設定されているため、マルチパスがパスの復元を遅らせています。
dm のステータスはパスのステータスと似ていますが、視点はカーネルのものになります。dm のステータスが active
の場合は、パスのステータスが ready
および ghost
になります。pending
パスのステータスと同等の dm ステータスはありません。その他のパスのステータスはすべて、dm のステータスでは failed
となります。dm のステータスは、パスチェッカーが完了するまで現在のステータスを保持します。
online_status
に使用できる値は running
と offline
です。offline
は、この SCSI デバイスが無効になっていることを表します。
マルチパスデバイスを作成中または修正中の場合は、パスグループのステータス、dm のデバイス名、書き込みパーミッション、dm のステータスなどが不明です。また、機能も常に正しいとは限りません。
5.1.2. マルチパス設定の表示
multipath
コマンドで -l
オプションおよび -ll
オプションを使用すると、現在のマルチパス設定を表示できます。-l
オプションは、sysfs
の情報から収集したマルチパストポロジーと、デバイスマッパーを表示します。-ll
オプションは、-l
オプションが表示する情報のほかに、使用できる他のすべてのシステムコンポーネントを表示します。
マルチパス設定を表示するとき、multipath
コマンドの -v
オプションを使用すると詳細レベルを指定できます。-v0
を指定すると何も出力されません。-v1
を指定すると、作成または更新されたマルチパス名のみが出力され、kpartx
などの別のツールに提供できます。-v2
を指定すると、検出されたパス、マルチパス、およびデバイスマップがすべて出力されます。より詳細な情報を出力する場合は、-v3
、-v4
、または -v5
を指定することもできます。
以下は、multipath -l
コマンドの出力例になります。
# multipath -l
3600d0230000000000e13955cc3757800 dm-1 WINSYS,SF2372
size=269G features='0' hwhandler='0' wp=rw
|-- policy='round-robin 0' prio=1 status=active
| `- 6:0:0:0 sdb 8:16 active ready running
`-- policy='round-robin 0' prio=1 status=enabled
`- 7:0:0:0 sdf 8:80 active ready running
以下は、multipath -ll
コマンドの出力例になります。
# multipath -ll
3600d0230000000000e13955cc3757801 dm-10 WINSYS,SF2372
size=269G features='0' hwhandler='0' wp=rw
|-- policy='round-robin 0' prio=1 status=enabled
| `- 19:0:0:1 sdc 8:32 active ready running
`-- policy='round-robin 0' prio=1 status=enabled
`- 18:0:0:1 sdh 8:112 active ready running
3600d0230000000000e13955cc3757803 dm-2 WINSYS,SF2372
size=125G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 19:0:0:3 sde 8:64 active ready running
`- 18:0:0:3 sdj 8:144 active ready running
5.2. オンラインのマルチパスデバイスのサイズ変更
オンラインのマルチパスデバイスのサイズを変更する必要がある場合は、以下の手順に従ってください。
- 物理デバイスのサイズを変更します。
次のコマンドを実行して、LUN へのパスを検索します。
#
multipath -l
パスのサイズを変更します。SCSI デバイスの場合は、デバイスの
rescan
ファイルに 1 と書き込むと、SCSI ドライバーによる再スキャンが行われます。以下にコマンド例を示します。#
echo 1 > /sys/block/path_device/device/rescan
各パスデバイスに対してこのコマンドを実行します。たとえば、パスデバイスが
sda
、sdb
、sde
、およびsdf
の場合は、次のコマンドを実行します。#
echo 1 > /sys/block/sda/device/rescan
#echo 1 > /sys/block/sdb/device/rescan
#echo 1 > /sys/block/sde/device/rescan
#echo 1 > /sys/block/sdf/device/rescan
multipathd resize
コマンドを実行して、マルチパスデバイスのサイズを変更します。#
multipathd resize map multipath_device
ファイルシステムのサイズを変更します (LVM または DOS のパーティションが使用されていないことを前提とします)。
#
resize2fs /dev/mapper/mpatha
5.3. root ファイルシステムをシングルパスデバイスからマルチパスデバイスへ移動
シングルパスのデバイスにシステムをインストールしてから、別のパスを root ファイルシステムに追加する場合は、root ファイルシステムをマルチパスのデバイスに移行する必要があります。本セクションでは、シングルパスからマルチパスのデバイスへの移行手順を説明します。
device-mapper-multipath
パッケージがインストールされていることを確認した上で、以下の手順を実行します。
次のコマンドを実行して
/etc/multipath.conf
設定ファイルを作成し、マルチパスモジュールを読み込んでmultipathd
のchkconfig
をon
に設定します。#
mpathconf --enable
-
find_multipaths
設定パラメーターがyes
に設定されていない場合は、「DM Multipath のデバイスのブラックリスト」の説明に従って、/etc/multipath.conf
ファイルのblacklist
セクションおよびblacklist_exceptions
セクションを変更します。 検出され次第、root デバイスにマルチパスデバイスを構築させるため、次のコマンドを実行します。また、このコマンドを実行すると、パスが 1 つしかない場合でも必ず
find_multipaths
がデバイスを許可するようになります。#
multipath -a root_devname
たとえば、root デバイスが
/dev/sdb
の場合は、次のコマンドを実行します。#
multipath -a /dev/sdb
wwid '3600d02300069c9ce09d41c4ac9c53200' added設定ファイルの設定が正しく行われたことを確認するため、
multipath
コマンドを実行して、以下の形式の行の出力を見つけます。これは、コマンドがマルチパスデバイスの作成に失敗したことを示しています。date wwid: ignoring map
たとえば、デバイスの WWID が 3600d02300069c9ce09d41c4ac9c53200 の場合は、次のような行が出力に表示されます。
#
multipath
Oct 21 09:37:19 | 3600d02300069c9ce09d41c4ac9c53200: ignoring mapmultipath
でinitramfs
ファイルシステムを再構築するため、以下のオプションを使用してdracut
コマンドを実行します。#
dracut --force -H --add multipath
- マシンをシャットダウンします。
- マシンから他のパスが見えるように、FC スイッチを設定します。
- マシンを起動します。
- root ファイルシステム ('/') が、マルチパスを設定したデバイス上にあるかどうかを確認します。
5.4. swap ファイルシステムをシングルパスデバイスからマルチパスデバイスへ移動
デフォルトでは、swap デバイスは論理ボリュームとして設定されます。論理ボリュームグループを構成する物理ボリュームでマルチパスを設定している限り、このようなデバイスをマルチパスデバイスとして設定する特別な手順は必要ありません。ただし、swap デバイスが LVM ボリュームではなく、デバイス名でマウントする場合には、/etc/fstab
ファイルに、適切なマルチパスデバイス名を設定しないといけない場合があります。
-v3
オプションを指定して/sbin/multipath
コマンドを実行し、swap デバイスの WWID 番号を確認します。コマンドの出力のパス一覧に swap デバイスが表示されます。swap デバイスを示す、次のような行のコマンド出力を探します。
WWID H:B:T:L devname MAJOR:MINOR
たとえば、swap ファイルシステムを
sda
か、そのパーティションの 1 つに設定している場合は、以下のような行が表示されます。===== paths list ===== ... 1ATA WDC WD800JD-75MSA3 WD-WMAM9F 1:0:0:0 sda 8:0 ...
/etc/multipath.conf
ファイルに、swap デバイスのエイリアスを設定します。multipaths { multipath { wwid WWID_of_swap_device alias swapdev } }
/etc/fstab
ファイルで、root デバイスへの古いデバイスパスを、マルチパスデバイスに置き換えます。たとえば、
/etc/fstab
ファイルに、以下のようなエントリーがあるとします。/dev/sda2 swap swap defaults 0 0
そのエントリーを以下のように変更します。
/dev/mapper/swapdev swap swap defaults 0 0
5.5. dmsetup コマンドでデバイスマッパーエントリーの特定
dmsetup
コマンドを使用すると、マルチパスを設定したデバイスに一致するデバイスマッパーのエントリーを検索できます。
以下のコマンドでは、すべてのデバイスマッパーデバイスと、そのメジャー番号およびマイナー番号を表示します。dm デバイス名は、マイナー番号で特定できます。たとえば、マイナー番号 3 は、マルチパスを設定したデバイス /dev/dm-3
に対応します。
# dmsetup ls
mpathd (253:4)
mpathep1 (253:12)
mpathfp1 (253:11)
mpathb (253:3)
mpathgp1 (253:14)
mpathhp1 (253:13)
mpatha (253:2)
mpathh (253:9)
mpathg (253:8)
VolGroup00-LogVol01 (253:1)
mpathf (253:7)
VolGroup00-LogVol00 (253:0)
mpathe (253:6)
mpathbp1 (253:10)
mpathd (253:5)
5.6. multipathd デーモンの管理
multipathd
コマンドを使用して、multipathd
デーモンを管理できます。利用可能な multipathd
コマンドは、man ページの multipathd
(8) を参照してください。
次のコマンドは、multipathd show maps
コマンドの出力の標準デフォルト形式を示しています。
# multipathd show maps
name sysfs uuid
mpathc dm-0 360a98000324669436c2b45666c567942
一部の multipathd
コマンドには、後にワイルドカードが付いた format
オプションを含むものがあります。次のコマンドを実行すると、使用できるワイルドカードの一覧を表示できます。
# multipathd show wildcards
multipathd
コマンドは、「raw」 形式のバージョンでマルチパスデバイスとパスのステータスを表示する format コマンドに対応しています。raw 形式ではヘッダーは出力されず、フィールドがパッディングされていないため、列とヘッダーが調整されていません。代わりに、フィールドは format 文字列の指定どおりに出力します。このため、出力はスクリプトで使いやすくなります。multipathd show wildcards
コマンドを使用すると、format 文字列で使用されるワイルドカードを表示できます。
次の multipathd
コマンドは、format 文字列でマルチパスのワイルドカードを使用し、multipathd
が監視しているマルチパスデバイスを通常の raw 形式で表示します。
list|show maps|multipaths format $format list|show maps|multipaths raw format $format
以下の multipathd
コマンドは、format 文字列でマルチパスのワイルドカードを使用し、multipathd
が監視しているパスを通常の形式と raw 形式で表示します。
list|show paths format $format list|show paths raw format $format
以下のコマンドは、multipathd show maps
の出力を、raw 形式と非 raw 形式で示した場合の相違点を表示します。raw
形式ではヘッダーがなく、単一のスペースのみが列の間にあることに注意してください。
#multipathd show maps format "%n %w %d %s"
name uuid sysfs vend/prod/rev mpathc 360a98000324669436c2b45666c567942 dm-0 NETAPP,LUN #multipathd show maps raw format "%n %w %d %s"
mpathc 360a98000324669436c2b45666c567942 dm-0 NETAPP,LUN
5.7. パッケージ削除時におけるマルチパスファイルのクリーンアップ
device-mapper-multipath
rpm
. ファイルを削除しても、/etc/multipath.conf
、/etc/multipath/bindings
、および /etc/multipath/wwids
の各ファイルは削除されないことに注意してください。このファイルは、device-mapper-multipath
パッケージの後続のインストール時に手動で削除する必要があります。
このページには機械翻訳が使用されている場合があります (詳細はこちら)。