第4章 DM Multipath 設定ファイルの編集
DM Multipath では、マルチパスで最も一般的に使用する設定値がデフォルトで提供されています。また DM Multipath に対応する最も一般的なストレージアレイが DM Multipath に含まれています。対応しているデバイスなどのデフォルトの設定値は、以下のいずれかのコマンドを実行して確認してください。
#multipathd show config
#multipath -t
DM-Multipath のデフォルトの設定値は、/etc/multipath.conf
設定ファイルを編集するとオーバーライドできます。必要な場合は、デフォルトでは対応していないストレージアレイを設定ファイルに追加することもできます。
initramfs
ファイルシステムでマルチパスの設定を行うことができます。initramfs
ファイルシステムからマルチパスを実行してマルチパスの設定ファイルを変更した場合は、initramfs
ファイルシステムを再構築して変更を有効にする必要があります。
マルチパス設定ファイルで指定するのは、使用状況に応じて必要とされるセクションや、デフォルト値の変更が必要なセクションのみです。使用環境には無関係なファイルのセクションや、デフォルト値を無効にする必要がないファイルのセクションでは、初期ファイルに指定されているコメントアウトを削除する必要はありません。
設定ファイルでは、正規表現の記述構文を使用できます。
設定ファイルの詳細は、man ページの multipath.conf
(5) を参照してください。
4.1. 設定ファイルの概要
マルチパス設定ファイルは以下のセクションに分かれています。
- blacklist
- マルチパス設定の対象として考慮しないデバイスの一覧。
- blacklist_exceptions
- この例外セクションに指定されていなければ、blacklist セクションのパラメーターに従ってブラックリストに指定されるマルチパスの候補になる一覧。
- defaults
- DM Multipath のデフォルトの全般設定。
- multipaths
-
マルチパスデバイスの特性に関する個別設定。ここで指定する値は、設定ファイルの
overrides
、devices
、およびdefaults
のセクションで指定されている値より優先されます。 - devices
-
ストレージコントローラーの個別設定。ここで指定する値は、設定ファイル内の
defaults
セクションで指定されている値より優先されます。デフォルトでは対応していないストレージアレイを使用している場合は、そのアレイ用のdevices
サブセクションを作成する必要があります。 - overrides
-
すべてのデバイスに適用される設定。ここで指定する値は、設定ファイルの
devices
セクションおよびdefaults
セクションで指定されている値より優先されます。
システムがマルチパスデバイスの属性を決定するとき、まずマルチパス設定をチェックし、次にデバイス設定をチェックしてから、マルチパスシステムのデフォルトを確認します。
4.2. DM Multipath がデバイスタイムアウトの上書き
recovery_tmo
sysfs
オプションは、特定の iSCSI デバイスのタイムアウトを制御します。次のオプションは、システム全体の recovery_tmo
値を上書きします。
-
replacement_timeout
設定オプションは、システム全体で全 iSCSI デバイスのrecovery_tmo
値を上書きします。 DM Multipath が管理するすべての iSCSI デバイスで、DM Multipath の
fast_io_fail_tmo
オプションは、システム全体のrecovery_tmo
値を上書きします。DM Multipath の
fast_io_fail_tmo
オプションは、ファイバーチャネルデバイスのfast_io_fail_tmo
オプションを上書きします。
DM Multipath の fast_io_fail_tmo
オプションは replacement_timeout
よりも優先します。Red Hatでは、replacement_timeout
を使用して、DM Multipathが管理するデバイスの recovery_tmo
を上書きすることは推奨しません。これは、multipathd
サービスが再読み込みを行うと、DM Multipathが常に recovery_tmo
をリセットするためです。
4.3. DM Multipath のデバイスのブラックリスト
マルチパス設定ファイルの blacklist
セクションには、システムがマルチパスデバイスを設定する際に使用しないデバイスを指定します。ブラックリストに指定したデバイスは、マルチパスデバイスには含まれません。
find_multipaths
設定パラメーターを off
に設定すると、マルチパスは明示的にブラックリストに指定していないパスに対して常にマルチパスデバイスを作成しようとします。find_multipaths
設定パラメーターを on
に設定すると、以下の 3 つの条件のいずれかが満たされた場合に限り、マルチパスによりデバイスが作成されます。
- ブラックリストに指定されておらず、同一の 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: /3600d0230000000000e13955cc3757802/ /3600d0230000000000e13955cc3757801/ /3600d0230000000000e13955cc3757800/ /3600d02300069c9ce09d41c31f29d4c00/ /SWINSYS SF2372 0E13955CC3757802/ /3600d0230000000000e13955cc3757803/
find_multipaths
には、on
と off
以外に以下の値を設定することもできます。
-
strict
- マルチパスは、マルチパス化されていなかったパスを許可しないため、そのパスは/etc/multipath/wwids
ファイルに記載されていません。 -
smart
- マルチパスは常に udev のブラックリストに指定されていないデバイスを許可しますが、find_multipaths_timeout
パラメーターで設定されたタイムアウト期間内にmultipathd
がデバイスを作成しないとそのクレームをデバイス上で解放します。find_multipaths_timeout
パラメーターの詳細は、man ページのmultipath.conf
(5) を参照してください。
find_multipaths
の組み込みデフォルト値は off
です。ただし、mpathconf
により作成されたデフォルトの multipath.conf
ファイルは、find_multipaths
の値を on
に設定します。
find_multipaths
に設定できる値の詳細は、man ページの multipath.conf
(5) を参照してください。
find_multipaths
パラメーターを on
に設定した場合は、マルチパス化しない複数のパスを持つデバイスのみをブラックリストに指定する必要があります。そのため、通常はデバイスをブラックリストに指定する必要がありません。
デバイスをブラックリストに指定する必要がある場合は、WWID、デバイス名、デバイスタイプ、プロパティー、およびプロコトルでデバイスをブラックリストに指定できます。各デバイスで、この 5 つの基準は「property、devnode、device、protocol、wwid」の順に評価されます。いずれかの基準によりデバイスがブラックリストに指定されていることが判明した場合は、multipathd
により処理から除外され、それ以降の基準は評価されません。各基準において、デバイスがホワイトリストとブラックリストの両方に一致した場合は、ホワイトリストが優先されます。
デフォルトでは、設定ファイルの初期ブラックリストセクションをコメントアウトした後でも、各種のデバイスタイプがブラックリストに指定されます。詳細は「デバイス名でブラックリストの指定」を参照してください。
4.3.1. WWID でブラックリストの指定
設定ファイルの blacklist
セクションで wwid
エントリーを使用し、World-Wide IDentification でデバイスをブラックリストに指定できます。
以下の例では、WWID が 26353900f02796769 であるデバイスをブラックリストに指定します。
blacklist { wwid 26353900f02796769 }
4.3.2. デバイス名でブラックリストの指定
設定ファイルの blacklist
セクションで devnode
エントリーを使用し、デバイス名でデバイスタイプをブラックリストに指定し、マルチパスデバイスに含まれないようにできます。
以下の例では、sd* のデバイスをすべてブラックリストに指定することで、すべての SCSI デバイスをブラックリストに指定します。
blacklist { devnode "^sd[a-z]" }
blacklist
セクションで devnode
エントリーを使用すると、特定タイプに該当する全デバイスではなく、個々のデバイスをブラックリストに指定できます。ただし、デバイスが udev
ルールで静的にマッピングされていない限り、再起動後にそのデバイス名が同じ名前になる保証がないため、この方法は推奨できません。たとえば、システムが再起動するとデバイス名が /dev/sda
から /dev/sdb
に変わる可能性があります。
デフォルトでは、以下の devnode
エントリーがデフォルトのブラックリストにコンパイルされています。このエントリーによりブラックリストに指定されるデバイスは、通常 DM Multipath をサポートしません。このようなデバイスでマルチパスを有効にするには、「ブラックリストの例外」の説明に従って、設定ファイルの blacklist_exceptions
セクションにデバイスを指定する必要があります。
blacklist { devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" devnode "^(td|ha)d[a-z]" }
4.3.3. デバイスタイプでブラックリストの指定
設定ファイルの blacklist
セクションに特定のデバイスタイプを指定するには、device
セクションを使用します。以下の例では、IBM DS4200 デバイスと HP デバイスをすべてブラックリストに指定します。
blacklist { device { vendor "IBM" product "3S42" #DS4200 Product 10 } device { vendor "HP" product ".*" } }
4.3.4. udev プロパティーでブラックリストの指定
multipath.conf
設定ファイルの blacklist
セクションおよび blacklist_exceptions
セクションは property
パラメーターに対応します。このパラメーターを使用すると、ユーザーは特定タイプのデバイスをブラックリストに指定できます。property
パラメーターは、デバイスの udev
環境変数名と照合される正規表現の文字列を取ります。
以下の例は、udev プロパティー ID_ATA
を持つすべてのデバイスをブラックリストに指定します。
blacklist { property "ID_ATA" }
4.3.5. デバイスプロトコルでブラックリストの指定
protocol
セクションのある設定ファイルの blacklist
セクションに、マルチパス化から除外されるデバイスのプロトコルを指定できます。マルチパスが認識するプロトコル文字列は scsi:fcp、scsi:spi、scsi:ssa、scsi:sbp、scsi:srp、scsi:iscsi、scsi:sas、scsi:adt、scsi:ata、scsi:unspec、ccw、cciss、nvme、および undef です。パスが使用しているプロトコルを表示するには、multipathd show paths format "%d %P"
コマンドを実行します。
以下の例は、未定義のプロトコルまたは未知の SCSI トランスポートタイプを持つすべてのデバイスをブラックリストに指定します。
blacklist { protocol "scsi:unspec" protocol "undef" }
4.3.6. ブラックリストの例外
設定ファイルの blacklist_exceptions
セクションを使用すると、デフォルトではブラックリストに指定されているデバイスで、マルチパスを有効にできます。
たとえば、デバイスが多数あり、その中の 1 つのデバイス (以下の例では WWID が 3600d0230000000000e13955cc3757803 のデバイス) でのみマルチパスを有効にする場合は、有効にするデバイス以外のものを 1 つ 1 つブラックリストに指定するのではなく、一旦すべてのデバイスをブラックリストに指定してから、/etc/multipath.conf
ファイルに以下の行を追加します。これにより、必要なデバイスにのみマルチパスを許可できます。
blacklist { wwid ".*" } blacklist_exceptions { wwid "3600d0230000000000e13955cc3757803" }
設定ファイルの blacklist_exceptions
セクションでデバイスを指定する場合は、blacklist で指定したのと同じ方法で指定しなければなりません。たとえば、blacklist で devnode
エントリーを使用してデバイスを指定している場合は、exception で除外指定に使用している WWID が正しくても適用されません。同様に devnode
による除外は、devnode
エントリーでブラックリストを指定したデバイスにしか適用されず、device
による除外は、device エントリーでブラックリストを指定したデバイスにしか適用されません。
property
パラメーターの挙動は、他の blacklist_exception
パラメーターとは異なります。このパラメーターを設定した場合は、一致する udev
変数がデバイスに必要になります。この変数がないと、デバイスはブラックリストに指定されます。このパラメーターを使用すると、USB スティックやローカルハードドライブなど、マルチパスが無視する必要のある SCSI デバイスをブラックリストに登録できます。合理的にマルチパス化できる SCSI デバイスのみを許可するには、以下の例のようにこのパラメーターを SCSI_IDENT_|ID_WWN)
に設定します。
blacklist_exceptions { property "(SCSI_IDENT_|ID_WWN)" }
4.4. マルチパス設定ファイルのデフォルトの編集
/etc/multipath.conf
設定ファイルには defaults
セクションがあり、以下のように user_friendly_names
パラメーターを yes
に設定できます。
defaults { user_friendly_names yes }
上記は、user_friendly_names
パラメーターのデフォルト値を上書きします。
設定ファイルに 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 #}
設定パラメーターのデフォルト値を上書きする場合は、このテンプレートの該当行を defaults
セクションにコピーして、コメントを外します。たとえば、path_grouping_policy
パラメーターを、デフォルト値の failover
から multibus
に上書きするには、以下のように、テンプレートで該当行を見つけて設定ファイルの defaults
セクションにコピーし、そのコメントを外します。
defaults { user_friendly_names yes path_grouping_policy multibus }
multipath.conf
設定ファイルの defaults
セクションで設定される属性の詳細は、man ページの multipath.conf
(5) を参照してください。multipath.conf
ファイルの devices
セクション、multipaths
セクション、または overrides
セクションに指定された属性により上書きされた場合を除き、この値は DM Multipath により使用されます。
4.5. 特定デバイスのマルチパス設定の編集
multipath.conf
設定ファイルの multipaths
セクションにある属性は、指定された 1 つのマルチパスにのみ適用されます。このデフォルトは DM Multipath により使用され、multipath.conf
ファイルの overrides
セクション、defaults
セクション、および devices
セクションに設定された属性を上書きします。
multipath.conf
設定ファイルの defaults
セクションで設定される属性の詳細は、man ページの multipath.conf
(5) を参照してください。
設定ファイルで、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
}
}
4.6. ストレージコントローラーのマルチパス設定の編集
multipath.conf
設定ファイルの devices
セクションは、各ストレージデバイスの属性を設定します。デバイスを含むパスの multipath.conf
ファイルの multipaths
セクションまたは overrides
セクションに指定された属性により上書きされた場合を除き、これらの値は DM Multipath により使用されます。これらの属性は、multipath.conf
ファイルの defaults
セクションに設定された属性を上書きします。
multipath.conf
設定ファイルの devices
セクションで設定される属性の詳細は、man ページの multipath.conf
(5) を参照してください。
マルチパスに対応しているデバイスの多くは、デフォルトでマルチパスの設定に含まれています。対応デバイスなど、デフォルトの設定値は、次のいずれかのコマンドを実行して確認してください。
#multipathd show config
#multipath -t
おそらく、こうしたデバイスの値を修正する必要はありませんが、必要が生じた場合は、設定ファイルにエントリーを追加すればデフォルト値を上書きできます。multipathd show config
コマンドが表示する、目的のデバイスのデフォルト値をコピーして、変更する値に書き換えることができます。
設定ファイルのこのセクションに、デフォルトでは自動で設定されないデバイスを追加する場合は、vendor
パラメーターおよび product
パラメーターを設定する必要があります。以下の例のように、この値は /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
追加で指定するパラメーターは、使用するデバイスにより異なります。デバイスが 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 デバイスで機能します。Test Unit Ready コマンドは大半のデバイスで対応しています。
パスの切り替えに特殊なコマンドを必要とするデバイスにマルチパスを設定するには、ハードウェアハンドラーカーネルモジュールが必要になります。現在、利用可能なハードウェアハンドラーは emc
です。このハンドラーが目的のデバイスに使用できない場合は、そのデバイスにマルチパスを設定できない可能性があります。
マルチパス設定ファイルの device
エントリーの例を以下に示します。
# } # device { # vendor "COMPAQ " # product "MSA1000 " # path_grouping_policy multibus # path_checker tur # rr_weight priorities # } #}
4.7. すべてのデバイスへのマルチパス値の設定
multipath.conf
設定ファイルの overrides
セクションでは、すべてのデバイスの設定値を設定できます。たとえば、すべてのデバイスで no_path_retry
を fail
に設定できます。このセクションは、multipath.conf
設定ファイルの devices
セクションおよび defaults
セクションの両方で対応しているすべての属性に対応します。これは、vendor
、product
、および revision
以外のすべての devices
セクション属性になります。このデバイスを含むパスの multipath.conf
ファイルで、multipaths
セクションに指定された属性により上書きされた場合を除き、この属性はすべてのデバイスの DM Multipath により使用されます。この属性は、multipath.conf
ファイルの devices
セクションおよび defaults
セクションに設定された属性を上書きします。
multipath.conf
設定ファイルの devices
セクションおよび defaults
セクションで設定される属性の詳細は、man ページの multipath.conf
(5) を参照してください。
このページには機械翻訳が使用されている場合があります (詳細はこちら)。