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 には、onoff 以外に以下の値を設定することもできます。

  • 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)"
}

このページには機械翻訳が使用されている場合があります (詳細はこちら)。