VMware VM 的規模移轉
本文可協助您瞭解如何使用指令碼,透過無代理程式方法移轉大量 VMware 虛擬機器 (VM)。 若要調整移轉規模,您可使用 Azure Migrate PowerShell 模組。
注意
此端對端 VMware 移轉案例檔目前為預覽狀態。 如需使用 Azure Migrate 的詳細資訊,請參閱 Azure Migrate 產品檔。
Azure Migrate VMware 移轉自動化指令碼可在 GitHub 上的 Azure PowerShell 範例存放庫中下載。 指令碼可用來使用無代理程式移轉方法,將 VMware VM 移轉至 Azure。 此處記載這些指令碼中使用的 Azure Migrate PowerShell 命令。
目前的限制
- 這些指令碼支援移轉 VMware VM 的所有磁碟。 如果您想要選擇性複寫連結至 VMware VM 的磁碟,可以更新指令碼。
- 指令碼支援使用評量建議。 如果未使用評量建議,則所有連結至 VMware VM 的磁碟都會移轉至相同的受控磁碟類型 (Standard 或 Premium)。 如果您想要在相同的 VM 使用多種受控磁碟類型,可以更新指令碼。
必要條件
- 完成探索教學課程,準備 Azure 和 VMware 以進行移轉。
- 建議您先完成第二個教學課程以評估 VMware VM,再將其遷移至 Azure。
- 您必須具有 Azure PowerShell
Az
模組。 如果您需要安裝或升級 Azure PowerShell,請依照此安裝和設定 Azure PowerShell 的指南操作。
安裝 Azure Migrate PowerShell 模組
Azure Migrate PowerShell 模組可供預覽。 您必須使用下列命令來安裝 PowerShell 模組。
Install-Module -Name Az.Migrate
CSV 輸入檔案
完成所有必要條件之後,您需要建立 CSV 檔案,其中包含您想要移轉的每個來源 VM 的資料。 所有指令碼是設計成在相同的 CSV 檔案上運作。 範例 CSV 範本可以在指令碼資料夾中取得,供您參考。 CSV 檔案是可設定的,因此您可以使用評量建議,甚至指定是否要針對特定 VM 觸發特定作業。
注意
相同的 CSV 檔案可用來移轉多個 Azure Migrate 專案中的 VM。
CSV 檔案架構
資料行標頭 | 說明 |
---|---|
AZMIGRATEPROJECT_SUBSCRIPTION_ID | 提供 Azure Migrate 專案的訂用帳戶識別碼。 |
AZMIGRATEPROJECT_RESOURCE_GROUP_NAME | 提供 Azure Migrate 資源群組名稱。 |
AZMIGRATEPROJECT_NAME | 提供您要移轉伺服器的 Azure Migrate 專案名稱。 |
SOURCE_MACHINE_NAME | 為 Azure Migrate 專案中探索到的 VM 提供易記名稱 (顯示名稱)。 |
AZMIGRATEASSESSMENT_NAME | 提供需要用於移轉的評量名稱。 |
AZMIGRATEGROUP_NAME | 提供用於 Azure Migrate 評定的群組名稱。 |
TARGET_RESOURCE_GROUP_NAME | 提供 VM 需要移轉至的目標 Azure 資源群組名稱。 |
TARGET_VNET_NAME | 提供移轉 VM 應該使用的 Azure 虛擬網路名稱。 |
TARGET_SUBNET_NAME | 提供目標虛擬網路中移轉 VM 應該使用的子網路名稱。 如果保留空白,則會使用「預設」子網路。 |
TARGET_MACHINE_NAME | 提供移轉 VM 應該在 Azure 中使用的名稱。 如果保留空白,則會使用來源機器名稱。 |
TARGET_MACHINE_SIZE | 提供 VM 應該在 Azure 中使用的庫存單位 (SKU)。 若要將 VM 移轉至 Azure 中的 D2_v2 VM,請將此欄位的值指定為 "Standard_D2_v2"。 如果您使用評量,系統將會根據評估建議來衍生此值。 |
LICENSE_TYPE | 指定是否要針對 Windows Server VM 使用 Azure Hybrid Benefit。 使用值「WindowsServer」來運用 Azure Hybrid Benefit。 否則,請將其保留空白,或使用「NoLicenseType」。 |
OS_DISK_ID | 提供待移轉 VM 的 OS 磁碟識別碼。 要使用的磁碟識別碼是使用 Get-AzMigrateServer Cmdlet 擷取磁碟的唯一識別碼 (UUID) 屬性。 如果未提供任何值,則指令碼會使用 VM 的第一個磁碟作為 OS 磁碟。 |
TARGET_DISKTYPE | 提供要用於 Azure 中 VM 所有磁碟的磁碟類型。 針對進階受控磁碟使用 'Premium_LRS'、針對標準 SSD 磁碟使用 'StandardSSD_LRS' 和 'Standard_LRS',以使用標準 HDD 磁碟。 如果您選擇使用評量,指令碼會優先使用 VM 每個磁碟的建議磁碟類型。 如果您未使用評量或指定任何值,指令碼預設會使用標準 HDD 磁碟。 |
AVAILABILITYZONE_NUMBER | 指定要用於移轉 VM 的可用性區域號碼。 如果您不想使用可用性區域,可以將此保留空白。 |
AVAILABILITYSET_NAME | 指定要用於移轉 VM 的可用性設定組名稱。 如果您不想使用可用性設定組,可以在此處保留空白。 |
TURNOFF_SOURCESERVER | 如果您想要在移轉時關閉來源 VM,請指定 'Y'。 否則請使用 'N'。 如果保留空白,指令碼會假設此值為 'N'。 |
TESTMIGRATE_VNET_NAME | 指定要用於測試移轉的虛擬網路名稱。 |
UPDATED_TARGET_RESOURCE_GROUP_NAME | 如果您想要更新要供 Azure 中移轉 VM 使用的資源群組,請指定 Azure 資源群組的名稱,否則請將其保留空白。 |
UPDATED_TARGET_VNET_NAME | 如果您想更新要在 Azure 中移轉 VM 使用的虛擬網路,請指定 Azure 虛擬網路的名稱,否則請將其保留空白。 |
UPDATED_TARGET_MACHINE_NAME | 如果您想更新要在 Azure 中移轉 VM 使用的名稱,請指定要使用的新名稱,否則請將其保留空白。 |
UPDATED_TARGET_MACHINE_SIZE | 如果您想更新要在 Azure 中移轉 VM 使用的 SKU,請指定要使用的新 SKU,否則請將其保留空白。 |
UPDATED_AVAILABILITYZONE_NUMBER | 如果您想更新要在 Azure 中移轉 VM 使用的可用性區域,請指定要使用的新可用性區域,否則請將其保留空白。 |
UPDATED_AVAILABILITYSET_NAME | 如果您想更新要在 Azure 中移轉 VM 使用的可用性設定組,請指定要使用的新可用性設定組,否則請將其保留空白。 |
UPDATE_NIC1_ID | 指定要更新 NIC 的識別碼。 如果保留空白,指令碼會假設值是第一個探索到 VM 的 NIC。 如果您不想更新 VM 的 NIC,請將包含 NIC 名稱的所有欄位保留空白。 |
UPDATED_TARGET_NIC1_SELECTIONTYPE | 指定要用於這個 NIC 的值。 使用 "Primary"、"Secondary" 或 "DoNotCreate" 值,以指定 NIC 應為主要、次要,還是不會在已移轉的 VM 上建立。 您只能將一個 NIC 指定為 VM 的主要 NIC。 如果您不想更新,請保留空白。 |
UPDATED_TARGET_NIC1_SUBNET_NAME | 指定要用於已移轉 VM 上 NIC 的子網路名稱。 如果您不想更新,請保留空白。 |
UPDATED_TARGET_NIC1_IP | 如果您想要使用靜態 IP,請指定移轉 VM 上 NIC 要使用的 IPv4 位址。 如果您想要自動指派 IP,請使用 "auto"。 如果您不想更新,請保留空白。 |
UPDATE_NIC2_ID | 指定要更新 NIC 的識別碼。 如果保留空白,則指令碼會假設值是第二個探索到 VM 的 NIC。 如果您不想更新 VM 的 NIC,請將包含 NIC 名稱的所有欄位保留空白。 |
UPDATED_TARGET_NIC2_SELECTIONTYPE | 指定要用於這個 NIC 的值。 使用 "Primary"、"Secondary" 或 "DoNotCreate" 值,以指定 NIC 應為主要、次要,還是不會在已移轉的 VM 上建立。 您只能將一個 NIC 指定為 VM 的主要 NIC。 如果您不想更新,請保留空白。 |
UPDATED_TARGET_NIC2_SUBNET_NAME | 指定要用於已移轉 VM 上 NIC 的子網路名稱。 如果您不想更新,請保留空白。 |
UPDATED_TARGET_NIC2_IP | 如果您想要使用靜態 IP,請指定移轉 VM 上 NIC 要使用的 IPv4 位址。 如果您想要自動指派 IP,請使用 "auto"。 如果您不想更新,請保留空白。 |
OK_TO_UPDATE | 使用 'Y' 來指出當您執行 AzMigrate_UpdateMachineProperties 指令碼時,是否需要更新 VM 屬性。 否則請使用 'N' 或保留空白。 |
OK_TO_MIGRATE | 使用 'Y' 來指出當您執行 AzMigrate_StartMigration 指令碼時,是否應該移轉 VM。 如果您不想移轉 VM,請使用 'N' 或保留空白。 |
OK_TO_USE_ASSESSMENT | 使用 'Y' 來指出當您執行 AzMigrate_StartReplication 指令碼時,VM 是否應該使用評量建議來啟動複寫。 這會覆寫 csv 檔案中的 TARGET_MACHINE_SIZE 和 TARGET_DISKTYPE 值。 如果您不想使用評量建議,請使用 'N' 或保留空白。 |
OK_TO_TESTMIGRATE | 使用 'Y' 來指出當您執行 AzMigrate_StartTestMigration 指令碼時,是否應該測試移轉 VM。 如果您不想測試移轉 VM,請使用 'N' 或保留空白。 |
OK_TO_RETRIEVE_REPLICATIONSTATUS | 使用 'Y' 來指出當您執行 AzMigrate_ReplicationStatus 指令碼時,是否應該更新 VM 的複寫狀態。 如果您不想更新複寫狀態,請使用 'N' 或保留空白。 |
OK_TO_CLEANUP | 使用 'Y' 來指出當您執行 AzMigrate_StopReplication 指令碼時,是否應該清除 VM 的複寫。 否則請使用 'N' 或保留空白。 |
OK_TO_TESTMIGRATE_CLEANUP | 使用 'Y' 來指出當您執行 AzMigrate_CleanUpTestMigration 指令碼時,是否應該清除 VM 的測試移轉。 否則請使用 'N' 或保留空白。 |
指令碼執行
CSV 準備就緒之後,您可以執行下列步驟來移轉內部部署 VMware VM。
步驟 # | 指令碼名稱 | 說明 |
---|---|---|
1 | AzMigrate_StartReplication.ps1 | 針對 CSV 中列出的所有 VM 啟用複寫,指令碼會建立 CSV 輸出和記錄檔以供疑難排解。 |
2 | AzMigrate_ReplicationStatus.ps1 | 檢查複寫的狀態,指令碼會建立 CSV 輸出,其中具有每部 VM 的狀態,以及記錄檔以供疑難排解。 |
3 | AzMigrate_UpdateMachineProperties.ps1 | VM 完成初始複寫之後,使用此指令碼來更新 VM 的目標屬性 (Compute 和 Network 屬性)。 指令碼會建立 CSV 輸出,其中具有每部 VM 的工作狀態。 |
4 | AzMigrate_StartTestMigration.ps1 | 針對測試移轉設定 CSV 中列出的所有 VM,啟動測試容錯移轉。 指令碼會建立 CSV 輸出,其中具有每部 VM 的工作狀態。 |
5 | AzMigrate_CleanUpTestMigration.ps1 | 手動驗證測試容錯移轉的 VM 之後,請使用此指令碼來清除已設定測試移轉清除 CSV 中所列所有 VM 的測試容錯移轉 VM。 指令碼會建立 CSV 輸出,其中具有每部 VM 的工作狀態。 |
6 | AzMigrate_StartMigration.ps1 | 針對已設定移轉 CSV 中列出的所有 VM 開始移轉。 指令碼會建立 CSV 輸出,其中具有每部 VM 的工作狀態。 |
7 | AzMigrate_StopReplication.ps1 | 成功移轉 VM 之後,或您想要因為其他原因而取消複寫時,請停止該 VM 的複寫。 指令碼會建立 CSV 輸出,其中具有每部 VM 的工作狀態。 |
下列指令碼會由其他指令碼叫用,以用於所有 Azure Migrate 作業,例如啟用複寫、開始測試移轉、更新 VM 屬性等等。 請確定所有指令碼都存在於相同的資料夾/路徑中。
步驟 # | 指令碼名稱 | 說明 |
---|---|---|
1 | AzMigrate_Shared.ps1 | 常見指令碼,其中包含擷取評量屬性 (透過 API)、探索到的 VM 和複寫 VM 的函式。 |
2 | AzMigrate_CSV_Processor.ps1 | 包含用於 CSV 檔案作業函式的通用指令碼,包括記錄載入、讀取和列印。 |
3 | AzMigrate_Logger.ps1 | 針對 Azure Migrate 自動化作業產生記錄檔所叫用的通用指令碼。 記錄檔的格式為 log.Scriptname.Datetime.txt。 |
除了上述內容之外,資料夾也包含 AzMigrate_Template.ps1,其中包含建置不同 Azure Migrate 作業自訂指令碼的基本架構。
指令碼執行語法
下載指令碼之後,即可執行指令碼,如下所示。
如果您想要執行指令碼,以使用 Input.csv 檔案啟動 VM 的複寫,請使用下列語法。
".\AzMigrate_StartReplication.ps1" .\Input.csv
若要深入了解如何使用 Azure PowerShell 搭配 Azure Migrate 移轉 VMware VM,請遵循教學課程。