Skip to main content
NetApp virtualization solutions
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

将虚拟机迁移到ONTAP数据存储库

贡献者 netapp-jsnyder kevin-hoke

希望实现虚拟化基础设施现代化的组织通常需要将虚拟机迁移到更高效的存储平台。了解如何将虚拟机从各种存储系统迁移到NetApp ONTAP数据存储区,从而让您能够利用 ONTAP 的高级数据管理功能、节省空间的快照和集成的数据保护功能。

Broadcom 的 VMware vSphere 支持用于托管虚拟机的 VMFS、NFS 和 vVol 数据存储区。客户可以选择使用超融合基础设施或集中共享存储系统来创建这些数据存储。

客户通常认为在基于ONTAP的存储系统上托管的价值在于提供节省空间的虚拟机快照和克隆、在数据中心和云中灵活选择各种部署模型、通过监控和警报工具实现运营效率、安全性、治理和可选合规性工具来检查虚拟机数据等等。

可以使用适用于 VMware vSphere (SCV) 的SnapCenter插件保护托管在ONTAP数据存储上的虚拟机。 SCV 创建基于存储的快照并复制到远程ONTAP存储系统。可以从主存储系统或辅助存储系统执行恢复。

客户可以灵活地选择Cloud Insights或 Aria Operations 或两者的组合,或使用ONTAP api 进行故障排除、性能监控、报告和警报通知功能的其他第三方工具。

客户可以使用ONTAP Tools vCenter 插件或其 API 轻松配置数据存储,并且即使在开启电源时也可以将虚拟机迁移到ONTAP数据存储。

备注 一些使用外部管理工具(如 Aria Automation、Tanzu(或其他 Kubernetes 版本))部署的虚拟机通常依赖于虚拟机存储策略。如果在同一虚拟机存储策略内的数据存储之间进行迁移,则对应用程序的影响应该较小。请与应用程序所有者确认,如何将这些虚拟机正确迁移到新的数据存储。vSphere 8 引入了 "针对延迟敏感型应用程序的 vSphere vMotion 通知"为 vMotion 准备应用程序。

网络要求

使用 vMotion 进行虚拟机迁移

假设ONTAP数据存储已具备双存储网络,以提供连接性、容错能力和性能提升。

跨 vSphere 主机的虚拟机迁移也由 vSphere 主机的 VMKernel 接口处理。对于热迁移(启动虚拟机),使用启用 vMotion 服务的 VMKernel 接口,而对于冷迁移(关闭虚拟机),使用启用 Provisioning 服务的 VMKernel 接口来移动数据。如果没有找到有效的接口,它将使用管理接口来移动数据,这对于某些用例来说可能并不理想。

已启用服务的 VMKernel

当您编辑 VMKernel 接口时,这里有启用所需服务的选项。

VMKernel 服务选项

提示 确保 vMotion 和 Provisioning VMkernel 接口使用的端口组至少有两个高速活动上行链路网卡可用。

虚拟机迁移场景

vMotion 通常用于迁移虚拟机,而不管其电源状态如何。以下是针对特定场景的额外注意事项和迁移程序。

备注 理解 "vSphere vMotion 的虚拟机条件和限制"在继续任何 VM 迁移选项之前。
从特定 vSphere 数据存储迁移虚拟机

按照以下步骤使用 UI 将虚拟机迁移到新的数据存储。

  1. 使用 vSphere Web Client,从存储清单中选择数据存储,然后单击“虚拟机”选项卡。

    特定数据存储上的虚拟机

  2. 选择需要迁移的虚拟机,右键单击选择迁移选项。

    要迁移的虚拟机

  3. 选择仅更改存储的选项,单击“下一步”

    仅更改存储

  4. 选择所需的虚拟机存储策略并选择兼容的数据存储。单击“下一步”。

    符合虚拟机存储策略的数据存储

  5. 检查并单击“完成”。

    存储迁移审查

要使用 PowerCLI 迁移虚拟机,请参阅以下示例脚本。

#Authenticate to vCenter
Connect-VIServer -server vcsa.sddc.netapp.local -force

# Get all VMs with filter applied for a specific datastore
$vm = Get-DataStore 'vSanDatastore' | Get-VM Har*

#Gather VM Disk info
$vmdisk = $vm | Get-HardDisk

#Gather the desired Storage Policy to set for the VMs. Policy should be available with valid datastores.
$storagepolicy = Get-SPBMStoragePolicy 'NetApp Storage'

#set VM Storage Policy for VM config and its data disks.
$vm, $vmdisk | Get-SPBMEntityConfiguration | Set-SPBMEntityConfiguration -StoragePolicy $storagepolicy

#Migrate VMs to Datastore specified by Policy
$vm | Move-VM -Datastore (Get-SPBMCompatibleStorage -StoragePolicy $storagepolicy)

#Ensure VM Storage Policy remains compliant.
$vm, $vmdisk | Get-SPBMEntityConfiguration
同一 vSphere 集群中的虚拟机迁移

按照以下步骤使用 UI 将虚拟机迁移到新的数据存储。

  1. 使用 vSphere Web Client,从主机和群集清单中选择群集,然后单击“虚拟机”选项卡。

    特定集群上的虚拟机

  2. 选择需要迁移的虚拟机,右键单击选择迁移选项。

    要迁移的虚拟机

  3. 选择仅更改存储的选项,单击“下一步”

    仅更改存储

  4. 选择所需的虚拟机存储策略并选择兼容的数据存储。单击“下一步”。

    符合虚拟机存储策略的数据存储

  5. 检查并单击“完成”。

    存储迁移审查

要使用 PowerCLI 迁移虚拟机,请参阅以下示例脚本。

#Authenticate to vCenter
Connect-VIServer -server vcsa.sddc.netapp.local -force

# Get all VMs with filter applied for a specific cluster
$vm = Get-Cluster 'vcf-m01-cl01' | Get-VM Aria*

#Gather VM Disk info
$vmdisk = $vm | Get-HardDisk

#Gather the desired Storage Policy to set for the VMs. Policy should be available with valid datastores.
$storagepolicy = Get-SPBMStoragePolicy 'NetApp Storage'

#set VM Storage Policy for VM config and its data disks.
$vm, $vmdisk | Get-SPBMEntityConfiguration | Set-SPBMEntityConfiguration -StoragePolicy $storagepolicy

#Migrate VMs to Datastore specified by Policy
$vm | Move-VM -Datastore (Get-SPBMCompatibleStorage -StoragePolicy $storagepolicy)

#Ensure VM Storage Policy remains compliant.
$vm, $vmdisk | Get-SPBMEntityConfiguration
提示 当数据存储群集与全自动存储 DRS(动态资源调度)一起使用并且两个(源和目标)数据存储属于同一类型(VMFS/NFS/vVol)时,请将两个数据存储保留在同一个存储群集中,并通过在源上启用维护模式从源数据存储迁移虚拟机。体验将类似于计算主机的维护处理方式。
跨多个 vSphere 集群迁移虚拟机
备注 参考 "CPU 兼容性和 vSphere Enhanced vMotion 兼容性"当源主机和目标主机属于不同的 CPU 系列或型号时。

按照以下步骤使用 UI 将虚拟机迁移到新的数据存储。

  1. 使用 vSphere Web Client,从主机和群集清单中选择群集,然后单击“虚拟机”选项卡。

    特定集群上的虚拟机

  2. 选择需要迁移的虚拟机,右键单击选择迁移选项。

    要迁移的虚拟机

  3. 选择更改计算资源和存储的选项,单击“下一步”

    更改计算和存储

  4. 导航并选择正确的集群进行迁移。

    选择目标集群

  5. 选择所需的虚拟机存储策略并选择兼容的数据存储。单击“下一步”。

    符合虚拟机存储策略的数据存储

  6. 选择 VM 文件夹来放置目标 VM。

    目标虚拟机文件夹选择

  7. 选择目标端口组。

    目标端口组选择

  8. 检查并单击“完成”。

    存储迁移审查

要使用 PowerCLI 迁移虚拟机,请参阅以下示例脚本。

#Authenticate to vCenter
Connect-VIServer -server vcsa.sddc.netapp.local -force

# Get all VMs with filter applied for a specific cluster
$vm = Get-Cluster 'vcf-m01-cl01' | Get-VM Aria*

#Gather VM Disk info
$vmdisk = $vm | Get-HardDisk

#Gather the desired Storage Policy to set for the VMs. Policy should be available with valid datastores.
$storagepolicy = Get-SPBMStoragePolicy 'NetApp Storage'

#set VM Storage Policy for VM config and its data disks.
$vm, $vmdisk | Get-SPBMEntityConfiguration | Set-SPBMEntityConfiguration -StoragePolicy $storagepolicy

#Migrate VMs to another cluster and Datastore specified by Policy
$vm | Move-VM -Destination (Get-Cluster 'Target Cluster') -Datastore (Get-SPBMCompatibleStorage -StoragePolicy $storagepolicy)

#When Portgroup is specific to each cluster, replace the above command with
$vm | Move-VM -Destination (Get-Cluster 'Target Cluster') -Datastore (Get-SPBMCompatibleStorage -StoragePolicy $storagepolicy) -PortGroup (Get-VirtualPortGroup 'VLAN 101')

#Ensure VM Storage Policy remains compliant.
$vm, $vmdisk | Get-SPBMEntityConfiguration
在同一 SSO 域中跨 vCenter 服务器迁移虚拟机

按照以下步骤将虚拟机迁移到同一 vSphere Client UI 上列出的新 vCenter 服务器。

备注 对于源和目标 vCenter 版本等其他要求,请查看 "有关 vCenter 服务器实例之间 vMotion 要求的 vSphere 文档"
  1. 使用 vSphere Web Client,从主机和群集清单中选择群集,然后单击“虚拟机”选项卡。

    特定集群上的虚拟机

  2. 选择需要迁移的虚拟机,右键单击选择迁移选项。

    要迁移的虚拟机

  3. 选择更改计算资源和存储的选项,单击“下一步”

    更改计算和存储

  4. 在目标 vCenter 服务器中选择目标集群。

    选择目标集群

  5. 选择所需的虚拟机存储策略并选择兼容的数据存储。单击“下一步”。

    符合虚拟机存储策略的数据存储

  6. 选择 VM 文件夹来放置目标 VM。

    目标虚拟机文件夹选择

  7. 选择目标端口组。

    目标端口组选择

  8. 检查迁移选项并单击“完成”。

    存储迁移审查

要使用 PowerCLI 迁移虚拟机,请参阅以下示例脚本。

#Authenticate to Source vCenter
$sourcevc = Connect-VIServer -server vcsa01.sddc.netapp.local -force
$targetvc = Connect-VIServer -server vcsa02.sddc.netapp.local -force

# Get all VMs with filter applied for a specific cluster
$vm = Get-Cluster 'vcf-m01-cl01'  -server $sourcevc| Get-VM Win*

#Gather the desired Storage Policy to set for the VMs. Policy should be available with valid datastores.
$storagepolicy = Get-SPBMStoragePolicy 'iSCSI' -server $targetvc

#Migrate VMs to target vCenter
$vm | Move-VM -Destination (Get-Cluster 'Target Cluster' -server $targetvc) -Datastore (Get-SPBMCompatibleStorage -StoragePolicy $storagepolicy -server $targetvc) -PortGroup (Get-VirtualPortGroup 'VLAN 101' -server $targetvc)

$targetvm = Get-Cluster 'Target Cluster' -server $targetvc | Get-VM Win*

#Gather VM Disk info
$targetvmdisk = $targetvm | Get-HardDisk

#set VM Storage Policy for VM config and its data disks.
$targetvm, $targetvmdisk | Get-SPBMEntityConfiguration | Set-SPBMEntityConfiguration -StoragePolicy $storagepolicy

#Ensure VM Storage Policy remains compliant.
$targetvm, $targetvmdisk | Get-SPBMEntityConfiguration
在不同 SSO 域中的 vCenter 服务器之间迁移虚拟机
备注 此场景假设 vCenter 服务器之间存在通信。否则,请检查下面列出的跨数据中心位置场景。对于先决条件,请检查 "有关高级跨 vCenter vMotion 的 vSphere 文档"

按照以下步骤使用 UI 将虚拟机迁移到不同的 vCenter 服务器。

  1. 使用 vSphere Web Client,选择源 vCenter 服务器并单击“VM”选项卡。

    源 vCenter 上的虚拟机

  2. 选择需要迁移的虚拟机,右键单击选择迁移选项。

    要迁移的虚拟机

  3. 选择“跨 vCenter Server 导出”选项,单击“下一步”

    跨 vCenter Server 导出

    提示 也可以从目标 vCenter 服务器导入 VM。对于该过程,请检查 "使用高级跨 vCenter vMotion 导入或克隆虚拟机"
  4. 提供 vCenter 凭证详细信息并单击登录。

    vCenter 凭据

  5. 确认并接受 vCenter 服务器的 SSL 证书指纹

    SSL 指纹

  6. 展开目标 vCenter 并选择目标计算集群。

    选择目标计算集群

  7. 根据虚拟机存储策略选择目标数据存储。

    选择目标数据存储

  8. 选择目标虚拟机文件夹。

    选择目标虚拟机文件夹

  9. 为每个网络接口卡映射选择 VM 端口组。

    选择目标端口组

  10. 检查并单击“完成”以在 vCenter 服务器之间启动 vMotion。

    Cross vMotion 操作回顾

要使用 PowerCLI 迁移虚拟机,请参阅以下示例脚本。

#Authenticate to Source vCenter
$sourcevc = Connect-VIServer -server vcsa01.sddc.netapp.local -force
$targetvc = Connect-VIServer -server vcsa02.sddc.netapp.local -force

# Get all VMs with filter applied for a specific cluster
$vm = Get-Cluster 'Source Cluster'  -server $sourcevc| Get-VM Win*

#Gather the desired Storage Policy to set for the VMs. Policy should be available with valid datastores.
$storagepolicy = Get-SPBMStoragePolicy 'iSCSI' -server $targetvc

#Migrate VMs to target vCenter
$vm | Move-VM -Destination (Get-Cluster 'Target Cluster' -server $targetvc) -Datastore (Get-SPBMCompatibleStorage -StoragePolicy $storagepolicy -server $targetvc) -PortGroup (Get-VirtualPortGroup 'VLAN 101' -server $targetvc)

$targetvm = Get-Cluster 'Target Cluster' -server $targetvc | Get-VM Win*

#Gather VM Disk info
$targetvmdisk = $targetvm | Get-HardDisk

#set VM Storage Policy for VM config and its data disks.
$targetvm, $targetvmdisk | Get-SPBMEntityConfiguration | Set-SPBMEntityConfiguration -StoragePolicy $storagepolicy

#Ensure VM Storage Policy remains compliant.
$targetvm, $targetvmdisk | Get-SPBMEntityConfiguration
跨数据中心位置迁移虚拟机
  • 当使用 NSX Federation 或其他选项将第 2 层流量跨数据中心延伸时,请按照跨 vCenter 服务器迁移虚拟机的步骤进行操作。

  • HCX 提供各种 "迁移类型"包括跨数据中心的复制辅助 vMotion,以便在不停机的情况下移动虚拟机。

  • "站点恢复管理器 (SRM)"通常用于灾难恢复目的,也经常用于利用基于存储阵列的复制进行计划迁移。

  • 持续数据保护 (CDP) 产品使用 "vSphere IO API(VAIO)"拦截数据并将副本发送到远程位置以实现接近零 RPO 解决方案。

  • 还可以使用备份和恢复产品。但通常会导致更长的 RTO。

  • "BlueXP灾难恢复即服务 (DRaaS)"利用基于存储阵列的复制并自动执行某些任务来恢复目标站点的虚拟机。

混合云环境中虚拟机的迁移
提示 当源虚拟机驻留在块 vVol 数据存储上时,可以使用SnapMirror将其复制到其他受支持的云提供商的Amazon FSx ONTAP或Cloud Volumes ONTAP (CVO),并作为云原生虚拟机的 iSCSI 卷使用。

虚拟机模板迁移场景

VM 模板可以由 vCenter Server 或内容库管理。 VM 模板、OVF 和 OVA 模板的分发,其他类型文件的发布方式是将其发布在本地内容库中,远程内容库可以订阅它。

  • 存储在 vCenter 清单上的 VM 模板可以转换为 VM 并使用 VM 迁移选项。

  • OVF 和 OVA 模板,内容库中存储的其他类型的文件可以克隆到其他内容库。

  • 内容库 VM 模板可以托管在任何数据存储上,并且需要添加到新的内容库中。

迁移数据存储上托管的虚拟机模板
  1. 在 vSphere Web Client 中,右键单击 VM 和模板文件夹视图下的 VM 模板,然后选择转换为 VM 的选项。

    将虚拟机模板转换为虚拟机

  2. 一旦将其转换为 VM,请按照 VM 迁移选项进行操作。

克隆内容库项目
  1. 在 vSphere Web Client 中,选择内容库

    内容库选择

  2. 选择要克隆的项目的内容库

  3. 右键单击该项目,然后单击克隆项目..

    克隆内容库项目

    警告 如果使用操作菜单,请确保列出正确的目标对象以执行操作。
  4. 选择目标内容库并点击确定。

    目标内容库选择

  5. 验证该项目是否在目标内容库中可用。

    克隆项目验证

以下是将内容库项目从内容库 CL01 复制到 CL02 的示例 PowerCLI 脚本。

#Authenticate to vCenter Server(s)
$sourcevc = Connect-VIServer -server 'vcenter01.domain' -force
$targetvc = Connect-VIServer -server 'vcenter02.domain' -force

#Copy content library items from source vCenter content library CL01 to target vCenter content library CL02.
Get-ContentLibaryItem -ContentLibary (Get-ContentLibary 'CL01' -Server $sourcevc) | Where-Object { $_.ItemType -ne 'vm-template' } | Copy-ContentLibaryItem -ContentLibrary (Get-ContentLibary 'CL02' -Server $targetvc)
在内容库中添加虚拟机作为模板
  1. 在 vSphere Web Client 中,选择虚拟机并右键单击以选择在库中克隆为模板

    VM 克隆为库中的模板

    提示 当选择 VM 模板在库中克隆时,它只能将其存储为 OVF 和 OVA 模板,而不能存储为 VM 模板。
  2. 确认模板类型选择为虚拟机模板,并按照向导完成操作。

    模板类型选择

    备注 有关内容库中虚拟机模板的更多详细信息,请查看 "vSphere VM 管理指南"

使用案例

从第三方存储系统(包括 vSAN)迁移到ONTAP数据存储。
  • 根据ONTAP数据存储库的配置位置,从上面选择 VM 迁移选项。

从 vSphere 的先前版本迁移到最新版本。
迁移到 VCF 工作负载域。
  • 将虚拟机从每个 vSphere 群集迁移到目标工作负载域。

    备注 为了允许与源 vCenter 上其他群集上的现有虚拟机进行网络通信,可以通过将源 vCenter vSphere 主机添加到传输区域来扩展 NSX 段,或者使用边缘上的 L2 桥接来允许 VLAN 中的 L2 通信。检查 NSX 文档 "配置 Edge 虚拟机以进行桥接"