SUSE Linux Enterprise Server 10 及更高版本中的多重路徑支援以 Linux 2.6 核心的設備對應程式多重路徑模組及 multipath-tools 使用者空間套件為基礎。使用多設備管理 (MDADM,mdadm) 公用程式可以檢視多重路徑設備的狀態。
設備對應程式多重路徑 (DM-MP) 模組為 Linux 提供了多重路徑功能。DM-MPIO 是在 SUSE Linux Enterprise Server 11 中進行多重路徑的較好解決方案。它是該產品提供的唯一一個多重路徑選項,Novell® 與 SUSE 均對其完全支援。
DM-MPIO 可自動設定多重路徑子系統的多種設定。每個設備最多可設定 8 個路徑。模組支援主動/被動 (一個主動路徑,其他均為被動路徑) 或主動/主動 (所有路徑均為主動路徑,使用輪替式負載平衡) 組態。
DM-MPIO 框架可以採用以下兩種方式進行擴充:
使用特定硬體處理器。如需更多資訊,請參閱需要特定硬體處理器的儲存陣列。
使用更精密的負載平衡演算法取代輪替式演算法
DM-MPIO 的使用者空間元件會自動探查路徑並進行分組,還會自動重新測試路徑,以便在先前失敗的路徑恢復正常時,能自動重新啟用該路徑。這樣會將管理員對生產環境的關注需求降到最低。
DM-MPIO 防範的是設備路徑中的失敗,而不是設備本身的失敗。如果其中一個主動路徑遺失 (例如網路卡損壞或光纖纜線被移開),則 I/O 會重新導向到其餘的路徑。如果組態為主動/被動模式,則路徑會容錯移轉到其中一個被動路徑。如果您使用的是輪替式負載平衡組態,則流量會分流到其餘的正常路徑。如果所有主動路徑都失敗,則必須喚醒非主動的次要路徑,因此需經過大約 30 秒的延遲之後才會開始容錯移轉。
如果磁碟陣列有多個儲存處理器,請確保 SAN 交換器已連線到您要存取的 LUN 所屬的儲存處理器。在大多數磁碟陣列中,所有 LUN 都屬於兩個儲存處理器,因此兩個連線都處於主動模式。
附註: 在有些磁碟陣列中,儲存陣列透過儲存處理器來管理流量,因此每次只會顯示一個儲存處理器。一個處理器為主動,另外一個為被動,直到發生了失敗。如果您連接到錯誤的儲存處理器 (路徑為被動的處理器),則可能找不到所需的 LUN,或雖然找到了 LUN,但在嘗試存取時會發生錯誤。
表 7-1 儲存陣列的多重路徑 I/O 功能
設備對應程式多重路徑會偵測每個路徑,查看有無多重路徑設備做為獨立的 SCSI 設備。SCSI 設備名稱採用的格式為 /dev/sdN,其中 N 是為設備自動產生的字母,從 a 開始,並隨著設備的建立依序發佈,例如 /dev/sda、/dev/sdb,依此類推。如果設備數目超過 26 個,則字母將會重複,這樣,/dev/sdz 之後的設備將命名為 /dev/sdaa、/dev/sdab,依此類推。
如果有多個路徑未自動偵測到,則您可以在 /etc/multipath.conf 檔案中手動設定。在您建立並設定 multipath.conf 檔案之前,該檔案並不存在。如需更多資訊,請參閱節 7.4.5, 建立並設定 /etc/multipath.conf 檔案。
multipath-tools 使用者空間套件會自動探查路徑,並對其進行分組。它會週期性地自動測試路徑,這樣,先前失敗的路徑在恢復正常後,便可自動重新啟用。這樣會將管理員對生產環境的關注需求降到最低。
表 7-2 multipath-tools 套件中的工具
工具 |
描述 |
---|---|
multipath |
對系統進行掃描,找出多重路徑設備並進行組合。 |
multipathd |
等待映射事件,然後執行 multipath。 |
devmap-name |
為 udev 提供有意義的設備名稱以進行設備映射 (devmaps)。 |
kpartx |
將線性 devmaps 映射到多重路徑設備中的分割區,這樣能夠建立對設備中各分割區的多重路徑監控。 |
對於不同的伺服器架構,套件的檔案清單可能會有所不同。有關 multipath-tools 套件中包含的檔案清單,請造訪「SUSE Linux Enterprise Server Technical Specifications」>「Package Descriptions」網頁,找到您的架構並選取 ,然後搜尋「multipath-tools」以找到適用於該架構的套件清單。
您也可以透過查詢套件本身來確定 RPM 檔案的檔案清單:使用 rpm -ql 或 rpm -qpl 指令選項。
若要查詢已安裝的套件,請輸入
rpm -ql <package_name>
若要查詢未安裝的套件,請輸入
rpm -qpl <URL_or_path_to_package>
若要檢查是否已安裝 multipath-tools 套件,請執行以下操作:
在終端機主控台提示符下輸入以下指令:
rpm -q multipath-tools
如果已安裝,回應內容會重複該套件名稱並提供版本資訊,例如:
multipath-tools-04.7-34.23
如果未安裝,則回應內容為:
package multipath-tools is not installed
Udev 是預設的設備處理器,該系統可透過 Worldwide ID (而不是設備節點名稱) 自動識別設備。這解決了 MDADM 與 LVM 的先前版本中組態檔案 (mdadm.conf 與 lvm.conf) 無法正確辨識多重路徑設備的問題。
與 LVM2 一樣,MDADM 也要求透過 ID 而非設備節點路徑存取設備。因此,應使用如下指令設定 /etc/mdadm.conf 中的 DEVICE 項目:
DEVICE /dev/disk/by-id/*
若您使用的是使用者易記名稱,請按照以下方式指定路徑,以便在設定多重路徑之後僅掃描設備對應程式名稱:
DEVICE /dev/disk/by-id/dm-uuid-.*-mpath-.*
若要驗證是否已安裝 MDADM:
在終端機主控台提示符處輸入以下指令,確定是否已安裝 mdadm 套件:
rpm -q mdadm
如果已安裝,回應內容會重複該套件名稱並提供版本資訊。例如:
mdadm-2.6-0.11
如果未安裝,則回應內容為:
package mdadm is not installed
如需修改 /etc/lvm/lvm.conf 檔案的資訊,請參閱節 7.2.3, 在多重路徑設備上使用 LVM2。
使用 Linux multipath(8) 指令可以設定並管理多重路徑設備。
multipath(8) 指令的一般語法為:
multipath [-v verbosity] [-d] [-h|-l|-ll|-f|-F] [-p failover | multibus | group_by_serial | group_by_prio| group_by_node_name ]
設定所有多重路徑設備。
設定特定的多重路徑設備。
使用 /dev/sdb (顯示於 udev 的 $DEVNAME 變數中) 等設備節點名稱取代 devicename,或採用 major:minor 格式。
選擇性隱藏多重路徑映射及其映射設備的分割區。
顯示潛在的多重路徑設備,但不建立任何設備,也不更新設備映射 (試執行)。
設定多重路徑設備並顯示其多重路徑映射資訊。multipath -v2 -d 中的 -v2 選項只顯示本地磁碟。
設定某個特定的多重路徑設備並顯示其多重路徑映射資訊。使用 -v2 選項可僅顯示本地磁碟。
設定多重路徑設備並顯示其多重路徑映射資訊。使用 -v3 選項會顯示完整路徑清單。
設定某個特定的多重路徑設備並顯示其多重路徑映射資訊。使用 -v3 選項會顯示完整路徑清單。
顯示所有多重路徑設備的狀態。
顯示指定多重路徑設備的狀態。
衝洗所有未使用的多重路徑設備映射。這會取消解析多個路徑,但不會刪除設備。
衝洗指定多重路徑設備之未使用的多重路徑設備映射。這會取消解析多個路徑,但不會刪除該設備。
透過指定表 7-3 中所述的其中一個群組規則選項,來設定群組規則:
表 7-3 multipath -p 指令的群組規則選項