適用於:Azure Local 2311.2 和更新版本
本文說明如何在 Azure 本地虛擬機(VM)通過 Arc 啟用後,進行移轉並啟用來賓管理。
如需其他案例的詳細資訊,請參閱 管理 Azure 本機 VM。
輸出屬性可能會根據 VM 是否已移轉而有所不同。
重要
這項功能目前為「預覽」狀態。 如需適用於 Beta、預覽版或尚未發行至正式運作的 Azure 功能的法律條款,請參閱 Microsoft 適用於 azure 預覽版的補充使用規定 。
必要條件
開始之前,請先完成下列作業:
您可以存取已部署和註冊的 Azure 本機實例,並已設定 Azure Arc 資源網橋和自定義位置。
您的系統正在執行 Azure 本機版本 2405 或更新版本。
您可以 遠端連線至目標 Azure 本機實例。
熟悉 Azure 本地 VM 及來賓管理功能與考量事項 - 請參閱 啟用來賓管理。
在已移轉的 VM 上啟用客體代理程式
所有 Hyper-V 第 1 代 VM 都必須關閉電源,才能繼續進行下列步驟。 Hyper-V 第 2 代 VM 沒有這類需求,它們可以開啟或關閉,而且兩個電源狀態都有望運作。
步驟 1:檢查已移轉 VM 的電源狀態,如下所示:
針對 Hyper-V 第 1 代,請確定 VM 已停止。 如果錯誤訊息未停止,請參閱附錄。
使用 Azure 入口網站 (建議)
- 若要停止從 Azure 入口網站移轉的 VM,請在 VM 詳細數據頁面上選取 [ 停止 ]:
- 等候並重新整理頁面,以查看 VM 狀態 顯示為 已停止。
使用 Azure CLI
線上到 Azure 本機電腦並開啟 PowerShell 視窗。 使用 Azure CLI 登入。
az login --use-device-code --tenant $tenantId
使用 Azure CLI 檢查 VM 電源狀態,如下所示:
az stack-hci-vm show --name $vmName --resource-group $rgName --query "properties.status"
範例輸出:
PS C : \Users\AzureStackAdminD> az stack-hci-vm show --name <VM name> --resource-group <resource group> --query "properties.status" { "errorCode": "errorMessage" : "powerstate": "Stopped", "provisioningstatus": null }
針對 Hyper-V 第 2 代 VM,請確定 Azure 入口網站上顯示的電源狀態符合 Hyper-V 管理員上已移轉 VM 的實際電源狀態,不論其為 [開啟 ] 或 [ 關閉] :
Azure 入口網站檢視
Hyper-V 管理員檢視
步驟 2:在移轉的 VM 上附加客體代理程式的 ISO,如下所示:
線上到 Azure 本機電腦並在 PowerShell 中執行下列命令,其中 $vmName
是已移轉 VM 的名稱,以啟用客體代理程式,而 $rgName
是此 VM 位於 Azure 上的資源組名:
az stack-hci-vm update --name $vmName --resource-group $rgName --enable-vm-config-agent true
範例輸出:
PS C:\Users\AzureStackAdminD> az stack-hci-vm update --name $vmName -enable-vm-config-agent true --resource-group $resourceGroup
{
"endTime": "2024-08-19T22:01:22.1060463z",
"error": {},
"extendedLocation": null ,
"id": "<ID>",
"identity": null,
"name": "<Name>",
"properties": null,
"resourceld": "<Resource ID>",
"startTime": "2024-08-19T22: 01:09.4898702z" ,
"status": "Succeeded",
"systemData" : null,
"type": null
}
已連結 ISO 的 VM 狀態範例,從 Azure 本地系統檢視:
步驟 3:視需要在 Azure 入口網站中開啟已移轉的 VM,並確定其具有公用網路連線,如下所示:
檢查 Azure 入口網站上 VM 狀態 是否正在 執行:
在 PowerShell 視窗中的 Azure 本機電腦上執行下列命令,檢查 VM powerState 是否正在 執行 :
az stack-hci-vm show --name $vmName --resource-group $rgName --query “properties.status”
PS C: \Users\AzureStackAdminD> az stack-hci-vm show --name <Name> --resource-group <Resource group> --query "properties.status" { "errorCode": "errorMessage": "powerState": "Running", "provisioningStatus": null }
步驟 4:在移轉的 VM 上安裝客體代理程式 ISO,如下所示:
使用您適用的 OS 特定步驟連線到 VM。
在 VM 上建立公用網路連線。
執行下列命令,根據您使用的OS在VM上啟用客體代理程式:
如果在 Linux 上,請開啟 終端機 並執行:
sudo -- sh -c 'mkdir /mociso && mount -L mocguestagentprov /mociso && bash /mociso/install.sh && umount /mociso && rm -df /mociso'
範例輸出 (Linux):
migration@migration-virtual-machine: $ sudo -- sh -c 'mkdir /mociso && mount -L mocguestagentprov /nociso && bash /mociso/install.sh && umount /mociso && rm -df/mociso && eject LABEL=mocguestagentprov' [sudo] password for migration: mount: /moctso: WARNING: device write-protected, mounted read-only. Loading configuration version 've.16.5'... The agent could not find the '/opt/mocguestagent/v0.16.5/config.yaml' config file. Looking for older versions to upgrade from... Service installed. Service started. The guest agent was successfully installed.
如果是在 Windows 上,請以系統管理員身分開啟 PowerShell 並執行:
$d=Get-Volume -FileSystemLabel mocguestagentprov;$p=Join-Path ($d.DriveLetter+':\') 'install.ps1';powershell $p
範例輸出 (Windows):
PS C:\Users\Administrator> $d=Get-Volume -FilesystemLabel mocguestagentprov;$p=Join-Path ($d.DriveLetter+':\') 'install ps1';powershell $p
Directory : C : \ProgramData\mocguestagent
Mode LastWriteTime Length Name
---- ------------- -----------
d------ 8/19/2024 5:46 PM certs
Loading configuration version 'v0.16.5'...
The agent could not find the 'C:\ProgramData\mocguestagent\v0.16.5\config.yaml' config file. Looking for older versions to upgrade from...
Service installed.
Service started.
The guest agent was successfully installed.
啟用訪客管理
您可以在來賓代理程式執行後啟用來賓管理,如下:
在 Azure CLI 中執行下列命令,以啟用來自 Azure 本機實例的來賓管理:
az stack-hci-vm update --name $vmName --resource-group $rgName --enable-agent true
範例輸出:
PS C:\Users\AzureStackAdminD> az stack-hci-vm update --name $vmName --resource-group $resourceGroup --enable-agent true { "endTime": "2024-08-19T22:59:13.9583373Z”, "error": {}, "extendedLocation" : null, "id": "/<ID>", "identity": null, "name": "<Name>", "properties": null, "resourceld": "<Resource ID", "startTime": "2024-08-19t22:28:23.8158331Z", "status": "Succeeded", "systemData": null, "type": null }
檢查 Azure 入口網站 中的來賓管理啟用狀態:
您現在已準備好新增您選擇的 Azure 擴充功能。
如果您遇到任何問題,請連絡 Microsoft 支援服務 並提供您的記錄和部署詳細數據。
附錄
如果您在使用 --enable-vm-config-agent true
執行更新命令之前忘記關閉 Hyper-V 第 1 代 VM,更新命令將會失敗,且 VM 可能會從 Azure 入口網站 變得無法管理:
PS C:\Users\AzureStackAdminD> az stack-hci-vm update --name <VM name> -- resource-group <Resource group> --enable-vm-config-agent true
(Failed) moc-operator virtualmachine serviceclient returned an error while reconciling: rpc error: code = Unknown dasc = AddlSODisk for IsoFile mocguestagentprov.iso failed. Error: ErrorCode[32768] ErrorDescription[<VM name>' failed to add device 'Synthetic DVD Drive'. (Virtual machine ID <VM ID>)] ErrorSummaryDescription [Failed to add device 'Synthetic DVD Drive'.]: WMI Error 0x00008000: Failed
Code: Failed
Message: moc-operator virtualmachine serviceclient returned an error while reconciling: rpc error: code = Unknown desc = AddlSODisk for IsoFile mocguestagentprov.iso failed. Error: ErrorCode[32768] ErrorDescription['<VM name>' failed to add device 'Synthetic DVD Drive'. (Virtual machine ID <VM ID>)] ErrorSummaryDescription [Failed to add device 'Synthetic DVD Drive'.]: WMI Error 0x00008000: Failed
若要解決此問題,請選取 [ 停止],以停止 Azure 入口網站中的 VM。 如果無法運作,請從 Azure CLI 執行下列命令:
az stack-hci-vm stop --name $vmName --resource-group $rgName
您可能會在 Azure 入口網站中看到「資源配置失敗」錯誤,且 [啟動]、[重新啟動] 和 [停止] 選項停用,但 Hyper-V 管理員應顯示 VM 實際上已停止:
az stack-hci-vm update --name $vmName --resource-group $rgName --enable-vm-config-agent true
下一步
- 如果您遇到任何問題,請參閱 針對 VMware 移轉問題進行疑難解答。