第 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 中显示的快照声明中。如果这些条件没有满足您的要求,请尝试再次创建快照,或使用离线快照
流程
- 使用控制台或 SSH 登录虚拟机。
运行以下命令来安装 QEMU 客户机代理:
$ yum install -y qemu-guest-agent
确保服务持久并启动它:
$ 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 中显示的快照声明中。如果这些条件不满足您的要求,请尝试再次创建快照或使用离线快照。
流程
-
在 Windows 客户机操作系统中,使用 File Explorer 进入到
virtio-win
CD 驱动器中的guest-agent
目录。 -
运行
qemu-ga-x86_64.msi
安装程序。
验证
运行以下命令来获取网络服务列表:
$ net start
-
验证输出是否包含
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
容器磁盘。
驱动程序名称 | 硬件 ID | 描述 |
---|---|---|
viostor |
VEN_1AF4&DEV_1001 | 块驱动程序。有时在 Other devices 组中被标记为 SCSI Controller。 |
viorng |
VEN_1AF4&DEV_1005 | 熵源(entropy)驱动程序。有时在 Other devices 组中被标记为 PCI 设备。 |
NetKVM |
VEN_1AF4&DEV_1000 | 网络驱动程序。有时,在 Other devices 组中被标记为 Ethernet Controller。仅在配置了 VirtIO NIC 时可用。 |
8.1.2.1. 在安装过程中将 VirtIO 容器磁盘附加到 Windows 虚拟机
您必须将 VirtIO 容器磁盘附加到 Windows 虚拟机,以安装必要的 Windows 驱动程序。这可以在创建虚拟机时完成。
流程
- 从模板创建 Windows 虚拟机时,点 Customize VirtualMachine。
- 选择 Mount Windows 驱动程序磁盘。
- 点 Customize VirtualMachine 参数。
- 点 Create VirtualMachine。
创建虚拟机后,virtio-win
SATA CD 磁盘将附加到虚拟机。
8.1.2.2. 将 VirtIO 容器磁盘附加到现有的 Windows 虚拟机
您必须将 VirtIO 容器磁盘附加到 Windows 虚拟机,以安装必要的 Windows 驱动程序。这可以对现有的虚拟机完成。
流程
-
导航到现有的 Windows 虚拟机,然后点 Actions
Stop。 -
进入 VM Details
Configuration Disks,然后点 Add disk。 -
从容器源添加
windows-driver-disk
,将 Type 设置为 CD-ROM,然后将 Interface 设置为 SATA。 - 点击 Save。
- 启动虚拟机并连接到图形控制台。
8.1.2.3. 在 Windows 安装过程中安装 VirtIO 驱动程序
您可以在虚拟机 (VM) 上安装 Windows 时安装 VirtIO 驱动程序。
该流程使用通用方法安装 Windows,且安装方法可能因 Windows 版本而异。有关您要安装的 Windows 版本,请参阅相关文档。
先决条件
-
包含
virtio
驱动程序的存储设备必须附加到虚拟机。
流程
-
在 Windows 操作系统中,使用
File Explorer
进入到virtio-win
CD 驱动器。 双击该驱动器为您的虚拟机运行适当的安装程序。
对于 64 位 vCPU,请选择
virtio-win-gt-x64
安装程序。不再支持 32 位 vCPU。- 可选:在安装程序的 Custom Setup 步骤中,选择您要安装的设备驱动程序。推荐的驱动程序集会被默认选择。
- 安装完成后,选择 Finish。
- 重启虚拟机。
验证
-
在 PC 上打开系统磁盘。这通常是
C:
。 -
进入到 Program Files
Virtio-Win。
如果 Virtio-Win 目录存在并包含每个驱动程序的子目录,则安装可以成功。
8.1.2.4. 在现有 Windows 虚拟机上从 SATA CD 驱动器安装 VirtIO 驱动程序
您可以从现有 Windows 虚拟机(VM)上的 SATA CD 驱动器安装 VirtIO 驱动程序。
该流程使用通用方法为 Windows 添加驱动。有关具体安装步骤,请参阅您的 Windows 版本安装文档。
先决条件
- 包含 virtio 驱动程序的存储设备必须作为 SATA CD 驱动器附加到虚拟机。
流程
- 启动虚拟机并连接到图形控制台。
- 登录 Windows 用户会话。
打开 Device Manager 并展开 Other devices 以列出所有 Unknown device。
- 打开 Device Properties 以识别未知设备。
- 右击设备并选择 Properties。
- 单击 Details 选项卡,并在 Property 列表中选择 Hardware Ids。
- 将 Hardware Ids 的 Value 与受支持的 VirtIO 驱动程序相比较。
- 右击设备并选择 Update Driver Software。
- 点击 Browse my computer for driver software 并浏览所附加的 VirtIO 驱动程序所在 SATA CD 驱动器。驱动程序将按照其驱动程序类型、操作系统和 CPU 架构分层排列。
- 点击 Next 以安装驱动程序。
- 对所有必要 VirtIO 驱动程序重复这一过程。
- 安装完驱动程序后,点击 Close 关闭窗口。
- 重启虚拟机以完成驱动程序安装。
8.1.2.5. 从添加为 SATA CD 驱动器的容器磁盘安装 VirtIO 驱动程序
您可以从作为 SATA CD 驱动器添加到 Windows 虚拟机(VM)的容器磁盘中安装 VirtIO 驱动程序。
从红帽生态系统目录 下载 container-native-virtualization/virtio-win
容器磁盘不是必须的,因为如果集群中不存在容器磁盘,则会从红帽 registry 下载容器磁盘。但是,下载可减少安装时间。
先决条件
-
您必须在受限环境中访问红帽 registry 或下载的
container-native-virtualization/virtio-win
容器磁盘。
流程
通过编辑
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
参数来确保虚拟机从正确的磁盘启动。如果为磁盘配置引导顺序,您必须为其他磁盘配置引导顺序。
应用更改:
如果虚拟机没有运行,请运行以下命令:
$ virtctl start <vm> -n <namespace>
如果虚拟机正在运行,重启虚拟机或运行以下命令:
$ oc apply -f <vm.yaml>
- 虚拟机启动后,从 SATA CD 驱动器安装 VirtIO 驱动程序。
8.1.3. 更新 VirtIO 驱动程序
8.1.3.1. 更新 Windows 虚拟机上的 VirtIO 驱动程序
使用 Windows Update 服务更新 Windows 虚拟机(VM)上的 virtio
驱动程序。
先决条件
- 集群必须连接到互联网。断开连接的集群无法访问 Windows Update 服务。
流程
- 在 Windows Guest 操作系统中,点 Windows 密钥并选择 Settings。
-
进入到 Windows Update
Advanced Options Optional Updates。 - 安装 Red Hat, Inc. 的所有更新。
- 重启虚拟机。
验证
- 在 Windows 虚拟机上,进入到 设备管理器。
- 选择一个设备。
- 选择 Driver 选项卡。
-
点 Driver Details,并确认
virtio
驱动程序详情显示了正确的版本。