适用于:Azure Local 2311.2 及更高版本
本文介绍如何在迁移后,为通过 Arc 启用的 Azure Local 虚拟机 (VM) 启用来宾管理。
有关其他方案的详细信息,请参阅 管理 Azure 本地 VM。
输出属性可能因 VM 是否已迁移而有所不同。
重要
此功能目前处于预览状态。 有关适用于 Beta 版、预览版或尚未正式发布的 Azure 功能的法律条款,请参阅 适用于 Microsoft azure 预览版的补充使用条款 。
先决条件
在开始之前,请完成以下操作:
你有权访问已部署和注册的 Azure 本地实例,并配置了 Azure Arc 资源网桥和自定义位置。
系统运行的是 Azure 本地版本 2405 或更高版本。
熟悉 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 迁移问题。