開啟虛擬機器電源啟動失敗:“指定的裝置不是有效物理磁碟裝置”

mi_zy發表於2020-06-22

Related Products and Versions

  • VMware ESXi
  • VMware ESXi 6.0.x

一、現象:

  • 開啟虛擬機器電源失敗。

  • 您會看到以下錯誤:

    開啟虛擬機器 virtual_machine 電源時從 ESX 主機收到錯誤 (An error was received from the ESX host while powering on VM virtual_machine)。
    無法啟動虛擬機器 (Failed to start the virtual machine)。
    無法開啟模組磁碟的電源 (Module Disk power on failed)。
    無法開啟磁碟 '/vmfs/volumes/virtual_machine_datastore/virtual_machine_folder/virtual_machine.vmdk' 或其所依賴的快照磁碟之一 (Cannot open the disk '/vmfs/volumes/virtual_machine_datastore/virtual_machine_folder/virtual_machine.vmdk' or one of the snapshot disks it depends on)。
    指定的裝置不是有效的物理磁碟裝置 (The specified device is not a valid physical disk device)
  • 虛擬機器的 vMotion 在進行到 73% 時失敗。
  • 您會看到以下錯誤:

    出現一般系統錯誤 - 無法恢復。出現一般系統錯誤: 源檢測到目標無法恢復 (General system error occurred - Failed to resume. A general system error occurred: Source detected that destination failed to resume)。
  • In the  /vmfs/volumes/virtual_machine_datastore/virtual_machine_folder/vmware.log , you see entries similar to:

    vmx| I120: DISKLIB-LIB_MISC : DiskLibIsExtentPathSecure: Extent path "/vmfs/volumes/ virtual_machine_datastore/ virtual_machine_folder/ virtual_machine-flat.vmdk" points to within the scratch directory "/vmfs/volumes/51c23edc-66823826-3149-d89d671440d4", rejecting as insecure.

二、原因

This issue occurs when you have configured the  ScratchConfig.ConfiguredScratchLocation  setting to point to the base of your ESXi host's local storage and you have virtual machines running on the same local storage. This also occurs when you have the scratch partition on the base of the local storage and have put virtual machines in a sub-directory under the configured scratch partition. This is not supported with ESXi and any such virtual machine vmdk's are  marked as insecure .

Note : This issue can occur on NFS storage where the scratch directory is the base directory of the datastore, and in the same directory as virtual machines directories, or virtual machine directories are in a subdirectory of the directory containing the scratch directory.

配置  ScratchConfig.ConfiguredScratchLocation  設定時,如果將其指向 ESXi 主機本地儲存的基本目錄並在同一個本地儲存中執行虛擬機器,將發生此問題。當您在本地儲存的基本目錄上配置了暫存分割槽並將虛擬機器放在已配置的暫存分割槽下的子目錄中時,也將發生此問題。ESXi 不支援該做法,任何此類虛擬機器 vmdk 都會標記為不安全。
注意 :當 NFS 儲存的暫存目錄是資料儲存的基本目錄並與虛擬機器目錄位於同一目錄中(或者虛擬機器目錄是包含暫存目錄的目錄的子目錄)時,將發生此問題。

三、解決措施:

To resolve this issue, configure the scratch location parameter to point to a directory on the ESXi host that is a subfolder of the local datastore. In any case, the scratch directory and the virtual machine directories must be in separate subdirectory trees, and the scratch directory must never be defined as the base of a datastore which contains virtual machines.
For Example:
Set  ScratchConfig.ConfiguredScratchLocation to  /vmfs/volumes/datastore1/scratch instead of  /vmfs/volumes/datastore1.

要解決此問題,請將暫存位置引數配置為指向 ESXi 主機上作為本地資料儲存的子資料夾的目錄。在任何情況下,暫存目錄和虛擬機器目錄都必須位於單獨的子目錄樹中,並且永遠不得將暫存目錄定義為包含虛擬機器的資料儲存的基本目錄。

例如:
將  ScratchConfig.ConfiguredScratchLocation 設定為  /vmfs/volumes/datastore1/scratch,而不能設定為  /vmfs/volumes/datastore1。


*:有關配置持久 scratch 分割槽的詳細資訊,請參見  kb.vmware.com/s/article/1033696


注意 :對於 ESXi 7.0 之前的版本,暫存空間是在 ESXi 主機的安裝或首次引導期間自動配置的,通常不需要手動配置。如果空間足夠且目標裝置為“本地”裝置,則安裝期間,ESXi 安裝程式會在該裝置上建立一個 4 GB 的 Fat16 分割槽。

如果持久暫存空間不可用,ESXi 會將此臨時資料儲存在空間受限的 ramdisk 上。在記憶體不足的情況下,這可能會出現問題,但不會對 ESXi 操作有嚴重影響。儲存在 ramdisk 上的資訊在重新引導後將不再存在,因此諸如日誌和核心檔案之類的故障排除資訊可能會丟失。如果主機上的持久暫存位置配置不正確,則可能會由於空間不足無法更新臨時檔案和日誌檔案而引發間歇性問題。

影響:

  • 最初,重新引導主機會解決此問題,但幾天之後問題又會重新出現。
  • /var/log/ 檔案中缺少日誌檔案或日誌檔案未更新。
  • 您無法在受影響的 ESXi 主機上安裝 HA 代理

解決方法:

可以使用 vSphere Client、PowerCLI、技術支援模式或在指令碼式安裝期間手動為 ESXi 主機配置暫存空間。請選擇適合您環境的方法。無論選擇何種方法,配置都將寫入  /etc/vmware/locker.conf  配置檔案中,以便在下次引導時使用。
更改配置的暫存位置後,必須重新引導 ESXi 主機以使所做的更改生效。在進行更改之前,請先使用 vMotion 遷移 ESXi 主機上的所有虛擬機器或關閉它們的電源。有關詳細資訊,請參見  Rebooting an ESX Server host (1003530)
配置的暫存位置必須指向可供 ESXi 主機訪問的檔案系統上的某個目錄,如 VMFS 卷。該位置可以是共享磁碟上的目錄,也可以是遠端磁碟上的目錄,只要為 ESXi 主機分配了其自身的單獨目錄即可。

警告 :不要在多個 ESXi 主機之間共享一個暫存鎖存器目錄。 使用 vSphere Web Client 為 ESXi 5.1 及更高版本配置持久暫存位置

  1. 使用 vSphere Web Client 登入到 vCenter Server。
  2. 單擊 主機和群集,然後選擇特定主機。
  3. 單擊 管理選項卡。
  4. 單擊 設定 >  系統 >  高階系統設定
  5. 找到  ScratchConfig.ConfiguredScratchLocation
  6. 單擊 編輯,並新增指向暫存目錄的路徑。
  7. 重新引導主機。

另: 啟動虛擬機器失敗出現“指定的裝置不是有效物理磁碟裝置”提示(現象不是每次出現,偶爾還能啟動,影響了問題排查)原因見(kb.vmware.com/s/article/1033696),2022-02-09採取措施,新建資料儲存(esxi-log,容量2G),將指向虛擬機器業務儲存的esxi主機中高階系統設定項ScratchConfig.ConfiguredScratchLocation設定為使用沒有業務虛擬機器的 esxi-log 資料儲存。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7970627/viewspace-2699827/,如需轉載,請註明出處,否則將追究法律責任。

相關文章