如何在APM中获取KVM虚拟机的IP地址

如何在APM中获取KVM虚拟机的IP地址

qemu-guest-agent是什么?
  1. qemu-guest-agent是一个辅助守护进程,它将安装在访客守护进程中。用于在主机和访客之间交换信息,并在访客中执行命令。
  2. qemu-guest-agent 主要用于两件事:
    1. 正确关闭访客,而不是依赖ACPI命令或Windows策略。
    2. 在进行备份时冻结访客文件系统(在Windows上使用卷影复制服务VSS)。
  3. 仅当qemu-guest-agent安装在特定虚拟机上时,才会获得虚拟机的IP地址 
安装:
主机:
  1. 您必须为每个VM启用访客代理,或者在GUI中的选项下将其设置为“Yes”(参见屏幕截图):
    Qemu 访客代理选项
访客:

Linux:

  1. 在Linux上安装qemu-guest-agent需要执行以下命令 
    1. 对于 Debian/Ubuntu, apt-get install qemu-guest-agent
    2. 对于 Redhat,yum install qemu-guest-agent
  2. 根据发行版的不同,访客代理可能在安装后不会自动启动。重新启动访客或使用命令systemctl start qemu-guest-agent来启动它 

Windows:

  1. 首先你要下载virtio-win驱动程序。
  2. 然后安装virtio-serial驱动程序:
    1. 将ISO附加到您的Windows VM (virtio-*.iso)
    2. 进入Windows设备管理器
    3. 查看“PCI简单通信控制器”
    4. 右键单击 -> 更新驱动程序,然后在 DRIVE:\vioserial\<OSVERSION>\ 中选择已安装的ISO,其中 <OSVERSION> 是您的Windows 版本(例如 Windows 2012 R2 的 2k12R2)

  3. 之后,您必须安装qemu-guest-agent:
    1. 转到资源管理器中安装的 ISO。
    2. 访客代理安装程序位于目录guest-agent中。
    3. 双击执行安装程序(qemu-ga-x86_64.msi (64-bit) 或 qemu-ga-i386.msi (32-bit)。
  4. 之后qemu-guest-agent应该启动并运行。您可以在Window服务列表中或在PowerShell中验证这一点:
    1. PS C:\Users\Administrator> Get-Service QEMU-GA
      
      Status   Name               DisplayName
      ------   ----               ------------
      Running  QEMU-GA            QEMU Guest Agent
      
      
    2. 如果它没有运行,您可以使用服务控制面板来启动它,并确保它会在下次自行启动。
测试与访客代理的通信是否正常:

与访客代理的通信通过位于/var/run/qemu-server/<my_vmid>.qga的unix套接字进行。您可以测试通信质量代理:

qm agent <vmid> ping

如果qemu-guest-agent在VM中正确运行,它将返回并且没有错误消息。