ESXi 連線至儲存區裝置時,可能會遇到連線問題。儲存區連線問題可能由各種原因導致。儘管 ESXi 無法始終偵測裝置或其路徑不可用的原因,但主機可以確定問題是永久性問題還是暫時性問題。換句話說,主機可以區分裝置的永久裝置遺失 (PDL) 狀態和儲存區的暫時性所有路徑失效 (APD) 狀態。

永久裝置遺失 (PDL)
是當儲存裝置出現永久性故障,或以系統管理方式被移除或排除時,所出現的一種情況。預期該裝置將來不再可用。當裝置處於永久不可用時, ESXi 會從儲存區陣列接收到適當的感應碼或登入拒絕,並能夠辨識裝置已永久遺失。
所有路徑失效 (APD)
是當主機無法存取儲存裝置且沒有可用的裝置路徑時,所出現的一種情況。 ESXi 會將其視為一種暫時性情況,因為裝置中出現的問題通常為暫時性的,因此預期可再次使用。

連線問題和 vSphere High Availability

當裝置進入 PDL 或 APD 狀態時,vSphere High Availability (HA) 會偵測到連線問題,並為 ESXi 主機上受影響的虛擬機器提供自動復原。vSphere HA 使用虛擬機器元件保護 (VMCP) 來防止在 vSphere HA 叢集中主機上執行的虛擬機器出現可存取性故障。如需有關 VMCP 以及如何在發生 APD 或 PDL 條件時設定資料存放區和虛擬機器回應的詳細資訊,請參閱vSphere 可用性說明文件。

偵測 PDL 狀況

如果 ESXi 主機永久無法使用某個儲存裝置,則會將該裝置視為處於永久裝置遺失 (PDL) 狀態。

通常,如果無意移除了某個裝置、其唯一識別碼發生變更或該裝置出現無法復原的硬體錯誤,就會出現 PDL 情況。

如果儲存區陣列判定某個裝置永久無法使用,會向 ESXi 主機傳送 SCSI 錯誤感應碼或 NVMe 錯誤代碼。接收這些錯誤後,您的主機會將裝置辨識為發生故障,並將其狀態登錄為 PDL。其所有路徑都必須接收感應碼,才能將裝置視為永久遺失。

登錄裝置的 PDL 狀態後,主機將停止嘗試與裝置重新建立連線,或傳送命令到裝置。

vSphere Client 會顯示有關裝置的下列資訊:
  • 該裝置的運作狀態變更為 Lost Communication
  • 全部路徑顯示為 Dead
  • 裝置中的資料存放區無法使用。

如果該裝置不存在開啟的連線或在最後連線關閉之後,主機將移除 PDL 裝置和通往該裝置的所有路徑。透過將進階主機參數 Disk.AutoremoveOnPDL 設定為 0 可停用路徑的自動移除功能。

如果裝置從 PDL 狀況回復,則主機可以探索該裝置,但會將其視為新裝置。不保證已還原裝置上可維持虛擬機器的資料一致性。

備註: 當裝置發生故障並且沒有傳送適當的 SCSI 感應碼、NVMe 錯誤代碼或 iSCSI 登入拒絕時,主機無法偵測 PDL 狀況。在此情況下,主機會繼續將裝置連線問題視為 APD,即使裝置發生永久故障。

永久裝置遺失和 SCSI 感應碼

SCSI 感應碼的下列 VMkernel 記錄範例,指示裝置處於 PDL 狀態。
H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x25 0x0 or Logical Unit Not Supported

永久裝置遺失和 NVMe 錯誤代碼

NVMe 錯誤代碼的下列 VMkernel 記錄範例,指示裝置處於 PDL 狀態。
H:0x0 D:0xb P:0x0 or H:0x0 D:0x11a P:0x0

永久裝置遺失和 iSCSI

在每個目標對應一個 LUN 的 iSCSI 陣列中,透過 iSCSI 登入失敗偵測 PDL。iSCSI 儲存區陣列會拒絕主機嘗試啟動 iSCSI 工作階段,原因為 Target Unavailable。與感應碼一樣,也必須接收所有路徑上的此回應,才能將裝置視為永久遺失。

永久裝置遺失和虛擬機器

登錄裝置的 PDL 狀態後,主機會關閉虛擬機器的所有 I/O。vSphere HA 可偵測 PDL 並重新啟動發生故障的虛擬機器。

執行計劃的儲存裝置移除

儲存裝置不正常時,您可以避免永久裝置遺失 (PDL) 狀況或所有路徑失效 (APD) 狀況,並執行計劃的儲存裝置移除和重新連線。

計劃的裝置移除是故意中斷儲存裝置的連線。您也可能會因升級硬體或重新設定儲存裝置等原因而計劃移除裝置。有條理地移除和重新連線儲存裝置時,您需要完成多項工作。

工作 說明
從計劃中斷連結的裝置移轉虛擬機器。 vCenter Server 和主機管理
卸載裝置上部署的資料存放區。 請參閱卸載資料存放區
中斷連結儲存裝置。 請參閱中斷連結儲存裝置
對於每個目標具有單一 LUN 的 iSCSI 裝置,請從具有該儲存裝置路徑的每個 iSCSI HBA 中刪除靜態目標項目。 請參閱移除動態或靜態 iSCSI 目標
透過使用陣列主控台執行任何必要的儲存裝置重新設定。 請參閱廠商說明文件。
重新連結儲存裝置。 請參閱連結儲存裝置
掛接資料存放區並重新啟動虛擬機器。 請參閱掛接資料存放區

中斷連結儲存裝置

安全地從 ESXi 主機中斷連結儲存裝置。

您可能需要中斷連結裝置以使主機無法對其進行存取,例如在儲存區端執行硬體升級時。

必要條件

  • 該裝置不包含任何資料存放區。
  • 該裝置未被任何虛擬機器用作 RDM 磁碟。
  • 該裝置不包含診斷磁碟分割或暫存磁碟分割。

程序

  1. vSphere Client 中,導覽至 ESXi 主機。
  2. 按一下設定索引標籤。
  3. 儲存區底下,按一下儲存裝置
  4. 選取要中斷連結的裝置,然後按一下中斷連結圖示。

結果

此時該裝置無法存取。該裝置的運作狀態會變更為 [已卸載]。

下一步

如果多台主機共用該裝置,請從每台主機中斷連結該裝置。

連結儲存裝置

重新連結先前與 ESXi 主機中斷連結的儲存裝置。

程序

  1. vSphere Client 中,導覽至 ESXi 主機。
  2. 按一下設定索引標籤。
  3. 儲存區底下,按一下儲存裝置
  4. 選取中斷連結的儲存裝置,然後按一下連結圖示。

結果

此時可以存取該裝置。

從 PDL 情況中復原

當儲存裝置變為永久無法使用且未從 ESXi 主機正常中斷連結時,會出現非計劃的永久裝置遺失 (PDL) 情況。

vSphere Client 中的下列項目表示裝置處於 PDL 狀態:
  • 裝置上部署的資料存放區無法使用。
  • 裝置的運作狀態變更為 [通訊中斷]。
  • 全部路徑顯示為 [無作用]。
  • VMkernel 記錄檔中將出現有關裝置永久無法存取的警告。

若要從非計劃的 PDL 情況中復原,並從主機中移除無法使用的裝置,請執行下列工作。

工作 說明
將受 PDL 情況影響的資料存放區上執行的所有虛擬機器關閉電源並解除登錄。 請參閱vSphere 虛擬機器管理
卸載資料存放區。

請參閱卸載資料存放區

重新掃描已存取該裝置的所有 ESXi 主機。
備註: 如果重新掃描失敗並且主機繼續列出裝置,則裝置的某些擱置的 I/O 或作用中的參考可能仍存在。請檢查對裝置或資料存放區仍具有作用中參考的任何項目。這些項目包括虛擬機器、範本、ISO 映像、原始裝置對應等。
請參閱執行儲存區重新掃描

處理暫時性 APD 條件

如果儲存裝置在未指定的期間內無法用於 ESXi 主機,則被視為處於所有路徑失效 (APD) 狀態。

例如,APD 狀態的原因可能是交換器發生故障,或是儲存區纜線中斷連線。

與永久裝置遺失 (PDL) 狀態相反,主機將 APD 狀態視為暫時性,並期望裝置會再次可用。

主機繼續重試發出命令,以嘗試與裝置重新建立連線。如果主機命令在較長一段時間內無法重試,則主機可能會存在效能問題風險。主機及其虛擬機器可能會沒有回應。

為避免出現這些問題,您的主機使用預設的 APD 處理功能。當裝置進入 APD 狀態時,主機會開啟計時器。計時器開啟後,主機僅在限定期間內繼續重試非虛擬機器命令。

依預設,APD 逾時設定為 140 秒。此值通常超過大部分裝置從連線中斷復原所需的時間。如果裝置在此時間內可用,主機及其虛擬機器則會繼續執行,而不會發生任何問題。

如果裝置未復原並且逾時結束,則主機會停止重試,並停止任何非虛擬機器 I/O。虛擬機器 I/O 將繼續重試。 vSphere Client 對 APD 逾時到期的裝置顯示下列資訊:
  • 該裝置的運作狀態變更為Dead or Error
  • 全部路徑顯示為Dead
  • 裝置中的資料存放區顯示為灰色。

雖然裝置和資料存放區無法使用,虛擬機器仍保持回應。您可以關閉虛擬機器的電源,或者將其移轉到不同的資料存放區或主機。

如果稍後裝置路徑變成運作狀態,則主機可以繼續執行裝置 I/O,並結束特殊 APD 處理。

停用儲存區 APD 處理

ESXi 主機上的儲存區所有路徑失效 (APD) 處理功能預設處於啟用狀態。啟用此功能後,如果儲存裝置進入 APD 狀態,則主機僅在限定期間內繼續重試非虛擬機器 I/O 命令。期間到期後,主機將停止重試嘗試,並終止所有非虛擬機器 I/O。您可停用主機上的 APD 處理功能。

如果停用 APD 處理功能,主機將無限期地持續重試發出命令,嘗試重新連線到 APD 裝置。此行為可能導致主機上的虛擬機器超過其內部 I/O 逾時值而無回應或發生故障。主機可能與 vCenter Server 中斷連線。

程序

  1. vSphere Client 中,導覽至 ESXi 主機。
  2. 按一下設定索引標籤。
  3. 系統下,按一下進階系統設定
  4. 在 [進階系統設定] 表格中,選取 Misc.APDHandlingEnable 參數,然後按一下 Edit 圖示。
  5. 將該值變更為 0。

結果

如果停用 APD 處理功能,您可在某個裝置進入 APD 狀態時將其重新啟用並將其值設定為 1。內部 APD 處理功能立即啟動,計時器從處於 APD 狀態的每個裝置的目前逾時值啟動。

變更儲存區 APD 的逾時限值

逾時參數可控制 ESXi 主機在多少秒後必須對處於 [所有路徑失效 (APD)] 狀態的儲存裝置重試 I/O 命令。您可以變更預設逾時值。

在裝置進入 APD 狀態後,逾時期間會立即開始。逾時結束後,主機會將 APD 裝置標記為無法連線。主機便會停止嘗試重試非來自虛擬機器的任何 I/O。但是主機會繼續重試虛擬機器 I/O。

依預設,主機上的逾時參數設為 140 秒。在某些狀況下,例如連線到您的 ESXi 主機的儲存裝置從連線中斷復原所用的時間超過 140 秒,您可以增加此逾時值。

備註: 如果您在裝置變成無法使用後變更逾時參數,該特定 APD 事件的變更不會生效。

程序

  1. vSphere Client 中,導覽至 ESXi 主機。
  2. 按一下設定索引標籤。
  3. 系統下,按一下進階系統設定
  4. 在 [進階系統設定] 表格中,選取 Misc.APDTimeout 參數,然後按一下 Edit 圖示。
  5. 變更預設值。
    您可以輸入介於 20 和 99999 秒之間的值。

驗證 ESXi 主機上儲存裝置的連線狀態

使用 esxcli 命令可驗證特定儲存裝置的連線狀態。

必要條件

安裝 ESXCLI。請參閱ESXCLI 入門。若要進行疑難排解,請在 ESXi Shell 中執行 esxcli 命令。

程序

  1. 執行 esxcli storage core device list -d=device_ID 命令。
  2. 檢閱 Status: 區域中的連線狀態。
    • on - 裝置已連線。
    • dead - 裝置已進入 APD 狀態。APD 計時器已啟動。
    • dead timeout - APD 逾時已到期。
    • not connected - 裝置處於 PDL 狀態。