共用方式為


針對無代理程式 VMware VM 移轉中的複寫問題進行疑難排解

本文說明使用移轉和現代化無代理程式方法來複寫內部部署 VMware VM 時,可能會遇到的一些常見問題和特定錯誤。

注意

此端對端 VMware 移轉案例檔目前為預覽狀態。 如需使用 Azure Migrate 的詳細資訊,請參閱 Azure Migrate 產品檔

當您使用無代理程式複寫方法來複寫 VMware 虛擬機器時,來自虛擬機器磁碟 (vmdks) 的資料會複寫到 Azure 訂用帳戶中的複本受控磁碟。 VM 複寫開始時,會發生初始複寫週期,而此週期會複寫磁碟的完整複本。 完成初始複寫之後,會定期排程累加複寫週期,以傳輸自上一個複寫週期以來發生的任何變更。

您可能偶爾會看到 VM 的複寫週期失敗。 這些失敗的可能原因涵蓋內部部署網路設定中的問題,乃至 Azure Migrate 雲端服務後端的問題。 在本文中,我們將會:

  • 示範如何監視複寫狀態並解決錯誤。
  • 列出一些常見的複寫錯誤,並提供修復這些錯誤的建議步驟。

使用 Azure 入口網站監視複寫狀態

使用下列步驟來監視虛擬機器的複寫狀態:

  1. 在 Azure 入口網站上,移至 Azure Migrate 中的 [伺服器、資料庫和 Web 應用程式] 頁面。

    螢幕擷取畫面顯示 Azure Migrate 的 [開始] 畫面。

  2. 在 [移轉和現代化] 圖格的 [複寫] 下方,選取 [Azure VM] 旁邊的數字。

    螢幕擷取畫面顯示 [移轉和現代化] 畫面。

  3. 您會看到複寫伺服器的清單以及相關資訊,例如狀態、健康情況、上次同步時間等。[複寫健康情況] 資料行指出 VM 的目前複寫健康情況。 [危急] 或 [警告] 值通常指出 VM 的前一個複寫週期失敗。 若要取得更多詳細資料,請以滑鼠右鍵按一下 VM,然後選取 [健康情況錯誤詳細資料]。 [錯誤詳細資料] 頁面包含錯誤的相關資訊,以及如何疑難排解的其他詳細資料。

    螢幕擷取畫面顯示 [複寫機器] 畫面中的 [健康情況錯誤詳細資料] 選項。

  4. 選取 [最近的事件] 以查看 VM 先前的複寫週期失敗。 在事件頁面中,尋找「複寫週期失敗」類型的最近事件,或「複寫週期失敗」的 VM 磁碟。

    螢幕擷取畫面顯示 [最近的事件] 選項。

  5. 選取事件以了解錯誤的可能原因和建議修復步驟。 使用其提供的資訊來針對錯誤進行疑難排解和修復。

    螢幕擷取畫面顯示 [錯誤詳細資料] 畫面中的錯誤訊息。

常見複寫錯誤

本節說明一些常見的錯誤,以及如何進行疑難排解。

嘗試複寫 VM 時,Key Vault 作業失敗錯誤

錯誤:「Key Vault 作業失敗。 作業: 設定受控儲存體帳戶、Key Vault: Key-vault-name、儲存體帳戶: 儲存體帳戶名稱失敗,發生錯誤:」

錯誤:「Key Vault 作業失敗。 作業: 產生共用存取簽章定義、Key Vault: Key-vault-name,儲存體帳戶:儲存體帳戶名稱失敗,發生錯誤:」

Key Vault 的螢幕擷取畫面。

此錯誤通常是因為 Key Vault 的使用者存取原則沒有為目前登入的使用者提供必要的權限,因此無法設定要由 Key Vault 管理的儲存體帳戶。 若要檢查金鑰保存庫上的使用者存取原則,請移至入口網站上該金鑰保存庫的 [金鑰保存庫] 頁面,然後選取 [存取原則]。

入口網站在建立金鑰保存庫時,也會新增使用者存取原則,授與目前登入的使用者權限,以設定要由金鑰保存庫管理的儲存體帳戶。 這可能失敗的原因有兩個:

  • 登入的使用者是客戶 Azure 租用戶上的遠端主體 (CSP 訂用帳戶,而登入的使用者則是合作夥伴系統管理員)。 此狀況的解決方法是刪除金鑰保存庫、從入口網站登出,然後從客戶的租用戶 (不是遠端主體) 以使用者帳戶登入,然後重試作業。 CSP 合作夥伴通常在客戶 Microsoft Entra 租用戶中會擁有一個使用者帳戶可供使用。 如果沒有,則他們可以在客戶 Microsoft Entra 租用戶中自行建立新的使用者帳戶,並以新使用者身分登入入口網站,然後重試複寫作業。 所使用的帳戶必須具有資源群組 (Migrate 專案資源群組) 上帳戶的擁有者或參與者 + 使用者存取系統管理員權限。

  • 另一種情況可能是當某個使用者 (user1) 開始嘗試設定複寫且發生失敗時,但金鑰保存庫已建立 (且使用者存取原則已正確指派給此使用者)。 而在此之後,另一個使用者 (user2) 嘗試設定複寫,但設定受控儲存體帳戶或產生 SAS 定義作業失敗,因為金鑰保存庫中沒有對應至 user2 的使用者存取原則。

解決方案:若要解決此問題,請在金鑰保存庫中建立 user2 的使用者存取原則,以授權 user2 設定受控儲存體帳戶並產生 SAS 定義。 User2 可以從 Azure PowerShell 使用下列 Cmdlet 執行此動作:

$userPrincipalId = $(Get-AzureRmADUser -UserPrincipalName "user2_email_address").Id

Set-AzureRmKeyVaultAccessPolicy -VaultName "keyvaultname" -ObjectId $userPrincipalId -PermissionsToStorage get, list, delete, set, update, regeneratekey, getsas, listsas, deletesas, setsas, recover, back up, restore, purge

DisposeArtefactsTimedOut

錯誤識別碼: 181008

錯誤訊息: VM:VMName。 錯誤:發生逾時事件 'DisposeArtefactsTimeout',狀態為 &'['Gateway.Service.StateMachine.SnapshotReplication.SnapshotReplicationEngine+WaitingForArtefactsDisposalPreCycle' ('WaitingForArtefactsDisposalPreCycle')]'。

可能的原因:

嘗試將資料複寫至 Azure 的元件可能已關閉或沒有回應。 可能的原因包括:

  • 在 Azure Migrate 設備中執行的閘道服務已關閉。
  • 閘道服務在連線至服務匯流排/事件中樞/設備儲存體帳戶時發生問題。

識別 DisposeArtefactsTimedOut 的確切原因和對應的解決方法:

  1. 請確定 Azure Migrate 設備已啟動並執行。

  2. 檢查閘道服務是否在設備上執行:

    1. 使用遠端桌面登入 Azure Migrate 設備。

    2. 開啟 Microsoft 服務 MMC 嵌入式管理單元 (執行 > services.msc),然後檢查 Microsoft Azure 閘道服務是否正在執行。 如果服務停止或未執行,請啟動該服務。 或者,您可以開啟命令提示字元或 PowerShell,然後輸入 'Net Start asrgwy'。

  3. 檢查 Azure Migrate 設備與設備儲存體帳戶之間是否有連線問題:

    在 Azure Migrate 設備中下載 azcopy 後,執行下列命令:

    _azcopy bench https://[account].blob.core.windows.net/[container]?SAS_
    

    執行效能基準測試的步驟:

    1. 下載 azcopy。

    2. 在資源群組中尋找設備儲存體帳戶。 儲存體帳戶的名稱類似於 migrategwsa**********。 這是上述命令中的參數 [account] 的值。

    3. 在 Azure 入口網站中搜尋您的儲存體帳戶。 請確定用於搜尋的訂用帳戶是建立儲存體帳戶的相同訂用帳戶 (目標訂用帳戶)。 在 [Blob 服務] 區段中,移至 [容器]。 選取 [+容器] 並建立容器。 請確定您提供容器的「寫入」權限。 將 [公用存取層級] 保留為預設選取的值。

    4. 移至 [設定] > [共用存取簽章],然後在 [允許的資源類型] 中選取 [容器]

    5. 選取 [產生 SAS 和連接字串],然後複製 SAS 權杖。 如果您要使用 PowerShell,則請確定使用單引號括住 URL (' ')。

    6. 使用從步驟 b、c 和 e 分別取得的值來取代帳戶、容器、SAS,以在命令提示字元中執行上述命令。

    或者,將 Azure 儲存體總管下載至設備,並嘗試將 10 個約 64 MB 的 Blob 上傳至儲存體帳戶。 如果沒有問題,上傳應該會成功。

    解決方式: 如果此測試失敗,表示有網路問題。 與您當地的網路小組聯繫,以檢查連線問題。 一般而言,某些防火牆設定可能會導致失敗。

  4. 檢查 Azure Migrate 設備與服務匯流排之間是否有連線問題:

    注意

    這僅適用於使用公用端點所設定的專案。
    服務匯流排指的是 Migrate 專案資源群組中的 ServiceBusNamespace 類型資源。 服務匯流排名稱的格式為 migratelsa(keyvaultsuffix)。 移轉金鑰保存庫尾碼可以在設備的 gateway.json 檔案中取得。
    例如,如果 gateway.json 包含:
    "AzureKeyVaultArmId": "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.KeyVault/vaults/migratekv1329610309"
    服務匯流排命名空間資源將會是 migratelsa1329610309

    此測試會檢查 Azure Migrate 設備是否可與 Azure Migrate 雲端服務後端通訊。 設備會透過服務匯流排和事件中樞訊息佇列與服務後端通訊。 若要驗證從設備到服務匯流排的連線,請下載 Service Bus Explorer,並嘗試連線至設備服務匯流排,然後執行傳送訊息/接收訊息作業。 如果沒有問題,作業應該會成功。

    執行測試的步驟:

    1. 從建立於 Migrate 專案中的服務匯流排複製連接字串。
    2. 開啟 Service Bus Explorer。
    3. 移至 [檔案],然後移至 [連線]。
    4. 貼上連接字串,然後選取 [連線]。
    5. 這會開啟服務匯流排命名空間。
    6. 選取 [Snapshot Manager]。 以滑鼠右鍵按一下 [Snapshot Manager],選取 [接收訊息]>[瞄核],然後選取 [確定]
    7. 如果連線成功,您會在主控台輸出中看到「已收到 [x] 則訊息」。 如果連線未成功,則會顯示指出連線失敗的訊息。

    解決方式: 如果此測試失敗,表示有網路問題。 與您當地的網路小組聯繫,以檢查連線問題。 一般而言,某些防火牆設定可能會導致失敗。

  5. Azure Migrate 設備與 Azure Key Vault 之間的連線問題:

    此測試會檢查 Azure Migrate 設備與 Azure Key Vault 之間是否有連線問題。 Key Vault 可用來管理用於複寫的儲存體帳戶存取權。

    檢查連線的步驟:

    1. 從對應於 Azure Migrate Project 之資源群組中的資源清單擷取 Key Vault URI。

    2. 在 Azure Migrate 設備中開啟 PowerShell,然後執行下列命令:

    _test-netconnection Key Vault URI -P 443_
    

    此命令會嘗試建立 TCP 連線,並傳回輸出。

    • 在輸出中,查看 "TcpTestSucceeded" 欄位。 若值為 "True",表示 Azure Migrate 設備與 Azure Key Vault 之間沒有連線問題。 若值為 "False",則表示有連線問題。

    解決方法: 如果此測試失敗,表示 Azure Migrate 設備與 Azure Key Vault 之間有連線問題。 與您當地的網路小組聯繫,以檢查連線問題。 一般而言,某些防火牆設定可能會導致失敗。

DiskUploadTimedOut

錯誤識別碼:1011

錯誤訊息:虛擬機器 VMName; VMId 的 DiskPath,DiskId 磁碟資料上傳未在預期的時間內完成。

此錯誤通常表示執行複寫的 Azure Migrate 設備無法連線到 Azure 雲端服務,或複寫進度緩慢而導致複寫週期逾時。

可能的原因包括:

  • Azure Migrate 設備已關閉。
  • 設備上的複寫閘道服務未執行。
  • 複寫閘道服務與下列其中一個用於複寫的 Azure 服務元件存在連線問題:服務匯流排/事件中樞/Azure 快取儲存體帳戶/Azure Key Vault。
  • 嘗試讀取磁碟時,閘道服務正受到 vCenter 層級的節流。

識別根本原因並解決問題:

  1. 請確定 Azure Migrate 設備已啟動並執行。

  2. 檢查閘道服務是否在設備上執行:

    1. 使用遠端桌面登入 Azure Migrate 設備,並執行下列動作。

    2. 開啟 Microsoft 服務 MMC 嵌入式管理單元 (執行 > services.msc),然後檢查「Microsoft Azure 閘道服務」是否正在執行。 如果服務停止或未執行,請啟動該服務。 或者,您可以開啟命令提示字元或 PowerShell,然後輸入 'Net Start asrgwy'。

  3. 檢查 Azure Migrate 設備與快取儲存體帳戶之間是否有連線問題:

    在 Azure Migrate 設備中下載 azcopy 後,執行下列命令:

    _azcopy bench https://[account].blob.core.windows.net/[container]?SAS_
    

    執行效能基準測試的步驟:

    1. 下載 azcopy。

    2. 在資源群組中尋找設備儲存體帳戶。 儲存體帳戶的名稱類似於 migratelsa**********。 這是上述命令中的參數 [account] 的值。

    3. 在 Azure 入口網站中搜尋您的儲存體帳戶。 請確定用於搜尋的訂用帳戶是建立儲存體帳戶的相同訂用帳戶 (目標訂用帳戶)。 在 [Blob 服務] 區段中,移至 [容器]。 選取 [+容器] 並建立容器。 將 [公用存取層級] 保留為預設選取的值。

    4. 移至 [設定]>[共用存取簽章]。 在 [允許的資源類型] 中,選取 [容器]。 選取 [產生 SAS 與連接字串]。 複製 SAS 值。

    5. 使用從步驟 2、3 和 4 分別取得的值來取代帳戶、容器、SAS,以在命令提示字元中執行上述命令。

    或者,將 Azure 儲存體總管下載至設備,並嘗試將 10 個約 64 MB 的 Blob 上傳至儲存體帳戶。 如果沒有問題,上傳應該會成功。

    解決方式: 如果此測試失敗,表示有網路問題。 與您當地的網路小組聯繫,以檢查連線問題。 一般而言,某些防火牆設定可能會導致失敗。

  4. Azure Migrate 設備與 Azure 服務匯流排之間的連線問題:

    此測試會檢查 Azure Migrate 設備是否可與 Azure Migrate 雲端服務後端通訊。 設備會透過服務匯流排和事件中樞訊息佇列與服務後端通訊。 若要驗證從設備到服務匯流排的連線,請下載 Service Bus Explorer,並嘗試連線至設備服務匯流排,然後執行傳送訊息/接收訊息作業。 如果沒有問題,作業應該會成功。

    執行測試的步驟:

    1. 從 Azure Migrate 專案對應資源群組中建立的服務匯流排複製連接字串。

    2. 開啟 Service Bus Explorer。

    3. 移至 [檔案]>[連線]

    4. 貼上您在步驟 1 中複製的連接字串,然後選取 [連線]

    5. 這會開啟服務匯流排命名空間。

    6. 選取命名空間中的 Snapshot Manager。 以滑鼠右鍵按一下 [Snapshot Manager],選取 [接收訊息]>[瞄核],然後選取 [確定]。

    如果連線成功,您會在主控台輸出中看到「已收到 [x] 則訊息」。 如果連線未成功,則會顯示指出連線失敗的訊息。

    解決方法:如果此測試失敗,表示 Azure Migrate 設備與服務匯流排之間有連線問題。 請聯繫您當地的網路小組以檢查這些連線問題。 一般而言,某些防火牆設定可能會導致失敗。

  5. Azure Migrate 設備與 Azure Key Vault 之間的連線問題:

    此測試會檢查 Azure Migrate 設備與 Azure Key Vault 之間是否有連線問題。 Key Vault 可用來管理用於複寫的儲存體帳戶存取權。

    檢查連線的步驟:

    1. 從對應於 Azure Migrate Project 之資源群組中的資源清單擷取 Key Vault URI。

    2. 在 Azure Migrate 設備中開啟 PowerShell,然後執行下列命令:

    _test-netconnection Key Vault URI -P 443_
    

    此命令會嘗試建立 TCP 連線,並傳回輸出。

    1. 在輸出中,查看 "TcpTestSucceeded" 欄位。 若值為 "True",表示 Azure Migrate 設備與 Azure Key Vault 之間沒有連線問題。 若值為 "False",則表示有連線問題。

    解決方法: 如果此測試失敗,表示 Azure Migrate 設備與 Azure Key Vault 之間有連線問題。 與您當地的網路小組聯繫,以檢查連線問題。 一般而言,某些防火牆設定可能會導致失敗。

嘗試擷取已變更區塊時發生錯誤

錯誤訊息:「嘗試擷取變更區塊時發生錯誤」

無代理程式複寫方法會使用 VMware 的變更區塊追蹤技術 (CBT) 將資料複寫至 Azure。 CBT 可讓移轉和現代化工具僅追蹤和複寫在最後一個複寫週期後有所變更的區塊。 如果複寫虛擬機器的變更區塊追蹤已重設,或變更區塊追蹤檔案已損毀,就會發生此錯誤。

此錯誤可透過下列兩種方式解決:

  • 如果您在觸發 VM 的複寫時選取 [是] 以選擇 [自動修復複寫],則此工具將會嘗試為您進行修復。 以滑鼠右鍵按一下 VM,然後選取 [修復複寫]
  • 如果您先前未選擇 [自動修復複寫],或上述步驟對您不適用,請停止虛擬機器的複寫、在虛擬機器上重設變更區塊追蹤,然後重新設定複寫。

VMware KB 1020128:已變更區塊追蹤中所述,可能導致 VMware vSphere 5.5 上的虛擬機器進行 CBT 重設的這類已知問題之一,便是在 vSphere 5.x 中執行儲存體 vMotion 作業之後進行重設。 如果您使用 VMware vSphere 5.5,請確實套用此 KB 中說明的更新。

或者,您可以使用 VMware PowerCLI 重設虛擬機器的 VMware 變更區塊追蹤。

發生內部錯誤

有時候,您可能會遇到因 VMware 環境/API 問題而導致的錯誤。 我們已確定下列這一組錯誤屬於 VMware 環境相關錯誤。 這些錯誤具有固定格式。

錯誤訊息:發生內部錯誤。 [錯誤訊息]

例如,錯誤訊息:發生內部錯誤。 [偵測到不正確的快照集設定]。

下一節會列出幾項常見的 VMware 錯誤,以及如何處理這些錯誤。

錯誤訊息:發生內部錯誤。 [伺服器已拒絕連線]

此問題是已知的 VMware 問題,並會在 VDDK 6.7 中發生。 您必須停止 Azure Migrate 設備中執行的閘道服務、從 VMware KB 下載更新,然後重新啟動閘道服務。

停止閘道服務的步驟:

  1. 按下 Windows 鍵 + R 並開啟 services.msc。 選取 [Microsoft Azure Gateway Service],並將其停止。
  2. 或者,您可以開啟命令提示字元或 PowerShell,然後輸入 'Net Stop asrgwy'。 請務必等待收到服務不再執行的訊息。

啟動閘道服務的步驟:

  1. 按下 Windows 鍵 + R,開啟 services.msc。 以滑鼠右鍵按一下 [Microsoft Azure Gateway Service],然後將其啟動。
  2. 或者,您可以開啟命令提示字元或 PowerShell,然後輸入 'Net Start asrgwy'。

錯誤訊息:發生內部錯誤。 ['偵測到不正確的快照集設定。']

如果您的虛擬機器具有多個磁碟,則從虛擬機器移除磁碟時,可能會發生此錯誤。 若要修復此問題,請參閱此 VMware 文章中的步驟。

錯誤訊息:發生內部錯誤。 [產生快照集無回應]

當快照集產生停止回應時,就會發生此問題。 發生此問題時,您可以看到建立快照集工作停止在 95% 或 99%。 請參閱此 VMware KB 以解決此問題。

錯誤訊息:發生內部錯誤。 [無法合併 VM 上的磁碟 [原因]]

當我們在複寫週期結束時合併磁碟時,作業失敗。 請選取適當的「原因」,以遵循 VMware KB 中的指示來解決問題。

當 VMware 快照集相關作業 (建立、刪除或合併磁碟) 失敗時,便會發生下列錯誤。 請遵循下一節中的指引來修復錯誤:

錯誤訊息:發生內部錯誤。 [另一項工作已在進行中]

當背景執行衝突的虛擬機工作,或 vCenter Server 內的工作逾時,就會發生此問題。

錯誤訊息:發生內部錯誤。 [目前狀態不允許此作業]

此問題的原因是 vCenter Server 管理代理程式停止運作。 若要解決此問題,請參閱下列 VMware KB 中的解決方案。

錯誤訊息:發生內部錯誤。 [快照集磁碟大小無效]

這是已知的 VMware 問題,狀況是快照集所指示的磁碟大小變成零。

錯誤訊息:發生內部錯誤。 [記憶體配置失敗。 記憶體不足。]

此錯誤的原因是 NFC 主機緩衝區記憶體不足。 若要解決此問題,您必須將 VM (計算 vMotion) 移至具有可用資源的其他主機。

錯誤訊息:發生內部錯誤。 [檔案超過支援的檔案大小上限 (1012384)]

此錯誤的原因是檔案大小超過建立快照集時支援的檔案大小上限。 請遵循 VMware KB 中提供的解決方案

錯誤訊息:發生內部錯誤。 [無法連線到主機 (1004109)]

此問題的原因是 ESXi 主機無法連線到網路。

錯誤訊息:儲存快照時發生錯誤:變更追蹤器錯誤碼無效

此錯誤的原因是儲存快照集的基礎資料存放區發生問題。 請遵循 VMware KB 中提供的解決方案。

錯誤訊息:擷取快照集時發生錯誤:無法開啟快照集檔案。

此錯誤的原因是建立的快照集檔案大小超過 VM 所在資料存放區中的可用空間。 請遵循此文件中提供的解決方案。

保護整備程度錯誤

錯誤訊息:無法使用目前的 VMware 設定來複寫此虛擬機器。

可能的原因:

  • 因為 VM 的快照集已存在,所以無法啟用 VM 的變更追蹤。

建議:

  • 在 VM 上刪除快照集或啟用變更區塊追蹤,然後重試。

複寫週期失敗

錯誤識別碼: 181008

錯誤訊息:VM:'VMName'。 錯誤:找不到快照集識別碼:'SnapshotID' 的快照式複寫磁碟快照集。

可能的原因:

  • 一或多個內含的磁碟已不再連接 VM。

建議:

  • 請使用儲存體 vMotion 將內含的磁碟還原至原始路徑,然後再次嘗試複寫。

主機連線被拒

錯誤識別碼:1022

錯誤訊息:Azure Migrate 設備無法連線到 vSphere 主機 '%HostName;'

可能的原因:

可能導致此情況的原因有:

  1. Azure Migrate 設備無法解析 vSphere 主機的主機名稱。
  2. Azure Migrate 設備無法連線到通訊埠 902 (VMware vSphere 虛擬磁碟開發套使用的預設連接埠) 上的 vSphere 主機,因為 TCP 通訊埠 902 遭到 vSphere 主機上或網路防火牆封鎖。

建議

確認 Azure Migrate 設備可解析 vSphere 主機的主機名稱。

  • 登入 Azure Migrate 設備並開啟 PowerShell。
  • 針對主機名稱執行 nslookup,並確認位址是否已解析:nslookup '%HostName;'
  • 如果主機名稱未解析,請確保可從 Azure Migrate 設備執行 vSphere 主機名稱的 DNS 解析。 或者,請將每個 vSphere 主機的靜態主機項目新增至設備上的主機檔案 (C:\Windows\System32\drivers\etc\hosts)。

確認 vSphere 主機會接受通訊埠 902 上的連線,且設備可連線至端點。

  • 登入 Azure Migrate 設備並開啟 PowerShell。
  • 使用 Test-NetConnection Cmdlet 來驗證連線能力:Test-NetConnection '%HostName;' -Port 902
  • 如果 tcp 測試未成功,表示連線遭到防火牆封鎖,或 vSphere 主機未接受連線。 請解決網路問題,以讓複寫繼續進行。

後續步驟

繼續 VM 複寫,並執行測試移轉