为已迁移的 VM 启用来宾管理

适用于:Azure 本地 2503 及更高版本

本文介绍如何在迁移后,为通过 Arc 启用的 Azure Local 虚拟机 (VM) 启用来宾管理。

有关其他方案的详细信息,请参阅 管理 Azure 本地 VM

输出属性可能因 VM 是否已迁移而有所不同。

先决条件

在开始之前,请完成以下操作:

  • 你有权访问已部署和注册的 Azure 本地实例,并配置了 Azure Arc 资源网桥和自定义位置。

  • 系统运行的是 Azure 本地版本 2405 或更高版本。

  • 可以 远程连接到目标 Azure 本地实例

  • 熟悉 Azure 本地 VM 和来宾管理功能和注意事项 - 请参阅 “启用来宾管理”。

  • 检查 Azure 本地版上支持的来宾 OS 列表。 请参阅 Azure 本地支持的来宾作系统

  • Azure 本地 VM 必须有权访问公共网络连接才能启用来宾管理。

在已迁移的虚拟机上启用来宾代理

在继续执行以下步骤之前,必须先关闭所有 Hyper-V 第 1 代 VM。 Hyper-V 第 2 代 VM 没有此类要求,它们可以打开或关闭,并且两种电源状态都有望正常工作。

步骤 1:检查已迁移 VM 的电源状态,如下所示:

  1. 对于 Hyper-V 第 1 代,请确保 VM 已停止。 如果错误消息未停止,请参阅附录。

    使用 Azure 门户(建议)

    1. 若要从 Azure 门户停止迁移的 VM,请在 VM 详细信息页上选择 “停止 ”:

    显示如何停止 VM 的 Azure 门户的屏幕截图。

    1. 等待并刷新页面以查看 VM 状态 显示为 “已停止”。

    使用 Azure CLI

    1. 连接到 Azure 本地计算机并打开 PowerShell 窗口。 使用 Azure CLI 登录。

      az login --use-device-code --tenant $tenantId
      
    2. 使用 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
      }
      
  2. 对于 Hyper-V 第 2 代 VM,请确保 Azure 门户上显示的电源状态与 Hyper-V 管理器上迁移的 VM 的实际电源状态匹配,无论其是否为 “开”“关”:

    Azure 门户视图

    显示 Azure 门户中 VM 电源状态的屏幕截图。

    Hyper-V 管理器视图

    显示 Hyper-V 管理器中的 VM 电源状态的屏幕截图。

步骤 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 的示例状态:

显示 ISO 附件的屏幕截图。

步骤 3:根据需要在 Azure 门户中启用已迁移的 VM,并确保其具有公共网络连接,如下所示:

  1. 检查 Azure 门户上的 VM 状态 是否 正在运行

    显示 Azure 门户中 VM 状态的屏幕截图。

  2. 通过在 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,如下所示:

  1. 使用适合您操作系统的步骤连接到虚拟机。

  2. 在 VM 上建立公共网络连接。

  3. 根据你所使用的操作系统,运行以下命令以在虚拟机上启用来宾代理:

    • 如果在 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.

启用来宾管理

可以在来宾代理运行后启用来宾管理,如下所示:

  1. 通过在 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
    }
    
  2. 检查Azure 门户中的来宾管理启用状态:

    Azure 门户中来宾管理启用的屏幕截图。

  3. 现在可以添加所选的 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 

后续步骤