在 SLES 15 上設定 DM-Multipath 以實現可靠的 SAN 路徑

對於 SLES 15 上的 SCSI 或 DASD 存儲,請使用裝置映射器多路徑 (DM-Multipath):使陣列透過多個受支援的路徑呈現相同的 LUN,啟用該功能multipathd,並在將工作負載指向該對應之前驗證產生的對應。首先使用 SUSE 偵測到的硬體預設值以及儲存供應商的相容性指南;multipath.conf從其他陣列複製的通用配置可能會設定錯誤的路徑行為。

終端比較區分了 SLES DM-Multipath for SCSI 或 DASD 與原生 NVMe 多路徑。
終端對比顯示,SLES 15 對 SCSI 或 DASD 使用 DM-Multipath,而 NVMe 預設使用原生 NVMe 多路徑。

此流程遵循 SLES 15 SP7 儲存管理指南(2026 年 10 月審核)。請將指南和陣列設定與已安裝的服務包相符;沒有一種配置適用於每個 SAN。

1. 確認儲存和多路徑模型

DM-Multipath 將多個主機端路徑合併到單一儲存設備,形成一個映射。它可以在連接路徑發生故障時保持 I/O 可用,但無法防止底層 LUN 或陣列發生故障。 SUSE 的 SLES 15 指南指出,原生內核多路徑是 NVMe 的預設建議方法;除非陣列供應商另有文件說明支援其他配置,否則請使用此 DM-Multipath 演練來配置 SCSI 或 DASD。

更換主機前,請確認陣列至少透過兩條路徑呈現相同的 LUN,且分割區、LUN 遮罩、主機存取和 ​​HBA 驅動程式均已依照供應商要求設定。每條路徑都應報告相同的 LUN 標識。

SLES 終端顯示 lsblk 輸出,其中包含多個 SCSI 路徑和匹配的 WWN 值。
比較可見的 SCSI 設備和 WWN 值,以確認不同的路徑指向同一個 LUN。

執行以下唯讀清單指令,查看 Linux 目前偵測到的裝置:

lsblk -o NAME,TYPE,HCTL,WWN,SIZE,MOUNTPOINTS

僅憑容量不足並不能證明設備共享同一個 LUN。如果路徑或 WWN 缺失,請先修復陣列呈現、分割區、遮罩或 HBA 問題。使用原始/dev/sdX路徑識別任何檔案系統、LVM 磁碟區或應用程式;遷移正在運行的使用者需要事先規劃。

2. 安裝並啟動多路徑服務

如果尚未安裝,請安裝 SUSE 的多路徑工具和分割區對映實用程式:

SLES 軟體包管理終端安裝了 multipath-tools 和 kpartx。
package 指令會安裝多路徑守護程式工具和分割區對應實用程式。
sudo zypper install multipath-tools kpartx

啟用該守護進程,使其在啟動時運行,立即啟動它,並檢查其狀態:

systemctl 終端啟用並啟動 multipathd,然後檢查其活動狀態
啟用並啟動,multipathd以便它可以發現和維護多路徑映射。
sudo systemctl enable multipathd
sudo systemctl start multipathd
sudo systemctl status multipathd

multipathd管理偵測到的映射。如果停用此功能,映射可能不會在啟動時設定。僅憑正在運行的服務並不能證明數組暴露了多個路徑;請檢查下面的映射。

3. 編輯配置前,請先檢查 SUSE 的預設設置

大多數受支援的硬體都可以使用內建配置,因此管理員通常無需建立設定檔/etc/multipath.conf。首先,詢問工具偵測到的硬體設定檔是什麼,並執行一次試運行:

SLES 終端運行 multipath -T 來檢查硬體設定是否匹配,並執行 multipath -d 進行預演。
在新增本地覆蓋之前,請檢查偵測到的硬體設定並進行預先測試。
sudo multipath -T
sudo multipath -d

multipath -T顯示與偵測到的硬體相符的配置設定;但不會套用這些設定。multipath -d這是一個模擬運行,可用於檢查在不實際建立映射的情況下會形成哪些映射。請將輸出結果與陣列製造商目前的 SLES 指南進行比較。 SUSE SLES 15 SP7 多路徑章節介紹了該工具的行為和配置。有關 SUSE 多路徑設定說明,請參閱SUSE 知識庫文章 3955167。

避免先嘗試新增範圍過廣的黑名單規則或複製設備配置段。黑名單可能會使裝置無法存取多路徑,而針對特定裝置的覆寫操作可能會改變路徑檢查、分組或故障轉移行為。如果 SUSE 和陣列供應商指定了不同的值,請使用供應商針對已安裝服務包支援的組合,並將差異上報,而不是自行猜測。

4. 僅添加必需的 WWID 特定設置

如果您只需要一個穩定易讀的名稱,請為確切的 LUN WWID 新增別名。例如,以下配置將一個範例 WWID 對應到data01;請將範例標識符替換為您的 LUN 的值。

文字編輯器顯示了一個最簡的 multipath.conf 條目,該條目將一個 WWID 對應到別名 data01。
最小配置為明確標識的 LUN 指派一個可讀別名。
multipaths {
    multipath {
        wwid 3600a098000aad1e3000064e45f2c2355
        alias data01
    }
}

將此節儲存到/etc/multipath.conf。 WWID 是設備識別;別名用於更改映射的可讀名稱。別名是可選的,它不能取代匹配正確的 WWID。在叢集中,請確保每個節點上的相關別名和多路徑配置保持一致,以便資源定義解析到相同儲存設備。

請勿設定諸如 `<path>`、`<path>`、`<path>` 或類似不相關範例中的選項path_checker。path_grouping_policy當failback所有no_path_retry路徑都不可用時,是選擇將 I/O 排隊還是傳回錯誤,取決於應用程式和陣列的具體情況:排隊可以在短暫中斷期間保留待處理的 I/O,但長時間排隊會導致進程停滯並消耗記憶體。請遵循儲存和應用程式供應商的策略。

5. 套用設定並刷新啟動映像

儲存配置變更後,讓正在執行的守護程式重新載入它,然後重建 initramfs:

SLES 終端重新配置 multipathd 並執行 dracut -f 來刷新 initramfs。
重新載入守護程序並重新產生 initramfs,以便啟動時多路徑設定保持一致。
sudo multipathd reconfigure
sudo dracut -f

SUSE 警告:initramfs 必須與多路徑配置和相關狀態檔案保持同步。不匹配可能導致系統無法正常啟動或進入緊急 shell。當根檔案系統位於 SAN 儲存上時,這一點尤其重要:請在受控的維護視窗期間進行更改,保持控制台或恢復存取權限,並在重新啟動前遵循相應的 SUSE 根檔案系統多路徑配置說明。

6. 驗證地圖並使用其持久路徑

檢查拓撲結構,確認預期的 LUN 是否以多路徑對應的形式出現一次,並且所有預期路徑都位於其下方:

SLES 終端機顯示 multipath -ll,其中包含一個映射、多個路徑設備和一個持久的 dm-uuid-mpath 設備鏈路。
檢查地圖的 WWID 和路徑狀態,然後使用基於持久 WWID 的裝置連結供消費者使用。
sudo multipath -ll
sudo multipathd show topology
ls -l /dev/disk/by-id/dm-uuid-mpath-*

在 中multipath -ll,ready表示可用路徑,faulty表示失敗路徑,ghost可以描述主動/被動陣列中的被動路徑。確認預期路徑數量,並根據陣列設計解釋被動狀態。如果 LUN 處於活動狀態,請設定使用者使用多路徑設備,例如/dev/mapper/data01別名或持久性/dev/disk/by-id/dm-uuid-mpath-<WWID>連結。避免使用/dev/dm-N,因為其數量可能會變化,並且避免將工作負載綁定到單一/dev/sdX路徑。

為了確保系統彈性,請安排由供應商支援的單路徑故障轉移測試,以驗證工作負載是否能夠持續運作且無 I/O 錯誤,然後確認路徑已恢復。切勿在臨時測試中斷開生產鏈路。當預期 WWID 解析為一個映射表、所有已設計的路徑均處於對應狀態、啟動配置已同步,且使用者使用該映射表而非單一路徑時,系統即已準備就緒。

留下評論

在 SLES 15 上設定 DM-Multipath 以實現可靠的 SAN 路徑

在 SLES 15 上設定 DM-Multipath 以實現可靠的 SAN 路徑

準備 SCSI SAN 路徑,啟用 multipathd,檢查 SUSE 的硬體預設設置,並在不猜測陣列設定的情況下驗證穩定的設備映射。

在 SUSE Linux Enterprise 上安全清除 Zypper 鎖

在 SUSE Linux Enterprise 上安全清除 Zypper 鎖

找到持有 Zypper 包鎖的進程,區分進程衝突和包鎖,並在不盲目刪除鎖定檔案的情況下重試更新。

首先建構一個受支援的、帶有隔離功能的 SLES 15 HA 集群

首先建構一個受支援的、帶有隔離功能的 SLES 15 HA 集群

註冊 SLE HA,引導 SLES 15 個節點,然後在依賴故障轉移之前新增隔離、仲裁和測試服務資源。

SLES Zypper HTTP 500:尋找故障儲存庫

SLES Zypper HTTP 500:尋找故障儲存庫

將 Zypper 刷新錯誤追溯到 SUSE、RMT 或第三方端點,然後應用正確的伺服器端或快取修復程序,同時不停用必要的更新。

SLES 精簡池空間不足:安全擴充 LVM 並恢復寫入

SLES 精簡池空間不足:安全擴充 LVM 並恢復寫入

透過檢查資料和元資料使用情況、安全地擴展池以及防止重複中斷來解決 SUSE LVM 精簡池空間錯誤。

當 SLES Btrfs 檔案系統變成唯讀時:重新掛載前請先診斷

當 SLES Btrfs 檔案系統變成唯讀時:重新掛載前請先診斷

確定 Btrfs 是否故意設定為唯讀、空間不足或在發生錯誤後保護數據,然後選擇適合該原因的恢復路徑。

在離線網路中使用 SUSE Manager 註冊 SLES 15

在離線網路中使用 SUSE Manager 註冊 SLES 15

準備鏡像通道,建立啟動金鑰,並在沒有直接網路存取的情況下引導 SLES 15 用戶端,同時保持管理員簽到所需的連線。

讓 YaST 的 X11 轉送透過 SSH 正常運作

讓 YaST 的 X11 轉送透過 SSH 正常運作

修復 YaST 透過 SSH 啟動 XIO 時出現的錯誤,驗證 X11 轉送和 xauth,並在不需要遠端視窗時切換到 ncurses 介面。

使用 Snapper 安全地回滾失敗的 SLES 更新

使用 Snapper 安全地回滾失敗的 SLES 更新

找到更新前的 Btrfs 快照,以唯讀方式測試它,並使用 Snapper 實現永久恢復,同時了解哪些資料保留在根回滾之外。

Secure SLES Syslog Forwarding with rsyslog and Mutual TLS

Secure SLES Syslog Forwarding with rsyslog and Mutual TLS

Send SLES system logs to a remote rsyslog collector over authenticated TLS, with certificate checks, outage buffering, and delivery tests.