web-dev-qa-db-ja.com

Linuxマルチパス:単一のマルチバスパスグループを構成する方法

機能しているUbuntu 16.04ホストを18.04にアップグレードしたところ、マルチパスに問題が発生しました。

パッケージのバージョン:* multipath-tools 0.7.4-2ubuntu3 * open-iscsi 2.0.874-5ubuntu2.7

ホストへのパスが4つあるDell PowerVault MD3860iを持っています。アップグレード前は、multipath -llは次のようになっています。

backupeng (3600a098000b5efae00000e9a5b9b58f5) dm-2 Dell,MD38xxi
size=8.0T features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 3:0:0:1 sdb 8:16 active ready running
  |- 4:0:0:1 sdc 8:32 active ready running
  |- 5:0:0:1 sdd 8:48 active ready running
  `- 6:0:0:1 sde 8:64 active ready running

これは次のようになります。

backupeng (3600a098000b5efae00000e9a5b9b58f5) dm-2 Dell,MD38xxi
size=8.0T features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 rdac' wp=rw
|-+- policy='round-robin 0' prio=14 status=active
| |- 5:0:0:1 sdd 8:48 active ready running
| `- 6:0:0:1 sde 8:64 active ready running
`-+- policy='round-robin 0' prio=9 status=enabled
  |- 3:0:0:1 sdb 8:16 active ready running
  `- 4:0:0:1 sdc 8:32 active ready running

私の/etc/multipath.confは次のようになります:

defaults {
    user_friendly_names yes
    path_selector "round-robin 0"
    path_grouping_policy multibus
}

multipaths {
    multipath {
        wwid 3600a098000b5efae00000e9a5b9b58f5
        alias backupeng
    }
}

パフォーマンス上の理由から、以前と同じように、すべてのパスを同じパスグループに含める必要があります。私の理解は、path_grouping_policy multibusがこれを行うことになっているということです。 multipathdを再起動し、ホスト上でiscsiおよびmultipath configsを最初から設定するなど、過去数時間試行しました。

multipathd -k-> show configの完全な出力を貼り付けることができますが、そこに表示されているのは私のmultipath.confファイルと一致しています。他に提供できる情報はありますか?

3
Eil

実際にパフォーマンスを測定したところ、パフォーマンスが低下していましたか?違いはそれほど大きくないかもしれませんが、実際には改善されていることがわかります。

Dell PowerVault MD3860iは、アクティブ/パッシブ(非対称、またはALUAとも呼ばれます)スタイルのストレージシステムのようです。2つのストレージコントローラがあり、各ディスクはいつでも1つのコントローラによって「所有されている」と見なされます。現在ディスクを「所有」していないコントローラーを介してディスクにアクセスしている場合、所有権の切り替えがトリガーされ、ディスクI/O操作にレイテンシが追加されます。

結果として、アクセスされているディスクを現在所有しているコントローラーを使用するパスのみを使用することをお勧めします。

新しいmultipath -ll出力は、dm-multipathrdacプロトコルを使用してストレージシステムからALUA情報を受信して​​いることを示しています。つまり、ストレージコントローラは現在使用しているパスをdm-multipathに通知しています。 rdacプロトコルは、LSI/Engenio/NetAppストレージコントローラーとそのOEMで使用されている古いプロトコルで、よく理解されています。他にも同様のベンダー固有のプロトコルがあり、SCSI-3 ALUAはこの情報を伝達する新しい標準的な方法ですが、すべてのストレージシステムがまだ使用しているわけではありません。

default path_grouping_policyをmultibusに設定していますが、multipath-toolsにコンパイルされたハードウェア固有のデフォルトによってオーバーライドされている可能性があります。 (特定のビート一般:該当するdeviceまたはmultipathセクションの設定は、defaultsセクションで設定された値をオーバーライドします。)

これらの組み込みのデフォルトは、ストレージデバイスのメーカーと協力して実装されています。どうやらUbuntu 16.04のmultipath-toolsバージョンには、Dell PowerVault MD3860iの特定のデフォルトがまだありませんでしたが、Ubuntu 18.04にはあります。

これらの組み込みのデフォルトはSudo multipath -tで表示できます。ストレージシステムの場合、関連する設定のグループはおそらく次のようになります。

    device {
            vendor "Dell"
            product "(MD34xx|MD38xx)"
            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
    }

multibus path_grouping_policyは、真のアクティブ/アクティブストレージシステムを対象としています。これにより、すべてのパスを制限なしで使用できます。これらは、より大規模で上位のストレージ製品になる傾向があります。

独自のdevice { ... }またはoverrides { ... }ブロックをmultipath.confに記述してこれらの設定を上書きできますが、本番環境で行う必要があるのは、ストレージベンダーからの特定の情報がある場合のみです。またはベンダーやdm-multipath開発者より実際によく知っていることを証明するテスト結果がある場合。

2
telcoM