Linux 多路徑:如何配置單個多匯流排路徑組
我剛剛將功能正常的 Ubuntu 16.04 主機升級到 18.04,現在遇到了多路徑問題。
軟體包版本:* multipath-tools 0.7.4-2ubuntu3 * open-iscsi 2.0.874-5ubuntu2.7
我有一個 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 和多路徑配置,等等。我可以粘貼
multipathd -k
->的完整輸出,show config
但我在那裡看到的內容與我的 multipath.conf 文件一致。我還能提供其他資訊嗎?
您是否實際測量過性能並發現性能下降?您實際上可能會發現它有所改進,儘管差異可能不是很大。
Dell PowerVault MD3860i 似乎是一種主動/被動(也稱為非對稱或 ALUA)式儲存系統:它有兩個儲存控制器,並且每個磁碟在任何給定時間都被認為是其中一個控制器“擁有”。如果通過目前不“擁有”磁碟的控制器訪問磁碟,則會觸發所有權切換,從而為磁碟 I/O 操作增加一些額外的延遲。
因此,最好只使用使用目前擁有被訪問磁碟的控制器的路徑。
您的新
multipath -ll
輸出表明正在使用該協議dm-multipath
從儲存系統接收 ALUA 資訊。rdac
也就是說,儲存控制器告訴dm-multipath
它目前應該使用哪些路徑。該rdac
協議是 LSI/Engenio/NetApp 儲存控制器及其 OEM 使用的較舊協議,並且很好理解。還有其他類似的特定於供應商的協議,SCSI-3 ALUA 將成為傳達此資訊的新標準方式,儘管並非所有儲存系統都使用它。您將預設path_grouping_policy 設置為
multibus
,但它很可能被編譯為multipath-tools
. (特定節拍一般:適用device
或multipath
部分中的任何設置都將覆蓋該defaults
部分中設置的值。)這些內置預設值是與儲存設備製造商合作實施的;顯然
multipath-tools
Ubuntu 16.04 中的版本還沒有 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 }
path_grouping_policy
multibus
適用於真正的主動/主動儲存系統,它允許您不受限制地使用任何和所有路徑。這些往往是更大、更高層的儲存產品。您可以自己編寫
device { ... }
或overrides { ... }
阻止multipath.conf
以覆蓋這些設置,但僅當您從儲存供應商那裡獲得特定資訊時,或者如果您有測試結果證明您實際上比供應商更了解,您才應該在生產中這樣做和dm-multipath
開發人員。