在 VMware 虚拟环境下移动或拷贝虚拟磁盘
search cancel

在 VMware 虚拟环境下移动或拷贝虚拟磁盘

book

Article ID: 307610

calendar_today

Updated On:

Products

VMware VMware Desktop Hypervisor VMware vSphere ESXi

Issue/Introduction

在特定的情况下,你可能需要将指定的虚拟机磁盘文件从一个位置迁移到另外一个位置。这些情况可能包括,但不局限于如下:

  • 将虚拟机磁盘从使用一个 VMware 产品平台迁移到使用另外一个 VMware 产品的平台。
  • 故障排除问题,包括磁盘空间使用过高情况
  • 平衡磁盘空间的使用
  • 克隆一个虚拟机
  • 备份一个虚拟机

本文探讨和描述了搬迁VMware环境内虚拟机文件的不同方法。


Symptoms:

免责声明:本文为 Moving or copying virtual disks in a VMware environment (900) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


Resolution

现存 VMware 产品和特点:

为了支持某些内部操作,ESX 安装包含了一套标准的 Linux 配置命令,例如网络和存储的配置命令。使用这些命令来执行配置任务,可能会导致严重的配置冲突以及使某些 ESX 的功能无法使用。在配置 ESX 时,总是使用 vSphere Client 来完成,除非是在 vSphere 文档或 VMware 技术支持的指导下。

在手动移动或复制虚拟机磁盘文件之前,先考虑使用现有的 VMware 功能,来完成类似的期望结果。这些VMware 功能包括:

注意事项和附加说明

特定于移动和迁移虚拟机磁盘文件的动作,有几条注意事项:

  • 不同版本的 VMware 产品可能会实现不同的虚拟磁盘文件格式。更多信息,请参阅 Virtual Machine Disk Format (VMDK)
  • 当使用快照时,一个虚拟机磁盘文件可能对应多个 VMDK 文件,它们是相互依存的链表的一部分。更多信息,请参阅 VDDK API documentation
  • 为防止ESX上出现性能和数据管理相关问题,尽量避免在存储操作上使用 scp,cp,或 mv; 而使用 vmkfstools。更多信息,请参阅 Third-Party Software in the Service Console

复制虚拟机文件前

为了避免任何关于快照和不一致的磁盘链的潜在问题,我们必须确保虚拟机没有任何快照。带快照的虚拟机迁移超出本文范围,并且 VMware 强烈建议使用上述替代方法之一。同时,我们必须准确知道我们要移动的虚拟磁盘文件的存放位置,包括确保虚拟机已关机。

如下步骤概述了通过 vSphere/VI Client 连接 vCenter 或 ESX,对虚拟磁盘做操作前需要做什么:

  1. 使用带有管理员凭据的 vSphere/VI Client 连接 ESX 主机。
  2. 右键点击虚拟机,并点击快照>快照管理器, 来确定使用该磁盘文件的虚拟机没有任何的快照。
  3. 右键点击所要拷贝的虚拟机并点击编辑设置,点击虚拟磁盘,参考虚拟机属性磁盘文件部分。将数据存储和虚拟磁盘文件的位置记录下来。
  4. 关闭虚拟机。

:如没有虚拟机来接收虚拟磁盘文件,您可能要提前创建虚拟机,来建立移动或复制操作的目的地。

如下步骤概括了在 VMware Workstation 环境对虚拟磁盘进行操作前要做的工作:

  1. 打开 VMware Workstation,单击你要进行操作的虚拟磁盘所在的虚拟机。
  2. 点击虚拟机>快照>快照管理器, 并且移除任何的先存在的快照。
  3. 点击虚拟机>设置…>选项标签, 将虚拟机设置界面左下角的工作目录部分记录下来。
  4. 点击虚拟机>电源>关闭客户机,来关闭虚拟机。

:如没有虚拟机来接收虚拟磁盘文件,您可能要提前创建虚拟机,来建立移动或复制操作的目的地。

如果你想要通过 ESX 服务控制台快照,请参阅在服务控制台内提交快照 (1006847) (Committing snapshots from within the Service Console (1006847))

使用ESX服务控制台拷贝虚拟磁盘文件

  1. 使用远程控制台或 SSH,以 root 身份登录 ESX 主机。关于如何开启 SSH 的详细信息请参阅在 ESX 主机上启用 root SHH 登录 (8375637) (Enabling root SSH login on an ESX host (8375637))
  2. 在虚拟机的虚拟磁盘使用了快照的情况下,你必须在实施任何存储操作前将这些快照合并。
  3. 运行 vmware-cmd -l 命令来列出所有注册到该主机的虚拟机的配置(vmx)文件的完整路径。

    例如:


    / vmfs/volumes/478e0d5b-3535f6a8-0ee2-0017a446ae31/VMtest/VMtest.vmx


    :配置文件的完整路径,在本文余下部分中,由 <cfg> 来确定。

  4. 运行 vmware-cmd <cfg> stop 命令来关闭所需虚拟机
  5. 运行 grep –i vmdk <cfg> 命令列出跟该虚拟机相关的所有虚拟磁盘文件


    scsi0:0.fileName = "VMtest.vmdk"
    scsi0:0.fileName = "/vmfs/volumes/478e0d5b-3535f6a8-0ee2-0017a446ae31/VMtest_1.vmdk"

    :这些条目可能不包括该目录的完整路径。如果未列出一个完整的路径,参考<cfg>值的完整路径。源虚拟磁盘的完整路径将在本文余下部分中,用<src>来确定。

    警告:如果文件名是以 ​​-#######.vmdk 结尾,那么你的虚拟机仍在运行快照。如果你发现这些文件都存在,但在快照管理器中没有任何快照,请参考快照管理器中不存在快照条目时提交快照 (2081808) (Committing snapshots when there are no snapshot entries in the snapshot manager (1002310))

  6. 运行vmkfstools -i <src> <dst>其中 <dst> 是你想要复制文件的目的地。
:旧版本的ESX语法可能会有所不同。对ESX 2.5.X,请参考Examples of Using vmkfstools from the ESX 2.5.X documentation
使用 ESX 和 ESXi vSphere 命令行界面复制虚拟磁盘文件

不同于 ESX,ESXi 没有服务控制台。使用 vSphere 命令行界面中的vifs工具来实现文件复制。vifs命令执行常见的操作,如复制,删除,得到(下载),以及放置(上传)。该命令受 ESX / ESXi 主机支持,但不受 vCenter Server 系统支持。使用 vifs 命令来执行虚拟机文件的文件操作。使用vifs的语法和实例请参考 vSphere Command-Line Interface Installation and Reference Guide

使用ESX和ESXi的 vSphere / VI 客户端数据存储浏览器来复制虚拟磁盘文件

数据存储浏览器允许您在 vSphere / VI Client 清单中管理数据存储内容。你可以使用数据存储浏览器来完成如下任务:

  • 查看或搜索数据存储的内容。
  • 添加数据存储中的虚拟机或模板到 vSphere / VI Client 清单。
  • 复制或移动文件从一个位置到另一个位置,包括到另一个数据存储。
  • 从客户端计算机上传一个文件到数据存储。
  • 从数据存储下载文件到客户端计算机。
  • 在数据存储上删除或重命名文件。

数据存储浏览器的运作方式类似于文件系统应用程序,如 Windows 资源管理器。它支持许多常见的文件系统操作,包括复制,剪切和粘贴文件。数据存储浏览器不支持拖-放操作。对于使用数据存储浏览器的详细说明,请参阅 vSphere/VI Client 在线帮助。

使用 ESX 和 ESXi 的 Web 浏览器复制虚拟磁盘文件

ESX 和 ESXi 服务器上有一个内置的 Web 服务,它允许你通过 Web 浏览器来访问文件。虽然这个文件复制的方法是单向的,不允许上传文件,但在某些特定情况下,它可能是个很好的选择。访问这些文件,使用本协议:

  1. 打开一个 Web 浏览器。
  2. 打开 http://<host</SPAN> ip address>/folder 链接,其中 <host ip address> 是 ESX 主机的 IP 或 DNS 名称。
  3. 提示时输入适当的用户名和密码。
  4. 点击 ha-datacenter 链接。
  5. 浏览和下载所需的虚拟磁盘文件。

:当使用浏览器的移动和复制 ESX 中的虚拟磁盘文件,你必须既拷贝磁盘文件,也拷贝描述文件。例如,如果一个虚拟机磁盘的名称是 disk.vmdk,它会有一个相应的的 flat.vmdk 磁盘文件也需要复制或移动。

复制虚拟磁盘文件到(和从)VMware Server 或 VMware 桌面产品

VMware 桌面产品,如 VMware Workstation 和 VMware ACE,包括 VMware 虚拟磁盘管理实用程序。如下是VMware 虚拟磁盘管理实用程序的一些例子:

vmware-vdiskmanager -n mydisk.vmdk "..\another_path\myNewDisk.vmdk"

vmware-vdiskmanager -n mydisk.vmdk "..\another_path\mydisk.vmdk"

关于虚拟磁盘管理实用程序的更多信息,请参阅 Virtual Disk Manager User's Guide

通过网络,复制虚​​拟磁盘文件到(和从)不同的平台

通过网络移动虚拟磁盘文件,可以用多种方法在多种平台上实现。这些选项可以传输跨越不同平台的文件:

  • FTP 文件传输
  • SCP 文件传输
  • NFS 共享
  • Windows 文件共享(CIFS 共享)

如何启用,配置和传输文件的步骤,使用的具体方法在本文范围之外。当通过网络传输虚拟磁盘文件,建议在文件传输前和后验证信息。这可以通过使用 MD5 校验。欲了解更多有关使用 MD5 校验信息,请参考Using MD5 Checksums


Additional Information

Moving or copying virtual disks in a VMware environment