第5章 マルチパス化されたボリュームの管理

DM Multipath は、マルチパスボリュームの管理に使用できるさまざまなツールとコマンドを提供します。

5.1. multipath コマンド

multipath コマンドは、デバイスの複数のパスを検出および結合するために使用されます。マルチパス化されたデバイスの管理に使用できるさまざまなオプションを提供します。

表5.1「便利な multipath コマンドオプション」では、multipath コマンドの便利なオプションの一部を説明します。

表5.1 便利な multipath コマンドオプション

オプション説明

-l

sysfs およびデバイスマッパーから取得した現在のマルチパス設定を表示します。

-ll

sysfs およびデバイスマッパーと、システムで利用可能なその他の全コンポーネントから取得した現在のマルチパス設定を表示します。

-f device

指定したマルチパスデバイスを削除します。

-F

不要なマルチパスデバイスをすべて削除します。

-w device

wwids ファイルから指定デバイスの wwid を削除します。

-W

現在のマルチパスデバイスのみが含まれるように、wwids ファイルをリセットします。

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 と同じです。タイムアウトする前にチェッカーが成功または失敗のいずれかを返さなかったことをユーザーに通知します。
  • removed - システムからパスが削除され、マルチパスデバイスからまもなく削除されます。faulty と同様に処理されます。
  • wild - 内部エラーまたは設定の問題によって、multipathd はパスチェッカーを実行できませんでした。マルチパスがパス上の多くのアクションをスキップすることを除いて、faulty とほぼ同じです。
  • unchecked - パスが今検出された、割り当てられたパスチェッカーがない、パスチェッカーにエラーが発生したなどの理由で、このパスでパスチェッカーが実行していません。これは wild と同じように処理されます。
  • delayed - パスチェッカーはパスが有効であると返したにも関わらず、パスが複数回失敗し、パスを遅延するようにマルチパスが設定されているため、マルチパスがパスの復元を遅らせています。

dm のステータスはパスのステータスと似ていますが、視点はカーネルのものになります。dm のステータスが active の場合は、パスのステータスが ready および ghost になります。pending パスのステータスと同等の dm ステータスはありません。その他のパスのステータスはすべて、dm のステータスでは failed となります。dm のステータスは、パスチェッカーが完了するまで現在のステータスを保持します。

online_status に使用できる値は runningoffline です。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. オンラインのマルチパスデバイスのサイズ変更

オンラインのマルチパスデバイスのサイズを変更する必要がある場合は、以下の手順に従ってください。

  1. 物理デバイスのサイズを変更します。
  2. 次のコマンドを実行して、LUN へのパスを検索します。

    # multipath -l
  3. パスのサイズを変更します。SCSI デバイスの場合は、デバイスの rescan ファイルに 1 と書き込むと、SCSI ドライバーによる再スキャンが行われます。以下にコマンド例を示します。

    # echo 1 > /sys/block/path_device/device/rescan

    各パスデバイスに対してこのコマンドを実行します。たとえば、パスデバイスが sdasdbsde、および 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
  4. multipathd resize コマンドを実行して、マルチパスデバイスのサイズを変更します。

    # multipathd resize map multipath_device
  5. ファイルシステムのサイズを変更します (LVM または DOS のパーティションが使用されていないことを前提とします)。

    # resize2fs /dev/mapper/mpatha

5.3. root ファイルシステムをシングルパスデバイスからマルチパスデバイスへ移動

シングルパスのデバイスにシステムをインストールしてから、別のパスを root ファイルシステムに追加する場合は、root ファイルシステムをマルチパスのデバイスに移行する必要があります。本セクションでは、シングルパスからマルチパスのデバイスへの移行手順を説明します。

device-mapper-multipath パッケージがインストールされていることを確認した上で、以下の手順を実行します。

  1. 次のコマンドを実行して /etc/multipath.conf 設定ファイルを作成し、マルチパスモジュールを読み込んで multipathdchkconfigon に設定します。

    # mpathconf --enable
  2. find_multipaths 設定パラメーターが yes に設定されていない場合は、「DM Multipath のデバイスのブラックリスト」の説明に従って、/etc/multipath.conf ファイルの blacklist セクションおよび blacklist_exceptions セクションを変更します。
  3. 検出され次第、root デバイスにマルチパスデバイスを構築させるため、次のコマンドを実行します。また、このコマンドを実行すると、パスが 1 つしかない場合でも必ず find_multipaths がデバイスを許可するようになります。

    # multipath -a root_devname

    たとえば、root デバイスが /dev/sdb の場合は、次のコマンドを実行します。

    # multipath -a /dev/sdb
    wwid '3600d02300069c9ce09d41c4ac9c53200' added
  4. 設定ファイルの設定が正しく行われたことを確認するため、multipath コマンドを実行して、以下の形式の行の出力を見つけます。これは、コマンドがマルチパスデバイスの作成に失敗したことを示しています。

    date  wwid: ignoring map

    たとえば、デバイスの WWID が 3600d02300069c9ce09d41c4ac9c53200 の場合は、次のような行が出力に表示されます。

    # multipath
    Oct 21 09:37:19 | 3600d02300069c9ce09d41c4ac9c53200: ignoring map
  5. multipathinitramfs ファイルシステムを再構築するため、以下のオプションを使用して dracut コマンドを実行します。

    # dracut --force -H --add multipath
  6. マシンをシャットダウンします。
  7. マシンから他のパスが見えるように、FC スイッチを設定します。
  8. マシンを起動します。
  9. root ファイルシステム ('/') が、マルチパスを設定したデバイス上にあるかどうかを確認します。

5.4. swap ファイルシステムをシングルパスデバイスからマルチパスデバイスへ移動

デフォルトでは、swap デバイスは論理ボリュームとして設定されます。論理ボリュームグループを構成する物理ボリュームでマルチパスを設定している限り、このようなデバイスをマルチパスデバイスとして設定する特別な手順は必要ありません。ただし、swap デバイスが LVM ボリュームではなく、デバイス名でマウントする場合には、/etc/fstab ファイルに、適切なマルチパスデバイス名を設定しないといけない場合があります。

  1. -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
    ...
  2. /etc/multipath.conf ファイルに、swap デバイスのエイリアスを設定します。

    multipaths {
        multipath {
            wwid WWID_of_swap_device
            alias swapdev
        }
    }
  3. /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 パッケージの後続のインストール時に手動で削除する必要があります。


このページには機械翻訳が使用されている場合があります (詳細はこちら)。