4.3. 設定ファイルのデフォルト

/etc/multipath.conf 設定ファイルには、以下のように user_friendly_names パラメーターを yes に設定する defaults セクションが含まれています。
defaults {
        user_friendly_names yes
}
これは、user_friendly_names パラメーターのデフォルト値を上書きします。
設定ファイルには、設定デフォルトのテンプレートが含まれています。このセクションは以下のようにコメントアウトされています。
#defaults {
#       udev_dir                /dev
#       polling_interval        5
#       path_selector           "round-robin 0"
#       path_grouping_policy    failover
#       getuid_callout          "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
#	prio			const
#	path_checker		directio
#	rr_min_io		1000
#	rr_weight		uniform
#	failback		manual
#	no_path_retry		fail
#	user_friendly_names	no
#}
設定パラメーターのいずれかのデフォルト値を上書きするには、このテンプレートから該当する行を defaults セクションにコピーしてそのコメントを解除します。たとえば、path_grouping_policy パラメーターを上書きして failover のデフォルト値ではなく multibus にするには、そのテンプレートから該当する行を設定ファイルの始めにある defaults セクションにコピーして、以下のようにコメントを解除します。
defaults {
        user_friendly_names     yes
        path_grouping_policy    multibus
}
表4.1「マルチパス設定デフォルト」 は、multipath.conf 設定ファイルの defaults セクションに設定されている属性を説明しています。これらの値は、multipath.conf ファイルの devicesmultipaths セクション内に指定されている属性で上書きされない限り、DM-Multipath によって使用されます。

注記

Red Hat Enterprise Linux 6.0 リリース以降、modeuidgid パラメーターは非推奨となっています。デバイスマッパーデバイスのパーミッション (マルチパスマッピングも含む) は、udev ルールを使って設定します。/usr/share/doc/device-mapper-version 内に 12-dm-permissions.rules と呼ばれるテンプレートファイルがあります。これを使用して、/etc/udev/rules.d ディレクトリーに配置すると有効になります。

表4.1 マルチパス設定デフォルト

属性説明
polling_interval 2 つのパスチェックの間隔を秒単位で指定します。適正に機能するパスでは、チェックの間隔は、(4 * polling_interval) まで徐々に増加します。デフォルト値は 5 です。
udev_dir udev デバイスノードが作成されるディレクトリーです。デフォルト値は、/dev です。
multipath_dir 動的共有オブジェクトが保管されるディレクトリーです。デフォルト値はシステムに依存しており、一般的には/lib/multipath になります。
find_multipaths
マルチパスデバイスのセットアップ用のモードを定義します。このパラメーターが yes に設定されている場合、マルチパスは、ブラックリスト化されていないすべてのパスに対してデバイスの作成を試行するのではなく、以下にあげる 3 つの条件のいずれかを満たす場合のみ、デバイスを作成します。
- 同一の WWID を持つ、ブラックリスト化されていないパスが少なくとも 2 つある。
- multipath コマンドでデバイスを指定することにより、ユーザーがデバイスの手動作成を強制的に実行する。
- パスに以前に作成されたマルチパスデバイスと同一の WWID がある。find_multipaths が設定された状態でマルチパスデバイスが作成される場合は常に、マルチパスがそのデバイスの WWID を記憶するため、同一の WWID を持つパスを認識するとすぐに、デバイスを自動的に再作成します。これによって、マルチパスブラックリストを編集しなくても、マルチパスが自動的に正しいパスを選択してマルチパスデバイスにすることができます。find_multipaths パラメーターが設定されていない状態でマルチパスデバイスを作成した場合に従うべき手順についての説明は、「設定ファイルのブラックリスト」 を参照してください。
デフォルト値は no です。
verbosity デフォルトの詳細度です。値が高いほど、詳細度が高くなります。有効なレベルは 0 と 6 の間です。デフォルト値は 2 です。
path_selector
次の I/O 操作に使用するパスを決定するのに使うデフォルトアルゴリズムを指定します。使用できる値には以下が含まれます。
round-robin 0: パスグループ内のすべてのパスをループスルーを実行し、それぞれに同量の I/O を送ります。
queue-length 0: 未処理の I/O 要求数が最も少ないパスに、次の I/O 群を送ります。
service-time 0: 各パスに対する未処理の I/O 全体のサイズを相対スループットで割ることによって求められるサービス時間が最も短いパスに、次の I/O 群を送ります。
デフォルト値は round-robin 0 です。
path_grouping_policy
未指定のマルチパスに適用するデフォルトのパスグルーピングポリシーを指定します。使用できる値は以下のようになります。
failover: 優先グループごとに 1 つのパス
multibus: 1 つの優先グループ内のすべてのパスが有効
group_by_serial: 検出されたシリアル番号ごとに 1 つの優先グループ
group_by_prio: パス優先値ごとに 1 つの優先グループ。優先度はグローバル、コントローラー別、またはマルチパスオプション別に指定されているコールアウトプログラムによって決定されます。
group_by_node_name: ターゲットノード名ごとに 1 つの優先グループ。ターゲットノード名は /sys/class/fc_transport/target*/node_name 内で取得されます。
デフォルト値は failover です。
getuid_callout
一意のパス識別子を取得するためにコールアウトするデフォルトのプログラムと引数を指定します。絶対パスが必要です。
デフォルト値は /lib/udev/scsi_id --whitelisted --device=/dev/%n です。
prio
パスの優先値を取得するためにコールアウトするデフォルトの関数を指定します。たとえば、SPC-3 内の ALUA ビットは、利用可能な prio 値を提供します。使用できる値は以下のとおりです。
const: すべてのパスに優先度 1 を設定します。
emc: EMC アレイのパス優先度を生成します。
alua: SCSI-3 ALUA 設定に基づいて、パスの優先度を生成します。
tpg_pref: 優先ポートのビットを使用し、SCSI-3 ALUA に基づいて、パスの優先度を生成します。
ontap: NetApp アレイのパスの優先度を生成します。
rdac: LSI/Engenio RDAC コントローラーのパスの優先度を生成します。
hp_sw: アクティブ/スタンバイモードの Compaq/HP コントローラーのパスの優先度を生成します。
hds: Hitachi HDS Modular ストレージアレイのパスの優先度を生成します。
デフォルト値は const です。
features
以下の形式を使用した、マルチパスデバイスのデフォルトの追加機能です。 "number_of_features_plus_arguments feature1 ...".
features に使用できる値には以下が含まれます。
queue_if_no_path: これは no_path_retryqueue に設定することと同じです。この機能を使用する場合に発生する可能性のある問題についての情報は、「queue_if_no_path 機能での問題」 を参照してください。
retain_attached_hw_handler: (Red Hat Enterprise Linux リリース 6.4 以降) このパラメーターが yes に設定されており、scsi 層がハードウェアハンドラーをパスデバイスにすでに接続している場合、マルチパスは、デバイスに対して、multipath.conf ファイルで指定されている hardware_handler を強制的に使用させることはありません。scsi 層がハードウェアハンドラーを接続していない場合、マルチパスは通常の方法で設定したハードウェアハンドラーを継続して使用します。デフォルト値は no です。
pg_init_retries n: 失敗するまでパスグループの初期化を最高 n 回再試行します。ここで、1 <= n <= 50 です。
pg_init_delay_msecs n: パスグループの初期化の再試行の間隔として n ミリ秒待機します。ここで、0 <= n <= 60000 です。
path_checker
パスの状態を判断するのに使用されるデフォルトのメソッドを指定します。使用できる値は以下のとおりです。
readsector0: デバイスの最初のセクターを読み取ります。
tur: デバイスに対して TEST UNIT READY を発行します。
emc_clariion: EMC Clariion 固有のEVPDページ 0xC0 のクエリーを実行し、パスを判別します。
hp_sw: アクティブ/スタンバイのファームウェアを搭載した HP ストレージアレイのパスの状態をチェックします。
rdac: LSI/Engenio RDAC ストレージコントローラーのパスの状態をチェックします。
directio: 直接 I/O を使用する最初のセクターを読み取ります。
デフォルト値は directio です。
failback
パスグループのフェイルバックを管理します。
immediate の値は、アクティブパスを含む、最も優先度の高いパスグループに対する即時フェイルバックを指定します。
manual の値は、即時フェイルバックを不可能にし、オペレーターの介入がある場合のみにフェイルバックが発生する可能性があるように指定します。
followover の値は、パスグループの最初のパスがアクティブになる時点で自動フェイルバックが実行されるように指定します。これによって、他のノードがフェイルオーバーを要求した際に、ノードが自動的にフェイルバックしないようにします。
「0」よりも大きい数値は、フェイルバックの遅延を秒単位で指定します。
デフォルト値は manual です。
rr_min_io 現在のパスグループ内で次のパスに切り替える前に、パスにルーティングする I/O 要求の数を指定します。この設定は 2.6.31 より前のカーネルを実行しているシステムのみに有効です。これ以降の新しいシステムには rr_min_io_rq を使用してください。デフォルト値は 1000 です。
rr_min_io_rq 現在のパスグループ内で次のパスに切り替える前に、要求ベースの device-mapper-multipath を使用して、パスにルーティングする I/O 要求の数を指定します。この設定は、現在のカーネルを実行しているシステム上で使用してください。2.6.31 より前のカーネルを実行しているシステムでは、rr_min_io を使用してください。デフォルト値は 1 です。
rr_weight priorities に設定されている場合、次のパスを選択するために selector を呼び出す前に rr_min_io の要求をパスに送信する代わりに、送信する要求の数は rr_min_io に、prio 関数で決定されるパスの優先度を掛けることで求められます。uniform に設定されている場合、すべてのパスの重みは等しくなります。デフォルト値は uniform です。
no_path_retry
この属性の数値は、キューを無効にするまでに、システムが障害の発生したパスの使用を試行する回数を指定します。
fail の値は、キューなしの即時の失敗を示します。
queue の値は、パスが修復されるまでキューが停止されないことを示します。
デフォルト値は 0 です。
user_friendly_names yes に設定されている場合、システムが /etc/multipath/bindings ファイルを使用して、永続的で一意のエイリアスを mpathn の形式でマルチパスへ割り当てるように指定します。no に設定されている場合、システムが WWID をマルチパスのエイリアスとして使用する必要があることを指定します。いずれの場合も、ここでの指定は、設定ファイルの multipaths セクション内で指定するデバイス固有のエイリアスによって上書きされます。デフォルト値は no です。
queue_without_daemon no に設定されている場合、multipathd デーモンはシャットダウン時にすべてのデバイスのキューを無効にします。デフォルト値は no です。
flush_on_last_del yes に設定されている場合、 multipathd デーモンは、デバイスへの最後のパスが削除された際にキューを無効にします。デフォルト値は no です。
max_fds マルチパスおよび multipathd デーモンで開くことができるオープンファイル記述子の最大数を設定します。これは、ulimit -n コマンドに相当します。Red Hat Enterprise Linux 6.3 リリースの時点で、デフォルト値は max であり、これは /proc/sys/fs/nr_open でシステムの上限として設定されます。これまでのリリースでは、この値が設定されていないと、オープンファイル記述子の最大数は呼び出し元のプロセスから取得されます。通常の値は 1024 です。その値が 1024 を超える場合は、万一に備えてパスの最大値に 32 を加えた値に設定することをお勧めします。
checker_timeout prioritizer および明示的なタイムアウトによって SCSI コマンドを数秒で発行するパスチェッカーに使用するタイムアウトです。デフォルト値は sys/block/sdx/device/timeout から取得します。
fast_io_fail_tmo FC リモートポート上での問題の検出後に、そのリモートポート上でデバイスへの I/O に失敗するまでの scsi 層の待機時間の秒数です。この値は dev_loss_tmo よりも小さくすることをお勧めします。これを off に設定すると、タイムアウトが無効になります。デフォルト値は OS により決定されます。
dev_loss_tmo FC リモートポート上での問題の検出後に、それがシステムから削除されるまでの scsi 層の待機時間の秒数です。無限に設定するには 2147483647 秒または 68 年に設定します。デフォルト値は OS により決定されます。
hwtable_regex_match
(Red Hat Enterprise Linux Release 6.3 以降) 組み込まれたデバイス設定を使ってマルチパスが設定ファイルの devices セクションからデバイス設定を統合する方法を制御します。
multipath.conf ファイルの devices セクション内の各デバイス設定は、独自のデバイス設定を作成するか、または組み込まれたデバイス設定の 1 つを修正します。Red Hat Enterprise Linux 6.3 より前のバージョンでは、ユーザーのデバイス設定内のベンダー、製品、およびリビジョン文字列が組み込まれたデバイス設定のそれらの文字列に完全に一致する場合、組み込まれた設定はユーザー設定内のオプションにより修正されていました。そうでない場合は、ユーザーのデバイス設定は新しい設定として処理されていました。
hwtable_regex_matchyes に設定されると、正規表現の一致が代わりに使用されます。ベンダー、製品、およびリビジョン文字列はすべて正規表現です。これらのオプションのユーザーデバイス設定値は、組み込まれたデバイス設定値と一致します。この一致は、実際のデバイスのベンダー製品とリビジョン文字列がデバイス設定の文字列と一致するのと同様に機能し、これによりデバイスに使用する必要のある設定を確認できます。ユーザーのデバイス設定が一致する場合は、組み込まれた設定はユーザー設定のオプションにより修正されます。そうでない場合は、ユーザーのデバイス設定は新しい設定として扱われます。
retain_attached_hw_handler (Red Hat Enterprise Linux リリース 6.4 以降) このパラメーターが yes に設定されており、scsi 層がハードウェアハンドラーをパスデバイスにすでに接続している場合、マルチパスはデバイスに対して multipath.conf で指定される hardware_handler を強制的に使用させることはありません。scsi 層がハードウェアハンドラーを接続していない場合、マルチパスは通常の方法で設定したハードウェアハンドラーを継続して使用します。デフォルト値は no です。
detect_prio (Red Hat Enterprise Linux リリース 6.4 以降) これが yes に設定されている場合、マルチパスは、まずデバイスが ALUA に対応しているかをチェックします。対応している場合は、alua prioritizer をデバイスに割り当てます。デバイスが ALUA に対応していない場合は通常通りに prioritizer を判別します。デフォルト値は no です。
replace_wwid_whitespace (Red Hat Enterprise Linux リリース 6.5 以降) これが yes に設定されている場合、このパラメーターを使用するすべてのデバイスのデフォルトの getuid_callout は、--replace-whitespace を含むように変更されます。
reload_readwrite (Red Hat Enterprise Linux リリース 6.5 以降) これが yes に設定されている場合、multipathd デーモンがパスデバイス変更イベントをリッスンし、デバイスが読み取り/書き込みになると、マルチパスデバイスをリロードします。
force_sync (Red Hat Enterprise Linux Release 6.6 以降) これが「yes」に設定されている場合、パスチェッカーが非同期モードで実行されるのを防ぎます。