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

将VM迁移到ONTAP数据存储库

贡献者

将VM迁移到ONTAP数据存储库

作者:Sresh Thoppay

VMware vSphere by Broadcom支持使用VMFS、NFS和VVOl数据存储库托管虚拟机。客户可以选择使用超融合基础架构或集中式共享存储系统创建这些数据存储库。客户经常看到在基于ONTAP的存储系统上托管的价值、可以为虚拟机提供节省空间的快照和克隆、跨数据中心和云选择各种部署模式的能力、监控和警报工具的运营效率、用于检查VM数据的安全性、监管和可选合规性工具、 等等。

可以使用适用于VMware vSphere的SnapCenter插件(SCV)保护ONTAP数据存储库上托管的VM。选择控制阀创建基于存储的快照、并复制到远程ONTAP存储系统。可以从主存储系统或二级存储系统执行还原。

客户可以灵活地选择或Cloud Insights操作系统、也可以同时选择这两者或其他第三方工具、这些工具使用ONTAP API来进行故障排除、监控性能、报告和警报通知功能。

客户可以使用ONTAP工具vCenter插件或其API轻松配置数据存储库、即使ONTAP数据存储库已启动、也可以将虚拟机迁移到该数据存储库。

备注 使用外部管理工具(如阿里阿自动化、Tanzu或其他Kubornetes类型)部署的某些VM通常取决于VM存储策略。如果在同一VM存储策略内的数据存储库之间进行迁移、则对应用程序的影响应较小。请与应用程序所有者联系、以将这些VM正确迁移到新数据存储库。推出vSphere 8 "VMotion通知" 为vMotion准备应用程序。

网络要求

使用vMotion迁移VM

我们假定已为ONTAP数据存储库设置了双存储网络、以提供连接、容错和性能提升。

在vSphere主机之间迁移VM也可通过vSphere主机的VMKernel接口进行。对于热迁移(已启动虚拟机)、将使用启用了vMotion服务的VMKernel接口;对于冷迁移(已关闭虚拟机)、将使用启用了配置服务的VMKernel接口来移动数据。如果未找到有效接口、则会使用管理接口移动某些使用情形可能不需要的数据。

具有已启用服务的VMkernel

编辑VMKernel接口时、可以使用此处的选项启用所需的服务。

VMkernel服务选项
提示 确保至少有两个高速活动上行链路NIC可用于vMotion和配置VMkernel接口所使用的端口组。

虚拟机迁移方案

无论虚拟机的电源状态如何、通常都会使用VMotion来迁移虚拟机。下面提供了适用于特定情形的其他注意事项和迁移操作步骤。

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

按照下面的操作步骤使用UI将VM迁移到新数据存储库。

  1. 使用vSphere Web Client、从存储清单中选择数据存储库、然后单击VM选项卡。

    特定数据存储库上的VM
  2. 选择需要迁移的VM、然后右键单击以选择迁移选项。

    要迁移的VM
  3. 选择仅更改存储的选项、然后单击下一步

    仅更改存储
  4. 选择所需的虚拟机存储策略、然后选择兼容的数据存储库。单击下一步。

    符合虚拟机存储策略的数据存储库
  5. 查看并单击完成。

    存储迁移回顾

要使用PowerCLI迁移VM、请参见以下示例脚本。

#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集群中迁移VM

按照下面的操作步骤使用UI将VM迁移到新数据存储库。

  1. 使用vSphere Web Client、从主机和集群清单中选择集群、然后单击VM选项卡。

    特定集群上的VM
  2. 选择需要迁移的VM、然后右键单击以选择迁移选项。

    要迁移的VM
  3. 选择仅更改存储的选项、然后单击下一步

    仅更改存储
  4. 选择所需的虚拟机存储策略、然后选择兼容的数据存储库。单击下一步。

    符合虚拟机存储策略的数据存储库
  5. 查看并单击完成。

    存储迁移回顾

要使用PowerCLI迁移VM、请参见以下示例脚本。

#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 (动态资源计划)结合使用、并且这两个(源和目标)数据存储库的类型相同(VMS/NFS/VVOV)、请将这两个数据存储库保留在同一存储集群中、并通过在源上启用维护模式从源数据存储库迁移VM。经验与处理计算主机以进行维护的方式类似。
在多个vSphere集群之间迁移VM
备注 请参见 "CPU兼容性和vSphere增强型vMotion兼容性" 源主机和目标主机的CPU系列或型号不同。

按照下面的操作步骤使用UI将VM迁移到新数据存储库。

  1. 使用vSphere Web Client、从主机和集群清单中选择集群、然后单击VM选项卡。

    特定集群上的VM
  2. 选择需要迁移的VM、然后右键单击以选择迁移选项。

    要迁移的VM
  3. 选择更改计算资源和存储的选项、然后单击"Next"(下一步)

    更改计算和存储
  4. 导航并选择要迁移的正确集群。

    选择目标集群
  5. 选择所需的虚拟机存储策略、然后选择兼容的数据存储库。单击下一步。

    符合虚拟机存储策略的数据存储库
  6. 选择VM文件夹以放置目标VM。

    选择目标VM文件夹
  7. 选择目标端口组。

    选择目标端口组
  8. 查看并单击完成。

    存储迁移回顾

要使用PowerCLI迁移VM、请参见以下示例脚本。

#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 Server之间迁移VM

按照下面的操作步骤将VM迁移到同一vSphere Client UI上列出的新vCenter Server。

备注 有关源vCenter版本和目标vCenter版本等其他要求、请查看 "有关vCenter Server实例之间vMotion的要求的vSphere文档"
  1. 使用vSphere Web Client、从主机和集群清单中选择集群、然后单击VM选项卡。

    特定集群上的VM
  2. 选择需要迁移的VM、然后右键单击以选择迁移选项。

    要迁移的VM
  3. 选择更改计算资源和存储的选项、然后单击"Next"(下一步)

    更改计算和存储
  4. 在目标vCenter Server中选择目标集群。

    选择目标集群
  5. 选择所需的虚拟机存储策略、然后选择兼容的数据存储库。单击下一步。

    符合虚拟机存储策略的数据存储库
  6. 选择VM文件夹以放置目标VM。

    选择目标VM文件夹
  7. 选择目标端口组。

    选择目标端口组
  8. 查看迁移选项、然后单击完成。

    存储迁移回顾

要使用PowerCLI迁移VM、请参见以下示例脚本。

#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 Server之间迁移VM
备注 此场景假定vCenter Server之间存在通信。否则、请检查下面列出的跨数据中心位置方案。有关前提条件、请检查 "有关Advanced Cross vCenter vMotion的vSphere文档"

按照下面的操作步骤使用UI将VM迁移到不同的vCenter Server。

  1. 使用vSphere Web Client、选择源vCenter服务器、然后单击VM选项卡。

    源vCenter上的VM
  2. 选择需要迁移的VM、然后右键单击以选择迁移选项。

    要迁移的VM
  3. 选择选项"跨vCenter Server导出"、然后单击"下一步"

    跨vCenter Server导出
    提示 也可以从目标vCenter Server导入虚拟机。对于该操作步骤、请检查 "使用高级跨vCenter vMotion导入或克隆虚拟机"
  4. 提供vCenter凭据详细信息、然后单击Login。

    vCenter凭据
  5. 确认并接受vCenter Server的SSL证书指纹

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

    选择目标计算集群
  7. 根据虚拟机存储策略选择目标数据存储库。

    选择目标数据存储库
  8. 选择目标VM文件夹。

    选择目标VM文件夹
  9. 为每个网络接口卡映射选择VM端口组。

    选择目标端口组
  10. 查看并单击完成、在vCenter Server之间启动vMotion。

    Cross vMotion Operation Review (交叉vMotion操作检查)

要使用PowerCLI迁移VM、请参见以下示例脚本。

#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
跨数据中心位置迁移VM
  • 如果通过使用NSX联合或其他选项在数据中心之间扩展第2层流量、请按照操作步骤在vCenter Server之间迁移VM。

  • HCX提供各种功能 "迁移类型" 在数据中心之间使用Replication Assisted vMotion移动VM、而不会出现任何停机。

  • "Site Recovery Manager ( SRM )" 通常用于灾难恢复、也经常用于利用基于存储阵列的复制进行计划内迁移。

  • 持续数据保护(Continuous Data Protection、CDP)产品使用 "适用于IO的vSphere API (VAIO)" 截获数据并将副本发送到远程位置、以实现近乎为零的RPO解决方案。

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

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

在混合云环境中迁移VM
提示 如果源VM驻留在块VVOR数据存储库上、则可以使用SnapMirror将其复制到其他受支持的云提供商的Amazon FSx for NetApp ONTAP或Cloud Volumes ONTAP (CVO)、并将其用作云原生VM的iSCSI卷。

VM模板迁移方案

VM模板可以由vCenter Server或内容库进行管理。VM模板、VF和OVA模板的分发、其他类型的文件通过将其发布到本地内容库中来处理、远程内容库可以订阅。

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

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

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

迁移数据存储库上托管的VM模板
  1. 在vSphere Web Client中、右键单击VM and Template文件夹视图下的VM模板、然后选择要转换为VM的选项。

    将VM模板转换为VM
  2. 将其转换为虚拟机后、请按照虚拟机迁移选项进行操作。

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

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

  3. 右键单击该项目,然后单击“Clone Item (克隆项目)”。

    克隆内容库项目
    警告 如果使用操作菜单、请确保列出正确的目标对象以执行操作。
  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)
在内容库中将VM添加为模板
  1. 在vSphere Web Client中、选择虚拟机、然后右键单击以选择"Clone as Template in Library (在库中克隆为模板)"

    VM克隆为libary中的模板
    提示 如果选择将VM模板克隆到libary中、则它只能将其存储为VF和OVA模板、而不能存储为VM模板。
  2. 确认选择"Template type"(模板类型)作为"VM Template "(VM模板)、然后按照" Answering the wizard"(回答向导)完成此操作

    模板类型选择
    备注 有关内容库中VM模板的其他详细信息、请查看 "《vSphere VM管理指南》"

用例

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

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

    备注 要与源vCenter上其他集群上的现有虚拟机进行网络通信、请通过将源vCenter vSphere主机添加到传输区域来扩展NSX分段、或者使用边缘上的L2网桥在VLAN中进行L2通信。查看的NSX文档 "配置用于桥接的边缘VM"