在升级后的主机上打开虚拟机电源失败,并显示以下错误:找不到文件 [VMFS 卷] VM-name/VM-name.vmdk
search cancel

在升级后的主机上打开虚拟机电源失败,并显示以下错误:找不到文件 [VMFS 卷] VM-name/VM-name.vmdk

book

Article ID: 343650

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:
免责声明:本文为 Powering on a virtual machine on an upgraded host fails with the error: File [VMFS volume] VM-name/VM-name.vmdk was not found (2036572) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


将主机升级到 ESX/ESXi 4.1 Patch 8(内部版本 1050704)、ESXi 5.0 Patch 5(内部版本 1024429)、ESXi 5.1 或 ESXi 5.5 后,您会遇到以下症状:

  • 无法打开某些虚拟机的电源
  • 打开虚拟机电源失败,并显示以下错误:

    找不到文件 [VMFS 卷] VM-name/VM-name.vmdk (File [VMFS volume] VM-name/VM-name.vmdk was not found)。

  • 查看此消息的详细信息时,您会看到类似以下内容的条目:

    错误堆栈 (Error Stack):
    打开虚拟机 VM-name 电源时收到来自 ESX 主机的错误 (An error was received from the ESX host while powering on VM VM-name)
    无法打开磁盘“/vmfs/volumes/Datastore/VM-name/VM-name.vmdk”或其所依赖的磁盘块找之一 (Cannot open the disk '/vmfs/volumes/Datastore/VM-name/VM-name.vmdk' or one of the snapshot disks it depends on.)。
    系统找不到指定的文件 (The system cannot find the file specified)。
    VMware ESX 找不到虚拟磁盘“/vmfs/volumes/数据存储/VM-name/VM-name.vmdk”。请验证路径是否有效,然后重试 (VMware ESX cannot find the virtual disk '/vmfs/volumes/Datastore/VM-name/VM-name.vmdk'. Verify the path is valid and try again)。


Environment

VMware ESX 4.1.x
VMware ESXi 4.1.x Installable
VMware vSphere ESXi 5.5
VMware vSphere ESXi 5.0
VMware vSphere ESXi 5.1
VMware ESXi 4.1.x Embedded

Cause

当默认情况下不再在以下主机中加载 vmkernel 多数据区模块时,会发生此问题:
  • ESX 和 ESXi 4.1 Patch 8
  • ESXi 5.0 Patch 5
  • ESXi 5.1
  • ESXi 5.5

有关详细信息,请参见:

Resolution

要对托管格式的虚拟磁盘执行克隆、复制或迁移操作,请将 vmkernel 多数据区模块加载到 ESXi 中。
要加载 vmkernel 多数据区模块,请执行以下操作:
  1. 打开 ESXi 主机的控制台。有关详细信息,请参见 Using Tech Support Mode in ESXi 4.1 and ESXi 5.x (1017910)
  2. 运行以下命令以加载多数据区模块:

    # vmkload_mod multiextent

  3. 检查是否有任何虚拟机磁盘属于托管类型。托管磁盘以 -s00x.vmdk 扩展名结尾。
  4. 将托管格式的虚拟磁盘转换成某种 VMFS 格式。

    要将托管格式的虚拟磁盘转换成某种 VMFS 格式,请执行以下操作:

    1. 使用以下命令之一将源托管磁盘克隆到新磁盘中:

      对于厚 vmdk 磁盘:

      • # vmkfstools -i VM-name.vmdk <VM-name-new-disk>.vmdk -d zeroedthick
      • # vmkfstools -i VM-name.vmdk /vmfs/volumes/destination_datastore/vmfolder/<VM-name-new-disk>.vmdk -d zeroedthick


      对于精简 vmdk 磁盘:

      • # vmkfstools -i VM-name.vmdk <VM-name-new-disk>.vmdk -d thin
      • # vmkfstools -i VM-name.vmdk /vmfs/volumes/destination_datastore/vmfolder/<VM-name-new-disk>.vmdk -d thin

    2. 使用以下命令在成功克隆后删除托管磁盘:

      # vmkfstools -U VM-name.vmdk

    3. 使用以下命令将克隆的 VMFS 类型的新磁盘重命名为原始磁盘名称:

      # vmkfstools -E VM-name-new-disk.vmdk VM-name.vmdk

  5. 运行以下命令以卸载多数据区模块:

    # vmkload_mod -u multiextent

有关详细信息,请参见 Cloning and converting virtual machine disks with vmkfstools (1028042)

有关管理模块的详细信息,请参见 vSphere 5.1 Command Line DocumentationvSphere 5.5 Command-Line Documentation 中的管理 VMkernel 模块


Additional Information

与有问题的虚拟机关联的磁盘文件不同于常规 vmdk 文件,且不存在与 vmdk 文件关联的平面文件。而您可以在描述符文件中查看其他更小的 vmdk 文件的列表。此类型的磁盘称为 2gbsparse。此格式与 VMware Fusion、Player、Server 和 Workstation 等托管产品兼容。
虚拟机磁盘可跨多个 2GB 数据区进行扩展,从而消除潜在的跨平台文件系统兼容性问题。
在 VMware ESX 或 ESXi 中运行的虚拟机不支持此格式。

常见问题

如何知道加载了哪些模块?

要确定加载了哪些模块,请运行以下命令:

# esxcfg-module -l

不加载 VMkernel 多数据区模块是否会影响 ESX/ESXi 功能?

不会,不加载 VMkernel 多数据区模块不会影响此功能。但是,当需要导入托管格式的虚拟磁盘时,将使用 VMkernel 多数据区模块。

有关详细信息,请参见 VMware vSphere 5.1 Release Notes 中的 ESXi 上涉及非 VMFS 虚拟磁盘的克隆或迁移操作会失败,并显示错误
Powering on a virtual machine on an upgraded host fails with the error: File [VMFS volume] VM-name/VM-name.vmdk was not found