重命名 VMware ESXi/ESX 中的虚拟机及其文件
search cancel

重命名 VMware ESXi/ESX 中的虚拟机及其文件

book

Article ID: 301428

calendar_today

Updated On:

Products

VMware vCenter Server VMware vSphere ESXi

Issue/Introduction

本文介绍如何通过 SSH、系统管理接口或直接在其控制台重命名虚拟机及其文件。

如果是使用 vSphere Client 重命名虚拟机,只会更改显示名称,而不会更改数据存储中的对应文件。同时重命名虚拟机的文件以保持一致性可能会很有帮助。


Symptoms:

免责声明:本文为 Renaming a virtual machine and its files in VMware ESXi and ESX (1029513) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


Environment

VMware ESXi 4.0.x Installable
VMware vCenter Server 4.1.x
VMware vCenter Server Appliance 5.1.x
VMware ESXi 3.5.x Embedded
VMware ESXi 4.0.x Embedded
VMware vSphere ESXi 5.5
VMware vCenter Server Appliance 5.0.x
VMware ESX Server 3.0.x
VMware ESXi 3.5.x Installable
VMware vSphere ESXi 5.1
VMware ESX 4.1.x
VMware vCenter Server Appliance 5.5.x
VMware ESX Server 3.5.x
VMware vCenter Server 5.0.x
VMware ESX 4.0.x
VMware vCenter Server 4.0.x
VMware vCenter Server 5.5.x
VMware vSphere ESXi 5.0
VMware VirtualCenter 2.5.x
VMware vCenter Server 5.1.x
VMware ESXi 4.1.x Installable
VMware ESXi 4.1.x Embedded

Resolution

注意:使用 Storage/Cold Storage vMotion 或使用控制台只能重命名 ESXi 5.0 中的文件夹名称,不能重命名其中的文件。此行为已发生更改,可以支持 ESXi 5.0 中的存储 DRS。有关详细信息,请参见 vSphere 5 Storage vMotion 在完成迁移时不重命名虚拟机文件 (2008877) (vSphere 5 Storage vMotion does not rename virtual machine files on completing migration (2008877))

虚拟机的文件可以在磁盘迁移操作(如冷存储迁移)期间重命名,也可以手动从 ESXi/ESX 控制台就地重新命名。选择首选方法。

或者,可以使用 vCenter Server 中的克隆方法或使用 vCenter Converter 将一个虚拟机克隆到新的虚拟机,并删除旧的虚拟机。

使用 Storage vMotion 重命名虚拟机文件

在从 vSphere Client 启动的 Storage vMotion 期间可以实时重命名虚拟机的文件。重命名不会造成停机。

要重命名 ESXi/ESX 4.x 和 ESXi/ESX 3.5 主机上的文件,请执行以下操作:

  1. 登录到 VMware vSphere Client。
  2. 在主机清单中查找虚拟机。
  3. 右键单击虚拟机并单击重命名
  4. 根据需要更改虚拟机名称。
  5. 开始对虚拟机执行 Storage vMotion 或脱机存储迁移。有关详细信息,请参见:

注意:Storage vMotion 只有在目标数据存储与原始数据存储不同时才会更改虚拟机文件名称。

完成迁移后,虚拟机文件将与步骤 4 中配置的虚拟机名称一致。

注意:如果数据存储上已存在同名虚拟机目录,则目标虚拟机将放在新目录中,并在末尾附加 _1

使用冷存储迁移重命名虚拟机文件

在 ESX/ESXi 4.x 中,虚拟机文件可以在从 vSphere Client 启动冷迁移期间实时重命名。在 ESXi 5.x 中,只有虚拟机的文件夹可以重命名。

要重命名文件,请执行以下操作:

  1. 登录到 VMware vSphere Client。
  2. 在主机清单中查找虚拟机。
  3. 右键单击虚拟机并单击重命名
  4. 根据需要更改虚拟机名称。
  5. 对虚拟机的新数据存储执行冷迁移。

    有关详细信息,请参见:

完成迁移后,虚拟机文件将与步骤 4 中配置的虚拟机名称一致。

注意:如果数据存储上已存在同名虚拟机目录,则目标虚拟机将放在新目录中,并在末尾附加 _1。

使用控制台就地重命名虚拟机文件

警告:继续之前,请确保满足以下条件:

  • 虚拟机具有最新备份且已关闭电源。
  • 虚拟机不会与其他虚拟机共享快照或虚拟磁盘。

要手动重命名虚拟机的文件,请执行以下操作:

  1. 登录到 VMware vSphere Client。
  2. 在主机清单中查找虚拟机。
  3. 关闭虚拟机电源。
  4. 右键单击虚拟机,然后单击从清单中移除
  5. 打开 ESXi/ESX 主机的控制台。有关详细信息,请参见无法使用安全 Shell (SSH) 连接 ESX 主机 (1003807) (Unable to connect to an ESX host using Secure Shell (SSH) (1003807))在 ESXi 4.1 和 ESXi 5.x 中使用技术支持模式 (1017910) (Using Tech Support Mode in ESXi 4.1 and ESXi 5.x (1017910))
  6. 导航到包含虚拟机的目录。例如:

    # cd /vmfs/volumes/DatastoreName/originalname

  7. 使用 vmkfstools -E 命令重命名虚拟磁盘 (VMDK) 文件。

    # vmkfstools -E "originalname.vmdk" "newname.vmdk"

    有关详细信息,请参见 Renaming a virtual machine disk (VMDK) via the vSphere Management Assistant (vMA) or vSphere CLI (vCLI) (1002491)

    注意
    • 在某些情况下,可能需要克隆(复制)虚拟磁盘。要将虚拟磁盘克隆到新虚拟磁盘,请运行此命令:

      # vmkfstools -i "originalname.vmdk" "newname.vmdk"

      此命令不会影响原始虚拟磁盘。需要具有足够的可用空间,才能在目标目录中克隆虚拟磁盘。如果使用上述命令,则会在当前目录中创建新的虚拟磁盘,但可以指定另一个目录。

    • 在运行 vmkfstools 命令后,无需重命名 originalname-flat.vmdk 文件。vmkfstools 命令将重命名这两个 VMDK 文件,并将更新描述符中的引用。

    • 不要使用 cpmv 命令重命名虚拟磁盘文件。而是使用 VMware 实用程序,如 vmkfstools

  8. 使用以下命令复制虚拟机配置文件 (.vmx):

    # cp "originalname.vmx" "newname.vmx"

  9. 在文本编辑器中打开新的虚拟机配置文件(例如,newname.vmx)。有关详细信息,请参见在 VMware ESXi 和 ESX 中编辑配置文件 (1017022) (Editing configuration files in VMware ESXi and ESX (1017022))

    例如:

    # vi "newname.vmx"

  10. 在配置文件内,将虚拟机的文件名的所有旧实例修改为新的文件名。至少要修改以下值(可能存在更多值):

    nvram = " newname.nvram"
    displayName = " newname "
    extendedConfigFile = " newname .vmxf"
    scsi0:0.fileName = " newname .vmdk"
    [...]
    migrate.hostlog = "./ newname -UUID.hlog"

    对每个虚拟机磁盘重复此过程。例如:

    scsi0:1.fileName = " newname _1.vmdk"
    scsi0:2.fileName = " newname _2.vmdk"

    更正 VMkernel 交换文件引用。例如:

    sched.swap.derivedName = "/vmfs/volumes/DatastoreUUID/ newname/ newname-UUID.vswp

    注意:确保重命名 .vswp 文件以及该交换文件的目录名(上文中的粗体部分)。

  11. 更正引用原始路径或文件名的任何其余行。
  12. 保存文件并退出编辑器。
  13. 将其余所有文件(.vmx 配置文件除外)重命名为新名称。

    例如:

    # mv "originalname.nvram" "newname.nvram"

  14. 将目录切换到父级目录:

    # cd ..

  15. 重命名虚拟机的目录:

    # mv "originalname" "newname"

  16. 使用 VMware vSphere Client 浏览数据存储并导航到已重命名的虚拟机目录。
  17. 右键单击虚拟机的新配置文件(例如 newname.vmx)并选择添加到清单

    或者,可以使用此命令将虚拟机添加到清单中:

    对于 ESX:

    # vmware-cmd -s register "/vmfs/volumes/DatastoreName/newname/newname.vmx"

    对于 ESXi:

    # vim-cmd solo/registervm /vmfs/volumes/DatastoreName/newname/newname.vmx

  18. 启动虚拟机。
  19. 在打开电源期间,摘要选项卡中将显示一个针对虚拟机的问题。采用以下方式查看该问题:

    • 单击摘要选项卡。
    • 右键单击清单中的虚拟机并选择回答问题

      出现提示时,选择我移动了它,然后单击确定

      警告:如果选择我复制了它,将更改虚拟机的 UUID 和 MAC 地址,对于对 MAC 地址变化敏感的客户机应用程序以及依赖于 UUID 的虚拟机备份,这将产生不利影响。
  1. 也可以选择删除原始虚拟机配置文件。

    例如:

    # rm /vmfs/volumes/DatastoreName/newname/originalname.vmx


Additional Information

ESX 的命令行解释器区分大小写,并需要将一些虚拟机文件名中使用的特殊字符转义。上述示例支持在命令参数周围使用引号,以确保空格和特殊字符按字面意思解释,不需要转义序列。

例如,名为“Original VM”的虚拟机以“Original VM”(带引号)或 Original\ VM 的形式来引用。

特殊字符(如左括号和右括号)也需要字符转义。名为“Original VM (1)”的虚拟机以“Original VM (1)”(带引号)或 Original\ VM\ \(1\) 的形式引用。

前述引号方法显著简化了该过程并提高了可读性。

有关转义字符的更多信息,请参见《Bash 参考手册》(Bash Reference Manual)

Renaming a virtual machine disk (VMDK) via the vSphere Management Assistant (vMA) or vSphere CLI (vCLI)
Renaming a virtual machine and its files in VMware ESXi and ESX