宣告規則決定哪個多重路徑模組擁有特定儲存裝置的路徑。同時,還定義了主機向裝置提供的多重路徑支援的類型。
若要進一步瞭解多重路徑模組,請參閱多重路徑概念和縮寫。
宣告規則已於 /etc/vmware/esx.conf 檔案中列出。
- 核心宣告規則 。這些宣告規則決定哪個多重路徑模組 (NMP、HPP 或第三方 MPP) 宣告特定裝置。
- SATP 宣告規則。根據裝置類型,這些規則會將可提供廠商專屬多重路徑管理的特定 SATP 子模組指派給裝置。
您可以使用esxcli命令新增或變更核心和 SATP 宣告規則。通常,可新增宣告規則以載入第三方 MPP 或從主機隱藏 LUN。如果特定裝置的預設設定不足,可能需要變更宣告規則。
如需可用於管理 PSA 宣告規則的命令的詳細資訊,請參閱 ESXCLI 入門。
如需儲存區陣列和對應 SATP 與 PSP 的清單,請參閱 vSphere Compatibility Guide的〈儲存區/SAN〉一節。
多重路徑考量事項
管理儲存區多重路徑外掛程式和宣告規則時,需注意一些特定考量事項。
下列考量事項可協助您使用多重路徑:
- 如果宣告規則未將任何 SATP 指派給裝置,則 iSCSI 或 FC 裝置的預設 SATP 為 VMW_SATP_DEFAULT_AA。預設 PSP 為 VMW_PSP_FIXED。
- 當系統搜尋 SATP 規則以找到指定裝置的 SATP 時,會首先搜尋驅動程式規則。如果沒有符合項,則搜尋廠商/型號規則,最後搜尋傳輸規則。如果未出現符合項,NMP 將選取裝置的預設 SATP。
- 如果已將 VMW_SATP_ALUA 指派給某特定的儲存裝置,但該裝置無法感知 ALUA,該裝置將沒有任何符合的宣告規則。裝置將由預設 SATP 依據裝置的傳輸類型進行宣告。
- 由 VMW_SATP_ALUA 宣告的所有裝置的預設 PSP 為 VMW_PSP_MRU。VMW_PSP_MRU 選取由 VMW_SATP_ALUA 報告的主動/最佳化的路徑,如果沒有主動/最佳化的路徑,則選取主動/未最佳化的路徑。在有更好的路徑可用 (MRU) 之前,將一直使用此路徑。例如,如果 VMW_PSP_MRU 目前正在使用主動/未最佳化的路徑,那麼,當主動/最佳化的路徑變為可用時,VMW_PSP_MRU 會將目前路徑切換到主動/最佳化的路徑。
- 儘管依預設通常為 ALUA 陣列選取 VMW_PSP_MRU,但某些 ALUA 儲存區陣列仍需使用 VMW_PSP_FIXED。若要檢查儲存區陣列是否需要使用 VMW_PSP_FIXED,請參閱《VMware 相容性指南》或連絡儲存裝置廠商。如果將 VMW_PSP_FIXED 用於 ALUA 陣列,除非明確指定慣用路徑,否則 ESXi 主機將選取最佳的工作路徑,並將其指定為預設慣用路徑。如果主機選取的路徑無法使用,主機將選取替代的可用路徑。但是,如果您明確指定該慣用路徑,則無論其為何狀態,都將始終為慣用路徑。
- 依預設,PSA 宣告規則 101 會遮罩 Dell 陣列虛擬裝置。除非您要取消遮罩這些裝置,否則請不要刪除此規則。
列出主機的多重路徑宣告規則
使用 esxcli 命令可列出可用的多重路徑宣告規則。
宣告規則指出管理指定實體路徑的是 NMP、HPP 還是第三方 MPP。每個宣告規則都會根據下列參數來識別一組路徑:
- 廠商/型號字串
- 傳輸,例如 SATA、IDE、光纖通道
- 介面卡、目標或 LUN 位置
- 裝置驅動程式 (如 Mega-RAID)
程序
- ♦ 透過執行 esxcli storage core claimrule list --claimrule-class=MP 命令,列出多重路徑宣告規則。
如果您不使用 claimrule-class 選項,則默許使用 MP 規則類別。
範例: esxcli storage core claimrule list 命令的輸出範例
Rule Class Rule Class Type Plugin Matches MP 10 runtime vendor HPP vendor=NVMe model=* MP 10 file vendor HPP vendor=NVMe model=* MP 50 runtime transport NMP transport=usb MP 51 runtime transport NMP transport=sata MP 52 runtime transport NMP transport=ide MP 53 runtime transport NMP transport=block MP 54 runtime transport NMP transport=unknown MP 101 runtime vendor MASK_PATH vendor=DELL model=Universal Xport MP 101 file vendor MASK_PATH vendor=DELL model=Universal Xport MP 200 runtime vendor MPP_1 vendor=NewVend model=* MP 200 file vendor MPP_1 vendor=NewVend model=* MP 201 runtime location MPP_2 adapter=vmhba41 channel=* target=* lun=* MP 201 file location MPP_2 adapter=vmhba41 channel=* target=* lun=* MP 202 runtime driver MPP_3 driver=megaraid MP 202 file driver MPP_3 driver=megaraid MP 65535 runtime vendor NMP vendor=* model=*
- NMP 會宣告連線到使用 USB、SATA、IDE 和封鎖 SCSI 傳輸之儲存裝置的所有路徑。
- 已新增 HPP、MPP_1、MPP_2,以及 MPP_3 的規則,以便模組可宣告指定的裝置。例如,HPP 宣告所有廠商 NVMe 裝置。無論實際廠商是誰,均會宣告由收件匣 nvme 驅動程式處理的所有裝置。MPP_1 模組會宣告連線到任何 NewVend 儲存區陣列型號的所有路徑。
- 您可以使用 MASK_PATH 模組來隱藏主機中未使用的裝置。依預設,PSA 宣告規則 101 會遮罩廠商字串為 DELL 且型號字串為 Universal Xport 的 Dell 陣列虛擬裝置。
- 輸出中的 [Rule Class] 資料行說明宣告規則的類別。類別可以是 MP (多重路徑外掛程式)、篩選器或 VAAI。
- [Class] 資料行顯示已定義的規則和已載入的規則。[Class] 資料行中的 file 參數指示規則已定義。runtime 參數指示已將規則載入系統。若要讓使用者定義的宣告規則成為作用中狀態,必須存在兩個具有相同規則編號的行,一行用於採用 file 參數的規則,另一行用於採用 runtime 的規則。數個預設系統定義的宣告規則只有一行,其 Class 為 runtime。您無法修改這些規則。
- 預設規則 65535 會將所有未宣告的路徑指派給 NMP。請勿刪除此規則。
新增多重路徑宣告規則
使用 esxcli 命令將多重路徑 PSA 宣告規則新增到系統上的宣告規則集。為啟用新宣告規則,請先定義規則,然後載入到系統中。
- 載入新的第三方 MPP,且必須定義此模組宣告的路徑。
- 您必須啟用原生 HPP。
必要條件
安裝 ESXCLI。請參閱ESXCLI 入門。若要進行疑難排解,請在 ESXi Shell 中執行 esxcli 命令。
程序
範例: 定義多重路徑宣告規則
在下列範例中,您可以新增並載入編號為 500 的規則。該規則會為 NMP 外掛程式宣告型號字串為 NewMod 以及廠商字串為 NewVend 的所有路徑。
# esxcli storage core claimrule add -r 500 -t vendor -V NewVend -M NewMod -P NMP
# esxcli storage core claimrule load
執行 esxcli storage core claimrule list 命令之後,您可以看到新宣告規則出現在清單中。
Rule Class Rule Class Type Plugin Matches ... ... ... ... ... ... MP 500 runtime vendor NMP vendor=NewVend model=NewMod MP 500 file vendor NMP vendor=NewVend model=NewMod
刪除多重路徑宣告規則
使用 esxcli 命令將多重路徑 PSA 宣告規則從系統上的宣告規則集移除。
必要條件
安裝 ESXCLI。請參閱ESXCLI 入門。若要進行疑難排解,請在 ESXi Shell 中執行 esxcli 命令。
程序
遮罩路徑
可以阻止主機存取儲存裝置或 LUN,或阻止主機使用某個 LUN 的個別路徑。使用 esxcli 命令可遮罩路徑。遮罩路徑時,請建立宣告規則,將 MASK_PATH 外掛程式指派給指定路徑。
必要條件
安裝 ESXCLI。請參閱ESXCLI 入門。若要進行疑難排解,請在 ESXi Shell 中執行 esxcli 命令。
程序
結果
範例: 遮罩 LUN
在此範例中,遮罩目標 T1 和 T2 上,透過儲存裝置介面卡 vmhba2 和 vmhba3 存取的 LUN 20。
-
#esxcli storage core claimrule list
-
#esxcli storage core claimrule add -P MASK_PATH -r 109 -t location -A vmhba2 -C 0 -T 1 -L 20 #esxcli storage core claimrule add -P MASK_PATH -r 110 -t location -A vmhba3 -C 0 -T 1 -L 20 #esxcli storage core claimrule add -P MASK_PATH -r 111 -t location -A vmhba2 -C 0 -T 2 -L 20 #esxcli storage core claimrule add -P MASK_PATH -r 112 -t location -A vmhba3 -C 0 -T 2 -L 20
-
#esxcli storage core claimrule load
-
#esxcli storage core claimrule list
-
#esxcli storage core claiming unclaim -t location -A vmhba2 #esxcli storage core claiming unclaim -t location -A vmhba3
-
#esxcli storage core claimrule run
取消遮罩路徑
當需要主機存取被遮罩的儲存裝置時,請取消遮罩該裝置的路徑。
必要條件
安裝 ESXCLI。請參閱ESXCLI 入門。若要進行疑難排解,請在 ESXi Shell 中執行 esxcli 命令。
程序
結果
定義 NMP SATP 規則
NMP SATP 宣告規則定義由哪一個 SATP 來管理儲存裝置。通常,您可以使用針對儲存裝置提供的預設 SATP。如果預設設定不足,請使用 esxcli 命令來變更特定裝置的 SATP。
必要條件
安裝 ESXCLI。請參閱ESXCLI 入門。若要進行疑難排解,請在 ESXi Shell 中執行 esxcli 命令。
程序
範例: 定義 NMP SATP 規則
下列範例命令將指派 VMW_SATP_INV 外掛程式,可管理廠商字串為 NewVend 和型號字串為 NewMod 的儲存區陣列。
# esxcli storage nmp satp rule add -V NewVend -M NewMod -s VMW_SATP_INV
如果執行 esxcli storage nmp satp list -s VMW_SATP_INV 命令,則可以查看新增到 VMW_SATP_INV 規則清單中的新規則。