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

此流程遵循 SLES 15 SP7 儲存管理指南(2026 年 10 月審核)。請將指南和陣列設定與已安裝的服務包相符;沒有一種配置適用於每個 SAN。
DM-Multipath 將多個主機端路徑合併到單一儲存設備,形成一個映射。它可以在連接路徑發生故障時保持 I/O 可用,但無法防止底層 LUN 或陣列發生故障。 SUSE 的 SLES 15 指南指出,原生內核多路徑是 NVMe 的預設建議方法;除非陣列供應商另有文件說明支援其他配置,否則請使用此 DM-Multipath 演練來配置 SCSI 或 DASD。
更換主機前,請確認陣列至少透過兩條路徑呈現相同的 LUN,且分割區、LUN 遮罩、主機存取和 HBA 驅動程式均已依照供應商要求設定。每條路徑都應報告相同的 LUN 標識。

執行以下唯讀清單指令,查看 Linux 目前偵測到的裝置:
lsblk -o NAME,TYPE,HCTL,WWN,SIZE,MOUNTPOINTS
僅憑容量不足並不能證明設備共享同一個 LUN。如果路徑或 WWN 缺失,請先修復陣列呈現、分割區、遮罩或 HBA 問題。使用原始/dev/sdX路徑識別任何檔案系統、LVM 磁碟區或應用程式;遷移正在運行的使用者需要事先規劃。
如果尚未安裝,請安裝 SUSE 的多路徑工具和分割區對映實用程式:

sudo zypper install multipath-tools kpartx
啟用該守護進程,使其在啟動時運行,立即啟動它,並檢查其狀態:

multipathd以便它可以發現和維護多路徑映射。sudo systemctl enable multipathd
sudo systemctl start multipathd
sudo systemctl status multipathd
multipathd管理偵測到的映射。如果停用此功能,映射可能不會在啟動時設定。僅憑正在運行的服務並不能證明數組暴露了多個路徑;請檢查下面的映射。
大多數受支援的硬體都可以使用內建配置,因此管理員通常無需建立設定檔/etc/multipath.conf。首先,詢問工具偵測到的硬體設定檔是什麼,並執行一次試運行:

sudo multipath -T
sudo multipath -d
multipath -T顯示與偵測到的硬體相符的配置設定;但不會套用這些設定。multipath -d這是一個模擬運行,可用於檢查在不實際建立映射的情況下會形成哪些映射。請將輸出結果與陣列製造商目前的 SLES 指南進行比較。 SUSE SLES 15 SP7 多路徑章節介紹了該工具的行為和配置。有關 SUSE 多路徑設定說明,請參閱SUSE 知識庫文章 3955167。
避免先嘗試新增範圍過廣的黑名單規則或複製設備配置段。黑名單可能會使裝置無法存取多路徑,而針對特定裝置的覆寫操作可能會改變路徑檢查、分組或故障轉移行為。如果 SUSE 和陣列供應商指定了不同的值,請使用供應商針對已安裝服務包支援的組合,並將差異上報,而不是自行猜測。
如果您只需要一個穩定易讀的名稱,請為確切的 LUN WWID 新增別名。例如,以下配置將一個範例 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,但長時間排隊會導致進程停滯並消耗記憶體。請遵循儲存和應用程式供應商的策略。
儲存配置變更後,讓正在執行的守護程式重新載入它,然後重建 initramfs:

sudo multipathd reconfigure
sudo dracut -f
SUSE 警告:initramfs 必須與多路徑配置和相關狀態檔案保持同步。不匹配可能導致系統無法正常啟動或進入緊急 shell。當根檔案系統位於 SAN 儲存上時,這一點尤其重要:請在受控的維護視窗期間進行更改,保持控制台或恢復存取權限,並在重新啟動前遵循相應的 SUSE 根檔案系統多路徑配置說明。
檢查拓撲結構,確認預期的 LUN 是否以多路徑對應的形式出現一次,並且所有預期路徑都位於其下方:

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 解析為一個映射表、所有已設計的路徑均處於對應狀態、啟動配置已同步,且使用者使用該映射表而非單一路徑時,系統即已準備就緒。
準備 SCSI SAN 路徑,啟用 multipathd,檢查 SUSE 的硬體預設設置,並在不猜測陣列設定的情況下驗證穩定的設備映射。
找到持有 Zypper 包鎖的進程,區分進程衝突和包鎖,並在不盲目刪除鎖定檔案的情況下重試更新。
註冊 SLE HA,引導 SLES 15 個節點,然後在依賴故障轉移之前新增隔離、仲裁和測試服務資源。
將 Zypper 刷新錯誤追溯到 SUSE、RMT 或第三方端點,然後應用正確的伺服器端或快取修復程序,同時不停用必要的更新。
透過檢查資料和元資料使用情況、安全地擴展池以及防止重複中斷來解決 SUSE LVM 精簡池空間錯誤。
確定 Btrfs 是否故意設定為唯讀、空間不足或在發生錯誤後保護數據,然後選擇適合該原因的恢復路徑。
準備鏡像通道,建立啟動金鑰,並在沒有直接網路存取的情況下引導 SLES 15 用戶端,同時保持管理員簽到所需的連線。
修復 YaST 透過 SSH 啟動 XIO 時出現的錯誤,驗證 X11 轉送和 xauth,並在不需要遠端視窗時切換到 ncurses 介面。
找到更新前的 Btrfs 快照,以唯讀方式測試它,並使用 Snapper 實現永久恢復,同時了解哪些資料保留在根回滾之外。
Send SLES system logs to a remote rsyslog collector over authenticated TLS, with certificate checks, outage buffering, and delivery tests.