Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.5. 設定ファイルデバイス

表4.3「デバイス属性」 は、multipath.conf 設定ファイルの devices セクションにあるそれぞれの個別ストレージデバイス用に設定できる属性を示しています。デバイスを含むパス用の multipath.conf ファイルの multipaths セクションで指定される属性によって上書きされない限り、これらの属性は DM-Multipath によって使用されます。これらの属性は multipath.conf ファイルの defaults セクションに設定されている属性を上書きします。
マルチパス化に対応する多くのデバイスは、マルチパス設定にデフォルトで含まれています。デフォルトでサポートされているデバイスの値は multipath.conf.defaults ファイルに一覧表示されます。おそらくこれらのデバイスの値を変更する必要はありませんが、変更する場合は、デフォルト値を上書きするデバイス用の設定ファイルにエントリーを 1 つ含めます。デバイスの multipath.conf.defaults ファイルからデバイス設定のデフォルトをコピーし、変更したい値を上書きすることができます。
デフォルトで自動的に設定されていないデバイスを設定ファイルのこのセクションに追加するには、vendorproduct のパラメーターを設定する必要があります。これらの値は、/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
指定する追加のパラメーターは、個々のデバイスによって異なります。デバイスがアクティブ/アクティブの場合は、通常追加のパラメーターを設定する必要はありません。path_grouping_policymultibus に設定することもできます。設定する必要のある他のパラメーターには、表4.3「デバイス属性」 で説明されているように no_path_retryrr_min_io があります。
デバイスがアクティブ/パッシブである場合に、I/O を持つパス群が自動的にパッシブパスに切り替わる場合は、チェッカーの関数を、I/O をパスに送信しない関数に変更してから、作動することをテストする必要があります (そうしない場合、デバイスはフェイルオーバーを続けます)。これは、path_checker がほとんど常に tur に設定されることを意味します。この方法は「Test Unit Ready」コマンドをサポートするすべての SCSI デバイスで機能します。大半のデバイスは、このコマンドをサポートしています。

表4.3 デバイス属性

属性説明
vendor device 属性が適用されるストレージデバイスのベンダー名 (例: COMPAQ) を指定します。
product device 属性が適用されるストレージデバイスの製品名 (例: HSV110 (C)COMPAQ) を指定します。
revision ストレージデバイスの製品リビジョン識別子を指定します。
product_blacklist 製品別にデバイスをブラックリスト化するために使用する正規表現を指定します。
hardware_handler
パスグループの切り替え、または I/O エラーの処理時にハードウェア特有の動作を実行するのに使用するモジュールを指定します。使用できる値は以下のとおりです。
1 emc: EMC ストレージアレイ用のハードウェアハンドラーです。
1 alua: SCSI-3 ALUA アレイ用のハードウェアハンドラーです。
1 hp_sw: Compaq/HP コントローラー用のハードウェアハンドラーです。
1 rdac: LSI/Engenio RDAC コントローラー用のハードウェアハンドラーです。
path_grouping_policy
未指定のマルチパスに適用するデフォルトのパスグルーピングポリシーを指定します。使用できる値は以下のようになります。
failover = 優先グループごとに 1 つのパス
multibus = 1 つの優先グループ内のすべてのパスが有効
group_by_serial = 検出されたシリアル番号ごとに 1 つの優先グループ
group_by_prio = パス優先値ごとに 1 つの優先グループ
group_by_node_name = ターゲットノード名ごとに 1 つの優先グループ
getuid_callout 一意のパス識別子を取得するためにコールアウトするデフォルトのプログラムと引数を指定します。絶対パスが必要です。
path_selector
次の I/O 操作に使用するパスを決定するのに使うデフォルトアルゴリズムを指定します。使用できる値には以下が含まれます。
round-robin 0: パスグループ内のすべてのパスをループスルーを実行し、それぞれに同量の I/O を送ります。
queue-length 0: 未処理の I/O 要求数が最も少ないパスに、次の I/O 群を送ります。
service-time 0: 各パスに対する未処理の I/O 全体のサイズを相対スループットで割ることによって求められるサービス時間が最も短いパスに、次の I/O 群を送ります。
path_checker
パスの状態を判断するのに使用されるデフォルトのメソッドを指定します。使用できる値は以下のとおりです。
readsector0: デバイスの最初のセクターを読み取ります。
tur: デバイスに対して TEST UNIT READY を発行します。
emc_clariion: EMC Clariion 固有のEVPDページ 0xC0 のクエリーを実行し、パスを判別します。
hp_sw: アクティブ/スタンバイのファームウェアを搭載した HP ストレージアレイのパスの状態をチェックします。
rdac: LSI/Engenio RDAC ストレージコントローラーのパスの状態をチェックします。
directio: 直接 I/O を使用する最初のセクターを読み取ります。
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 層がハードウェアハンドラーを接続していない場合、マルチパスは通常の方法で設定したハードウェアハンドラーを継続して使用します。
pg_init_retries n: 失敗するまでパスグループの初期化を最高 n 回再試行します。ここで、1 <= n <= 50 です。
pg_init_delay_msecs n: パスグループの初期化の再試行の間隔として n ミリ秒待機します。ここで、0 <= n <= 60000 です。
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 ストレージアレイのパスの優先度を生成します。
failback
パスグループのフェイルバックを管理します。
immediate の値は、アクティブパスを含む、最も優先度の高いパスグループに対する即時フェイルバックを指定します。
manual の値は、即時フェイルバックを不可能にし、オペレーターの介入がある場合のみにフェイルバックが発生する可能性があるように指定します。
followover の値は、パスグループの最初のパスがアクティブになる時点で自動フェイルバックが実行されるように指定します。これによって、他のノードがフェイルオーバーを要求した際に、ノードが自動的にフェイルバックしないようにします。
「0」よりも大きい数値は、フェイルバックの遅延を秒単位で指定します。
rr_weight priorities に設定されている場合は、次のパスを選択するために path_selector を呼び出す前に rr_min_io の要求をパスに送信する代わりに、送信する要求の数は rr_min_io に、prio 関数で決定されるパスの優先度を掛けることで求められます。uniform に設定されている場合、すべてのパスの重みは等しくなります。
no_path_retry
この属性の数値は、キューを無効にするまでに、システムが障害の発生したパスの使用を試行する回数を指定します。
fail の値は、キューなしの即時の失敗を示します。
queue の値は、パスが修復されるまでキューが停止されないことを示します。
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 です。
fast_io_fail_tmo FC リモートポート上での問題の検出後に、そのリモートポート上でデバイスへの I/O に失敗するまでの scsi 層の待機時間の秒数です。この値は dev_loss_tmo よりも小さくすることをお勧めします。これを off に設定すると、タイムアウトが無効になります。
dev_loss_tmo FC リモートポート上での問題の検出後に、システムから削除されるまでの scsi 層の待機時間 (秒) です。この値を無制限に設定するには 2147483647 秒または 68 年に設定します。
flush_on_last_del yes に設定されている場合、 multipathd デーモンは、デバイスへの最後のパスが削除される際にキューを無効にします。
user_friendly_names yes に設定されている場合、システムが /etc/multipath/bindings ファイルを使用して、マルチパスへの永続的で一意のエイリアスを mpathn の形式で割り当てるように指定します。no に設定されている場合、システムが WWID をマルチパスのエイリアスとして使用するように指定します。いずれの場合も、ここで指定される内容は、設定ファイルの multipaths セクションで指定するデバイス特有のエイリアスで上書きされます。デフォルト値は no です。
retain_attached_hw_handler (Red Hat Enterprise Linux リリース 6.4 以降) このパラメーターが yes に設定されており、scsi 層がハードウェアハンドラーをパスデバイスにすでに接続している場合、マルチパスはデバイスに対して、multipath.conf で指定されている hardware_handler を強制的に使用させることはありません。scsi 層がハードウェアハンドラーを接続していない場合、マルチパスは通常の方法で設定したハードウェアハンドラーを継続して使用します。
detect_prio (Red Hat Enterprise Linux リリース 6.4 以降) これが yes に設定されている場合、マルチパスは、まずデバイスが ALUA に対応しているかチェックされます。対応している場合、alua prioritizer をデバイスに割り当てます。デバイスが ALUA に対応していない場合は通常通りに prioritizer を判別します。
以下の例は、マルチパス設定ファイル内の device エントリーを示しています。
#	}
#	device {
#		vendor			"COMPAQ  "
#		product			"MSA1000         "
#		path_grouping_policy	multibus
#		path_checker		tur
#		rr_weight		priorities
#	}
#}