适用于:Azure 本地 2503 及更高版本
本文介绍如何在迁移后,为通过 Arc 启用的 Azure Local 虚拟机 (VM) 启用来宾管理。
有关其他方案的详细信息,请参阅 管理 Azure 本地 VM。
输出属性可能因 VM 是否已迁移而有所不同。
先决条件
在开始之前,请完成以下操作:
你有权访问已部署和注册的 Azure 本地实例,并配置了 Azure Arc 资源网桥和自定义位置。
系统运行的是 Azure 本地版本 2405 或更高版本。
熟悉 Azure 本地 VM 和来宾管理功能和注意事项 - 请参阅 “启用来宾管理”。
检查 Azure 本地版上支持的来宾 OS 列表。 请参阅 Azure 本地支持的来宾作系统。
Azure 本地 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
}
从 Azure 本地系统查看附加了 ISO 的 VM 的示例状态:
步骤 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,如下所示:
使用适合您操作系统的步骤连接到虚拟机。
在 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 迁移问题。