Device Mapper Multipath の設定
Device Mapper Multipath 機能の設定および管理
概要
Red Hat ドキュメントへのフィードバック (英語のみ)
Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。
Jira からのフィードバック送信 (アカウントが必要)
- Jira の Web サイトにログインします。
- 上部のナビゲーションバーで Create をクリックします。
- Summary フィールドにわかりやすいタイトルを入力します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- ダイアログの下部にある Create をクリックします。
第1章 デバイスマッパーマルチパスの概要
DM Multipath は以下を提供します。
- 冗長性
- DM Multipath は、アクティブ/パッシブ設定でフェイルオーバーを提供できます。アクティブ/パッシブ設定では、常にパスのサブセットのみが I/O に使用されます。ケーブル、スイッチ、コントローラーなどの I/O パスの要素に障害が発生した場合、DM Multipath は代替パスに切り替わります。
パスの数はセットアップによって異なります。通常、DM Multipath 設定にはストレージへのパスが 2、4、または 8 個ありますが、これは一般的な設定であり、他の数となる可能性もあります。
- パフォーマンスの向上
- DM Multipath は、アクティブ/アクティブモードで設定できます。このモードでは、I/O はラウンドロビン方式でパスに分散されます。一部の設定では、DM Multipath は I/O パスの負荷を検出し、負荷を動的に再調整できます。
1.1. 1 つの RAID デバイスを使用したアクティブ/パッシブのマルチパス設定
この設定では、サーバー上に 2 つのホストバスアダプター (HBA)、2 つの SAN スイッチ、および 2 つの RAID コントローラーがあります。この設定では、次のような障害が発生する可能性があります。
- HBA の障害
- ファイバーチャネルケーブルの障害
- SAN スイッチの障害
- アレイコントローラーポートの障害
DM Multipath が設定されると、上記のポイントのいずれかで障害が発生すると、DM Multipath は別の I/O パスに切り替わります。以下の図は、サーバーから RAID デバイスへの 2 つの I/O パスを使用した設定を説明します。ここでは、hba1
、SAN1
、および cntrlr1
を通る 1 つの I/O パスと、hba2
、SAN2
、および cntrlr2
を通る別の I/O パスがあります。
図1.1 1 つの RAID デバイスを使用したアクティブ/パッシブのマルチパス設定

1.2. 2 つの RAID デバイスを使用したアクティブ/パッシブのマルチパス設定
この設定では、サーバー上に 2 つの HBA、2 つの SAN スイッチ、およびそれぞれ 2 つの RAID コントローラーを備えた 2 つの RAID デバイスがあります。DM Multipath が設定されている場合には、どちらかの RAID デバイスへの I/O パスのどこかのポイントで障害が発生すると、DM Multipath はそのデバイスの別 I/O パスに切り替わります。以下の図は、各 RAID デバイスへの 2 つの I/O パスを使用した設定を説明します。ここでは、各 RAID デバイスへの 2 つの I/O パスがあります。
図1.2 2 つの RAID デバイスを使用したアクティブ/パッシブのマルチパス設定

1.3. 1 つの RAID デバイスを使用したアクティブ/アクティブのマルチパス設定
この設定では、サーバー上に HBA、2 つの SAN スイッチ、および 2 つの RAID コントローラーがあります。以下の図は、サーバーからストレージデバイスへの 2 つの I/O パスを使用した設定を説明します。ここで、I/O は、これら 2 つのパスに分散できます。
図1.3 1 つの RAID デバイスを使用したアクティブ/アクティブのマルチパス設定

1.4. DM Multipath コンポーネント
以下の表は、DM Multipath コンポーネントを示しています。
コンポーネント | 説明 |
| I/O を再ルーティングし、パスとパスグループのフェイルオーバーに対応します。 |
| デバイスマッパーマルチパスを設定して有効にします。 |
|
マルチパスデバイスをリスト表示して設定します。これは、ブロックデバイスが追加されるたびに |
|
マルチパスデバイスを自動的に作成および削除し、パスを監視します。パスが失敗して戻ってくると、マルチパスデバイスが更新される場合があります。マルチパスデバイスへのインタラクティブな変更を許可します。 |
|
デバイス上のパーティションのデバイスマッパーデバイスを作成します。このコマンドは、マルチパスデバイスが作成され、その上にパーティションデバイスが作成されると、 |
|
マルチパスデバイスに |
1.5. マルチパストポロジーの表示
パスを効果的に監視したり、マルチパスの問題をトラブルシューティングしたり、マルチパス設定が正しく設定されているかどうかを確認したりするために、マルチパストポロジーを表示できます。
手順
マルチパスデバイストポロジーを表示します。
multipath -ll
# multipath -ll mpatha (3600d0230000000000e13954ed5f89300) dm-4 WINSYS,SF2372 size=233G features='1 queue_if_no_path' hwhandler='0' wp=rw `-+- policy='service-time 0' prio=1 status=active `- 6:0:0:0 sdf 8:80 active ready running
Copy to Clipboard Copied! 出力は 3 つの部分に分けることができます。各部分には、次のグループの情報が表示されます。
マルチパスデバイス情報:
-
mpatha (3600d0230000000000e13954ed5f89300)
: エイリアス (エイリアスと異なる場合は wwid) -
dm-4
: dm デバイス名 -
WINSYS,SF2372
: ベンダー、製品 -
size=233G
: サイズ -
features='1 queue_if_no_path'
: 機能 -
hwhandler='0'
: ハードウェアハンドラー -
wp=rw
: 書き込み権限
-
パスグループ情報:
-
policy='service-time 0'
: スケジュールポリシー -
prio=1
: パスグループの優先度 -
status=active
: パスグループステータス
-
パス情報:
-
6:0:0:0
: ホスト:チャネル:id:lun -
sdf
: devnode -
8:80
: メジャー:マイナー番号 -
active
: dm ステータス -
ready
: パスステータス running
: オンライン状態dm、パス、オンラインのステータスの詳細は、パスステータス を参照してください。
-
マルチパスデバイスのリスト表示、作成、またはリロードに使用される他のマルチパスコマンドでも、デバイストポロジーは表示されます。ただし、一部の情報が不明で、出力に undef
と表示される場合があります。これは通常の動作です。正しい状態を表示するには、multipath -ll
コマンドを使用します。
マルチパスデバイスの作成など、特定の場合には、マルチパストポロジーに、アクションが実行されたかどうかを示すパラメーターが表示されます。たとえば、次のコマンド出力は、マルチパスデバイスが作成されたことを表す create:
パラメーターを示しています。
create: mpatha (3600d0230000000000e13954ed5f89300) undef WINSYS,SF2372 size=233G features='1 queue_if_no_path' hwhandler='0' wp=undef `-+- policy='service-time 0' prio=1 status=undef `- 6:0:0:0 sdf 8:80 undef ready running
create: mpatha (3600d0230000000000e13954ed5f89300) undef WINSYS,SF2372
size=233G features='1 queue_if_no_path' hwhandler='0' wp=undef
`-+- policy='service-time 0' prio=1 status=undef
`- 6:0:0:0 sdf 8:80 undef ready running
1.6. パスステータス
パスの状態は、/etc/multipath.conf
ファイルに定義されているポーリング間隔に応じ、multipathd
デーモンによって定期的に更新されます。カーネルの観点から見ると、dm
ステータスはパスステータスと似ています。dm
ステータスは、パスチェッカーが完了するまで現在のステータスを保持します。
- パスステータス
- ready、ghost
- パスが有効であり、I/O の準備ができています。
- faulty、shaky
- パスが無効です。
- i/o pending
- チェッカーがアクティブにこのパスを確認し、ステータスはまもなく更新されます。
- i/o timeout
-
チェッカーがタイムアウト期間経過前に
success
/failure
を返しませんでした。これはfaulty
と同じように処理されます。 - removed
-
システムからパスが削除され、マルチパスデバイスからまもなく削除されます。これは
faulty
と同じように処理されます。 - wild
-
内部エラーまたは設定の問題によって、
multipathd
がパスチェッカーを実行できませんでした。これは、マルチパスがパス上の多くのアクションをスキップすることを除いて、faulty
と同じように処理されます。 - unchecked
-
パスが今検出された、割り当てられたパスチェッカーがない、パスチェッカーにエラーが発生したなどの理由で、このパスでパスチェッカーが実行していません。これは
wild
と同じように処理されます。 - delayed
-
パスチェッカーはパスが有効であると返しますが、マルチパスがパスの回復を遅らせています。このパスで最近、複数回障害が発生しており、パスを遅延するようにマルチパスが設定されているためです。これは
faulty
と同じように処理されます。
- dm ステータス
- Active
-
ready
およびghost
のパスステータスにマップされます。 - Failed
-
同等の
dm
状態を持たないi/o pending
を除く、他のすべてのパスステータスにマップされます。
- オンラインステータス
- Running
- デバイスが有効です。
- オフライン
- デバイスが無効です。
第2章 マルチパスデバイス
DM Multipath は、基礎となるデバイスの上に 1 つのマルチパスデバイスを作成することにより、I/O パスを論理的に整理する方法を提供します。DM Multipath を使用しない場合は、I/O パスが同じサーバーノードを同じストレージコントローラーに接続している場合でも、システムはサーバーノードからストレージコントローラーへの各パスを個別のデバイスとして扱います。
2.1. マルチパスデバイス識別子
新しいデバイスが DM Multipath の制御下にある場合に、これらのデバイスは /dev/mapper/
ディレクトリーおよび /dev/
ディレクトリーに作成されます。
/dev/dm-X
という形式のデバイスは内部使用専用であるため、管理者が直接使用するものではありません。
以下は、マルチパスデバイス名を説明しています。
-
user_friendly_names
設定オプションがno
に設定されている場合は、マルチパスデバイスの名前が World Wide Identifier (WWID) に設定されます。デフォルトでは、マルチパスデバイスの名前はその WWID に設定されます。デバイス名は/dev/mapper/WWID
になります。また、/dev/dm-X
という名前の/dev/
ディレクトリーにも作成されます。 -
または、
/etc/multipath.conf
ファイルで、user_friendly_names
オプションをyes
に設定できます。これにより、multipath
セクションのalias
が、mpathN
形式のノード固有の名前に設定されます。デバイス名は、/dev/mapper/mpathN
および/dev/dm-X
になります。ただし、マルチパスデバイスを使用するすべてのノードでデバイス名が同じであるとは限りません。同様に、/etc/multipath.conf
ファイルでalias
オプションを設定した場合は、クラスター内のすべてのノードで自動的に名前が一致しません。
LVM を使用してマルチパスデバイスから論理デバイスを作成する場合は、これにより問題が発生することはありません。すべてのノードでマルチパスデバイス名の一貫性を保つには、user_friendly_names
オプションを無効にします。
たとえば、ゾーンに分けられていない 1 つの FC スイッチにより、2 つのポートを持つストレージコントローラーに接続された 2 つの HBA を持つノードは、/dev/sda
、/dev/sdb
、/dev/sdc
、および /dev/sdd
の 4 つのデバイスを認識します。DM Multipath は、マルチパス設定に従って、I/O を基本となるこれらの 4 つのデバイスにルーティングしなおす一意の WWID を持つシングルデバイスを作成します。
user_friendly_names
オプションおよび alias
オプションの他に、マルチパスデバイスには他の属性もあります。/etc/multipath.conf
ファイルの multipaths
セクションに、デバイスのエントリーを作成することにより、特定のマルチパスデバイスのこれらの属性を変更できます。
2.2. 論理ボリューム内のマルチパスデバイス
マルチパスデバイスを作成したら、論理ボリュームマネージャー (LVM) 物理ボリュームを作成する際に物理デバイス名を使用するのと同様に、マルチパスデバイス名を使用できます。たとえば、/dev/mapper/mpatha
がマルチパスデバイスの名前である場合、pvcreate /dev/mapper/mpatha
コマンドは、/dev/mapper/mpatha
を物理ボリュームとしてマークします。
他の LVM 物理デバイスを使用するのと同じように、LVM ボリュームグループを作成するときに、作成された LVM 物理デバイスを使用できます。
/etc/lvm/lvm.conf
ファイル内のすべての sd
デバイスをフィルタリングするには、そのファイルの devices
セクションに filter = [ "r/block/", "r/disk/", "r/sd./", "a/./" ]
を追加します。
パーティションを設定したデバイス全体に LVM 物理ボリュームを作成しようとすると、pvcreate
コマンドは失敗します。Anaconda および Kickstart のインストールプログラムは、すべてのブロックデバイスに特に指定しない限り、空のパーティションテーブルを作成します。パーティションを作成する代わりにデバイス全体を使用する場合は、デバイスから既存のパーティションを削除します。kpartx -d
デバイスコマンドと fdisk
ユーティリティーを使用して、既存のパーティションを削除できます。システムに 2Tb を超えるブロックデバイスがある場合は、parted
ユーティリティーを使用してパーティションを削除します。
active/passive
マルチパスアレイを基礎となる物理デバイスとして使用する LVM 論理ボリュームを作成する場合は、必要に応じて、/etc/lvm/lvm.conf
ファイルにフィルターを追加して、マルチパスデバイスの基礎となるディスクを除外できます。これは、I/O の受信時にアレイがアクティブパスをパッシブパスに自動的に変更する場合に、このようなデバイスにフィルターが設定されていないと、LVM がパッシブパスをスキャンするたびにマルチパスがフェイルオーバーおよびフェイルバックするためです。
カーネルは、使用する正しいハードウェアハンドラーを自動的に検出してアクティブ/パッシブ状態を変更します。状態を変更するために介入を必要とするアクティブ/パッシブパスの場合、マルチパスは自動的にこのハードウェアハンドラーを使用して、必要に応じて介入します。カーネルが使用する正しいハードウェアハンドラーを自動的に検出しない場合は、multipath.conf ファイルで "hardware_handler" オプションを使用して、使用するハードウェアハンドラーを設定できます。パッシブパスをアクティブにするコマンドを必要とする アクティブ/パッシブ
アレイでこの問題が発生すると、LVM が警告メッセージを出力します。
設定によっては、LVM が以下のいずれかのメッセージを出力することがあります。
LUN の準備ができていません:
end_request: I/O error, dev sdc, sector 0 sd 0:0:0:3: Device not ready: <6>: Current: sense key: Not Ready Add. Sense: Logical unit not ready, manual intervention required
end_request: I/O error, dev sdc, sector 0 sd 0:0:0:3: Device not ready: <6>: Current: sense key: Not Ready Add. Sense: Logical unit not ready, manual intervention required
Copy to Clipboard Copied! 読み取りに失敗しました:
/dev/sde: read failed after 0 of 4096 at 0: Input/output error
/dev/sde: read failed after 0 of 4096 at 0: Input/output error
Copy to Clipboard Copied!
以下は、上記のエラーの理由です。
- マルチパスは、マシンにアクティブ/パッシブパスを提供するストレージデバイスでは設定されません。
- パスはマルチパスデバイスではなく、直接アクセスします。
第3章 DM Multipath の設定
mpathconf
ユーティリティーを使用して DM Multipath を設定できます。このユーティリティーは、次のシナリオに基づいて /etc/multipath.conf
マルチパス設定ファイルを作成または編集します。
-
/etc/multipath.conf
ファイルがすでに存在する場合は、mpathconf
ユーティリティーでファイルを編集します。 -
/etc/multipath.conf
ファイルが存在しない場合は、mpathconf
ユーティリティーにより/etc/multipath.conf
ファイルが新たに作成されます。
3.1. device-mapper-multipath パッケージの確認
システムに DM-Multipath をセットアップする前に、システムが最新であり、device-mapper-multipath
パッケージがインストールされていることを確認してください。
手順
システムに
device-mapper-multipath
パッケージが含まれているか確認します。rpm -q device-mapper-multipath
# rpm -q device-mapper-multipath device-mapper-multipath-current-package-version
Copy to Clipboard Copied! システムにパッケージが含まれていない場合は、次のように出力されます。
package device-mapper-multipath is not installed
package device-mapper-multipath is not installed
Copy to Clipboard Copied! システムにパッケージが含まれていない場合は、次のコマンドを実行してパッケージをインストールします。
dnf install device-mapper-multipath
# dnf install device-mapper-multipath
Copy to Clipboard Copied!
3.2. DM Multipath を使用した基本的なフェイルオーバー設定のセットアップ
基本的なフェイルオーバー設定用の DM Multipath をセットアップし、multipathd デーモンを起動する前に /etc/multipath.conf
ファイルを編集できます。
前提条件
- 管理アクセスがある。
手順
マルチパス設定ファイルを有効にして初期化します。
mpathconf --enable
# mpathconf --enable
Copy to Clipboard Copied! オプション:
/etc/multipath.conf
ファイルを編集します。ほとんどのデフォルト設定はすでに設定されています。たとえば、
path_grouping_policy
はfailover
に設定されています。オプション: マルチパスデバイスのデフォルトの命名形式は、
/dev/mapper/mpathn
形式に設定されます。別の命名形式を使用する場合は、次のようにします。ユーザーフレンドリーな命名スキーム (mpath_n_) の代わりに、マルチパスデバイスの WWID を名前として使用するように DM Multipath を設定します。
mpathconf --enable --user_friendly_names n
# mpathconf --enable --user_friendly_names n
Copy to Clipboard Copied! DM Multipath デーモンの設定をリロードします。
systemctl reload multipathd.service
# systemctl reload multipathd.service
Copy to Clipboard Copied!
DM Multipath デーモンを起動します。
systemctl start multipathd.service
# systemctl start multipathd.service
Copy to Clipboard Copied!
検証
DM Multipath デーモンが問題なく実行されていることを確認します。
systemctl status multipathd.service
# systemctl status multipathd.service
Copy to Clipboard Copied! マルチパスデバイスの命名形式を確認します。
ls /dev/mapper/
# ls /dev/mapper/
Copy to Clipboard Copied!
3.3. マルチパスデバイスの作成時にローカルのディスクを無視
一部のマシンには内部ディスク用のローカル SCSI カードがあり、DM Multipath をこのようなデバイスで使用することは推奨されません。find_multipaths
設定パラメーターを on
に設定すると、このようなデバイスでマルチパスを無効にする必要はありません。
find_multipaths
設定パラメーターを on
に設定しない場合は、以下の手順に従って DM Multipath 設定ファイルを変更して、マルチパスの設定時にローカルのディスクを無視できます。
手順
デバイスのモデル、パス、ベンダーなどの既知のパラメーターを使用して内部ディスクを識別し、次のオプションのいずれかを使用してその WWID を決定します。
既存のマルチパスデバイスを表示します。
multipath -v2 -l
# multipath -v2 -l mpatha (WDC_WD800JD-75MSA3_WD-WMAM9FU71040) dm-2 ATA,WDC WD800JD-75MS size=33 GB features="0" hwhandler="0" wp=rw `-+- policy='round-robin 0' prio=0 status=active |- 0:0:0:0 sda 8:0 active undef running
Copy to Clipboard Copied! DM Multipath が作成できるマルチパスデバイスをさらに表示します。
multipath -v2 -d
# multipath -v2 -d : mpatha (WDC_WD800JD-75MSA3_WD-WMAM9FU71040) dm-2 ATA,WDC WD800JD-75MS size=33 GB features="0" hwhandler="0" wp=undef `-+- policy='round-robin 0' prio=1 status=undef |- 0:0:0:0 sda 8:0 undef ready running
Copy to Clipboard Copied! デバイス情報を表示します。
multipathd show paths raw format "%d %w" | grep sda
# multipathd show paths raw format "%d %w" | grep sda sda WDC_WD800JD-75MSA3_WD-WMAM9FU71040
Copy to Clipboard Copied! この例では、
/dev/sda
は内部ディスクで、その WWID はWDC_WD800JD-75MSA3_WD-WMAM9FU71040
です。
/etc/multipath.conf
ファイルのblacklist
セクションを編集し、WWID 属性を使用してこのデバイスを無視します。blacklist { wwid WDC_WD800JD-75MSA3_WD-WMAM9FU71040 }
blacklist { wwid WDC_WD800JD-75MSA3_WD-WMAM9FU71040 }
Copy to Clipboard Copied! 警告sda
などのdevnode
パラメーターを使用してデバイスを識別することはできますが、/dev/sda
が再起動時に同じデバイスを参照することが保証されていないため、この手順は安全ではありません。/etc/multipath.conf
ファイルに設定エラーがないか確認します。multipath -t > /dev/null
# multipath -t > /dev/null
Copy to Clipboard Copied! 完全なレポートを表示するには、コマンド出力を破棄しないでください。
multipath -t
# multipath -t
Copy to Clipboard Copied! -
ディスクが
initramfs
に含まれている場合は、initramfs を再作成します。詳細は、initramfs でのマルチパスの設定 を参照してください。 multipathd
デーモンを再設定して、/etc/multipath.conf
ファイルをリロードします。systemctl reload multipathd
# systemctl reload multipathd
Copy to Clipboard Copied!
ローカルディスク上のマルチパスデバイスは、使用中に削除することができません。このようなデバイスを無視するには、デバイスのすべてのユーザーを停止します。たとえば、デバイス上のファイルシステムをアンマウントし、それを使用している論理ボリュームを非アクティブ化します。これが不可能な場合は、システムを再起動してマルチパスデバイスを削除できます。
検証
内部ディスクが無視され、マルチパス出力に表示されないことを確認します。
マルチパスデバイスをリスト表示します。
multipath -v2 -l
# multipath -v2 -l
Copy to Clipboard Copied! DM Multipath が作成できる追加デバイスをリスト表示します。
multipath -v2 -d
# multipath -v2 -d
Copy to Clipboard Copied!
3.4. DM Multipath での追加のストレージの設定
デフォルトでは、DM Multipath には、DM Multipath をサポートする最も一般的なストレージアレイの組み込み設定が含まれています。ストレージアレイにまだ設定がない場合は、/etc/multipath.conf
ファイルを編集して設定を追加できます。
初期設定中にストレージデバイスを追加して、予想されるニーズに合わせてセットアップを調整します。DM Multipath を使用すると、スケーラビリティーまたはアップグレードのために後でデバイスを追加できますが、この方法では互換性を確保するために設定の調整が必要になる場合があります。
手順
デフォルトの設定値とサポートされているデバイスを表示します。
multipathd show config
# multipathd show config
Copy to Clipboard Copied! /etc/multipath.conf
ファイルを編集して、マルチパスを設定します。例3.1 HP OPEN-V ストレージデバイス用の DM Multipath 設定
Set default configurations for all devices managed by DM Multipath
# Set default configurations for all devices managed by DM Multipath defaults { # Enable user-friendly names for devices user_friendly_names yes } devices { # Define configuration for HP OPEN-V storage device { vendor "HP" pproduct "OPEN-V" no_path_retry 18 } }
Copy to Clipboard Copied! - 変更を保存してエディターを閉じます。
新しいデバイスをスキャンして、マルチパスデバイスの一覧を更新します。
multipath -r
# multipath -r
Copy to Clipboard Copied!
検証
マルチパスデバイスが正しく認識されていることを確認します。
multipath -ll
# multipath -ll
Copy to Clipboard Copied!
3.5. initramfs でのマルチパスの設定
initramfs
ファイルシステムでのマルチパスの設定は、特に冗長性と負荷分散が必要なシナリオにおいて、シームレスなストレージ機能を実現するのに不可欠です。この設定により、ブートプロセスの早い段階でマルチパスデバイスが利用可能になります。これは、ストレージ設定の整合性を維持し、潜在的な問題を防ぐうえで非常に重要です。
前提条件
- システムに DM Multipath が設定されている。
手順
マルチパス設定ファイルを使用して
initramfs
ファイルシステムを再構築します。dracut --force --add multipath
# dracut --force --add multipath
Copy to Clipboard Copied! 注記initramfs
でマルチパスを使用し、その設定ファイルを変更する場合は、変更を反映するために必ずinitramfs
を再構築してください。ルートデバイスがマルチパスを使用している場合、dracut
コマンドは自動的にマルチパスモジュールをinitramfs
に組み込みます。オプション:
initramfs
のマルチパスが必要なくなった場合は、以下を実行します。マルチパス設定ファイルを削除します。
rm /etc/dracut.conf.d/multipath.conf
# rm /etc/dracut.conf.d/multipath.conf
Copy to Clipboard Copied! 追加したマルチパス設定を使用して
initramfs
を再構築します。dracut --force --omit multipath
# dracut --force --omit multipath
Copy to Clipboard Copied!
検証
マルチパス関連のファイルと設定が存在するかどうかを確認します。
lsinitrd /path/to/initramfs.img -m | grep multipath
# lsinitrd /path/to/initramfs.img -m | grep multipath
Copy to Clipboard Copied!
上記の検証手順により設定の成功を確認できますが、設定が期待どおりに機能することを確認するために、最終的なテスト起動を行うことを推奨します。
再起動したら、マルチパスデバイスが正しく認識されていることを確認します。
multipath -ll
# multipath -ll
Copy to Clipboard Copied!
第4章 DM Multipath 設定ファイルの編集
DM Multipath では、マルチパスで最も一般的に使用する設定値がデフォルトで提供されています。また、DM Multipath に対応する最も一般的なストレージアレイへのサポートも DM Multipath に含まれています。
DM-Multipath のデフォルトの設定値は、/etc/multipath.conf
設定ファイルを編集するとオーバーライドできます。必要に応じて、サポートされていないデフォルトのストレージアレイを設定ファイルに追加することもできます。マルチパス設定ファイルでは、設定に必要なセクション、またはデフォルト値から変更する必要があるセクションのみを指定する必要があります。使用環境には無関係なファイルのセクションや、デフォルト値を無効にする必要がないファイルのセクションでは、初期ファイルに指定されているコメントアウトを削除する必要はありません。
設定ファイルでは、正規表現を使用することもできます。
initramfs
ファイルシステムからマルチパスを実行してマルチパスの設定ファイルを変更した場合は、initramfs
ファイルシステムを再構築して変更を有効にする必要があります。
4.1. 設定ファイルの概要
マルチパス設定ファイルは以下のセクションに分かれています。
- blacklist
- マルチパス設定の対象として考慮しないデバイスのリスト。
- blacklist_exceptions
-
指定されていなければ、
blacklist
セクションのパラメーターに従って無視されるマルチパスのデバイスのリスト。 - defaults
- DM Multipath のデフォルトの全般設定。
- multipaths
-
マルチパスデバイスの特性に関する個別設定。ここで指定する値は、設定ファイルの
overrides
、devices
、およびdefaults
のセクションで指定されている値より優先されます。 - devices
-
ストレージコントローラーの個別設定。ここで指定する値は、設定ファイル内の
defaults
セクションで指定されている値より優先されます。デフォルトでは対応していないストレージアレイを使用している場合は、そのアレイ用のdevices
サブセクションを作成する必要があります。 - overrides
-
すべてのデバイスに適用される設定。ここで指定する値は、設定ファイルの
devices
セクションおよびdefaults
セクションで指定されている値より優先されます。
システムがマルチパスデバイスの属性を決定するとき、次の順序で multipath.conf
ファイルから個別のセクションの設定をチェックします。
-
multipaths
セクション -
overrides
セクション -
devices
セクション -
defaults
セクション
デフォルト設定を表示する方法は次のとおりです。
マシンをマルチパスデバイスにインストールすると、デフォルトのマルチパス設定が自動的に適用されます。デフォルトの設定には、以下が含まれます。
-
デフォルト設定値の完全なリストを表示するには、
multipath -t
またはmultipathd show config
コマンドを実行します。 -
設定オプションのリストと説明については、システム上の
multipath.conf
man ページを参照してください。
-
デフォルト設定値の完全なリストを表示するには、
-
インストール中にマルチパスをセットアップしなかった場合は、
mpathconf --enable
コマンドを実行してデフォルト設定を取得します。
4.2. 設定ファイルの defaults セクション
/etc/multipath.conf
設定ファイルには、デフォルト
セクションが含まれています。このセクションには、デバイスマッパー (DM) マルチパスのデフォルト設定が含まれています。デフォルト値は、デバイスの初期設定により異なる場合があります。
次の表は、multipath.conf
設定ファイルの defaults
セクションで設定する任意属性について説明しています。設定しない場合は、overrides
または devices
セクションのデフォルト値が適用されます。
属性 | 説明 |
---|---|
|
パスチェックが行われる間隔を秒数で指定します。適正に機能するパスでは、チェックの間隔は |
デフォルト値は | |
| 2 つのパスチェック間の最大間隔を秒単位で指定します。 |
デフォルト値は | |
| マルチパスデバイスのセットアップモードを定義します。利用可能な値は次のとおりです。 |
| |
| |
| |
| |
| |
デフォルト値は | |
|
|
正の値: 正の値を設定すると、ブラックリストに登録されていないすべてのデバイスにタイムアウトが適用されます。 | |
負の値: 負の値を設定すると、マルチパスハードウェアテーブル (ビルトインテーブルまたは | |
| |
既知のハードウェアのデフォルト値は | |
|
|
多数のデバイスがあるシステムでは、 | |
デフォルト値は | |
|
デバイスマッパーマップの再割り当てを有効にします。このオプションを使用すると、 |
|
詳細度のデフォルト値は |
| 次回の I/O 動作に使用するパスを決定する、デフォルトのアルゴリズムを指定します。使用できる値を以下に示します。 |
| |
| |
| |
デフォルト値は | |
| 未指定のマルチパスに適用する、デフォルトのパスグルーピングポリシーを指定します。使用できる値を以下に示します。 |
| |
| |
| |
| |
| |
| |
デフォルト値は | |
|
WWID による |
このオプションの値は、 | |
このオプションを設定し、それがデバイスのデバイスノード名と一致する場合、このデバイスの WWID を決定するために設定された他の方法が上書きされます。 | |
この値を | |
デフォルトは | |
|
パスの優先値を得るために呼び出すデフォルトの関数を指定します。例えば、SPC-3 の ALUA ビットは悪用可能な |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
デフォルト値は、 | |
|
関数 |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
デフォルト値は | |
| マルチパスデバイスの追加デフォルト機能です。形式は "number_of_features_plus_arguments feature1 …" となります。 |
| |
| |
| |
| |
| |
デフォルトでは、この値は 設定 されません。 | |
| パスの状態を判断するためのデフォルトのメソッドを指定します。使用できる値を以下に示します。 |
| |
| |
| |
| |
| |
| |
| |
| |
デフォルト値は | |
|
この属性は、 |
デフォルト値は | |
| パスグループのフェイルバックを管理します。使用できる値を以下に示します。 |
| |
| |
| |
0 より大きい数値で、フェイルバックの遅延を秒単位で指定します。 | |
デフォルト値は | |
|
現在のパスグループで、次のパスに切り替えるまでにルーティングする I/O 要求数を指定します。この設定は、2.6.31 より前のカーネルを実行しているシステムにのみ適用されます。2.6.31 以降のシステムには、 |
|
現在のパスグループで、次のパスに切り替えるまでにルーティングする I/O 要求数を指定します。request-base の device-mapper-multipath を使用します。この設定は、現在のカーネルを実行しているシステムで使用できます。2.6.31 より前のバージョンのカーネルを実行しているシステムの場合は |
| この属性の数値は、キューイングを無効にする前に、パスチェッカーがマルチパスデバイス内のすべてのパスに対して何回失敗するとキューイングが無効になるかを指定します。 |
| |
| |
デフォルト値は | |
| 使用できる値を以下に示します。 |
| |
| |
デフォルト値は | |
|
|
|
|
|
マルチパスおよび |
|
明示的なタイムアウトで、SCSI コマンドを発行するパス checker および prioritizer に使用するタイムアウト (秒) です。 |
|
FC リモートポートで問題が検出されてから、そのリモートポート上のデバイスへの I/O が失敗するまでに SCSI レイヤーが待機する秒数。この値は |
| FC リモートポートで問題が検出された後、それをシステムから削除するまで SCSI レイヤーが待機する秒数。無限に設定する場合は、2147483647 秒または 68 年に設定します。デフォルト値はオペレーティングシステムによって決定されます。 |
|
SCSI デバイスに障害が発生した場合に、SCSI レイヤーがエラー処理の実行に費やす最大秒数を指定します。このタイムアウトの後、SCSI レイヤーは HBA のフルリセットを実行します。 |
デフォルト値は | |
|
これが |
| |
デフォルト値は | |
|
|
| |
デフォルト値は | |
|
|
| |
| |
デフォルト値は | |
|
デバイスの WWID に使用する |
デフォルト値はデバイスに依存し、SCSI デバイスの場合は | |
|
|
デフォルト値は | |
|
|
デフォルト値は | |
|
|
| |
|
この属性は、 |
デフォルト値は | |
|
|
|
これら 3 つの属性すべてを 0 より大きい整数に設定すると、 |
詳細は、 | |
デフォルト値は | |
|
|
| |
詳細は、 | |
デフォルト値は | |
| 使用できる値を以下に示します。 |
| |
| |
| |
| |
詳細は、 | |
デフォルト値は | |
|
|
|
|
|
このオプションを使用すると、マルチパスデバイスを最初にアクティブ化する前に、マルチパスデバイスの基になるすべてのパスで |
|
この属性は、ゴーストパスのみでデバイスを作成した後、 |
これを | |
デフォルト値は | |
| この属性は、外部ライブラリーを有効または無効にします。 |
値は正規表現です。名前が式と一致する場合、外部ライブラリーがロードされます。 | |
デフォルトでは、外部ライブラリーは有効になっていません。NVMe ネイティブマルチパスサポートを有効にするには | |
|
|
このオプションは、WWID を取得するためにデフォルトの | |
デフォルト値は | |
|
このオプションは、マルチパスが使用中のデバイスの削除を再試行する回数を設定します。各試行の間に、マルチパスは 1 秒間非アクティブになります。デフォルトの値は |
|
|
デフォルト値は | |
|
|
このパラメーターは | |
|
|
|
|
| |
| |
|
4.3. マルチパス設定ファイルのデフォルトの編集
multipath.conf file
の defaults セクションで設定されたデフォルト値は、devices、multipath で指定された属性によって上書きされない限り、または multipath.conf
ファイルのセクションをオーバーライドしない限り、DM Multipath により使用されます。
手順
/etc/multipath.conf
設定ファイルを表示します。このファイルには、設定のデフォルトのテンプレートが含まれています。polling_interval 10 path_selector "round-robin 0" path_grouping_policy multibus uid_attribute ID_SERIAL prio alua path_checker readsector0 rr_min_io 100 max_fds 8192 rr_weight priorities failback immediate no_path_retry fail user_friendly_names yes
#defaults { # polling_interval 10 # path_selector "round-robin 0" # path_grouping_policy multibus # uid_attribute ID_SERIAL # prio alua # path_checker readsector0 # rr_min_io 100 # max_fds 8192 # rr_weight priorities # failback immediate # no_path_retry fail # user_friendly_names yes #}
Copy to Clipboard Copied! 設定パラメーターのデフォルト値を上書きします。このテンプレートから
defaults
のセクションに関連する行をコピーして、コメントを外すことができます。たとえば、
path_grouping_policy
パラメーターを、デフォルト値のfailover
ではなくmultibus
に上書きするには、以下のように、テンプレートで該当行を見つけて設定ファイルの defaults セクションにコピーし、そのコメントを外します。defaults { user_friendly_names yes path_grouping_policy multibus }
defaults { user_friendly_names yes path_grouping_policy multibus }
Copy to Clipboard Copied! 次のいずれかのコマンドを実行してマルチパス設定ファイルを変更した後、
/etc/multipath.conf
ファイルを検証します。設定エラーを表示するには、以下のコマンドを実行します。
multipath -t > /dev/null
# multipath -t > /dev/null
Copy to Clipboard Copied! 変更が追加された新しい設定を表示するには、以下のコマンドを実行します。
multipath -t
# multipath -t
Copy to Clipboard Copied!
/etc/multipath.conf
ファイルを再読み込みし、multipathd
デーモンを再設定して変更を反映します。service multipathd reload
# service multipathd reload
Copy to Clipboard Copied!
4.4. 設定ファイルの multipaths セクション
/etc/multipath.conf
設定ファイルの multipaths
セクションを使用して、個々のマルチパスデバイスの属性を設定します。デバイスマッパー (DM) マルチパスは、これらの属性を使用して、overrides
セクションの設定を含む、他のすべての設定オプションをオーバーライドします。
multipaths
セクションでは、multipath
サブセクションのみが属性として認識されます。次の表は、特定のマルチパスデバイスごとに、multipath
サブセクションで設定できる属性を示しています。これらの属性は、指定された 1 つのマルチパスにのみ適用されます。複数の multipath
サブセクションが特定のデバイスの World Wide Identifier (WWID) と一致する場合、それらのサブセクションの内容がマージされます。最新エントリーの設定は、以前のバージョンよりも優先されます。
属性 | 説明 |
---|---|
|
multipath 属性を適用するマルチパスデバイスの WWID を指定します。このパラメーターは、 |
|
multipath 属性が適用されるマルチパスデバイスのシンボリック名を指定します。 |
設定ファイルで、2 つの特定マルチパスデバイスに対して multipath 属性を指定している例を以下に示します。1 つ目のデバイスの WWID は 3600508b4000156d70001200000b0000
で、シンボリック名は yellow
です。
2 つ目のマルチパスデバイスの WWID は 1DEC_321816758474
で、シンボリック名は red
です。
例4.1 マルチパス属性の仕様
multipaths { multipath { wwid 3600508b4000156d70001200000b0000 alias yellow path_grouping_policy multibus path_selector "round-robin 0" failback manual no_path_retry 5 } multipath { wwid 1DEC_321816758474 alias red } }
multipaths {
multipath {
wwid 3600508b4000156d70001200000b0000
alias yellow
path_grouping_policy multibus
path_selector "round-robin 0"
failback manual
no_path_retry 5
}
multipath {
wwid 1DEC_321816758474
alias red
}
}
4.5. 設定ファイルの devices セクション
multipath.conf
設定ファイルの devices
セクションを使用して、個々のストレージコントローラータイプの設定を定義します。このセクションで設定された値は、defaults
セクションで指定された値をオーバーライドします。
システムは、vendor
、product
、および revision
キーワードによってストレージコントローラーのタイプを識別します。これらのキーワードは正規表現であり、特定のデバイスに関する sysfs
情報と一致する必要があります。
devices
セクションは、device
サブセクションのみを属性として認識します。デバイスに一致するキーワードが複数ある場合は、一致するすべてのエントリーの属性がデバイスに適用されます。属性が複数の一致する device
サブセクションで指定されている場合、新しいバージョンのエントリーが以前のエントリーよりも優先されます。
device
サブセクションの最新バージョンの設定属性は、以前の devices
サブセクションおよび defaults
セクションの属性をオーバーライドします。
次の表に、device
サブセクションで設定できる属性を示します。
属性 | 説明 |
---|---|
| デバイスベンダー名と一致する正規表現を指定します。これは必須属性です。 |
| デバイスの製品名に一致する正規表現を指定します。これは必須属性です。 |
| デバイスの製品リビジョンに一致する正規表現を指定します。リビジョン属性がない場合、すべてのデバイスリビジョンが一致します。 |
|
マルチパスはこの属性を使用して、このデバイスエントリーの |
| VPD ページの省略形を使用して、ベンダー固有の Vital Product Data (VPD) ページ情報を表示します。 |
| |
| 特定のデバイスタイプに使用するハードウェアハンドラーを指定します。可能な値はすべてハードウェアに依存し、以下が含まれます。 |
| |
| |
| |
| |
| |
デフォルト値は |
バージョン 4.3 以降の Linux カーネルでは、デバイスハンドラーが既知のデバイスに自動的にアタッチされます。これには、SCSI-3 ALUA をサポートするすべてのデバイスが含まれます。カーネルでは、後でハンドラーを変更できません。カーネルでそのようなデバイスに hardware_handler 属性を設定しても効果はありません。
4.6. 設定ファイルの overrides セクション
overrides
セクションは、オプションの protocol
サブセクションを認識し、複数の protocol
サブセクションを含めることができます。システムは、必須の type
属性を使用して、パスデバイスを protocol
サブセクションと照合します。一致する protocol
サブセクションの属性は、残りの overrides
セクションの属性よりも優先されます。一致する protocol
サブセクションが複数ある場合は、後のエントリーほど優先度が高くなります。
protocol
サブセクションは、次の必須属性を認識します。
属性 | 説明 |
---|---|
| パスデバイスのプロトコル文字列を指定します。使用できる値を以下に示します。 |
| |
この属性は正規表現ではありません。パスデバイスプロトコル文字列は正確に一致する必要があります。 |
次のリストの属性は、protocol
サブセクションのオプションです。これらを設定しない場合、overrides
、devices
または defaults
セクションのデフォルト値が適用されます。
-
fast_io_fail_tmo
-
dev_loss_tmo
-
eh_deadline
4.7. DM Multipath によるデバイスのタイムアウトのオーバーライド
sysfs
オプションの recovery_tmo
は、特定の iSCSI デバイスのタイムアウトを制御します。次のオプションは、recovery_tmo
値をグローバルにオーバーライドします。
-
replacement_timeout
設定オプションは、すべての iSCSI デバイスのrecovery_tmo
値をグローバルにオーバーライドします。 DM Multipath の
fast_io_fail_tmo
オプションは、DM Multipath によって管理されるすべての iSCSI デバイスのrecovery_tmo
値をグローバルにオーバーライドします。DM Multipath の
fast_io_fail_tmo
オプションは、ファイバーチャネルデバイスのfast_io_fail_tmo
オプションもオーバーライドします。
DM Multipath の fast_io_fail_tmo
オプションは、replacement_timeout
よりも優先されます。multipathd
サービスがリロードされるたびに、recovery_tmo
が fast_io_fail_tmo
設定オプションの値にリセットされます。DM Multipath によって管理されるデバイスの recovery_tmo
をオーバーライドするには、DM Multipath の fast_io_fail_tmo
設定オプションを使用してください。
4.8. 特定デバイスのマルチパス設定の編集
multipath.conf
設定ファイルの multipaths
セクションで、必須の WWID パラメーターによって参照される個々のマルチパスデバイスに固有の設定を追加できます。
このデフォルトは DM Multipath により使用され、multipath.conf
ファイルの overrides
セクション、defaults
セクション、および devices
セクションに設定された属性を上書きします。multipaths
セクションには、任意の数のマルチパスサブセクションを含めることができます。
手順
特定のマルチパスデバイスの
multipaths
セクションを変更します。設定ファイルで、2 つの特定マルチパスデバイスに対して multipath 属性を指定している例を以下に示します。-
1 つ目のデバイスの WWID は
3600508b4000156d70001200000b0000
で、シンボリック名はyellow
です。 -
2 番目のマルチパスデバイスの WWID は
1DEC_321816758474
で、シンボリック名red
があります。
rr_weight
属性はpriorities
に設定されています。multipaths { multipath { wwid 3600508b4000156d70001200000b0000 alias yellow path_grouping_policy multibus path_selector "round-robin 0" failback manual rr_weight priorities no_path_retry 5 } multipath { wwid 1DEC_321816758474 alias red rr_weight priorities } }
multipaths { multipath { wwid 3600508b4000156d70001200000b0000 alias yellow path_grouping_policy multibus path_selector "round-robin 0" failback manual rr_weight priorities no_path_retry 5 } multipath { wwid 1DEC_321816758474 alias red rr_weight priorities } }
Copy to Clipboard Copied! -
1 つ目のデバイスの WWID は
次のいずれかのコマンドを実行してマルチパス設定ファイルを変更した後、
/etc/multipath.conf
ファイルを検証します。設定エラーを表示するには、以下のコマンドを実行します。
multipath -t > /dev/null
# multipath -t > /dev/null
Copy to Clipboard Copied! 変更が追加された新しい設定を表示するには、以下のコマンドを実行します。
multipath -t
# multipath -t
Copy to Clipboard Copied!
/etc/multipath.conf
ファイルを再読み込みし、multipathd
デーモンを再設定して変更を反映します。service multipathd reload
# service multipathd reload
Copy to Clipboard Copied!
4.9. プロトコルを使用した特定デバイスのマルチパス設定の変更
トランスポートプロトコルに基づいてマルチパスデバイスパスを設定できます。/etc/multipath.conf
ファイルの overrides
セクションの protocol
サブセクションを使用すると、特定のパスでマルチパス設定を上書きできます。これにより、Fiber Channel (FC) や Internet Small Computer Systems Interface (iSCSI) などの複数のトランスポートプロトコルを介したマルチパスデバイスへのアクセスが可能になります。
protocol
サブセクションで設定したオプションは、overrides
、devices
、および defaults
セクションの値を上書きします。これらのオプションは、サブセクションの type
パラメーターに一致するトランスポートプロトコルを使用するデバイスにのみ適用されます。
前提条件
- システムで Device Mapper (DM) マルチパスを設定している。
- すべてのパスが同じトランスポートプロトコルを使用するのではなく、マルチパスデバイスがある。
手順
以下のコマンドを実行して、特定のパスプロトコルを表示します。
multipathd show paths format "%d %P"
# multipathd show paths format "%d %P" dev protocol sda scsi:ata sdb scsi:fcp sdc scsi:fcp
Copy to Clipboard Copied! 各マルチパスタイプに
protocol
サブセクションを追加して、/etc/multipath.conf
ファイルのoverrides
セクションを編集します。overrides
セクションには、複数のprotocol
サブセクションを含めることができます。重要protocol
サブセクションにはtype
パラメーターが含める必要があります。次に、タイプ
パラメーターが一致するすべてのパスの設定が、プロトコル
サブセクションにリストされている残りのパラメーターで更新されます。scsi:fcp
プロトコルを使用するパスデバイスの設定。overrides { dev_loss_tmo 60 fast_io_fail_tmo 8 protocol { type "scsi:fcp" dev_loss_tmo 70 fast_io_fail_tmo 10 eh_deadline 360 } }
overrides { dev_loss_tmo 60 fast_io_fail_tmo 8 protocol { type "scsi:fcp" dev_loss_tmo 70 fast_io_fail_tmo 10 eh_deadline 360 } }
Copy to Clipboard Copied! scsi:iscsi
プロトコルを使用するパスデバイスの設定。overrides { dev_loss_tmo 60 fast_io_fail_tmo 8 protocol { type "scsi:iscsi" dev_loss_tmo 60 fast_io_fail_tmo 120 } }
overrides { dev_loss_tmo 60 fast_io_fail_tmo 8 protocol { type "scsi:iscsi" dev_loss_tmo 60 fast_io_fail_tmo 120 } }
Copy to Clipboard Copied! 他のすべてのプロトコルを使用するパスデバイスの設定。
overrides { dev_loss_tmo 60 fast_io_fail_tmo 8 protocol { type "<type of protocol>" dev_loss_tmo 60 fast_io_fail_tmo 8 } }
overrides { dev_loss_tmo 60 fast_io_fail_tmo 8 protocol { type "<type of protocol>" dev_loss_tmo 60 fast_io_fail_tmo 8 } }
Copy to Clipboard Copied!
4.10. ストレージコントローラーのマルチパス設定の編集
multipath.conf
設定ファイルの devices
セクションは、各ストレージデバイスの属性を設定します。デバイスを含むパスの multipath.conf
ファイルの multipaths
セクションまたは overrides
セクションに指定された属性により上書きされた場合を除き、これらの値は DM Multipath により使用されます。これらの属性は、multipath.conf
ファイルの defaults
セクションに設定された属性を上書きします。
手順
サポートされているデバイスを含む、デフォルトの設定値に関する情報を表示します。
multipathd show config multipath -t
# multipathd show config # multipath -t
Copy to Clipboard Copied! マルチパスに対応しているデバイスの多くは、デフォルトでマルチパスの設定に含まれています。
-
オプション: デフォルトの設定値を変更する必要がある場合は、それらの値を上書きするデバイスの設定ファイルにエントリーを含めることで、デフォルト値を上書きできます。
multipathd show config
コマンドが表示する、目的のデバイスのデフォルト値をコピーして、変更したい値に書き換えることができます。 vendor
とproduct
のパラメーターを設定して、デフォルトで自動的に設定されないデバイスを設定ファイルのdevices
セクションに追加します。次の例に示すように、/sys/block/device_name/device/vendor
および/sys/block/device_name/device/model
ファイルを開いてこれらの値を見つけます。ここで、device_name はマルチパスされるデバイスです。cat /sys/block/sda/device/vendor WINSYS cat /sys/block/sda/device/model SF2372
# cat /sys/block/sda/device/vendor WINSYS # cat /sys/block/sda/device/model SF2372
Copy to Clipboard Copied! オプション: 特定のデバイスに応じて、追加のパラメーターを指定します。
active/active
デバイス-
通常、この場合、追加のパラメーターを設定する必要はありません。必要に応じて、
path_grouping_policy
をmultibus
に設定できます。この他に、設定が必要となる可能性があるパラメーターはno_path_retry
とrr_min_io
です。 active/passive
デバイス-
I/O を持つパスが自動的に passive パスに切り替えられる場合は、チェッカーの関数を、I/O をパスに送信しない関数に変更し、それが正しく動作するかどうかを検証する必要があります (これを行わないとデバイスはフェイルオーバーし続けます)。これは、
path_checker
をtur
に設定したことを意味します。これは、ほとんどの場合、Test Unit Ready コマンドをサポートするすべての SCSI デバイスで機能します。
パスの切り替えに特殊なコマンドを必要とするデバイスにマルチパスを設定するには、ハードウェアハンドラーカーネルモジュールが必要になります。現在、利用可能なハードウェアハンドラーは
emc
です。このハンドラーが目的のデバイスに使用できない場合は、そのデバイスにマルチパスを設定できない可能性があります。マルチパス設定ファイルの
device
エントリーの例を以下に示します。} device { vendor "COMPAQ " product "MSA1000 " path_grouping_policy multibus path_checker tur rr_weight priorities }
# } # device { # vendor "COMPAQ " # product "MSA1000 " # path_grouping_policy multibus # path_checker tur # rr_weight priorities # } #}
Copy to Clipboard Copied! 次のいずれかのコマンドを実行してマルチパス設定ファイルを変更した後、
/etc/multipath.conf
ファイルを検証します。設定エラーを表示するには、以下のコマンドを実行します。
multipath -t > /dev/null
# multipath -t > /dev/null
Copy to Clipboard Copied! 変更が追加された新しい設定を表示するには、以下のコマンドを実行します。
multipath -t
# multipath -t
Copy to Clipboard Copied!
/etc/multipath.conf
ファイルを再読み込みし、multipathd
デーモンを再設定して変更を反映します。service multipathd reload
# service multipathd reload
Copy to Clipboard Copied!
4.11. すべてのデバイスへのマルチパス値の設定
multipath.conf
設定ファイルの overrides
セクションを使用すると、すべてのデバイスの設定値を設定できます。このセクションは、multipath.conf
設定ファイルの devices
セクションおよび defaults
セクションの両方で対応しているすべての属性に対応します。これは、vendor
、product
、および revision
以外のすべての devices
セクション属性になります。
DM Multipath は、デバイスを含むパスの multipath.conf
ファイルの multipaths
セクションで指定された属性によって上書きされない限り、すべてのデバイスに対してこれらの属性を使用します。この属性は、multipath.conf
ファイルの devices
セクションおよび defaults
セクションに設定された属性を上書きします。
手順
デバイス固有の設定を上書きします。たとえば、すべてのデバイスで
no_path_retry
をfail
に設定できます。すべてのパスに障害が発生した場合は、次のコマンドを使用してキューイングをオフにします。これにより、デバイス固有の設定が上書きされます。overrides { no_path_retry fail }
overrides { no_path_retry fail }
Copy to Clipboard Copied! 次のいずれかのコマンドを実行してマルチパス設定ファイルを変更した後、
/etc/multipath.conf
ファイルを検証します。設定エラーを表示するには、以下のコマンドを実行します。
multipath -t > /dev/null
# multipath -t > /dev/null
Copy to Clipboard Copied! 変更が追加された新しい設定を表示するには、以下のコマンドを実行します。
multipath -t
# multipath -t
Copy to Clipboard Copied!
/etc/multipath.conf
ファイルを再読み込みし、multipathd
デーモンを再設定して変更を反映します。service multipathd reload
# service multipathd reload
Copy to Clipboard Copied!
第5章 デバイスのマルチパスの防止
マルチパスデバイスを設定する際に、選択したデバイスを無視するように DM Multipath を設定できます。DM Multipath は、これらの無視されたデバイスをマルチパスデバイスにグループ化しません。
5.1. DM Multipath がパスのマルチパスデバイスを作成する際の条件
DM Multipath には、パス用のマルチパスデバイスを作成するか、パスを無視するかどうかを判断するためのデフォルトルールのセットがあります。動作を設定できます。
find_multipaths
設定パラメーターを off
に設定すると、マルチパスは明示的に無効にされていないパスに対して常にマルチパスデバイスを作成しようとします。find_multipaths
設定パラメーターを on
に設定すると、以下の条件のいずれかが満たされている場合に限り、マルチパスによりデバイスが作成されます。
- 無効にされていない、同じ World-Wide Identification (WWID) を持つパスが少なくとも 2 つあります。
-
multipath
コマンドでデバイスを指定して、デバイスの作成を手動で強制する場合。 - 任意のパスが、以前に作成されたマルチパスデバイスと同一の WWID を持っている場合 (そのマルチパスデバイスがその時点で存在していない場合も含む)。マルチパスデバイスを作成すると、常にそのデバイスの WWID が記憶されるため、同一の WWID を持つパスが検出されると、そのデバイスが自動的に再作成されます。これにより、他のデバイスでマルチパスを無効にしなくても、マルチパスが自動的に正しいパスを選択してマルチパスデバイスにすることができます。
find_multipaths
パラメーターを使用せずにマルチパスデバイスを作成してから、パラメーターを on
に設定した場合は、/etc/multipath/wwids
ファイルから、マルチパスデバイスとして作成しないデバイスの WWID を削除しなければならない場合があります。次の例は、サンプルの /etc/multipath/wwids
ファイルを示しています。WWID は、スラッシュ (/
) で囲まれています。
Multipath wwids, Version : 1.0 NOTE: This file is automatically maintained by multipath and multipathd. You should not need to edit this file in normal circumstances. Valid WWIDs:
# Multipath wwids, Version : 1.0
# NOTE: This file is automatically maintained by multipath and multipathd.
# You should not need to edit this file in normal circumstances.
#
# Valid WWIDs:
/3600d0230000000000e13955cc3757802/
/3600d0230000000000e13955cc3757801/
/3600d0230000000000e13955cc3757800/
/3600d02300069c9ce09d41c31f29d4c00/
/SWINSYS SF2372 0E13955CC3757802/
/3600d0230000000000e13955cc3757803/
on
と off
に加えて、find_multipaths
も以下の値に設定することができます。
strict
-
マルチパスは、以前にマルチパス化されていないパスを許可しないため、そのパスは
/etc/multipath/wwids
ファイルに記載されていません。 smart
-
マルチパスは、
udev
で無効になっていないデバイスが表示されるとすぐに、それらを常に受け入れます。multipathd
がfind_multipaths_timeout
パラメーターで設定されたタイムアウト内にデバイスを作成しない場合、デバイスに対するクレームを解放します。
find_multipaths
の組み込みデフォルト値は off
です。ただし、mpathconf
により作成されたデフォルトの multipath.conf
ファイルは、find_multipaths
の値を on
に設定します。
find_multipaths
パラメーターが on
に設定されている場合、マルチパスを使用したくない複数のパスを持つデバイスでのみマルチパスを無効にします。このため、通常、デバイスでマルチパスを無効にする必要はありません。
以前に作成したマルチパスデバイスを blacklist
に追加する場合は、-w
オプションを使用して /etc/multipath/wwids
ファイルからそのデバイスの WWID を削除すると、他のプログラムとの問題を回避するのに役立つことがあります。たとえば、WWID 3600d0230000000000e13954ed5f89300
のデバイス /dev/sdb
を /etc/multipath/wwids
ファイルから削除する場合は、以下のいずれかの方法を使用することができます。
デバイス名でマルチパスデバイスを削除する。
multipath -w /dev/sdb
# multipath -w /dev/sdb wwid '3600d0230000000000e13954ed5f89300' removed
Copy to Clipboard Copied! マルチパスデバイスの WWID を使用して削除する。
multipath -w 3600d0230000000000e13954ed5f89300
# multipath -w 3600d0230000000000e13954ed5f89300 wwid '3600d0230000000000e13954ed5f89300' removed
Copy to Clipboard Copied!
また、-W
オプションで /etc/multipath/wwids
ファイルを更新することも可能です。これにより、/etc/multipath/wwids
ファイルがリセットされ、現在のマルチパスデバイスの WWID のみが含まれるようになります。リセットする場合は、以下を実行してください。
multipath -W
# multipath -W
successfully reset wwids
5.2. 特定のデバイスでマルチパスを無効にする基準
以下のいずれかの基準により、デバイスでマルチパスを無効にできます。
- WWID
- デバイス名
- デバイスの種別
- プロパティー
- protocol
デフォルトでは、設定ファイルの初期 blacklist
セクションをコメントアウトした後でも、さまざまなデバイス種別が無効化されます。
すべてのデバイスに対して、DM Multipath は以下の順番でこの基準を評価します。
-
プロパティー
-
devnode
-
device
-
プロトコル
-
wwid
上記の基準のいずれかによってデバイスが無効になっていることが判明した場合、DM Multipath はそのデバイスを multipathd
による処理から除外し、後の基準を評価しません。各基準において、デバイスが例外リストと無効なデバイスリストの両方に一致する場合は、例外リストが優先されます。
5.3. WWID によるマルチパスの無効化
WWID (World-Wide Identification) を使用して、個々のデバイスでマルチパスを無効にできます。
手順
デバイスの WWID を検索します。
multipathd show paths raw format "%d %w" | grep sdb
# multipathd show paths raw format "%d %w" | grep sdb sdb 3600508b4001080520001e00011700000
Copy to Clipboard Copied! wwid
エントリーを使用して、/etc/multipath.conf
設定ファイル内のデバイスを無効にします。次の例は、WWID が
3600508b4001080520001e00011700000
のデバイスを無効にする DM マルチパス設定ファイル内の行を示します。blacklist { wwid 3600508b4001080520001e00011700000 }
blacklist { wwid 3600508b4001080520001e00011700000 }
Copy to Clipboard Copied! 次のいずれかのコマンドを実行してマルチパス設定ファイルを変更した後、
/etc/multipath.conf
ファイルを検証します。設定エラーを表示するには、以下のコマンドを実行します。
multipath -t > /dev/null
# multipath -t > /dev/null
Copy to Clipboard Copied! 変更が追加された新しい設定を表示するには、以下のコマンドを実行します。
multipath -t
# multipath -t
Copy to Clipboard Copied!
/etc/multipath.conf
ファイルを再読み込みし、multipathd
デーモンを再設定して変更を反映します。service multipathd reload
# service multipathd reload
Copy to Clipboard Copied!
5.4. デバイス名によるマルチパスの無効化
DM Multipath がマルチパスデバイスにグループ化しないように、デバイス名でデバイスタイプのマルチパスを無効にできます。
手順
デバイス情報を表示します。
udevadm info --query=all -n /dev/mapper/sd*
# udevadm info --query=all -n /dev/mapper/sd*
Copy to Clipboard Copied! devnode
エントリーを使用して、/etc/multipath.conf
設定ファイル内のデバイスを無効にします。以下の例は、すべての
sd*
デバイスを無効にするため、すべての SCSI デバイスを無効にする DM Multipath 設定ファイル内の行を示しています。blacklist { devnode "^sd[a-z]" }
blacklist { devnode "^sd[a-z]" }
Copy to Clipboard Copied! devnode
エントリーを使用すると、特定タイプのすべてのデバイスではなく、個別のデバイスを無効にできます。ただし、udev
ルールで静的にマッピングされていない限り、再起動時に特定のデバイス名が同じ名前になる保証がないため、この方法は推奨されません。たとえば、システムが再起動するとデバイス名が/dev/sda
から/dev/sdb
に変わる可能性があります。デフォルトでは、DM Multipath は以下の
devnode
エントリーを使用して、SCSI、NVMe、または DASD 以外のすべてのデバイスを無効にします。blacklist { devnode "!^(sd[a-z]|dasd[a-z]|nvme[0-9])" }
blacklist { devnode "!^(sd[a-z]|dasd[a-z]|nvme[0-9])" }
Copy to Clipboard Copied! このエントリーを無効にするデバイスは、通常、DM Multipath に対応していません。
次のいずれかのコマンドを実行してマルチパス設定ファイルを変更した後、
/etc/multipath.conf
ファイルを検証します。設定エラーを表示するには、以下のコマンドを実行します。
multipath -t > /dev/null
# multipath -t > /dev/null
Copy to Clipboard Copied! 変更が追加された新しい設定を表示するには、以下のコマンドを実行します。
multipath -t
# multipath -t
Copy to Clipboard Copied!
/etc/multipath.conf
ファイルを再読み込みし、multipathd
デーモンを再設定して変更を反映します。service multipathd reload
# service multipathd reload
Copy to Clipboard Copied!
5.5. デバイスの種別によるマルチパスの無効化
device
セクションを使用して、デバイスのマルチパスを無効にできます。
手順
表示デバイスの種類:
multipathd show paths raw format "%d %s" | grep sdb
# multipathd show paths raw format "%d %s" | grep sdb sdb HP,HSV210
Copy to Clipboard Copied! デバイス
セクションを使用して、/etc/multipath.conf
設定ファイル内のデバイスを無効にします。以下の例は、IBM DS4200 および HP のすべてのデバイスでのマルチパスを無効にします。
blacklist { device { vendor "IBM" product "3S42" #DS4200 Product 10 } device { vendor "HP" product ".*" } }
blacklist { device { vendor "IBM" product "3S42" #DS4200 Product 10 } device { vendor "HP" product ".*" } }
Copy to Clipboard Copied! 次のいずれかのコマンドを実行してマルチパス設定ファイルを変更した後、
/etc/multipath.conf
ファイルを検証します。設定エラーを表示するには、以下のコマンドを実行します。
multipath -t > /dev/null
# multipath -t > /dev/null
Copy to Clipboard Copied! 変更が追加された新しい設定を表示するには、以下のコマンドを実行します。
multipath -t
# multipath -t
Copy to Clipboard Copied!
/etc/multipath.conf
ファイルを再読み込みし、multipathd
デーモンを再設定して変更を反映します。service multipathd reload
# service multipathd reload
Copy to Clipboard Copied!
5.6. udev プロパティーによるマルチパスの無効化
udev
プロパティーパラメーターを使用して、デバイスのマルチパスを無効にできます。
手順
デバイスの
udev
変数を表示します。udevadm info --query=all -n /dev/sdb
# udevadm info --query=all -n /dev/sdb
Copy to Clipboard Copied! property
パラメーターを使用して、/etc/multipath.conf
設定ファイルのデバイスを無効にします。このパラメーターは、デバイスのudev
環境変数名と一致する正規表現の文字列です。以下の例は、
udev
プロパティーID_ATA
を持つすべてのデバイスでマルチパスを無効にします。blacklist { property "ID_ATA" }
blacklist { property "ID_ATA" }
Copy to Clipboard Copied! 次のいずれかのコマンドを実行してマルチパス設定ファイルを変更した後、
/etc/multipath.conf
ファイルを検証します。設定エラーを表示するには、以下のコマンドを実行します。
multipath -t > /dev/null
# multipath -t > /dev/null
Copy to Clipboard Copied! 変更が追加された新しい設定を表示するには、以下のコマンドを実行します。
multipath -t
# multipath -t
Copy to Clipboard Copied!
/etc/multipath.conf
ファイルを再読み込みし、multipathd
デーモンを再設定して変更を反映します。service multipathd reload
# service multipathd reload
Copy to Clipboard Copied!
5.7. デバイスプロトコルによるマルチパスの無効化
device
プロトコルを使用して、デバイスのマルチパスを無効にできます。
手順
オプション: パスが使用するプロトコルを表示します。
multipathd show paths raw format "%d %P" | grep sdb
# multipathd show paths raw format "%d %P" | grep sdb sdb scsi:fcp
Copy to Clipboard Copied! protocol
パラメーターを使用して、/etc/multipath.conf
設定ファイルのデバイスを無効にします。protocol
パラメーターは正規表現を受け取り、一致するプロトコル文字列を持つすべてのデバイスをブラックリストに登録します。たとえば、すべての nvme デバイスでマルチパスを無効にするには、以下を使用します。blacklist { protocol "nvme" }
blacklist { protocol "nvme" }
Copy to Clipboard Copied! DM Multipath は、
scsi:fcp
、scsi:spi
、scsi:ssa
、scsi:sbp
、scsi:srp
、scsi:iscsi
、scsi:sas
、scsi:adt
、scsi:ata
、scsi:unspec
、ccw
、cciss
、nvme:pcie
、nvme:rdma
、nvme:fc
、nvme:tcp
、nvme:loop
、nvme:apple-nvme
、nvme:unspec
、undef
などのprotocol
文字列を認識します。次のいずれかのコマンドを実行してマルチパス設定ファイルを変更した後、
/etc/multipath.conf
ファイルを検証します。設定エラーを表示するには、以下のコマンドを実行します。
multipath -t > /dev/null
# multipath -t > /dev/null
Copy to Clipboard Copied! 変更が追加された新しい設定を表示するには、以下のコマンドを実行します。
multipath -t
# multipath -t
Copy to Clipboard Copied!
/etc/multipath.conf
ファイルを再読み込みし、multipathd
デーモンを再設定して変更を反映します。service multipathd reload
# service multipathd reload
Copy to Clipboard Copied!
5.8. マルチパスを無効にしたデバイスに対する例外の追加
マルチパスが現在無効になっているデバイスに例外を追加することで、マルチパスを有効にできます。
前提条件
- 特定のデバイスでマルチパスが無効になっている。
手順
/etc/multipath.conf
設定ファイルのblacklist_exceptions
セクションを使用して、デバイスでマルチパスを有効にします。設定ファイルの
blacklist_exceptions
セクションでデバイスを指定する場合は、blacklist
セクションで指定したのと同じ基準を使用して例外を指定する必要があります。たとえば、無効にしたデバイスがその WWID に関連付けられている場合でも、WWID 例外はdevnode
エントリーで無効になっているデバイスには適用されません。同様に、devnode
例外はdevnode
エントリーにしか適用されず、device
例外はデバイスエントリーにしか適用されません。例5.1 WWID による例外
たとえば、デバイスが多数あり、その中の 1 つのデバイス (以下の例では WWID が
3600d0230000000000e13955cc3757803
のデバイス) でのみマルチパスを有効にする場合は、有効にするデバイス以外のものを 1 つ 1 つ無効にするのではなく、一旦すべてのデバイスを無効にしてから、/etc/multipath.conf
ファイルに以下の行を追加し、必要なデバイスのみを有効にします。blacklist { wwid ".*" } blacklist_exceptions { wwid "3600d0230000000000e13955cc3757803" }
blacklist { wwid ".*" } blacklist_exceptions { wwid "3600d0230000000000e13955cc3757803" }
Copy to Clipboard Copied! または、感嘆符 (
!
) を使用してblacklist
エントリーを反転することもできます。これにより、指定した WWID を除くすべてのデバイスを無効にできます。blacklist { wwid "!3600d0230000000000e13955cc3757803" }
blacklist { wwid "!3600d0230000000000e13955cc3757803" }
Copy to Clipboard Copied! 例5.2 udev プロパティーによる例外
property
パラメーターの挙動は、他のblacklist_exception
パラメーターとは異なります。property
パラメーターの値は、udev
データベース内の変数の名前と一致する必要があります。それ以外の場合は、デバイスは無効になります。このパラメーターを使用すると、USB スティックやローカルハードドライブなどの特定の SCSI デバイスでマルチパスを無効にできます。合理的にマルチパス化できる SCSI デバイスでのみマルチパスを有効にするには、以下の例のようにこのパラメーターを
SCSI_IDENT_|ID_WWN)
に設定します。blacklist_exceptions { property "(SCSI_IDENT_|ID_WWN)" }
blacklist_exceptions { property "(SCSI_IDENT_|ID_WWN)" }
Copy to Clipboard Copied! 次のいずれかのコマンドを実行してマルチパス設定ファイルを変更した後、
/etc/multipath.conf
ファイルを検証します。設定エラーを表示するには、以下のコマンドを実行します。
multipath -t > /dev/null
# multipath -t > /dev/null
Copy to Clipboard Copied! 変更が追加された新しい設定を表示するには、以下のコマンドを実行します。
multipath -t
# multipath -t
Copy to Clipboard Copied!
/etc/multipath.conf
ファイルを再読み込みし、multipathd
デーモンを再設定して変更を反映します。service multipathd reload
# service multipathd reload
Copy to Clipboard Copied!
第6章 マルチパス化されたボリュームの管理
DM Multipath が提供する multipath
、dmsetup
、および multipathd
コマンドを使用して、マルチパスボリュームを管理できます。
6.1. オンラインのマルチパスデバイスのサイズ変更
multipad
コマンドと resize2fs
コマンドを使用して、オンラインのマルチパスデバイスとファイルシステムのサイズを変更できます。
手順
- 物理デバイスのサイズを変更します。
論理ユニット番号 (LUN) へのパスを確認します。
multipath -l
# multipath -l
Copy to Clipboard Copied! パスのサイズを変更します。SCSI デバイスの場合は、デバイスの
rescan
ファイルに 1 と書き込むと、SCSI ドライバーによる再スキャンが行われます。以下にコマンド例を示します。echo 1 > /sys/block/path_device/device/rescan
# echo 1 > /sys/block/path_device/device/rescan
Copy to Clipboard Copied! 各パスデバイスに対してこのコマンドを実行します。たとえば、パスデバイスが
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
# 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
Copy to Clipboard Copied! マルチパスデバイスのサイズを変更します。
multipathd resize map multipath_device
# multipathd resize map multipath_device
Copy to Clipboard Copied! ファイルシステムのサイズを変更します (LVM または DOS のパーティションが使用されていないことを前提とします)。
resize2fs /dev/mapper/mpatha
# resize2fs /dev/mapper/mpatha
Copy to Clipboard Copied!
6.2. ルートファイルシステムをシングルパスデバイスからマルチパスデバイスに移動する
システムをシングルパスデバイスにインストールしてから、ルートファイルシステムに別のパスを追加した場合は、ルートファイルシステムをマルチパスデバイスに移動します。
前提条件
-
device-mapper-multipath
パッケージがインストールされている。
手順
/etc/multipath.conf
設定ファイルを作成します。mpathconf --enable
# mpathconf --enable
Copy to Clipboard Copied! multipathd
サービスを有効にします。systemctl enable multipathd.service
# systemctl enable multipathd.service
Copy to Clipboard Copied! -
find_multipaths
設定パラメーターがon
に設定されていない場合は、デバイスのマルチパスの防止 の説明に従って、/etc/multipath.conf
ファイルのblacklist
セクションとblacklist_exceptions
セクションを編集します。 /etc/multipath/wwids
ファイルにデバイスの WWID を追加します。multipath -a /dev/sdb
# multipath -a /dev/sdb wwid '3600d02300069c9ce09d41c4ac9c53200' added
Copy to Clipboard Copied! /dev/sdb は、ルートデバイス名に置き換えます。
設定ファイルが正しく設定されていることを確認します。
multipath -d 3600d02300069c9ce09d41c4ac9c53200
# multipath -d 3600d02300069c9ce09d41c4ac9c53200 : mpatha (3600d02300069c9ce09d41c4ac9c53200) undef 3PARdata,VV size=446M features='1 queue_if_no_path' hwhandler='1 alua' wp=undef `-+- policy='service-time 0' prio=50 status=undef `- 5:0:0:0 sdb 8:16 undef ready running
Copy to Clipboard Copied! 3600d02300069c9ce09d41c4ac9c53200 は、スワップデバイスの WWID に置き換えます。
multipath
を使用してinitramfs
ファイルシステムを再構築します。dracut --force --add multipath
# dracut --force --add multipath
Copy to Clipboard Copied! - マシンをシャットダウンします。
- マシンを起動します。
- 他のパスがマシンから見えるようにする。
検証
次のコマンドを実行して、マルチパスデバイスが作成されたかどうかを確認します。
multipath -l | grep 3600d02300069c9ce09d41c4ac9c53200
# multipath -l | grep 3600d02300069c9ce09d41c4ac9c53200 mpatha (3600d02300069c9ce09d41c4ac9c53200) dm-0 3PARdata,VV
Copy to Clipboard Copied!
6.3. スワップファイルシステムをシングルパスデバイスからマルチパスデバイスに移動する
デフォルトでは、スワップデバイスは論理ボリュームとして設定されます。論理ボリュームグループを構成する物理ボリュームにマルチパスを設定する場合、スワップデバイスをマルチパスデバイスとして設定するための特別な手順は必要ありません。ただし、スワップデバイスが LVM ボリュームではなく、デバイス名でマウントされる場合は、適切なマルチパスデバイス名に切り替えるために /etc/fstab
ファイルを編集する必要がある場合があります。
手順
/etc/multipath.conf
設定ファイルを作成します。mpathconf --enable
# mpathconf --enable
Copy to Clipboard Copied! multipathd
サービスを有効にします。systemctl enable multipathd.service
# systemctl enable multipathd.service
Copy to Clipboard Copied! -
find_multipaths
設定パラメーターがon
に設定されていない場合は、デバイスのマルチパスの防止 の説明に従って、/etc/multipath.conf
ファイルのblacklist
セクションとblacklist_exceptions
セクションを編集します。 /etc/multipath/wwids
ファイルにデバイスの WWID を追加します。multipath -a /dev/sdb
# multipath -a /dev/sdb wwid '3600d02300069c9ce09d41c4ac9c53200' added
Copy to Clipboard Copied! /dev/sdb は、スワップデバイス名に置き換えます。
設定ファイルが正しく設定されていることを確認します。
multipath -d 3600d02300069c9ce09d41c4ac9c53200
# multipath -d 3600d02300069c9ce09d41c4ac9c53200 : mpatha (3600d02300069c9ce09d41c4ac9c53200) undef 3PARdata,VV size=446M features='1 queue_if_no_path' hwhandler='1 alua' wp=undef `-+- policy='service-time 0' prio=50 status=undef `- 5:0:0:0 sdb 8:16 undef ready running
Copy to Clipboard Copied! 3600d02300069c9ce09d41c4ac9c53200 は、スワップデバイスの WWID に置き換えます。
/etc/multipath.conf
ファイルに、swap デバイスのエイリアスを設定します。multipaths { multipath { wwid WWID_of_swap_device alias swapdev } }
multipaths { multipath { wwid WWID_of_swap_device alias swapdev } }
Copy to Clipboard Copied! /etc/fstab
ファイルで、root デバイスへの古いデバイスパスを、マルチパスデバイスに置き換えます。たとえば、
/etc/fstab
ファイルに、以下のようなエントリーがあるとします。/dev/sdb2 swap swap defaults 0 0
/dev/sdb2 swap swap defaults 0 0
Copy to Clipboard Copied! エントリーを以下のように変更します。
/dev/mapper/swapdev swap swap defaults 0 0
/dev/mapper/swapdev swap swap defaults 0 0
Copy to Clipboard Copied! multipath を使用して initramfs ファイルシステムを再構築します。
dracut --force --add multipath
# dracut --force --add multipath
Copy to Clipboard Copied! - マシンをシャットダウンします。
- マシンを起動します。
- 他のパスがマシンから見えるようにする。
検証
スワップデバイスがマルチパスデバイス上にあるかどうかを確認します。
swapon -s
# swapon -s Filename Type Size Used Priority /dev/dm-3 partition 4169724 0 -2
Copy to Clipboard Copied! ファイル名は、マルチパススワップデバイスと一致させる必要があります。
readlink -f /dev/mapper/swapdev
# readlink -f /dev/mapper/swapdev /dev/dm-3
Copy to Clipboard Copied!
6.4. マルチパスデバイスのデバイスマッパーエントリーの特定
multipathd
コマンドを使用すると、マルチパスを設定したデバイスに一致するデバイスマッパーのエントリーを検出できます。
手順
すべてのデバイスマッパーデバイスを表示します。
multipathd show maps format "%n %d"
# multipathd show maps format "%n %d" name sysfs mpathd dm-4 mpathb dm-3 mpatha dm-2 mpathh dm-9
Copy to Clipboard Copied!
6.5. multipathd デーモンの管理
multipathd
コマンドを使用して、multipathd
デーモンを管理できます。
手順
multipathd show maps
コマンドの出力のデフォルトフォーマットを表示します。multipathd show maps
# multipathd show maps name sysfs uuid mpathc dm-0 360a98000324669436c2b45666c567942
Copy to Clipboard Copied! 一部の
multipathd
コマンドには、後にワイルドカードが付いたformat
オプションを含むものがあります。次のコマンドを実行すると、使用できるワイルドカードのリストを表示できます。multipathd show wildcards
# multipathd show wildcards multipath format wildcards: %n name %w uuid %d sysfs ...
Copy to Clipboard Copied! multipathd
が監視しているマルチパスデバイスを表示します。ワイルドカードを使用して、表示されるフィールドを指定します。multipathd show maps format "%n %w %d %s"
# multipathd show maps format "%n %w %d %s" name uuid sysfs vend/prod/rev mpathc 360a98000324669436c2b45666c567942 dm-0 NETAPP,LUN
Copy to Clipboard Copied! multipathd
が監視しているパスを表示します。ワイルドカードを使用して、表示されるフィールドを指定します。multipathd show paths format "%n %w %d %s"
# multipathd show paths format "%n %w %d %s" target WWNN uuid dev vend/prod/rev 0x50001fe1500d2250 3600508b4001080520001e00011700000 sdb HP,HSV210
Copy to Clipboard Copied! データを raw 形式で表示します。
multipathd show maps raw format "%n %w %d %s"
# multipathd show maps raw format "%n %w %d %s" mpathc 360a98000324669436c2b45666c567942 dm-0 NETAPP,LUN
Copy to Clipboard Copied! raw 形式ではヘッダーは出力されず、フィールドがパッディングされていないため、列とヘッダーが調整されていません。このため、出力はスクリプトで使いやすくなります。
第7章 ストレージデバイスの削除
実行中のシステムからストレージデバイスを安全に削除することで、システムメモリーのオーバーロードやデータ損失を防ぐことができます。次のシステムではストレージデバイスを削除しないでください。
- 空きメモリーが合計メモリーの 5 % 未満 (サンプル 100 件の内 10 件以上)。
-
スワップが有効になっている (
vmstat
コマンドの出力でsi
とso
のコラムが 0 以外の値)。
前提条件
I/O フラッシュ中にシステムメモリーの負荷が増加するため、ストレージデバイスを削除する前に、システムメモリーが十分にあることを確認する。システムの現在のメモリー負荷と空きメモリーを表示するには、次のコマンドを使用します。
vmstat 1 100 free
# vmstat 1 100 # free
Copy to Clipboard Copied!
7.1. ストレージデバイスの安全な削除
稼働中のシステムからストレージデバイスを安全に取り外すには、上から下へのアプローチが必要です。アプリケーションやファイルシステムなどの最上位層から始め、物理デバイスなどの最下位層に向かって作業を進めます。
ストレージデバイスは複数の方法で使用でき、物理デバイスの上層に別の仮想設定を指定できます。例えば、デバイスの複数のインスタンスをマルチパスデバイスにグループ化したり、RAID の一部にしたり、LVM グループの一部にしたりすることが可能です。さらに、デバイスはファイルシステムを介してアクセスすることもできるし、"raw” デバイスのように直接アクセスすることもできます。
上から下へのアプローチを用いながら、次のことを確認する必要があります。
- 削除したいデバイスが使用中でないこと
- デバイスへの保留中の I/O がすべてフラッシュされる
- オペレーティングシステムがストレージデバイスを参照していない
7.2. ブロックデバイスと関連メタデータの削除
実行中のシステムからブロックデバイスを安全に削除するには、システムメモリーのオーバーロードとデータ損失を防ぐために、最初にブロックデバイスからメタデータを削除する必要があります。ファイルシステムから始めて、スタック内の各レイヤーに対処し、ディスクに進みます。これらのアクションにより、システムが不整合な状態になるのを防ぎます。
削除するデバイスの種類に応じて、特定のコマンドを使用します。
-
LVM の場合は、
lvremove
、vgremove
、pvremove
を実行します。 -
ソフトウェア RAID の場合、
mdadm
を実行してアレイを削除します。詳細は、RAID の管理 を参照してください。 - LUKS を使用して暗号化されたブロックデバイスの場合、特定の追加手順があります。次の手順は、LUKS を使用して暗号化されたブロックデバイスでは機能しません。詳細は、LUKS を使用したブロックデバイスの暗号化 を参照してください。
SCSI バスを再びスキャンしたり、ここで説明されている手順に従わずにオペレーティングシステムを変更する別のアクションを実行すると、I/O タイムアウトが原因で遅延が発生したり、デバイスやデータが予期せず削除されたりする可能性があります。
前提条件
- ファイルシステム、論理ボリューム、およびボリュームグループを含む既存のブロックデバイススタックがある。
- 削除するデバイスを他のアプリケーションやサービスが使用していないことを確認した。
- 削除するデバイスからデータをバックアップした。
オプション: マルチパスデバイスを削除する必要があり、そのパスデバイスにアクセスできない場合は、次のコマンドを実行してマルチパスデバイスのキューイングを無効にしておく。
multipathd disablequeueing map multipath-device
# multipathd disablequeueing map multipath-device
Copy to Clipboard Copied! 無効にすることで、デバイスの I/O が失敗し、デバイスを使用しているアプリケーションがシャットダウンできるようになります。
メタデータを含むデバイスを一度に 1 レイヤーずつ削除することで、ディスクに古い署名が残らないようにします。
手順
ファイルシステムをアンマウントします。
umount /mnt/mount-point
# umount /mnt/mount-point
Copy to Clipboard Copied! ファイルシステムを削除します。
wipefs -a /dev/vg0/myvol
# wipefs -a /dev/vg0/myvol
Copy to Clipboard Copied! /etc/fstab
ファイルにエントリーを追加して、ファイルシステムとマウントポイントの間の永続的な関連付けを作成した場合は、この時点で/etc/fstab
を編集してそのエントリーを削除します。削除するデバイスのタイプに応じて、次の手順に進みます。
ファイルシステムを含む論理ボリューム (LV) を削除します。
lvremove vg0/myvol
# lvremove vg0/myvol
Copy to Clipboard Copied! ボリュームグループ (VG) に他の論理ボリュームが残っていない場合は、デバイスを含む VG を安全に削除できます。
vgremove vg0
# vgremove vg0
Copy to Clipboard Copied! 物理ボリューム (PV) メタデータを PV デバイスから削除します。
pvremove /dev/sdc1
# pvremove /dev/sdc1
Copy to Clipboard Copied! wipefs -a /dev/sdc1
# wipefs -a /dev/sdc1
Copy to Clipboard Copied! PV が含まれていたパーティションを削除します。
parted /dev/sdc rm 1
# parted /dev/sdc rm 1
Copy to Clipboard Copied! デバイスを完全に消去する場合は、パーティションテーブルを削除します。
wipefs -a /dev/sdc
# wipefs -a /dev/sdc
Copy to Clipboard Copied! デバイスを物理的に取り外す場合にのみ、次の手順を実行します。
マルチパスデバイスを削除する場合は,次のコマンドを実行します。
デバイスへの全パスを表示します。
multipath -l
# multipath -l
Copy to Clipboard Copied! このコマンドの出力は、後のステップで必要になります。
I/O をフラッシュして、マルチパスデバイスを削除します。
multipath -f multipath-device
# multipath -f multipath-device
Copy to Clipboard Copied!
デバイスがマルチパスデバイスとして設定されていない場合や、デバイスがマルチパスデバイスとして設定されていて、過去に I/O を個別のパスに渡している場合は、未処理の I/O を、使用されている全デバイスパスにフラッシュします。
blockdev --flushbufs device
# blockdev --flushbufs device
Copy to Clipboard Copied! この操作は、
umount
コマンドまたはvgreduce
コマンドで I/O がフラッシュされないデバイスに直接アクセスする場合に重要になります。SCSI デバイスを取り外す場合は、以下のコマンドを実行します。
-
システム上のアプリケーション、スクリプト、またはユーティリティーで、
/dev/sd
、/dev/disk/by-path
、またはmajor:minor
番号など、デバイスのパスベースの名前への参照をすべて削除します。参照を削除することで、今後追加される別のデバイスが現在のデバイスと混同されないようにします。 SCSI サブシステムからデバイスへの各パスを削除します。
echo 1 > /sys/block/device-name/device/delete
# echo 1 > /sys/block/device-name/device/delete
Copy to Clipboard Copied! デバイスが以前にマルチパスデバイスとして使用されていた場合、
device-name
は、multipath -l
コマンドの出力からの内容に置き換えます。
-
システム上のアプリケーション、スクリプト、またはユーティリティーで、
- 稼働中のシステムから物理デバイスを削除します。このデバイスを削除しても、他のデバイスへの I/O は停止しないことに注意してください。
検証
削除したデバイスが
lsblk
コマンドの出力に表示されないことを確認します。出力例を以下に示します。lsblk
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 5G 0 disk sr0 11:0 1 1024M 0 rom vda 252:0 0 10G 0 disk |-vda1 252:1 0 1M 0 part |-vda2 252:2 0 100M 0 part /boot/efi `-vda3 252:3 0 9.9G 0 part /
Copy to Clipboard Copied!
第8章 DM Multipath のトラブルシューティング
マルチパス設定の実装に問題がある場合は、さまざまな項目を確認できます。マルチパス設定の反応が遅かったり、機能しない場合は、以下の問題が原因として考えられます。
- マルチパスデーモンが実行していない
-
マルチパス設定の実装に問題がある場合は、DM Multipath の設定 の説明に従って、
multipathd
デーモンが実行されていることを確認してください。マルチパスが設定されているデバイスを使用するには、multipathd
デーモンを実行しておく必要があります。 queue_if_no_path
機能に関する問題-
マルチパスデバイスが
features "1 queue_if_no_path"
オプションで設定されている場合は、1 つ以上のパスが復元されるまで、I/O を発行するすべてのプロセスがハングアップします。
8.1. queue_if_no_path 機能に関する問題のトラブルシューティング
マルチパスデバイスが features "1 queue_if_no_path"
オプションで設定されている場合は、1 つ以上のパスが復元されるまで、I/O を発行するすべてのプロセスがハングアップします。これを回避するには、/etc/multipath.conf
ファイルに no_path_retry N
パラメーターを設定します (N はシステムでパスを再試行する回数に置き換えます)。
上記の問題なしで features "1 queue_if_no_path"
オプションを使用する場合は、すべてのパスが使用できない特定の LUN に対して、実行時にキューイングポリシーを無効にすることができます。
手順
キューイングを無効にします。
特定のデバイスの場合:
multipathd disablequeueing map device
# multipathd disablequeueing map device
Copy to Clipboard Copied! すべてのデバイスの場合:
multipathd disablequeueing maps
# multipathd disablequeueing maps
Copy to Clipboard Copied! キューイングを無効にすると、
multipathd
を再起動または再読み込みするまで、無効のままになります。
キューイングを以前の値にリセットします。
特定のデバイスの場合:
multipathd restorequeueing map device
# multipathd restorequeueing map device
Copy to Clipboard Copied! すべてのデバイスの場合:
multipathd restorequeueing maps
# multipathd restorequeueing maps
Copy to Clipboard Copied!
8.2. multipathd 対話式コンソールでトラブルシューティング
multipathd -k
コマンドは、multipathd
デーモンに対する対話式のインターフェイスです。このコマンドを実行すると対話式のマルチパスコンソールが立ち上がります。このコマンドを実行した後、help
を入力すると、利用可能なコマンドのリストが表示され、Ctrl+D を押すと終了できます。
multipathd
対話型コンソールを使用して、システムで発生した問題のトラブルシューティングを行います。
手順
コンソールを終了する前に、デフォルト値を含むマルチパス設定を表示します。
multipathd -k
# multipathd -k multipathd> show config multipathd> Ctrl+D
Copy to Clipboard Copied! マルチパスが
multipath.conf
ファイルへの変更をすべて反映するようにします。multipathd -k
# multipathd -k multipathd> reconfigure multipathd> Ctrl+D
Copy to Clipboard Copied! パスチェッカーが正常に動作していることを確認します。
multipathd -k
# multipathd -k multipathd> show paths multipathd> Ctrl+D
Copy to Clipboard Copied! また、対話型コンソールを起動せずに、コマンドラインから直接 1 つの
multipathd
対話型コマンドを実行することも可能です。たとえば、マルチパスがmultipath.conf
ファイルへの変更をすべて反映することを確認するには、次のコマンドを実行します。multipathd reconfigure
# multipathd reconfigure
Copy to Clipboard Copied!
第9章 eh_deadline を使用したストレージエラーからの回復における最大時間の設定
障害が発生した SCSI デバイスを復旧するのに許容できる最大時間を設定できます。この設定は、ストレージハードウェアが不具合により応答しなくなっても、I/O 応答時間を保証します。
9.1. eh_deadline パラメーター
SCSI エラー処理 (EH) メカニズムは、障害が発生した SCSI デバイスでエラーからの復旧の実行を試行します。SCSI ホストオブジェクト eh_deadline
パラメーターでは、復旧時間の最大量を設定できます。設定した時間が過ぎると、SCSI EH は、ホストバスアダプター (HBA) 全体を停止してリセットします。
eh_deadline
を使用すると、以下のいずれかの時間を短縮できます。
- エラーのあるパスのシャットオフ
- パスの切り替え
- RAID スライスの無効化
eh_deadline
が過ぎると、SCSI EH は HBA をリセットします。これは、エラーが発生しているものだけでなく、HBA 上のすべてのターゲットパスに影響します。一部の冗長パスがその他の理由により利用できない場合は、I/O エラーが発生する可能性があります。すべてのターゲットでマルチパスが設定されている場合にのみ、eh_deadline
を有効にします。また、マルチパスデバイスが完全に冗長でない場合は、no_path_retry
がパスの回復を可能にするのに十分な大きさに設定されていることを確認する必要があります。
eh_deadline
パラメーターの値は秒単位で指定されます。デフォルト設定は off
で、時間制限が無効になり、すべてのエラー復旧が行われるようになります。
eh_deadline が便利なシナリオ
多くの場合、eh_deadline
を有効にする必要はありません。eh_deadline
を使用すると、特定のシナリオで役立つ場合があります。たとえば、ファイバーチャネル (FC) スイッチとターゲットポート間でリンクが失われ、HBA が Registered State Change Notifications (RSCN) を受信しない場合などです。このような場合、I/O 要求やエラーからの復旧コマンドは、エラーに遭遇することなく、すべてタイムアウトになります。この環境で eh_deadline
を設定すると、リカバリー時間に上限が課せられます。これにより、DM Multipath により、利用できる別のパスで不具合の発生した I/O の再試行が可能になります。
以下の条件下では、eh_deadline
パラメーターは、これ以上のメリットをもたらしません。その理由は、DM Multipath の再試行を可能にする I/O とエラー復旧コマンドがすぐに失敗するためです。
- RSCN が有効になっている場合
- HBA が利用できなくなっているリンクを登録しない場合
9.2. eh_deadline パラメーターの設定
eh_deadline
パラメーターの値を設定することで、SCSI 最大復旧時間を制限できます。
手順
eh_deadline
は、以下のいずれかの方法で設定できます。multpath.conf
ファイルのdefaults
セクションmultpath.conf
ファイルの defaults セクションから、eh_deadline
パラメーターを必要な秒数に設定します。eh_deadline 300
# eh_deadline 300
Copy to Clipboard Copied! 注記RHEL 8.4 以降、
multpath.conf
ファイルの defaults セクションを使用してeh_deadline
パラメーターを設定することが推奨されます。このメソッドで
eh_deadline
パラメーターをオフにするには、eh_deadline
をoff
に設定します。sysfs
/sys/class/scsi_host/host<host-number>/eh_deadline
ファイルに秒数を書き込みます。たとえば、SCSI ホスト 6 のsysfs
を介してeh_deadline
パラメーターを設定するには、次のようにします。echo 300 > /sys/class/scsi_host/host6/eh_deadline
# echo 300 > /sys/class/scsi_host/host6/eh_deadline
Copy to Clipboard Copied! このメソッドで
eh_deadline
パラメーターをオフにするには、echooff
を使用します。カーネルパラメーター
すべての SCSI HBA のデフォルト値は
scsi_mod.eh_deadline
カーネルパラメーターを使用して設定します。echo 300 > /sys/module/scsi_mod/parameters/eh_deadline
# echo 300 > /sys/module/scsi_mod/parameters/eh_deadline
Copy to Clipboard Copied! このメソッドで
eh_deadline
パラメーターをオフにするには、echo-1
を使用します。