機能している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ファイルと一致しています。他に提供できる情報はありますか?
実際にパフォーマンスを測定したところ、パフォーマンスが低下していましたか?違いはそれほど大きくないかもしれませんが、実際には改善されていることがわかります。
Dell PowerVault MD3860iは、アクティブ/パッシブ(非対称、またはALUAとも呼ばれます)スタイルのストレージシステムのようです。2つのストレージコントローラがあり、各ディスクはいつでも1つのコントローラによって「所有されている」と見なされます。現在ディスクを「所有」していないコントローラーを介してディスクにアクセスしている場合、所有権の切り替えがトリガーされ、ディスクI/O操作にレイテンシが追加されます。
結果として、アクセスされているディスクを現在所有しているコントローラーを使用するパスのみを使用することをお勧めします。
新しいmultipath -ll
出力は、dm-multipath
がrdac
プロトコルを使用してストレージシステムから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
開発者より実際によく知っていることを証明するテスト結果がある場合。