第 8 章 管理虚拟机


8.1. 安装 QEMU 客户机代理和 VirtIO 驱动程序

QEMU 客户机代理是在虚拟机 (VM) 上运行的守护进程,并将信息传递给有关虚拟机、用户、文件系统和从属网络的信息。

您必须在从红帽提供的操作系统镜像创建的虚拟机上安装 QEMU 客户机代理。

8.1.1. 安装 QEMU 客户机代理

8.1.1.1. 在 Linux 虚拟机上安装 QEMU 客户机代理

在 Red Hat Enterprise Linux (RHEL)虚拟机(VM)中默认提供 qemu-guest-agent

要创建处于 Running 状态的虚拟机的快照,请安装 QEMU 客户机代理。

QEMU 客户机代理通过尝试静止虚拟机文件系统来取一个一致的快照。这样可确保在进行快照前将 in-flight I/O 写入磁盘。如果没有客户机代理,则无法静止并生成最佳快照。

制作快照的条件反映在 web 控制台或 CLI 中显示的快照声明中。如果这些条件没有满足您的要求,请尝试再次创建快照,或使用离线快照

流程

  1. 使用控制台或 SSH 登录虚拟机。
  2. 运行以下命令来安装 QEMU 客户机代理:

    $ yum install -y qemu-guest-agent
  3. 确保服务持久并启动它:

    $ systemctl enable --now qemu-guest-agent

验证

  • 运行以下命令,以验证 AgentConnected 是否列在 VM spec 中:

    $ oc get vm <vm_name>

8.1.1.2. 在 Windows 虚拟机上安装 QEMU 客户机代理

对于 Windows 虚拟机,QEMU 客户机代理包含在 VirtIO 驱动程序中。您可以在 Windows 安装过程中或现有 Windows 虚拟机上安装驱动程序。

要创建处于 Running 状态的虚拟机的快照,请安装 QEMU 客户机代理。

QEMU 客户机代理通过尝试静止虚拟机文件系统来取一个一致的快照。这样可确保在进行快照前将 in-flight I/O 写入磁盘。如果没有客户机代理,则无法静止并生成最佳快照。

请注意,在 Windows 客户机操作系统中,静默还需要卷 Shadow Copy Service (VSS)。因此,在创建快照前,请确保虚拟机上也启用了 VSS。

制作快照的条件反映在 web 控制台或 CLI 中显示的快照声明中。如果这些条件不满足您的要求,请尝试再次创建快照或使用离线快照。

流程

  1. 在 Windows 客户机操作系统中,使用 File Explorer 进入到 virtio-win CD 驱动器中的 guest-agent 目录。
  2. 运行 qemu-ga-x86_64.msi 安装程序。

验证

  1. 运行以下命令来获取网络服务列表:

    $ net start
  2. 验证输出是否包含 QEMU 客户机代理

8.1.2. 在 Windows 虚拟机上安装 VirtIO 驱动程序

VirtIO 驱动程序是 Microsoft Windows 虚拟机在 OpenShift Virtualization 中运行时所需的半虚拟化设备驱动程序。驱动程序由其余镜像提供,不需要单独下载。

必须将 container-native-virtualization/virtio-win 容器磁盘作为 SATA CD 驱动器附加到虚拟机,以启用驱动程序安装。您可以在安装过程中安装 VirtIO 驱动程序,或添加到现有 Windows 安装中。

安装驱动程序后,可从虚拟机中移除 container-native-virtualization/virtio-win 容器磁盘。

表 8.1. 支持的驱动程序
驱动程序名称硬件 ID描述

viostor

VEN_1AF4&DEV_1001
VEN_1AF4&DEV_1042

块驱动程序。有时在 Other devices 组中被标记为 SCSI Controller

viorng

VEN_1AF4&DEV_1005
VEN_1AF4&DEV_1044

熵源(entropy)驱动程序。有时在 Other devices 组中被标记为 PCI 设备。

NetKVM

VEN_1AF4&DEV_1000
VEN_1AF4&DEV_1041

网络驱动程序。有时,在 Other devices 组中被标记为 Ethernet Controller。仅在配置了 VirtIO NIC 时可用。

8.1.2.1. 在安装过程中将 VirtIO 容器磁盘附加到 Windows 虚拟机

您必须将 VirtIO 容器磁盘附加到 Windows 虚拟机,以安装必要的 Windows 驱动程序。这可以在创建虚拟机时完成。

流程

  1. 从模板创建 Windows 虚拟机时,点 Customize VirtualMachine
  2. 选择 Mount Windows 驱动程序磁盘
  3. Customize VirtualMachine 参数
  4. Create VirtualMachine

创建虚拟机后,virtio-win SATA CD 磁盘将附加到虚拟机。

8.1.2.2. 将 VirtIO 容器磁盘附加到现有的 Windows 虚拟机

您必须将 VirtIO 容器磁盘附加到 Windows 虚拟机,以安装必要的 Windows 驱动程序。这可以对现有的虚拟机完成。

流程

  1. 导航到现有的 Windows 虚拟机,然后点 Actions Stop
  2. 进入 VM Details Configuration Disks,然后点 Add disk
  3. 从容器源添加 windows-driver-disk,将 Type 设置为 CD-ROM,然后将 Interface 设置为 SATA
  4. 点击 Save
  5. 启动虚拟机并连接到图形控制台。

8.1.2.3. 在 Windows 安装过程中安装 VirtIO 驱动程序

您可以在虚拟机 (VM) 上安装 Windows 时安装 VirtIO 驱动程序。

注意

该流程使用通用方法安装 Windows,且安装方法可能因 Windows 版本而异。有关您要安装的 Windows 版本,请参阅相关文档。

先决条件

  • 包含 virtio 驱动程序的存储设备必须附加到虚拟机。

流程

  1. 在 Windows 操作系统中,使用 File Explorer 进入到 virtio-win CD 驱动器。
  2. 双击该驱动器为您的虚拟机运行适当的安装程序。

    对于 64 位 vCPU,请选择 virtio-win-gt-x64 安装程序。不再支持 32 位 vCPU。

  3. 可选:在安装程序的 Custom Setup 步骤中,选择您要安装的设备驱动程序。推荐的驱动程序集会被默认选择。
  4. 安装完成后,选择 Finish
  5. 重启虚拟机。

验证

  1. 在 PC 上打开系统磁盘。这通常是 C:
  2. 进入到 Program Files Virtio-Win

如果 Virtio-Win 目录存在并包含每个驱动程序的子目录,则安装可以成功。

8.1.2.4. 在现有 Windows 虚拟机上从 SATA CD 驱动器安装 VirtIO 驱动程序

您可以从现有 Windows 虚拟机(VM)上的 SATA CD 驱动器安装 VirtIO 驱动程序。

注意

该流程使用通用方法为 Windows 添加驱动。有关具体安装步骤,请参阅您的 Windows 版本安装文档。

先决条件

  • 包含 virtio 驱动程序的存储设备必须作为 SATA CD 驱动器附加到虚拟机。

流程

  1. 启动虚拟机并连接到图形控制台。
  2. 登录 Windows 用户会话。
  3. 打开 Device Manager 并展开 Other devices 以列出所有 Unknown device

    1. 打开 Device Properties 以识别未知设备。
    2. 右击设备并选择 Properties
    3. 单击 Details 选项卡,并在 Property 列表中选择 Hardware Ids
    4. Hardware IdsValue 与受支持的 VirtIO 驱动程序相比较。
  4. 右击设备并选择 Update Driver Software
  5. 点击 Browse my computer for driver software 并浏览所附加的 VirtIO 驱动程序所在 SATA CD 驱动器。驱动程序将按照其驱动程序类型、操作系统和 CPU 架构分层排列。
  6. 点击 Next 以安装驱动程序。
  7. 对所有必要 VirtIO 驱动程序重复这一过程。
  8. 安装完驱动程序后,点击 Close 关闭窗口。
  9. 重启虚拟机以完成驱动程序安装。

8.1.2.5. 从添加为 SATA CD 驱动器的容器磁盘安装 VirtIO 驱动程序

您可以从作为 SATA CD 驱动器添加到 Windows 虚拟机(VM)的容器磁盘中安装 VirtIO 驱动程序。

提示

从红帽生态系统目录 下载 container-native-virtualization/virtio-win 容器磁盘不是必须的,因为如果集群中不存在容器磁盘,则会从红帽 registry 下载容器磁盘。但是,下载可减少安装时间。

先决条件

  • 您必须在受限环境中访问红帽 registry 或下载的 container-native-virtualization/virtio-win 容器磁盘。

流程

  1. 通过编辑 VirtualMachine 清单将 container-native-virtualization/virtio-win 容器磁盘添加为 CD 驱动器:

    # ...
    spec:
      domain:
        devices:
          disks:
            - name: virtiocontainerdisk
              bootOrder: 2 1
              cdrom:
                bus: sata
    volumes:
      - containerDisk:
          image: container-native-virtualization/virtio-win
        name: virtiocontainerdisk
    1
    OpenShift Virtualization 按照 VirtualMachine 清单中定义的顺序引导虚拟机磁盘。您可以定义在 container-native-virtualization/virtio-win 容器磁盘前引导的其他虚拟机磁盘,或使用可选的 bootOrder 参数来确保虚拟机从正确的磁盘启动。如果为磁盘配置引导顺序,您必须为其他磁盘配置引导顺序。
  2. 应用更改:

    • 如果虚拟机没有运行,请运行以下命令:

      $ virtctl start <vm> -n <namespace>
    • 如果虚拟机正在运行,重启虚拟机或运行以下命令:

      $ oc apply -f <vm.yaml>
  3. 虚拟机启动后,从 SATA CD 驱动器安装 VirtIO 驱动程序。

8.1.3. 更新 VirtIO 驱动程序

8.1.3.1. 更新 Windows 虚拟机上的 VirtIO 驱动程序

使用 Windows Update 服务更新 Windows 虚拟机(VM)上的 virtio 驱动程序。

先决条件

  • 集群必须连接到互联网。断开连接的集群无法访问 Windows Update 服务。

流程

  1. 在 Windows Guest 操作系统中,点 Windows 密钥并选择 Settings
  2. 进入到 Windows Update Advanced Options Optional Updates
  3. 安装 Red Hat, Inc. 的所有更新。
  4. 重启虚拟机。

验证

  1. 在 Windows 虚拟机上,进入到 设备管理器
  2. 选择一个设备。
  3. 选择 Driver 选项卡。
  4. Driver Details,并确认 virtio 驱动程序详情显示了正确的版本。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.