虚拟机VMTools篇

虚拟机 VMTools 是一组虚拟机驱动和工具的集合,用于丰富虚拟机功能、提高虚拟机性能表现。

VMTools 组成

VMTools 主要包含以下工具和驱动,不同操作系统包含的工具和驱动不同。
操作系统 VMTools 组成 描述
Linux 高级监控 agent 安装在虚拟机内部的代理,用于获取虚拟机高级监控数据,包括CPU、内存、硬盘容量。
QEMU Guest Agent (QGA) 实现虚拟机与主机间交互的应用程序,该交互不依赖网络,可实现虚拟机配置读取、下发,和监控数据推送等功能。
Note: Linux 操作系统通常默认包含 virtio 驱动和 cloud-init 驱动,因此针对 Linux 的 VMTools 不额外包含这两种工具。若您使用的 Linux 系统不含这两种工具,您可以通过其他方式自行安装。
Windows 高级监控 agent 安装在虚拟机内部的代理,用于获取虚拟机高级监控数据,包括CPU、内存、硬盘容量。
QGA 实现虚拟机与主机间交互的应用程序,该交互不依赖网络,可实现虚拟机配置读取、下发,和监控数据推送等功能。
Virtio 驱动 一组增强虚拟机性能表现的驱动的集合,包括:
  • SCSI 控制器驱动:用于提高虚拟化环境中虚拟机的磁盘性能。
  • PCI 简易通讯控制器驱动:用于实现虚拟机与底层 KVM 虚拟化通信。
  • PCI 设备驱动:用于实现虚拟机气球内存伸缩功能。
  • 以太网控制器驱动:用于提高虚拟化环境中虚拟机的网络性能。
Cloudbase-init 用于实现虚拟机导入 User Data 等定制化功能。
FreeBSD 高级监控 agent 安装在虚拟机内部的代理,用于获取虚拟机高级监控数据,包括CPU、内存、硬盘容量。

VMTools 应用

为虚拟机安装VMTools后,可实现虚拟机高级监控、配置下发、配置读取等功能。
  • 高级监控:高级监控是由高级监控agent从虚拟机处获取的监控数据,定期通过DHCP服务或QGA推送到主机。您可通过曲线图实时掌握虚拟机各项性能变化趋势,包括CPU、内存、磁盘容量。
  • 配置下发:通过VMTools中的QGA将平台上设置的参数实际下发到虚拟机内部生效,包括虚拟机主机名和网络配置。
    • 主机名:安装最新版VMTools后,用户为运行中的虚拟机修改主机名,新设置的主机名将通过QGA直接下发,无需重启虚拟机生效。
      Note: 如需通过QGA下发主机名,请在修改主机名前安装VMTools。
    • 网络配置:分布式端口组未开启DHCP服务时,平台上设置的IP地址、DNS、MTU等参数需通过QGA下发到网卡生效。安装好VMTools后,指定的IP地址等参数将自动下发生效。
  • 配置读取:通过VMTools中的QGA自动读取虚拟机内部配置的网卡IP地址,读取成功的IP地址可在平台展示和管理。
    Note:
    • 虚拟机网卡所属的分布式端口组未开启DHCP,且虚拟机已安装VMTools,并处于运行中状态时,支持自动读取虚拟机网卡配置信息。
    • 若虚拟机内部已配置IP地址,将读取该IP并覆盖平台上配置的IP地址。
    • 若虚拟机网卡IP地址与所在端口组存在重复的IP地址,将触发告警提示。

高级监控 agent

高级监控是VMTools从虚拟机处获取的虚拟机性能数据,通过曲线图实时动态展示虚拟机的各项性能指标,包括:CPU、内存、磁盘容量。本节主要介绍agent监控机制以及使用方法。

监控机制

  • 高级监控数据通过VMTools中的高级监控agent获取,查看高级监控需为虚拟机预先安装VMTools,具体安装方法请参考。
  • 获取到的监控数据可通过分布式端口组DHCP服务或VMTools中的QEMU Guest Agent (QGA) 推送到主机:
    • 如虚拟机默认网络已开启DHCP服务,监控数据默认通过DHCP服务推送。
    • 虚拟机默认网络未开启DHCP服务或DHCP服务故障,监控数据将切换由QGA推送。虚拟机默认网络开启DHCP服务或DHCP服务恢复后,将自动切换回DHCP服务推送监控数据。

图 1所示:

图 1. 高级监控机制


操作高级监控agent

支持通过以下命令管理高级监控agent,从而停止、启动、重启、查询或卸载高级监控服务:
  • 停止服务:service zwatch-vm-agent stop
  • 启动服务:service zwatch-vm-agent start
  • 重启服务:service zwatch-vm-agent restart
  • 查询服务状态:service zwatch-vm-agent status
  • 卸载高级监控服务:
    卸载高级监控agent后,将不再获取高级监控数据及提供高级监控服务。高级监控agent卸载方法区分Linux虚拟机与Windows虚拟机,方法分别如下:
    • Linux虚拟机
      1. 使用service zwatch-vm-agent stop命令停止agent。
      2. 使用rm -f /etc/systemd/system/zwatch-vm-agent.service命令删除service配置文件。
      3. 使用rm -rf /usr/local/zstack/zwatch-vm-agent命令删除agent安装目录。
    • Windows虚拟机
      1. 删除注册表相关条目。
        以管理员身份运行Windows命令提示符,执行以下命令删除系统中相关键值:
        reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC /f
        reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC /f
        reg delete HKEY_CLASSES_ROOT\CID /f
      2. 停止并重新安装msdtc服务。
        以管理员身份运行Windows命令提示符,执行以下命令停止并重新安装msdtc服务:
        net stop msdtc
        msdtc -uninstall
        msdtc -install
      3. 重新启动虚拟机。
      4. 卸载agent。
        以管理员身份运行Windows命令提示符,执行以下命令删除agent:
        msiexec /a "c:\Program Files\GuestTools\qemu-ga.msi" targetdir="c:\Program Files"
        "c:\Program Files\QEMU Guest Agent\Qemu-ga\qemu-ga.exe" -s vss-uninstall

Linux 虚拟机安装 VMTools

安装过程将先加载 VMTools ISO,而后进入虚拟机控制台手动执行安装命令。

前提条件

  • 确保虚拟机处于运行中状态。
  • 确保虚拟机已安装 Linux 命令工具,如:tarwgetcurl

操作步骤

  1. 在目标虚拟机页面,点击更多操作 > VMTools > 安装VMTools
  2. 安装VMTools弹窗中,点击安装并进入下一步
    加载 VMTools ISO 时,系统将根据以下规则选择光驱:
    • 有空光驱时,系统将自动选择第一顺位的空光驱,加载 VMTools ISO。
    • 无空光驱时,系统将选择光驱 1,自动卸载原有镜像并加载 VMTools ISO。
  3. 点击复制并进入控制台
    点击后,将一键复制以下命令,并自动进入虚拟机控制台:
    # 创建挂载点目录
    mkdir /mnt/cdrom
    # 挂载 CD-ROM 镜像
    mount /dev/cdrom /mnt/cdrom
    # 安装 VMTools
    cd /mnt/cdrom/
    bash ./zs-tools-install.sh
    # 卸载 CD-ROM 镜像(可选)
    cd ~
    umount /mnt/cdrom
  4. 进入虚拟机控制台,在左侧工具栏中,点击本地命令粘贴工具
  5. 粘贴命令弹窗中,粘贴上一步复制的命令,然后点击确定执行命令。

后续操作

如需更新 VMTools 版本,可在目标虚拟机页面,点击更多操作 > VMTools > 重装VMTools

Windows 虚拟机安装 VMTools

安装过程将先加载 VMTools ISO,而后进入虚拟机控制台根据提示步骤安装 VMTools。

前提条件

确保虚拟机处于运行中状态。

操作步骤

  1. 在目标虚拟机页面,点击更多操作 > VMTools > 安装VMTools
  2. 安装VMTools弹窗中,点击安装并进入下一步
    加载 VMTools ISO 时,系统将根据以下规则选择光驱:
    • 有空光驱时,系统将自动选择第一顺位的空光驱,加载 VMTools ISO。
    • 无空光驱时,系统将选择光驱 1,自动卸载原有镜像并加载 VMTools ISO。
  3. 点击进入控制台
  4. 进入虚拟机控制台,按照提示步骤安装 VMTools。
    1. 加载 VMTools 镜像:点击 VMTools 安装提示中的立即安装按钮,加载 VMTools 镜像到虚拟光驱。
    2. 安装 VMTools:运行 VMTools 安装程序,依次安装 VMTools、常用工具和 VirtIO 驱动。
    3. 完成安装并重启虚拟机:安装完成后,重启虚拟机使配置生效。

后续操作

如需更新 VMTools 版本,可在目标虚拟机页面,点击更多操作 > VMTools > 重装VMTools

VMTools 适配 OS 列表

不同操作系统对 VMTools 的适配程度不同,下表为各操作系统与 VMTools 的适配情况。
Note: 表格中,表示支持通过 VMTools 为虚拟机安装此组件,并正常使用相关功能;仅表示不支持通过 VMTools 为虚拟机安装此组件,或安装后可能无法使用依赖该组件的功能。并非表示不支持此组件,您仍可通过其他方式安装此组件。

Linux 操作系统

操作系统 版本 高级监控 agent QGA
CentOS CentOS 6.5 64位
CentOS 6.8 64位
CentOS 6.9 64位
CentOS 6.10 64位
CentOS 7.2 64位
CentOS 7.3 64位
CentOS 7.4 64位
CentOS 7.5 64位
CentOS 7.6 64位
CentOS 7.9 64位
CentOS 8.0 64位
RHEL Redhat Enterprise Linux Server 6.9 64位
Redhat Enterprise Linux Server 7.0 64位
Redhat Enterprise Linux Server 7.1 64位
Redhat Enterprise Linux Server 7.2 64位
Redhat Enterprise Linux Server 7.3 64位
Redhat Enterprise Linux Server 7.4 64位
Redhat Enterprise Linux Server 7.5 64位
Redhat Enterprise Linux Server 7.6 64位
Fedora Fedora 30 64位
Fedora 31 64位
Debian Debian 9.9 64位
Debian 10.13 64位
Debian 11.9 64位
Debian 12.5 64位
Ubuntu Ubuntu 14.04 64位
Ubuntu 16.04 64位
Ubuntu 16.10 64位
Ubuntu 18.04 64位
Ubuntu 20.04 64位
Ubuntu 22.04 64位
Ubuntu 24.04 64位
银河麒麟 Kylin V4.0.2 64位
Kylin V10 SP1(0518) 64位
Kylin V10 SP2 64位
Kylin V10 SP3 64位
中标麒麟 NeoKylin V7.0 64位
NeoKylin V7update6 64位
OpenSUSE OpenSUSE Leap 15.0 64位
SLES SUSE Linux Enterprise Server 11 64位
SUSE Linux Enterprise Server 12 64位
SUSE Linux Enterprise Server 15 64位
SUSE Linux Enterprise Desktop 12 64位
SUSE Linux Enterprise Desktop 15 64位
UOS UOS V20 1050e
Oracle Linux Oracle Linux 7.9
OpenEuler OpenEuler 20 64位
OpenEuler 22 64位
Alma Linux Alma Linux 9.3 64位

Windows 操作系统

操作系统 版本 高级监控 agent QGA Virtio 驱动 Cloudbase-init
Windows Windows Server 2008 R2 64位
Windows Server 2012 64位
Windows Server 2016 64位
Windows Server 2019 64位
Windows Server 2022 64位
Windows Server 2025 64位

FreeBSD 操作系统

操作系统 版本 高级监控 agent
FreeBSD FreeBSD 11 64位
FreeBSD 12 64位
FreeBSD 13 64位