本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 VMware VMs Power HCX 实现自动化迁移 CLI
由 Giri Nadiminty (AWS)、Hassan Adekoya () 和 Naveen Deshwal 创作 AWS
摘要
注意:自 2024 年 4 月 30 日起,VMwareCloud on AWS 不再由其渠道 AWS 合作伙伴转售。该服务将继续通过博通提供。我们鼓励您联系您的 AWS 代表了解详情。 |
此模式描述了如何使用AWS由 P VMware ower CLI 脚本支持的VMware混合VMware云扩展 (VMs) 自动化将VMware本地虚拟机 (HCX) 迁移到 Cloud on。Power CLI
您可以调整这种模式,以便在软件定义的数据中心 (SDDCs) 和云环境的vCenters任意组合之间进行迁移。此模式中包含的 Power CLI 脚本使用自动化而不是鼠标点击来执行所有虚拟机配置和调度任务,因此它们可以节省迁移活动的时间,并有助于降低人为错误的风险。
先决条件和限制
先决条件
VMwareCloud AWS 账号上有 SDDC
现有的本地或云端 vCenter 或 SDDC
具有源和目标所需权限的用户帐户, vCenters 或 SDDCs
HCX在源和目标 vCenters 之间配置HCX网络扩展 (HCX-NE)
的@@ 站点配对 或 SDDCs VMwareCLI已在您选择的服务器上安装@@ 电源
限制
如果电源 vCenter 使用交叉-vCenter NSX,则电源CLI模块将无法工作。使用脚本方法(例如 Python)HCXAPI来代替 Power CLI。
如果迁移VMs需要新的名称或 IP 地址,请使用脚本方法(例如 Python)和HCXAPI。
此模式不会填充 .csv 文件,这是必要条件。你可以使用 VMware vRealize Network Insight (vRNI) 或其他方法填充文件。
产品版本
VMware vSphere 版本 5 或更高版本
VMwareHCX版本 4.4 或更高版本
VMware强力CLI版本 12.7 或更高版本
架构
源技术堆栈
本地或云端 VMware
目标技术堆栈
VMwareCloud on AWS
目标架构
工具
AWS 服务
VMwareCloud on AWS
是一项由AWS共同设计的服务,VMware旨在帮助您将本地VMwarevSphere环境迁移和扩展到AWS云端。
其他工具
VMwareHybrid Cloud Extension (HCX
) 是一种实用程序,用于在AWS不更改底层平台的情况下将工作负载从本地VMware环境迁移到VMware云端。注意:该产品以前被称为混合云扩展和NSX混合连接。此模式HCX用于虚拟机迁移。 VMwarePower CLI
是用于自动化VMware vSphere 和管理的命令行工具。 vCloud 你可以使用 PowerShell cmdle CLI t 在 Window PowerShell s 中运行 Power 命令。此模式使用 Power CLI 来运行迁移命令。
代码
简单、独立脚本
我们建议您使用此单机脚本执行初始测试,以验证配置选项是否被接受并按预期运行。有关说明,请参阅操作说明部分。
<# Manual Variables #> $HcxServer = "[enterValue]" $SrcNetworkName = "[enterValue]" $DstNetworkName = "[enterValue]" $DstComputeName = "[enterValue]" $DstDSName = "[enterValue]" $DstFolderName = "[enterValue]" $vmName = "[enterValue]" <# Environment Setup #> Connect-HCXServer -Server $HcxServer $HcxDstSite = Get-HCXSite -Destination $HcxSrcSite = Get-HCXSite -Source $SrcNetwork = Get-HCXNetwork -Name $SrcNetworkName -Type VirtualWire -Site $HcxSrcSite $DstNetwork = Get-HCXNetwork -Name $DstNetworkName -Type NsxtSegment -Site $HcxDstSite $DstCompute = Get-HCXContainer -Name $DstComputeName -Site $HcxDstSite $DstDS = Get-HCXDatastore -Name $DstDSName -Site $HcxDstSite $DstFolder = Get-HCXContainer -name $DstFolderName -Site $HcxDstSite $vm = Get-HCXVM -Name $vmName <# Migration #> $NetworkMapping = New-HCXNetworkMapping -SourceNetwork $SrcNetwork -DestinationNetwork $DstNetwork $NewMigration = New-HCXMigration -VM $vm -MigrationType vMotion -SourceSite $HcxSrcSite -DestinationSite $HcxDstSite -Folder $DstFolder -TargetComputeContainer $DstCompute -TargetDatastore $DstDS -NetworkMapping $NetworkMapping -DiskProvisionType Thin -UpgradeVMTools $True -RemoveISOs $True -ForcePowerOffVm $True -RetainMac $True -UpgradeHardware $True -RemoveSnapshots $True
功能齐全、基于 .csv 的脚本
测试完成后,您可在生产环境中使用以下脚本。有关说明,请参阅操作说明部分。
<# Schedule #> write-host("Getting Time for Scheduling") $startTime = [DateTime]::Now.AddDays(12) $endTime = [DateTime]::Now.AddDays(15) <# Migration #> Connect-HCXServer -Server [enterValue] write-host("Getting Source Site") $HcxSrcSite = Get-HCXSite write-host("Getting Target Site") $HcxDstSite = Get-HCXSite -Destination $HCXVMS = Import-CSV .\Import_VM_list.csv ForEach ($HCXVM in $HCXVMS) { $DstFolder = Get-HCXContainer $HCXVM.DESTINATION_VM_FOLDER -Site $HcxDstSite $DstCompute = Get-HCXContainer $HCXVM.DESTINATION_COMPUTE -Site $HcxDstSite $DstDatastore = Get-HCXDatastore $HCXVM.DESTINATION_DATASTORE -Site $HcxDstSite $SrcNetwork = Get-HCXNetwork $HCXVM.SOURCE_NETWORK -Type VirtualWire -Site $HcxSrcSite $DstNetwork = Get-HCXNetwork $HCXVM.DESTINATION_NETWORK -Type NsxtSegment -Site $HcxDstSite $NetworkMapping = New-HCXNetworkMapping -SourceNetwork $SrcNetwork -DestinationNetwork $DstNetwork $NewMigration = New-HCXMigration -VM (Get-HCXVM $HCXVM.VM_NAME) -MigrationType Bulk -SourceSite $HcxSrcSite -DestinationSite $HcxDstSite -Folder $DstFolder -TargetComputeContainer $DstCompute -TargetDatastore $DstDatastore -NetworkMapping $NetworkMapping -DiskProvisionType Thin -UpgradeVMTools $True -RemoveISOs $True -ForcePowerOffVm $True -RetainMac $True -UpgradeHardware $True -RemoveSnapshots $True -ScheduleStartTime $startTime -ScheduleEndTime $endTime Start-HCXMigration -Migration $NewMigration -Confirm:$false }
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
查找源名称、目标名称 vCenter 和SDDC服务器名称。 | Power CLI 脚本需要此长篇故事中描述的变量。为便于使用脚本,您可以提前收集这些信息。 在 vSphere 控制台HCX部分,选择基础架构、站点配对。记录显示的源服务器和目标服务器的名称。 | 云架构师 |
查找源名称和目标HCX名称。 | 在 vSphere 控制台HCX部分,选择系统,管理。记下显示的源HCX名称和目标名称。 | 云架构师 |
查找源和目标网络名称。 | 在 vSphere 控制台HCX部分,选择系统,网络扩展。记录源和目标网络的名称 注意或者,您可以在连接到HCX服务器后使用 Power Get 和 Ge CLI t- Destinat HCXNetworkion 命令获取源网络HCXNetwork和目标网络名称。 | 云架构师 |
从 vSphere 控制台收集更多信息。 | 在 vSphere 控制台上,收集以下信息:
| 云架构师 |
任务 | 描述 | 所需技能 |
---|---|---|
确定迁移选项。 | 确定了以下内容:
有关每个选项的更多信息,请参阅VMware开发者文档 | 云架构师 |
任务 | 描述 | 所需技能 |
---|---|---|
复制脚本。 | 该脚本的简单版本自包含在单个文件内。您可将其用于测试单台机器的迁移。 复制此模式的 “代码” 部分中的第一个脚本,并将其存储在安装了 VMware Power CLI 模块的计算机上。(要安装 PowerCLI,请按照VMware文档 | 云架构师 |
设置脚本变量。 | 设置脚本 | 云架构师 |
设置迁移变量。 | 在脚本 | 云架构师 |
指定站点。 | (可选)如果源或目标有多个站点,请在脚本的 如果源站点和目标站点仅一个站点,则脚本将自动查找信息。 | 云架构师 |
运行 脚本。 | 在安装了 Power CLI 的服务器上,从提升的 PowerShell 窗口运行脚本,并在出现提示时输入您的凭据。 | 云架构师 |
验证脚本。 | 确认虚拟机迁移已启动。 | 云架构师 |
任务 | 描述 | 所需技能 |
---|---|---|
创建和填充 .csv 文件。 | 在您的计算机上创建一个名为
将.csv 文件中的每一个 注意您可以使用 N VMware vRealize etwork Insight (vRNI) 或其他方法填充.csv 文件。 | 云架构师 |
复制脚本。 | 该脚本的全功能版本使用外部.csv 文件中的信息自动迁移多个文件。VMs 复制此模式的 “代码” 部分中的第二个脚本,并将其存储在安装了 VMware Power CLI 模块的计算机上,与.csv 文件位于同一个文件夹中。 | 云架构师 |
修改脚本。 | 编辑脚本,以进行以下更改:
| 云架构师 |
运行 脚本。 | 在安装了 Power CLI 的服务器上,从提升的 PowerShell 窗口运行脚本,并在出现提示时输入您的凭据。 | 云架构师 |
验证脚本。 | 确认虚拟机迁移已启动。 | 云架构师 |
故障排除
事务 | 解决方案 |
---|---|
脚本失败,显示错误消息: “所有源网络都未映射至目标!” | 如果电源 vCenter 使用交叉-vCenter NSX,则电源CLI模块将无法工作。使用脚本方法(例如 Python)HCXAPI来代替 Power CLI。这是 Power CLI 脚本的已知局限性。 |
脚本失败,显示错误消息: “Connect-HCXServer 错误:未授权” | 您输入的凭证未提供必要权限。 |
相关资源
AWS使用混合VMware云扩展将工作负载迁移到云端 (HCX)
(AWS博客文章) 选择将VMware应用程序和工作负载迁移到AWS云端的迁移方法(AWS规范性指南)
HCX模块入门
(VMware博客文章)