14.3. 使用 CLI 管理附加到虚拟机的设备
要修改虚拟机的功能,您可以使用命令行(CLI)管理附加到虚拟机的设备。
14.3.1. 将设备附加到虚拟机 复制链接链接已复制到粘贴板!
您可以通过附加新的虚拟设备来向虚拟机(VM)添加特定的功能。
以下流程使用命令行(CLI)创建虚拟设备并将其附加到虚拟机(VM)。一些设备也可以 使用 RHEL web 控制台 附加到虚拟机。
例如,您可以通过将新虚拟磁盘设备附加到虚拟机来增加虚拟机的存储容量。
先决条件
获取您要附加到虚拟机的设备所需的选项。要查看特定设备的可用选项,请使用
virt-xml --device=?命令。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
要将设备附加到虚拟机,请使用
virt-xml --add-device命令,包括该设备的定义和所需的选项:例如,以下命令会在
/var/lib/libvirt/images/目录中创建一个 20GB 的 newdisk qcow2 磁盘镜像,并在虚拟机启动时将其作为虚拟磁盘附加到运行的 testguest 虚拟机上:virt-xml testguest --add-device --disk /var/lib/libvirt/images/newdisk.qcow2,format=qcow2,size=20
# virt-xml testguest --add-device --disk /var/lib/libvirt/images/newdisk.qcow2,format=qcow2,size=20 Domain 'testguest' defined successfully. Changes will take effect after the domain is fully powered off.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在虚拟机运行时,下面的命令会将一个 USB 盘(在主机的 002 总线中作为设备 004)附加到 testguest2 虚拟机:
virt-xml testguest2 --add-device --update --hostdev 002.004
# virt-xml testguest2 --add-device --update --hostdev 002.004 Device hotplug successful. Domain 'testguest2' defined successfully.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可以使用
lsusb命令获得用于定义 USB 的总线设备组合。
验证
要验证设备是否已被添加,请执行以下操作之一:
使用
virsh dumpxml命令,并查看设备的 XML 定义是否已添加到虚拟机 XML 配置中的<devices>部分。例如,以下输出显示了 testguest 虚拟机的配置,并确认已添加了 002.004 USB 闪存磁盘设备。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 运行虚拟机并测试该设备是否存在并正常工作。
14.3.2. 修改附加到虚拟机的设备 复制链接链接已复制到粘贴板!
您可以通过编辑附加的虚拟设备的配置来更改虚拟机(VM)的功能。例如,如果想要优化虚拟机的性能,您可以更改其虚拟 CPU 型号来更好地匹配主机的 CPU 。
以下流程提供了使用命令行(CLI)修改虚拟设备的一般说明。还可以 使用 RHEL 9 web 控制台 来修改附加到虚拟机的某些设备,如磁盘和 NIC。
先决条件
-
获取您要附加到虚拟机的设备所需的选项。要查看特定设备的可用选项,请使用
virt-xml --device=?命令。例如:
-
可选:使用
virsh dumpxml vm-name备份虚拟机的 XML 配置,并将输出发送到文件。例如,以下命令将 testguest1 虚拟机的配置备份为testguest1.xml文件:
流程
使用
virt-xml --edit命令,包括设备的定义以及所需的选项:例如,以下可清除关闭的 testguest 虚拟机的 <cpu> 配置,并将其设置为 host-model:
virt-xml testguest --edit --cpu host-model,clearxml=yes
# virt-xml testguest --edit --cpu host-model,clearxml=yes Domain 'testguest' defined successfully.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要校验设备已被修改,请执行以下任一操作:
- 运行虚拟机并测试该设备是否存在并反映了所做的修改。
使用
virsh dumpxml命令,并查看在虚拟机的 XML 配置中是否已修改了设备的 XML 定义。例如,以下输出显示了 testguest 虚拟机的 配置,并确认 CPU 模式已被配置为 host-model。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
故障排除
如果修改设备会导致虚拟机无法启动,请使用
virsh 定义工具通过重新加载之前备份的 XML 配置文件来恢复 XML 配置。virsh define testguest.xml
# virsh define testguest.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
对于对虚拟机 XML 配置的小更改,您可以使用 virsh edit 命令 - 例如 virsh edit testguest。但是,对于更广泛的更改,请勿使用此方法,因为它很可能会破坏配置,从而阻止虚拟机启动。
14.3.3. 从虚拟机中删除设备 复制链接链接已复制到粘贴板!
您可以通过移除虚拟设备来更改虚拟机(VM)的功能。例如,如果不再需要,您可以从其中一个虚拟机中删除虚拟磁盘设备。
以下流程演示了如何使用命令行(CLI)从虚拟机(VM)中删除虚拟设备。还可 使用 RHEL 9 web 控制台从虚拟机中删除一些设备,如磁盘或 NIC。
先决条件
-
可选:使用
virsh dumpxml vm-name备份虚拟机的 XML 配置,并将输出发送到文件。例如,以下命令将 testguest1 虚拟机的配置备份为testguest1.xml文件:
流程
使用
virt-xml --remove-device命令,包括设备的定义。例如:以下会在运行的 testguest 虚拟机关闭后,从其中删除标记为 vdb 的存储设备:
virt-xml testguest --remove-device --disk target=vdb
# virt-xml testguest --remove-device --disk target=vdb Domain 'testguest' defined successfully. Changes will take effect after the domain is fully powered off.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下命令会立即从运行的 testguest2 虚拟机中删除 USB 闪存驱动器设备:
virt-xml testguest2 --remove-device --update --hostdev type=usb
# virt-xml testguest2 --remove-device --update --hostdev type=usb Device hotunplug successful. Domain 'testguest2' defined successfully.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
故障排除
如果移除设备会导致虚拟机无法启动,请使用
virsh define工具,通过重新加载之前备份的 XML 配置文件来恢复 XML 配置。virsh define testguest.xml
# virsh define testguest.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow