注意:使用 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 主机上的文件,请执行以下操作:
- 登录到 VMware vSphere Client。
- 在主机清单中查找虚拟机。
- 右键单击虚拟机并单击重命名。
- 根据需要更改虚拟机名称。
- 开始对虚拟机执行 Storage vMotion 或脱机存储迁移。有关详细信息,请参见:
注意:Storage vMotion 只有在目标数据存储与原始数据存储不同时才会更改虚拟机文件名称。
完成迁移后,虚拟机文件将与步骤 4 中配置的虚拟机名称一致。
注意:如果数据存储上已存在同名虚拟机目录,则目标虚拟机将放在新目录中,并在末尾附加 _1。
使用冷存储迁移重命名虚拟机文件
在 ESX/ESXi 4.x 中,虚拟机文件可以在从 vSphere Client 启动冷迁移期间实时重命名。在 ESXi 5.x 中,只有虚拟机的文件夹可以重命名。
要重命名文件,请执行以下操作:
- 登录到 VMware vSphere Client。
- 在主机清单中查找虚拟机。
- 右键单击虚拟机并单击重命名。
- 根据需要更改虚拟机名称。
- 对虚拟机的新数据存储执行冷迁移。
有关详细信息,请参见:
完成迁移后,虚拟机文件将与步骤 4 中配置的虚拟机名称一致。
注意:如果数据存储上已存在同名虚拟机目录,则目标虚拟机将放在新目录中,并在末尾附加 _1。
使用控制台就地重命名虚拟机文件
警告:继续之前,请确保满足以下条件:
- 虚拟机具有最新备份且已关闭电源。
- 虚拟机不会与其他虚拟机共享快照或虚拟磁盘。
要手动重命名虚拟机的文件,请执行以下操作:
- 登录到 VMware vSphere Client。
- 在主机清单中查找虚拟机。
- 关闭虚拟机电源。
- 右键单击虚拟机,然后单击从清单中移除。
- 打开 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))。
- 导航到包含虚拟机的目录。例如:
# cd /vmfs/volumes/DatastoreName/originalname
- 使用 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 文件,并将更新描述符中的引用。
- 不要使用 cp 或 mv 命令重命名虚拟磁盘文件。而是使用 VMware 实用程序,如 vmkfstools。
- 使用以下命令复制虚拟机配置文件 (.vmx):
# cp "originalname.vmx" "newname.vmx"
- 在文本编辑器中打开新的虚拟机配置文件(例如,newname.vmx)。有关详细信息,请参见在 VMware ESXi 和 ESX 中编辑配置文件 (1017022) (Editing configuration files in VMware ESXi and ESX (1017022))。
例如:
# vi "newname.vmx"
- 在配置文件内,将虚拟机的文件名的所有旧实例修改为新的文件名。至少要修改以下值(可能存在更多值):
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 文件以及该交换文件的目录名(上文中的粗体部分)。
- 更正引用原始路径或文件名的任何其余行。
- 保存文件并退出编辑器。
- 将其余所有文件(.vmx 配置文件除外)重命名为新名称。
例如:
# mv "originalname.nvram" "newname.nvram"
- 将目录切换到父级目录:
# cd ..
- 重命名虚拟机的目录:
# mv "originalname" "newname"
- 使用 VMware vSphere Client 浏览数据存储并导航到已重命名的虚拟机目录。
- 右键单击虚拟机的新配置文件(例如 newname.vmx)并选择添加到清单。
或者,可以使用此命令将虚拟机添加到清单中:
对于 ESX:
# vmware-cmd -s register "/vmfs/volumes/DatastoreName/newname/newname.vmx"
对于 ESXi:
# vim-cmd solo/registervm /vmfs/volumes/DatastoreName/newname/newname.vmx
- 启动虚拟机。
- 在打开电源期间,摘要选项卡中将显示一个针对虚拟机的问题。采用以下方式查看该问题:
- 单击摘要选项卡。
- 右键单击清单中的虚拟机并选择回答问题。
出现提示时,选择我移动了它,然后单击确定。
警告:如果选择我复制了它,将更改虚拟机的 UUID 和 MAC 地址,对于对 MAC 地址变化敏感的客户机应用程序以及依赖于 UUID 的虚拟机备份,这将产生不利影响。
- 也可以选择删除原始虚拟机配置文件。
例如:
# rm /vmfs/volumes/DatastoreName/newname/originalname.vmx