使用 Power VMwareVMs以HCX自動化遷移CLI - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Power VMwareVMs以HCX自動化遷移CLI

由 Giri Nadiminty (AWS)、Hassan Adekoya (AWS) 和 Naveen Deshwal 建立

環境:生產

來源:內部部署或雲端型 VMware vCenter 或 SDDC

目標:VMwareCloud on AWS

R 類型:Rehost

工作負載:所有其他工作負載

技術:遷移;混合雲端

AWS 服務:VMwareCloud on AWS

Summary

請注意:自 2024 年 4 月 30 日起,VMwareCloud on AWS 不再由 AWS 或其管道合作夥伴轉售。該服務將繼續透過 Broadcom 提供。我們建議您聯絡 AWS 代表以取得詳細資訊。

此模式說明如何AWS使用 VMware PowerCLI 指令碼支援的VMware混合雲端延伸模組 VMware (VMs) 自動化,將內部部署虛擬機器 (HCX) 遷移至 VMware Cloud on。PowerCLI 是建立在 Windows 上的命令列工具 PowerShell。它可協助您管理VMware軟體,並自動化基礎設施和遷移任務。

您可以調整此模式,以便在 vCenters、軟體定義資料中心 (SDDCs) 和雲端環境的任何組合之間進行遷移。此模式包含的 PowerCLI 指令碼會針對所有 VM 組態和排程任務使用自動化而非滑鼠點選,因此它們可以節省遷移活動的時間,並有助於降低人為錯誤的風險。

先決條件和限制

先決條件

  • 使用 的 VMware Cloud on AWS帳戶 SDDC

  • 現有的內部部署或雲端型 vCenter 或 SDDC

  • 具有來源和目的地必要許可的使用者帳戶, vCenters 或 SDDCs

  • 在來源和目的地之間設定的站台HCX與HCX網路延伸模組 (HCX-NE) 配對, vCenters 或 SDDCs

  • 在您選擇的伺服器上安裝的VMware電源CLI

限制

  • 如果來源 vCenter 使用跨vCenter NSX,則電源CLI模組將無法運作。使用指令碼方法 (例如 Python) 搭配 HCXAPI而非 Power CLI。

  • 如果遷移需要VMs新的名稱或 IP 地址,請使用指令碼方法 (例如 Python) 搭配 HCX API。

  • 此模式不會填入必要的 .csv 檔案。您可以使用 VMware vRealize Network Insight (v RNI) 或其他方法填入檔案。

產品版本

  • VMware vSphere 第 5 版或更新版本

  • VMware HCX 4.4 版或更新版本

  • VMware PowerCLI 12.7 版或更新版本

架構

來源技術堆疊

  • 內部部署或雲端型 VMware

目標技術堆疊

  • VMware 雲端開啟 AWS

目標架構

AWS 使用 HCX Automation 和 Power 遷移VMs至CLI

工具

AWS 服務

  • VMware Cloud on AWS 是由 AWS 共同設計的服務VMware,可協助您將內部部署VMwarevSphere環境遷移和擴展至 AWS Cloud。

其他工具

  • VMware 混合雲端延伸 (HCX) 是一種公用程式,用於將工作負載從內部部署VMware環境遷移至 VMware Cloud on,AWS而無需變更基礎平台。注意:此產品先前稱為 Hybrid Cloud Extension 和 NSX Hybrid Connect。此模式HCX用於 VM 遷移。

  • VMware PowerCLI 是自動化VMware vSphere vCloud 和管理的命令列工具。您可以使用 PowerShell PowerShell cmdlet 在 Windows 中執行 PowerCLI 命令。此模式使用 PowerCLI 來執行遷移命令。

程式碼

簡單、獨立的指令碼

我們建議您使用此單一電腦指令碼進行初始測試,以確認組態選項是否如預期般被接受和運作。如需指示,請參閱 Epics 區段。

<# 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 型指令碼

測試完成後,您可以在生產環境中使用下列指令碼。如需指示,請參閱 Epics 區段。

<# 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伺服器名稱。

PowerCLI 指令碼需要本史詩中描述的變數。您可以事先收集此資訊,以方便指令碼使用。

在 vSphere 主控台的 HCX區段中,選擇基礎設施 網站配對 。記下顯示的來源和目的地伺服器名稱。

雲端架構師

尋找來源和目的地HCX名稱。

在 vSphere 主控台的 HCX區段中,選擇系統 管理 。記下顯示的來源和目的地HCX名稱。

雲端架構師

尋找來源和目的地網路名稱。

在 vSphere 主控台的 HCX區段中,選擇系統 網路延伸模組 。記下來源和目的地網路名稱。

注意:或者,您可以在連線至HCX伺服器後,使用 PowerCLI Get- HCXNetworkGet-HCXNetwork-Destination 命令取得來源和目的地網路名稱。

雲端架構師

從 vSphere 主控台收集其他資訊。

在 vSphere 主控台上,收集下列資訊:

  • 您要遷移VMs的 名稱

  • 目的地運算環境 (叢集/主機)

  • 目的地資料存放區

  • 目的地 VM 資料夾名稱

雲端架構師
任務描述所需的技能

判斷遷移選項。

判斷下列項目:

  • MigrationType – HCX輔助遷移類型為 vMotion、大量、冷和 RAV。您的選擇取決於您的停機時間需求、網路頻寬、遷移時間範圍和工作負載類型。如需詳細資訊,請參閱AWS部落格文章,文章AWS使用 Hybrid VMware Cloud Extension (HCX) 將工作負載遷移至 Cloud on

  • DiskProvisionType (Thin, Thick)

  • UpgradeVMTools ($True, $False)

  • RemoveISOs ($True, $False)

  • ForcePowerOffVm ($True, $False)

  • RetainMac ($True, $False)

  • UpgradeHardware ($True, $False)

  • RemoveSnapshots ($True, $False)

如需每個選項的詳細資訊,請參閱VMware開發人員文件

雲端架構師
任務描述所需的技能

複製指令碼。

指令碼的簡單版本是獨立於單一檔案中。您可以使用它來測試單一機器的遷移。

從此模式的程式碼區段複製第一個指令碼,並將其存放在已安裝VMware電源CLI模組的電腦上。(若要安裝 Power CLI,請遵循VMware文件 中的指示。)

雲端架構師

設定指令碼變數。

設定指令碼 Manual Variables區段中的所有變數。

雲端架構師

設定遷移變數。

設定指令碼 Migration區段中的所有New-HCXMigration設定。

雲端架構師

指定網站。

(選用) 如果來源或目的地具有多個網站,請在指令碼的 Environment Setup區段中手動指定網站。

如果來源和目的地具有單一網站,指令碼會自動查詢資訊。

雲端架構師

執行指令碼。

在安裝 PowerCLI 的伺服器上,從升高的 PowerShell 視窗中執行指令碼,並在出現提示時輸入您的憑證。

雲端架構師

驗證指令碼。

確認 VM 遷移已啟動。

雲端架構師
任務描述所需的技能

建立並填入 .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]

[enterValue] 將 .csv 檔案中的每個 取代為您先前收集的資訊。

注意:您可以使用 VMware vRealize Network Insight (v RNI) 或其他方法填入 .csv 檔案。

雲端架構師

複製指令碼。

指令碼的完整功能版本會使用外部 .csv 檔案的資訊自動遷移多個 VMs。

從此模式的程式碼區段複製第二個指令碼,並將其存放在已安裝 VMware PowerCLI 模組的電腦,與 .csv 檔案存放在相同的資料夾中。

雲端架構師

修改指令碼。

編輯指令碼以進行下列變更:

  • 第 7 行:設定HCX伺服器變數 (Connect-HCXServer)。

  • 第 12 行:(選用) 如果您以不同的方式設定 .csv 檔案名稱,請更新它。

  • 第 3-4 行:(選用) 設定排程。

  • 第 20 行:(選用) 在 Migration區段中指定New-HCXMigration設定。

  • 第 9 行和第 11 行:(選用) 如果來源或目的地包含多個站台,請手動指定所需的站台。

雲端架構師

執行指令碼。

在安裝 PowerCLI 的伺服器上,從升高的 PowerShell 視窗中執行指令碼,並在出現提示時輸入您的憑證。

雲端架構師

驗證指令碼。

確認 VM 遷移已啟動。

雲端架構師

故障診斷

問題解決方案

指令碼失敗,並顯示錯誤訊息:

“所有來源網路都未映射到目標!”

如果來源 vCenter 使用跨vCenter NSX,則電源CLI模組將無法運作。使用指令碼方法 (例如 Python) 搭配 HCXAPI而非 Power CLI。這是 PowerCLI 指令碼的已知限制。

指令碼失敗,並顯示錯誤訊息: 

"Connect-HCXServer Error: Unauthorized"

您輸入的憑證不提供必要的許可。

相關資源