【RHEL 7】Device Mapper Multipath の設定について

インフラサーバ

マルチパス機能について

サーバとストレージとの間に SAN (Storage Area Network) を構築している場合、サーバとストレージとの間の通信経路(パス)が複数存在する場合がある。

ストレージへのパスを制御する機能として、Red Hat Enterprise Linux においては Device Mapper Multipath (DM Multipath) という機能がある。

DM Multipath の構成要素

  • dm_multipath カーネルモジュール
    • I/O を再ルーティングして、パス群とパスグループのフェイルオーバーをサポートする
  • mpathconf ユーティリティー
    • デバイスマッパーのマルチパスを設定し、有効化する
  • multipath コマンド
    • マルチパスデバイスを表示、設定する
  • multipathd デーモン
    • パスを監視する
    • パスに障害が発生し復旧した際、パスグループスイッチを起動できる
  • kpartx コマンド
    • デバイス上のパーティション用にデバイスマッパーデバイスを作成する
    • DM Multipath の DOS ベースパーティションの場合はこのコマンドを使用する必要がある

関連パッケージ

  • device-mapper-multipath
    • Red Hat Enterprise Linux 7.3 では、インストール時のベース環境が
      • 「最小限のインストール」 ⇒ インストールされていない
      • 「サーバー(GUI 使用)」 ⇒ インストールされている
  • kpartx
    • Red Hat Enterprise Linux 7.3 ではインストール時のベース環境が「最小限のインストール」でもインストールされている

マルチパスデバイスについて

DM Multipath を使用しない場合、サーバーノードからストレージコントローラーへの各パスの先にあるストレージは、それぞれ別々のデバイスとして扱われる。

DM Multipath はこれらの複数のデバイスをまとめて一つのデバイスを作成する。この作成されたデバイスのことをマルチパスデバイスと呼ぶ。

新しいデバイスを DM-Multipath の管理下に置くと、/dev ディレクトリ配下の /dev/mapper/mpathn と /dev/dm-n の 2 ヶ所に表示される。

  • /dev/mapper のデバイスは起動プロセスの初期段階で作成され、論理ボリュームの作成時など、マルチパス設定したデバイスへのアクセスに使用される
  • /dev/dm-n 形式のデバイスはすべて内部的な使用を目的としているため、管理者は絶対に使用しないこと

DM Multipath の設定

作業環境

  • Red Hat Enterprise Linux 7.3

パッケージインストール

パッケージがインストールされていない場合は以下コマンドでインストール。

yum -y install device-mapper-multipath kpartx

設定ファイルの作成

  • 設定ファイルは  /etc/multipath.conf
  • /etc/multipath.conf はデフォルトでは存在しない
  • /etc/multipath.conf のテンプレートファイルとして /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf が存在する

/etc/multipath.conf が存在しない状態で以下コマンドを実行すると、デフォルトの /etc/multipath.conf が作成される。

mpathconf --enable

デフォルトの設定ファイルの内容は以下の通り。(コメントアウト部分は省略)

defaults {
        user_friendly_names yes
        find_multipaths yes
}

設定ファイルの編集

設定ファイルを編集する方法としては以下の2つがある。

  • 設定ファイルを直接編集する
  • mpathconf ユーティリティーを使用する

mpathconf ユーティリティーを使用した場合も、結局は設定ファイルが編集されることになるので、直接設定ファイルを編集するほうがわかりやすいかも。

デフォルトの設定値

DM Multipath では、マルチパスで最も一般的に使用する設定値としてデフォルト値が設定されている。

設定ファイルに記載されている項目については設定ファイルに記載されている値が優先される。

デフォルト値一覧については以下のいずれかのコマンドで確認できる。

  • multipathd show config
  • multipath -t

設定ポリシー

  • 設定ファイルで指定するのは、使用状況に応じて必要とされるセクションや、デフォルト値の変更が必要なセクションのみ
  • 使用環境には無関係なセクションや、デフォルト値を無効にする必要がないセクションは、初期ファイルに指定されているコメントアウトを削除する必要はない
  • 設定ファイルでは、正規表現の記述構文を使用できる

設定項目

設定ファイルの内容は、セクションとオプションの階層構造になっている。セクションの中にセクションが入る場合もある。

セクション {
        オプション 値
        ...
}

セクション {
        セクション {
                オプション 値
                ...
        }
        ...
}

...

すべての設定項目の説明は以下コマンドで確認できる。

man multipath.conf

セクションとしては以下がある。

  • defaults セクション
    • DM Multipath のデフォルトの全般設定
  • multipaths セクション
    • マルチパスデバイスの特性に関する個別設定
  • devices セクション
    • ストレージデバイスの個別設定
  • blacklist セクション
    • マルチパス設定の対象として考慮しないデバイスの一覧
  • blacklist_exceptions セクション
    • ブラックリストの例外としてマルチパス設定の対象となるデバイスの一覧

defaults、multipaths、devices セクションの優先順位は以下の通り。

  1. multipath セクション
  2. devices セクション
  3. defaults セクション

defaults セクション

設定ファイルのテンプレートにコメントで以下のようなサンプルが記載されているので、必要に応じて部分的にコピーして使用することができる。

#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
#}

  • polling_interval オプション
    • パスチェックが行われる間隔を秒数で指定
    • デフォルト:5
  • path_selector オプション
    • 次回の I/O 動作に使用するパスを決定する、デフォルトのアルゴリズムを次の3つから指定
    • round-robin 0
      • パスグループ内の全てのパスをループスルーし、それぞれのパスに同負荷の I/O を送る
    • queue-length 0
      • 未処理の I/O 要求数が最も少ないパスに、次の I/O 群を送る
    • service-time 0
      • 推定処理時間が最も短いパスに、次の I/O 群を送る
    • デフォルト:service-time 0
  • path_grouping_policy オプション
    • 未指定のマルチパスに適用する、デフォルトのパスグルーピングポリシーを次の5つから指定
    • failover
      • 優先グループごとに 1 つのパス
    • multibus
      • 1 つの優先グループ内で有効なすべてのパス
    • group_by_serial
      • 検出されたシリアル番号ごとに 1 つの優先グループ
    • group_by_prio
      • パス優先値ごとに 1 つの優先グループ
    • group_by_node_name
      • ターゲットノード名ごとに 1 つの優先グループ
    • デフォルト:failover
  • uid_attribute オプション
    • 固有のパス識別子を指定
    • デフォルト:ID_SERIAL
  • prio オプション
    • パスの優先値を得るために呼び出すデフォルトの関数を次の7つから指定
    • const
      • すべてのパスに優先度 1 を設定
    • emc
      • EMC アレイのパス優先度を生成
    • alua
      • SCSI-3 ALUA 設定に基づいてパス優先度を生成
    • ontap
      • NetApp アレイのパスの優先度を生成
    • rdac
      • LSI/Engenio RDAC コントローラーのパスの優先度を生成
    • hp_sw
      • active/standby モードにおける Compaq/HP コントローラー用パスの優先度を生成
    • hds
      • Hitachi HDS Modular ストレージアレイのパスの優先度を生成
    • デフォルト:const
  • path_checkerオ プション
    • パスの状態を判断するのに使用するデフォルトの関数を次の6つから指定
    • readsector0
      • デバイスの最初のセクターを読み取る
    • tur
      • デバイスに対して TEST UNIT READY コマンドを発行
    • emc_clariion
      •  EMC Clariion 固有の EVPDページ 0xC0 の問い合わせを行い、パスを特定
    • hp_sw
      • Active/Standby のファームウェアを搭載した HP ストレージアレイのパスの状態をチェック
    • rdac
      • LSI/Engenio RDAC ストレージコントローラーのパスの状態をチェック
    • directio
      • 直接 I/O を使用する最初のセクターを読み取る
    • デフォルト:directio
  • rr_min_io オプション
    • 現在のパスグループで、次のパスに切り替えるまでにルーティングする I/O 要求数を指定
    • デフォルト:1000
  • max_fds オプション
    • マルチパスおよび multipathd デーモンで開くことが可能な、オープンファイル記述子の最大数を指定
    • デフォルト:max (/proc/sys/fs/nr_open に記述されたシステムの上限)
  • rr_weight オプション
    • priorities
      • 次のパスを選択する selector を呼び出すまでに送信する要求数の決定に rr_min_io を使用しない
    • uniform
      • 全てのパスの重みが等しくなる
    • デフォルト:uniform
  • failback オプション
    • パスグループのフェイルバックを次の4つから指定
    • immediate
      • active パスを含んでいる最も優先度の高いパスグループに直ちにフェイルバックする
    • manual
      • フェイルバックはすぐに行われず、オペレーター介入がある場合のみにフェイルバックする
    • followover
      • パスグループの最初のパスが active になったときに自動フェイルバックする
    • 「0」以上の数値
      • フェイルバックの秒単位の遅延を指定
    • デフォルト:manual
  • no_path_retry オプション
    • 障害の発生したパスの使用を何回試行してからキュー待ちを無効にするか、その回数を指定
    • fail
      • キュー待ちはせず直ちに失敗とする
    • queue
      • パスが復旧するまでキュー待ちを行う
    • デフォルト:queue
  • user_friendly_names オプション
    • yes
      • マルチパスデバイスの名前が mpath n になる
    • no
      • マルチパスデバイスの名前が WWID になる
    • デフォルト:yes
  • find_multipaths オプション
    • yes ⇒ マルチパスによるデバイスの作成が、以下の 3 つの条件のうちのいずれかを満たす場合に限られる
      • ブラックリストに指定されておらず、同一の WWID を持つパスが少なくとも 2 つある場合
      • 手動で multipath コマンドを実行して、デバイスを指定して作成を強制している場合
      • 任意のパスが、以前に作成されたマルチパスデバイスと同一の WWID を持っている場合 
    • デフォルト:yes

multipaths セクション

設定ファイルのテンプレートにコメントで以下のようなサンプルが記載されているので、必要に応じて部分的にコピーして使用することができる。

#multipaths {
#       multipath {
#               wwid                    3600508b4000156d700012000000b0000
#               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
#       }
#}

  • wwid オプション
    • multipath 属性を適用するマルチパスデバイスの WWID を指定
    • multipaths セクションに必須
  • alias オプション
    • multipath 属性が適用されるマルチパスデバイスのシンボリック名を指定
  • その他
    • defaults セクションと同様

devices セクション

ストレージデバイスごとの設定を指定する。

設定ファイルのテンプレートにコメントで以下のようなサンプルが記載されているので、必要に応じて部分的にコピーして使用することができる。

#devices {
#       device {
#               vendor                  "COMPAQ  "
#               product                 "HSV110 (C)COMPAQ"
#               path_grouping_policy    multibus
#               path_checker            readsector0
#               path_selector           "round-robin 0"
#               hardware_handler        "0"
#               failback                15
#               rr_weight               priorities
#               no_path_retry           queue
#       }
#       device {
#               vendor                  "COMPAQ  "
#               product                 "MSA1000         "
#               path_grouping_policy    multibus
#       }
#}

  • vendor オプション
    • device 属性が適用されるストレージデバイスのベンダー名を指定
  • product オプション
    • device 属性が適用されるストレージデバイスの製品名を指定
  • hardware_handler オプション
    • パスグループの切り替えや I/O エラーの処理時に、ハードウェア固有の動作を行うのに使用するモジュールを次の4つから指定
    • 1 emc
      • EMC ストレージアレイ用のハードウェアハンドラー
    • 1 alua
      •  SCSI-3 ALUA アレイ用のハードウェアハンドラー
    • 1 hp_sw
      • Compaq/HP コントローラー用のハードウェアハンドラー
    • 1 rdac
      • LSI/Engenio RDAC コントローラー用のハードウェアハンドラー
  • その他
    • defaults セクションと同様

blacklist セクション

システムがマルチパスデバイスを設定する際に使用しないデバイスを指定する。ブラックリストに指定したデバイスは、マルチパスデバイスには含まれない。

  • find_multipaths パラメーターを yes に設定した場合、複数のパスがあるがマルチパスを設定しないデバイスだけをブラックリストに指定する必要がある
    • このため一般的にはデバイスをブラックリストに指定する必要はない

ブラックリスト指定する方法としては以下がある。

  • WWID で指定する
    • wwid WWID
  • デバイス名で指定する
    • devnode "device-name"
  • デバイスタイプで指定する
    • 以下のように blacklist セクションの中に device セクションを記載して指定する
blacklist {
       device {
               vendor  "IBM"
               product "3S42"       #DS4200 Product 10
       }
       device {
               vendor  "HP"
               product "*"
       }
}

  • udev プロパティーで指定する(Red Hat Enterprise Linux 7.5 以上)
    • property "property"
  • デバイスプロトコルで指定する(Red Hat Enterprise Linux 7.5 以上)
    • protocol "protocol"

blacklist_exceptions セクション

ブラックリストに記載されているが、ブラックリストから除外したいデバイスを指定する。

複数のデバイスが存在する場合に、すべてをブラックリストに追加して、マルチパスを有効にしたいデバイスのみ除外する、といった使用方法が想定される。

デバイスの指定方法は blacklist セクションと同様。

multipathd の起動と有効化

systemctl start multipathd.service
systemctl enable multipathd.service

設定変更の反映

multipathd の起動後に設定ファイルの編集を行った場合、設定変更を反映させるためには以下コマンドで設定ファイルの再読み込みを行う必要がある。

systemctl reload multipathd.service

multipath コマンドのオプション

マルチパスデバイスを表示、設定する multipath コマンドには以下のようなオプションがある。

  • -l
    • sysfs から収集した現在のマルチパス設定とデバイスマッパーを表示する
  • -ll
    • sysfs から収集した現在のマルチパス設定、デバイスマッパー、使用可能な全システムコンポーネントを表示する
  • -f device
    • 指定されたマルチパスデバイスを削除する
  • -F
    • 不要なマルチパスデバイスをすべて削除する
  • -w device
    • 指定したデバイスの wwid を、wwids ファイルから削除する
  • -W
    • 現在のマルチパスデバイスのみを組み込むように、wwids ファイルをリセットする

【参考】マルチパス設定のデフォルト値

[root@rhel ~]# multipath -t
defaults {
	verbosity 2
	polling_interval 5
	max_polling_interval 20
	reassign_maps "yes"
	multipath_dir "/lib64/multipath"
	path_selector "service-time 0"
	path_grouping_policy "failover"
	uid_attribute "ID_SERIAL"
	prio "const"
	prio_args ""
	features "0"
	path_checker "directio"
	alias_prefix "mpath"
	failback "manual"
	rr_min_io 1000
	rr_min_io_rq 1
	max_fds 1048576
	rr_weight "uniform"
	queue_without_daemon "no"
	flush_on_last_del "no"
	user_friendly_names "yes"
	fast_io_fail_tmo 5
	bindings_file "/etc/multipath/bindings"
	wwids_file /etc/multipath/wwids
	prkeys_file /etc/multipath/prkeys
	log_checker_err always
	find_multipaths yes
	retain_attached_hw_handler no
	detect_prio no
	detect_path_checker no
	hw_str_match no
	force_sync no
	deferred_remove no
	ignore_new_boot_devs no
	skip_kpartx no
	config_dir "/etc/multipath/conf.d"
	delay_watch_checks no
	delay_wait_checks no
	retrigger_tries 3
	retrigger_delay 10
	missing_uev_wait_timeout 30
	new_bindings_in_boot no
	remove_retries 0
	disable_changed_wwids no
	unpriv_sgio no
	ghost_delay no
	all_tg_pt no
	marginal_path_err_sample_time no
	marginal_path_err_rate_threshold no
	marginal_path_err_recheck_gap_time no
	marginal_path_double_failed_time no
}
blacklist {
	devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
	devnode "^(td|hd|vd)[a-z]"
	devnode "^dcssblk[0-9]*"
	device {
		vendor "DGC"
		product "LUNZ"
	}
	device {
		vendor "EMC"
		product "LUNZ"
	}
	device {
		vendor "IBM"
		product "Universal Xport"
	}
	device {
		vendor "IBM"
		product "S/390.*"
	}
	device {
		vendor "DELL"
		product "Universal Xport"
	}
	device {
		vendor "LENOVO"
		product "Universal Xport"
	}
	device {
		vendor "SGI"
		product "Universal Xport"
	}
	device {
		vendor "STK"
		product "Universal Xport"
	}
	device {
		vendor "SUN"
		product "Universal Xport"
	}
	device {
		vendor "(NETAPP|LSI|ENGENIO)"
		product "Universal Xport"
	}
}
blacklist_exceptions {
}
devices {
	device {
		vendor "COMPELNT"
		product "Compellent Vol"
		path_grouping_policy "multibus"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "const"
		failback immediate
		rr_weight "uniform"
		no_path_retry "queue"
	}
	device {
		vendor "APPLE*"
		product "Xserve RAID "
		path_grouping_policy "multibus"
		path_checker "directio"
		features "0"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
	}
	device {
		vendor "3PARdata"
		product "VV"
		path_grouping_policy "group_by_prio"
		path_selector "service-time 0"
		path_checker "tur"
		features "0"
		hardware_handler "1 alua"
		prio "alua"
		failback immediate
		rr_weight "uniform"
		no_path_retry 18
		fast_io_fail_tmo 10
		dev_loss_tmo "infinity"
	}
	device {
		vendor "DEC"
		product "HSG80"
		path_grouping_policy "group_by_prio"
		path_checker "hp_sw"
		features "1 queue_if_no_path"
		hardware_handler "1 hp_sw"
		prio "hp_sw"
		rr_weight "uniform"
	}
	device {
		vendor "HP"
		product "A6189A"
		path_grouping_policy "multibus"
		path_checker "directio"
		features "0"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
		no_path_retry 12
	}
	device {
		vendor "(COMPAQ|HP)"
		product "(MSA|HSV)1.0.*"
		path_grouping_policy "group_by_prio"
		path_checker "hp_sw"
		features "1 queue_if_no_path"
		hardware_handler "1 hp_sw"
		prio "hp_sw"
		rr_weight "uniform"
		no_path_retry 12
		rr_min_io 100
	}
	device {
		vendor "(COMPAQ|HP)"
		product "MSA VOLUME"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "alua"
		failback immediate
		rr_weight "uniform"
		no_path_retry 12
		rr_min_io 100
	}
	device {
		vendor "(COMPAQ|HP)"
		product "HSV1[01]1|HSV2[01]0|HSV3[046]0|HSV4[05]0"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "alua"
		failback immediate
		rr_weight "uniform"
		no_path_retry 12
		rr_min_io 100
	}
	device {
		vendor "HP"
		product "MSA2[02]12fc|MSA2012i"
		path_grouping_policy "multibus"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "const"
		failback immediate
		rr_weight "uniform"
		no_path_retry 18
		rr_min_io 100
	}
	device {
		vendor "HP"
		product "MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "alua"
		failback immediate
		rr_weight "uniform"
		no_path_retry 18
		rr_min_io 100
	}
	device {
		vendor "HP"
		product "MSA (1|2)040 SA(N|S)"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "alua"
		failback immediate
		rr_weight "uniform"
		no_path_retry 18
		rr_min_io 100
	}
	device {
		vendor "HP"
		product "HSVX700"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "0"
		hardware_handler "1 alua"
		prio "alua"
		failback immediate
		rr_weight "uniform"
		no_path_retry 12
		rr_min_io 100
	}
	device {
		vendor "HP"
		product "LOGICAL VOLUME.*"
		path_grouping_policy "multibus"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
		no_path_retry 12
	}
	device {
		vendor "HP"
		product "P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "alua"
		failback immediate
		rr_weight "uniform"
		no_path_retry 18
		rr_min_io 100
	}
	device {
		vendor "DDN"
		product "SAN DataDirector"
		path_grouping_policy "multibus"
		path_checker "directio"
		features "0"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
	}
	device {
		vendor "EMC"
		product "SYMMETRIX"
		path_grouping_policy "multibus"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
		no_path_retry 6
	}
	device {
		vendor "DGC"
		product ".*"
		product_blacklist "LUNZ"
		path_grouping_policy "group_by_prio"
		path_checker "emc_clariion"
		features "1 queue_if_no_path"
		hardware_handler "1 emc"
		prio "emc"
		failback immediate
		rr_weight "uniform"
		no_path_retry 60
		retain_attached_hw_handler yes
		detect_prio yes
		detect_path_checker yes
	}
	device {
		vendor "EMC"
		product "Invista"
		product_blacklist "LUNZ"
		path_grouping_policy "multibus"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
		no_path_retry 5
	}
	device {
		vendor "FSC"
		product "CentricStor"
		path_grouping_policy "group_by_serial"
		path_checker "directio"
		features "0"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
	}
	device {
		vendor "FUJITSU"
		product "ETERNUS_DX(H|L|M|400|8000)"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "1 queue_if_no_path"
		hardware_handler "0"
		prio "alua"
		failback immediate
		rr_weight "uniform"
		no_path_retry 10
	}
	device {
		vendor "(HITACHI|HP)"
		product "OPEN-.*"
		path_grouping_policy "multibus"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
	}
	device {
		vendor "HITACHI"
		product "DF.*"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "1 queue_if_no_path"
		hardware_handler "0"
		prio "hds"
		failback immediate
		rr_weight "uniform"
	}
	device {
		vendor "IBM"
		product "ProFibre 4000R"
		path_grouping_policy "multibus"
		path_checker "directio"
		features "0"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
	}
	device {
		vendor "IBM"
		product "^1722-600"
		product_blacklist "Universal Xport"
		path_grouping_policy "group_by_prio"
		path_checker "rdac"
		features "1 queue_if_no_path"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
		no_path_retry 300
	}
	device {
		vendor "IBM"
		product "^1724"
		product_blacklist "Universal Xport"
		path_grouping_policy "group_by_prio"
		path_checker "rdac"
		features "1 queue_if_no_path"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
		no_path_retry 300
	}
	device {
		vendor "IBM"
		product "^1726"
		product_blacklist "Universal Xport"
		path_grouping_policy "group_by_prio"
		path_checker "rdac"
		features "1 queue_if_no_path"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
		no_path_retry 300
	}
	device {
		vendor "IBM"
		product "^1742"
		product_blacklist "Universal Xport"
		path_grouping_policy "group_by_prio"
		path_checker "rdac"
		features "0"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
		no_path_retry "queue"
	}
	device {
		vendor "IBM"
		product "^1745|^1746"
		product_blacklist "Universal Xport"
		path_grouping_policy "group_by_prio"
		path_checker "rdac"
		features "2 pg_init_retries 50"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
		no_path_retry 15
	}
	device {
		vendor "IBM"
		product "^1814"
		product_blacklist "Universal Xport"
		path_grouping_policy "group_by_prio"
		path_checker "rdac"
		features "0"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
		no_path_retry "queue"
	}
	device {
		vendor "IBM"
		product "^1815"
		product_blacklist "Universal Xport"
		path_grouping_policy "group_by_prio"
		path_checker "rdac"
		features "0"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
		no_path_retry "queue"
	}
	device {
		vendor "IBM"
		product "^1818"
		product_blacklist "Universal Xport"
		path_grouping_policy "group_by_prio"
		path_checker "rdac"
		features "0"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
		no_path_retry "queue"
	}
	device {
		vendor "IBM"
		product "^3526"
		product_blacklist "Universal Xport"
		path_grouping_policy "group_by_prio"
		path_checker "rdac"
		features "0"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
		no_path_retry "queue"
	}
	device {
		vendor "IBM"
		product "^3542"
		path_grouping_policy "group_by_serial"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
	}
	device {
		vendor "IBM"
		product "^2105800"
		path_grouping_policy "group_by_serial"
		path_checker "tur"
		features "1 queue_if_no_path"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
	}
	device {
		vendor "IBM"
		product "^2105F20"
		path_grouping_policy "group_by_serial"
		path_checker "tur"
		features "1 queue_if_no_path"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
	}
	device {
		vendor "IBM"
		product "^1750500"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "1 queue_if_no_path"
		hardware_handler "0"
		prio "alua"
		failback immediate
		rr_weight "uniform"
	}
	device {
		vendor "IBM"
		product "^2107900"
		path_grouping_policy "multibus"
		path_checker "tur"
		features "1 queue_if_no_path"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
	}
	device {
		vendor "IBM"
		product "^2145"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "1 queue_if_no_path"
		hardware_handler "0"
		prio "alua"
		failback immediate
		rr_weight "uniform"
	}
	device {
		vendor "IBM"
		product "S/390 DASD ECKD"
		product_blacklist "S/390.*"
		path_grouping_policy "multibus"
		uid_attribute "ID_UID"
		path_checker "directio"
		features "1 queue_if_no_path"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
	}
	device {
		vendor "IBM"
		product "S/390 DASD FBA"
		product_blacklist "S/390.*"
		path_grouping_policy "multibus"
		uid_attribute "ID_UID"
		path_checker "directio"
		features "1 queue_if_no_path"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
	}
	device {
		vendor "IBM"
		product "^IPR.*"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "1 queue_if_no_path"
		hardware_handler "1 alua"
		prio "alua"
		failback immediate
		rr_weight "uniform"
	}
	device {
		vendor "IBM"
		product "1820N00"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "alua"
		failback immediate
		rr_weight "uniform"
		no_path_retry "queue"
		rr_min_io 100
	}
	device {
		vendor "IBM"
		product "2810XIV"
		path_grouping_policy "multibus"
		path_checker "tur"
		features "1 queue_if_no_path"
		hardware_handler "0"
		prio "const"
		failback 15
		rr_weight "uniform"
		rr_min_io 15
	}
	device {
		vendor "AIX"
		product "VDASD"
		path_grouping_policy "multibus"
		path_checker "directio"
		features "0"
		hardware_handler "0"
		prio "const"
		failback immediate
		rr_weight "uniform"
		no_path_retry 60
	}
	device {
		vendor "IBM"
		product "3303      NVDISK"
		path_grouping_policy "failover"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "const"
		failback immediate
		rr_weight "uniform"
		no_path_retry 60
	}
	device {
		vendor "AIX"
		product "NVDISK"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "0"
		hardware_handler "1 alua"
		prio "alua"
		failback immediate
		rr_weight "uniform"
		no_path_retry 60
	}
	device {
		vendor "DELL"
		product "^MD3"
		product_blacklist "Universal Xport"
		path_grouping_policy "group_by_prio"
		path_checker "rdac"
		features "2 pg_init_retries 50"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
		no_path_retry 30
	}
	device {
		vendor "LENOVO"
		product "DE_Series"
		product_blacklist "Universal Xport"
		path_grouping_policy "group_by_prio"
		path_checker "rdac"
		features "2 pg_init_retries 50"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		no_path_retry 30
	}
	device {
		vendor "NETAPP"
		product "LUN.*"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "3 queue_if_no_path pg_init_retries 50"
		hardware_handler "0"
		prio "ontap"
		failback immediate
		rr_weight "uniform"
		rr_min_io 128
		flush_on_last_del "yes"
		dev_loss_tmo "infinity"
		user_friendly_names no
		retain_attached_hw_handler yes
		detect_prio yes
	}
	device {
		vendor "NEXENTA"
		product "COMSTAR"
		path_grouping_policy "group_by_serial"
		path_checker "directio"
		features "1 queue_if_no_path"
		hardware_handler "0"
		prio "const"
		failback immediate
		rr_weight "uniform"
		no_path_retry 30
		rr_min_io 128
	}
	device {
		vendor "IBM"
		product "Nseries.*"
		path_grouping_policy "group_by_prio"
		path_checker "directio"
		features "1 queue_if_no_path"
		hardware_handler "0"
		prio "ontap"
		failback immediate
		rr_weight "uniform"
		rr_min_io 128
	}
	device {
		vendor "Pillar"
		product "Axiom.*"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "alua"
		rr_weight "uniform"
	}
	device {
		vendor "SGI"
		product "TP9[13]00"
		path_grouping_policy "multibus"
		path_checker "directio"
		features "0"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
	}
	device {
		vendor "SGI"
		product "TP9[45]00"
		product_blacklist "Universal Xport"
		path_grouping_policy "group_by_prio"
		path_checker "rdac"
		features "0"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
		no_path_retry "queue"
	}
	device {
		vendor "SGI"
		product "IS.*"
		product_blacklist "Universal Xport"
		path_grouping_policy "group_by_prio"
		path_checker "rdac"
		features "2 pg_init_retries 50"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
		no_path_retry 15
	}
	device {
		vendor "NEC"
		product "DISK ARRAY"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "0"
		hardware_handler "1 alua"
		prio "alua"
		failback immediate
		rr_weight "uniform"
	}
	device {
		vendor "STK"
		product "OPENstorage D280"
		product_blacklist "Universal Xport"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "0"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
	}
	device {
		vendor "SUN"
		product "(StorEdge 3510|T4)"
		path_grouping_policy "multibus"
		path_checker "directio"
		features "0"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
	}
	device {
		vendor "SUN"
		product "STK6580_6780"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "0"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
	}
	device {
		vendor "EUROLOGC"
		product "FC2502"
		path_grouping_policy "group_by_prio"
		path_checker "directio"
		features "0"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
	}
	device {
		vendor "PIVOT3"
		product "RAIGE VOLUME"
		path_grouping_policy "multibus"
		path_checker "tur"
		features "1 queue_if_no_path"
		hardware_handler "0"
		prio "const"
		rr_weight "uniform"
		rr_min_io 100
	}
	device {
		vendor "SUN"
		product "CSM200_R"
		product_blacklist "Universal Xport"
		path_grouping_policy "group_by_prio"
		path_checker "rdac"
		features "0"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
		no_path_retry "queue"
	}
	device {
		vendor "SUN"
		product "LCSM100_[IEFS]"
		product_blacklist "Universal Xport"
		path_grouping_policy "group_by_prio"
		path_checker "rdac"
		features "0"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
		no_path_retry "queue"
	}
	device {
		vendor "SUN"
		product "SUN_6180"
		path_grouping_policy "group_by_prio"
		path_checker "rdac"
		features "0"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
		no_path_retry "queue"
		rr_min_io 1000
		rr_min_io_rq 1
	}
	device {
		vendor "(NETAPP|LSI|ENGENIO)"
		product "INF-01-00"
		product_blacklist "Universal Xport"
		path_grouping_policy "group_by_prio"
		path_checker "rdac"
		features "2 pg_init_retries 50"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
		no_path_retry 30
		retain_attached_hw_handler yes
		detect_prio yes
	}
	device {
		vendor "STK"
		product "FLEXLINE 380"
		product_blacklist "Universal Xport"
		path_grouping_policy "group_by_prio"
		path_checker "rdac"
		features "0"
		hardware_handler "1 rdac"
		prio "rdac"
		failback immediate
		rr_weight "uniform"
		no_path_retry "queue"
	}
	device {
		vendor "Intel"
		product "Multi-Flex"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "0"
		hardware_handler "1 alua"
		prio "alua"
		failback immediate
		rr_weight "uniform"
		no_path_retry "queue"
	}
	device {
		vendor "DataCore"
		product "SANmelody"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "alua"
		failback immediate
		rr_weight "uniform"
		no_path_retry "queue"
	}
	device {
		vendor "DataCore"
		product "Virtual Disk"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "alua"
		failback immediate
		rr_weight "uniform"
		no_path_retry "queue"
	}
	device {
		vendor "NFINIDAT"
		product "InfiniBox.*"
		path_grouping_policy "group_by_prio"
		path_selector "round-robin 0"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "alua"
		failback 30
		rr_weight "priorities"
		no_path_retry "fail"
		flush_on_last_del "yes"
		dev_loss_tmo 30
	}
	device {
		vendor "Nimble"
		product "Server"
		path_grouping_policy "group_by_prio"
		path_selector "round-robin 0"
		path_checker "tur"
		features "1 queue_if_no_path"
		hardware_handler "1 alua"
		prio "alua"
		failback immediate
		dev_loss_tmo "infinity"
	}
	device {
		vendor "XtremIO"
		product "XtremApp"
		path_grouping_policy "multibus"
		path_selector "queue-length 0"
		path_checker "directio"
		features "0"
		hardware_handler "0"
		prio "const"
		failback immediate
		fast_io_fail_tmo 15
	}
	device {
		vendor "PURE"
		product "FlashArray"
		path_grouping_policy "multibus"
		path_selector "queue-length 0"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "const"
		failback immediate
		fast_io_fail_tmo 10
		dev_loss_tmo 60
		user_friendly_names no
	}
	device {
		vendor "HUAWEI"
		product "XSG1"
		path_grouping_policy "group_by_prio"
		path_checker "tur"
		features "0"
		hardware_handler "0"
		prio "alua"
		failback immediate
		dev_loss_tmo 30
	}
	device {
		vendor "NVME"
		product ".*"
		uid_attribute "ID_WWN"
		path_checker "none"
		detect_prio yes
	}
	device {
		vendor "NVME"
		product "^EMC PowerMax_"
		path_grouping_policy "multibus"
		uid_attribute "ID_WWN"
		path_checker "none"
		prio "const"
	}
}
multipaths {
}

参考資料

DM Multipath Red Hat Enterprise Linux 7 | Red Hat Customer Portal
本ガイドは、Red Hat Enterprise Linux 7 で Device Mapper Multipath を使用する方法について説明しています。

―――――――――――――

タイトルとURLをコピーしました