使用 VMware VMs Power HCX 实现自动化迁移 CLI - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 VMware VMs Power HCX 实现自动化迁移 CLI

由 Giri Nadiminty (AWS)、Hassan Adekoya () 和 Naveen Deshwal 创作 AWS

环境:生产

来源:本地或基于云VMware vCenter 或 SDDC

目标:VMwareCloud on AWS

R 类型:更换主机

工作负载:所有其他工作负载

技术:迁移、混合云

AWS服务:开VMware启云端 AWS

Summary

注意:自 2024 年 4 月 30 日起,VMwareCloud on AWS 不再由其渠道 AWS 合作伙伴转售。该服务将继续通过博通提供。我们鼓励您联系您的 AWS 代表了解详情。

此模式描述了如何使用AWS由 P VMware ower CLI 脚本支持的VMware混合VMware云扩展 (VMs) 自动化将VMware本地虚拟机 (HCX) 迁移到 Cloud on。Power CLI 是一款基于 Windows 的命令行工具。 PowerShell它可以帮助您管理VMware软件,并自动执行基础架构和迁移任务。

您可以调整这种模式,以便在软件定义的数据中心 (SDDCs) 和云环境的vCenters任意组合之间进行迁移。此模式中包含的 Power CLI 脚本使用自动化而不是鼠标点击来执行所有虚拟机配置和调度任务,因此它们可以节省迁移活动的时间,并有助于降低人为错误的风险。

先决条件和限制

先决条件

  • VMwareCloud AWS 账号上有 SDDC

  • 现有的本地或云端 vCenter 或 SDDC

  • 具有源和目标所需权限的用户帐户 vCenters 或 SDDCs

  • HCX在源和目标 vCenters 之间配置HCX网络扩展 (HCX-NE) 的@@ 站点配对或 SDDCs

  • VMware在您选择的服务器上CLI安装@@ 电源

限制

  • 如果电源 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

目标技术堆栈

  • VMware开着云 AWS

目标架构

VMsAWS使用HCX自动化和电源迁移到 CLI

工具

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 控制台上,收集以下信息:

  • 你VMs要迁移的名称

  • 目标计算环境(集群/主机)

  • 目标数据存储

  • 目标虚拟机文件夹名称

云架构师
任务描述所需技能

确定迁移选项。

确定了以下内容:

  • MigrationType— HCX 辅助迁移类型包括批量vMotion、冷迁和。RAV您的选择取决于您的停机时间要求、网络带宽、迁移时间范围和工作负载。有关更多信息,请参阅AWS博客文章AWS使用混合VMware云扩展将工作负载迁移到云 (HCX)

  • DiskProvisionType (Thin, Thick)

  • UpgradeVMTools ($True, $False)

  • RemoveISOs ($True, $False)

  • ForcePowerOffVm ($True, $False)

  • RetainMac ($True, $False)

  • UpgradeHardware ($True, $False)

  • RemoveSnapshots ($True, $False)

有关每个选项的更多信息,请参阅VMware开发者文档

云架构师
任务描述所需技能

复制脚本。

该脚本的简单版本自包含在单个文件内。您可将其用于测试单台机器的迁移。

复制此模式的 “代码” 部分中的第一个脚本,并将其存储在安装了VMware电源CLI模块的计算机上。(要安装 PowerCLI,请按照VMware文档中的说明进行操作。)

云架构师

设置脚本变量。

设置脚本 Manual Variables 部分中的所有变量。

云架构师

设置迁移变量。

在脚本 Migration 部分设置所有 New-HCXMigration 设置。

云架构师

指定站点。

(可选)如果源或目标有多个站点,请在脚本的 Environment Setup 部分手动指定站点。

如果源站点和目标站点仅一个站点,则脚本将自动查找信息。

云架构师

运行 脚本。

在安装了 Power CLI 的服务器上,从提升的 PowerShell 窗口运行脚本,并在出现提示时输入您的凭据。

云架构师

验证脚本。

确认虚拟机迁移已启动。

云架构师
任务描述所需技能

创建和填充 .csv 文件。

在您的计算机上创建一个名为 Import_VM_list.csv 的 .csv 文件,并使用以下示例内容填充该文件:

VM_NAME,DESTINATION_VM_FOLDER,DESTINATION_COMPUTE,DESTINATION_DATASTORE,SOURCE_NETWORK,DESTINATION_NETWORK [enterValue],[enterValue],[enterValue],[enterValue],[enterValue],[enterValue]

将.csv 文件中的每一个 [enterValue] 都替换为您之前收集的信息。

注意:您可以使用 N VMware vRealize etwork Insight (vRNI) 或其他方法填充.csv 文件。

云架构师

复制脚本。

该脚本的全功能版本使用外部.csv 文件中的信息自动迁移多个文件。VMs

复制此模式的 “代码” 部分中的第二个脚本,并将其存储在安装了 VMware Power CLI 模块的计算机上,与.csv 文件位于同一个文件夹中。

云架构师

修改脚本。

编辑脚本,以进行以下更改:

  • 第 7 行:设置HCX服务器变量 (Connect-HCXServer)。

  • 第 12 行:(可选)如果您以不同的方式设置.csv 文件名,请对其进行更新。

  • 第 3-4 行:(可选)设置时间表。

  • 第 20 行:(可选)在 Migration 部分中指定 New-HCXMigration 设置。

  • 第 9 行和第 11 行:(可选)如果源或目标包含多个站点,请手动指定所需站点。

云架构师

运行 脚本。

在安装了 Power CLI 的服务器上,从提升的 PowerShell 窗口运行脚本,并在出现提示时输入您的凭据。

云架构师

验证脚本。

确认虚拟机迁移已启动。

云架构师

故障排除

问题解决方案

脚本失败,显示错误消息:

“所有源网络都未映射至目标!”

如果电源 vCenter 使用交叉-vCenter NSX,则电源CLI模块将无法工作。使用脚本方法(例如 Python)HCXAPI来代替 Power CLI。这是 Power CLI 脚本的已知限制。

脚本失败,显示错误消息: 

“Connect-HCXServer 错误:未授权”

您输入的凭证未提供必要权限。

相关资源