vSphere HA 重新配置灰显:所有原因与修复方法
2026-06-22
2026-06-22
2026-06-22
2026-06-16
XVA 是 XenServer 的原生虚拟机导出格式。如果迁移到 VMware,ESXi 无法识别它 — 你需要先将其转换为 VMDK。本指南介绍了四种转换方法,以及迁移后经常出现的启动和驱动程序问题的修复方法。
XVA 文件是 Citrix XenServer 和 XCP-ng 的标准导出格式。它将虚拟机的 VHD 磁盘和 XML 配置文件打包成一个 tar 归档文件。
VMDK 是 VMware 的虚拟磁盘格式。ESXi 和 vSphere 需要它来运行虚拟机。VMX 文件与它配合使用,作为定义虚拟机硬件设置的配置文件。
由于 XVA 是一个打包的归档文件,而 VMDK 是一个扁平磁盘镜像,VMware 无法直接挂载或启动 XVA 文件。转换磁盘格式是将 XenServer 虚拟机运行在 ESXi 上的唯一方法。
这种转换最常出现在平台迁移、数据中心整合以及两个站点运行不同虚拟化平台的灾难恢复设置中。

成功的迁移更多地取决于源虚拟机的准备方式,而不是转换工具本身。跳过这些步骤通常会导致系统无法启动或出现“不可访问的启动设备”错误。
Linux 用户的手动方法涉及拆解 XVA 归档文件并从其组成部分重建磁盘镜像。这种方法提供了最大的控制权,并且适用于 XCP-ng 或独立的 XenServer 主机。
从 XenServer 主机开始,在接触 VMware 端的任何内容之前,先处理到原始磁盘镜像。
步骤 1:从 XenServer 导出虚拟机:直接在 XenServer 或 XCP-ng 主机上运行以下命令,将虚拟机导出为 .xva 文件。
sudo yum install qemu-img
步骤 2:提取 XVA 归档文件:XVA 文件是包含 1MB 磁盘块的 tar 归档文件。将内容提取到工作目录中。
mkdir xva_out && tar -xf vm.xva -C xva_out
步骤 3:重建原始磁盘:使用 xva-img 将提取的块重新组合成单个原始磁盘镜像。这些块存储在以磁盘引用命名的子目录中,例如 Ref:1。
xva-img -p disk-export xva_out/Ref\:1/ vm.raw
步骤 4:验证原始镜像:在继续之前,确认输出文件已正确创建。
qemu-img info vm.raw
步骤 5:将原始磁盘转换为 VMDK:使用 qemu-img 从原始镜像生成 VMDK 文件。
qemu-img convert -f raw -O vmdk vm.raw output.vmdk
VMDK 准备好后,剩余步骤将转移到 VMware 环境。
步骤 6:上传到 VMware:使用 vSphere Client 或 SCP 将 .vmdk 文件传输到 ESXi 数据存储。然后创建新的虚拟机并选择 使用现有虚拟磁盘 进行挂载。
XenConvert 是一款传统的 Citrix 工具,用于在不同格式之间迁移虚拟设备。虽然它不再积极更新,但对于偏好图形界面而非命令行的 Windows 管理员来说,它仍然是一个选择。
此工作流程需要 XenConvert 2.3.1 或 2.3.2 版本。2.4 及更高版本移除了 XVA 到 OVF 转换的支持,因此不适用于此迁移路径。

首先从 XenServer 导出虚拟机,并通过 XenConvert 运行以生成可用的磁盘文件。
xe vm-export vm=<VM_NAME> filename=vm.xva

在导入磁盘之前,描述文件需要一次手动编辑,以防止 VMware 启动失败。
qemu-img convert -f vpc -O vmdk input.vhd output.vmdkddb.adapterType = "lsilogic"
描述文件修正后,磁盘即可上传并挂载到新的虚拟机上。
使用 OVA(开放虚拟化设备)格式通常是在虚拟化平台之间迁移虚拟机的最有效方式。由于 Citrix 和 VMware 都支持 OVF 标准,此方法不需要单独的 V2V 转换工具。
第一步是从现有的 XenServer 或 XCP-ng 环境生成 OVA 文件。
一旦 OVA 文件准备好,剩余过程完全在 vSphere 内处理。



此方法与手动导出不同,因为它直接通过网络转换正在运行的虚拟机,无需 XVA 导出或磁盘文件处理。它遵循类似于 VMware P2V 迁移 的方法,其中 Converter 自动管理传输和格式转换。

在开始转换任务之前,确认以下两个条件都已满足。
此方法需要 XenServer 主机与目标 ESXi 主机或 vCenter 之间稳定的网络连接。VMware vCenter Converter Standalone 还需要安装在能够访问两个环境的 Windows 机器上。
前提条件满足后,打开 Converter 并按照以下步骤开始迁移。
迁移完成后,在客户机操作系统上安装 VMware Tools。如果之前未移除 XenServer Tools,请先卸载它们,然后再安装 VMware Tools。
即使转换顺利完成,迁移后的虚拟机也可能无法启动或性能不佳。大多数问题源于 XenServer 和 VMware 在处理存储控制器和设备驱动程序方面的差异。
这通常由 SCSI 控制器不匹配引起。首先检查 .vmdk 描述文件 — 在文本编辑器中打开两个 .vmdk 文件中较小的那个,确认适配器类型设置正确:
ddb.adapterType = "lsilogic"
如果描述文件正确但虚拟机仍然无法启动,请将虚拟机设置中的磁盘控制器类型更改为 LSI Logic SAS 或 LSI Logic Parallel 并重试。
客户机操作系统可能在首次启动后无法检测到网络适配器,因为 VMware 使用与 XenServer 不同的虚拟网卡(VMXNET3)。安装 VMware Tools 以提供正确的网络驱动程序。
如果虚拟机启动但运行缓慢,请检查是否仍安装了 XenServer PV 驱动程序或 Citrix 组件。这些驱动程序尝试与 Xen 虚拟化平台通信,而该平台在新环境中不再存在,导致不必要的系统开销。卸载所有 Xen 和 Citrix 组件并重新启动。
本指南中介绍的方法适用于一次性迁移,但它们需要大量的手动工作 — 导出 XVA 文件、处理磁盘块、编辑描述文件以及排除启动故障。对于迁移多台虚拟机或在生产环境中进行迁移(停机不可接受)的团队来说,专用的迁移平台是更实用的方法。
i2Move 是一个统一的迁移平台,专为跨物理、虚拟和云环境的跨平台工作负载传输而构建。它处理本文中介绍的那种 异构虚拟化 迁移 — 包括不同虚拟化平台之间的 V2V 场景 — 而无需手动磁盘转换或文件处理。
对于迁移后还需要持续数据保护的团队,i2Availability 提供环境之间的实时复制和自动故障转移,一旦你的虚拟机在 VMware 上运行,它就是一个自然的补充。
问题 1:可以在没有 Linux 的情况下将 XVA 转换为 VMDK 吗?
可以。基于 Windows 的 XenConvert 工具(2.3.1 或 2.3.2 版本)可以在无需任何命令行操作的情况下处理转换。或者,从 XenCenter 将虚拟机导出为 OVA 文件通常是更简单的选项 — 它可以直接导入 vSphere,无需任何磁盘操作。
问题 2:XVA 包含多个磁盘吗?如何处理?
XVA 文件可以包含多个虚拟磁盘。使用 tar 提取归档文件时,每个磁盘存储在自己的子目录中 — Ref:1、Ref:2 等。对每个目录分别运行 xva-img 以生成单独的原始镜像,然后将每个镜像转换为 VMDK,再将它们挂载到 vSphere 中的新虚拟机上。
问题 3:我可以从 VMDK 转换回 XVA 吗?
可以,虽然该过程不是一步反向操作。将 VMware 虚拟机导出为 OVF 或 OVA,然后使用 XenCenter 中的 导入 向导将其导回 XenServer。导入过程处理磁盘格式转换,但计划在之后移除 VMware Tools 并在客户机操作系统上重新安装 XenServer Tools。
问题 4:我可以直接使用 OVA 而不是手动转换 XVA 吗?
可以,对于大多数环境来说,这是推荐的方法。OVA 是一种行业标准格式,XenServer 和 VMware 都支持,因此无需手动重建磁盘或编辑描述文件。主要限制是较旧版本的 XenServer 可能不支持 OVA 导出 — 在这些情况下,手动 xva-img 方法是备选方案。
将 XVA 转换为 VMDK 很少是一个一步到位的过程。根据你的环境和可用工具,合适的方法各不相同 — Linux 命令行方法给你最大的控制权,XenConvert 和 OVA 方法适用于基于 Windows 的工作流程,而 vCenter Converter 是在无需停机的情况下迁移正在运行的虚拟机时的最佳选择。
无论使用哪种方法,准备步骤与转换本身同样重要。在导出前移除 XenServer Tools 和在之后修正磁盘适配器类型是最有可能决定虚拟机首次启动是否顺利的两个步骤。
对于处理大规模或生产迁移的团 英方软件 的 i2Move 消除了大部分手动工作 — 自动处理跨平台 V2V 传输、驱动程序注入和验证,这样你就可以专注于迁移结果而不是工具本身。
公告
邮件
销售