一、创建虚拟机
在 Red Hat Enterprise Linux 7 、8主机系统上安装虚拟化软件包后,您可以使用 virt-manager 界面创建虚拟机并安装客户机操作系统。或者,您可以通过参数列表或脚本来使用 virt-install 命令行工具,8、9系统还支持通过web 控制台创建虚拟机。本章主要介绍virt-install 命令行创建虚拟机的方法。
二、虚拟机创建注意事项
在创建任何虚拟机之前,应考虑各种因素。在部署之前,应评估虚拟机的角色,但也应根据可变因素(负载、客户端数量)执行定期监视和评估。这些因素包括:
性能
应根据虚拟机的预期任务进行部署和配置。某些虚拟机系统(例如,运行数据库服务器的客虚拟机)可能需要特殊的性能注意事项。虚拟机可能需要更多分配的 CPU 或内存,具体取决于其角色和预计的系统负载。
输入/输出要求和输入/输出类型
某些客户机虚拟机可能具有特别高的 I/O 要求,或者可能需要根据 I/O 类型(例如,典型的磁盘块大小访问或客户端数量)进行进一步的考虑或预测。
存储
某些虚拟机可能需要更高优先级的存储访问或更快的磁盘类型,或者可能需要对存储区域的独占访问权限。在部署和维护存储时,还应定期监控和考虑虚拟机使用的存储量。请务必阅读《Red Hat Enterprise Linux 7 虚拟化安全指南》中概述的所有注意事项。同样重要的是要了解,您的物理存储可能会限制您在虚拟存储中的选择。
网络和网络基础设施
根据您的环境,某些虚拟机可能需要比其他虚拟机更快的网络链接。在部署和维护虚拟机时,带宽或延迟通常是考虑因素,尤其是在需求或负载发生变化时。
请求要求如果 virtio 驱动器由整个磁盘支持,并且磁盘设备参数在
域 XML 文件中设置为lun,则只能向 virtio 驱动器上的虚拟机发出 SCSI 请求,如以下示例所示:
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='block' device='lun'>
三、使用virt-install 创建虚拟机
您可以使用virt-install该命令从命令行创建虚拟机并在这些虚拟机上安装操作系统。 可以交互方式使用,也可以作为脚本的一部分使用,以自动创建虚拟机。如果您正在使用交互式图形安装,则必须在运行 之前安装 virt-viewer。此外,您可以使用 kickstart 文件启动虚拟机操作系统的无人值守安装。
注意:您可能需要 root 权限才能成功完成某些命令。virt-install
virt-install有许多命令行选项。但是,大多数选项都不是必需的。
命令参数解释:--name 虚拟机的名称
--memory 要分配给虚拟机的内存大小(RAM),以 MiB 为单位。
--disk 虚拟机的存储磁盘空间
--filesystem 虚拟机文件系统路径。
--location 安装介质的位置
--cdrom 用作虚拟 CD-ROM 设备的文件或设备。它可以是 ISO 映像的路径,也可以是从中获取或访问最小启动 ISO 映像的 URL。但是,它不能是物理主机 CD-ROM 或 DVD-ROM 设备。
--pxe 使用 PXE 引导协议加载初始 ramdisk 和内核以启动客户机安装过程。
--import 跳过操作系统安装过程,并围绕现有磁盘映像构建客户机。用于引导的设备是disk or filesystem 选项指定的第一个设备。
--boot 安装后的 VM 启动配置。此选项允许指定启动设备顺序,使用可选的内核参数永久启动内核和 initrd,并启用 BIOS 启动菜单。
--os-variant 系统类型
要查看选项的完整列表,请输入以下命令:
virt-install --help
要查看选项的完整属性列表,请输入以下命令:
virt install --option=?
3.1 从 ISO 镜像文件安装虚拟机
virt-install \
--name guest1-rhel7 \
--memory 2048 \
--vcpus 2 \
--disk size=8 \
--cdrom /path/to/rhel7.iso \
--os-variant rhel7
以下命令创建一个名为 demo-guest1 的 VM,该 VM 从本地存储在 /home/username/Downloads/Win10install.iso 文件中的 ISO 映像安装 Windows 10 操作系统。此 VM 还分配了 2048 MiB 的 RAM 和 2 个 vCPU,并自动为 VM 配置了一个 80 GiB 的 qcow2 虚拟磁盘。
# virt-install \
--graphics vnc \
--name demo-guest1 --memory 2048 \
--vcpus 2 --disk size=80 --os-variant win10 \
--cdrom /home/username/Downloads/Win10install.iso
3.2 从live CD ISO镜像 文件中创建虚拟机
以下命令创建一个名为 demo-guest2 的 VM,该 VM 使用 /home/username/Downloads/rhel8.iso 映像从live CD 运行 RHEL 8 操作系统。不会为此 VM 分配任何磁盘空间,因此不会保留在会话期间所做的更改。此外,还为 VM 分配了 4096 MiB 的 RAM 和 4 个 vCPU。
# virt-install \
--graphics vnc \
--name demo-guest2 --memory 4096 --vcpus 4 \
--disk none --livecd --os-variant rhel8.0 \
--cdrom /home/username/Downloads/rhel8.iso
3.3 从现有镜像文件导入虚拟机
以下命令创建一个名为 demo-guest3 的 RHEL 8 VM,该 VM 连接到现有磁盘映像 /home/username/backup/disk.qcow2。这类似于在计算机之间物理移动硬盘驱动器,因此 demo-guest3 可用的操作系统和数据由之前处理镜像的方式决定。此外,此 VM 还分配了 2048 MiB 的 RAM 和 2 个 vCPU。
# virt-install \
--graphics vnc \
--name demo-guest3 --memory 2048 --vcpus 2 \
--os-variant rhel8.0 --import \
--disk /home/username/backup/disk.qcow2
请注意,在导入磁盘映像时,强烈建议使用
--os-variant
选项。如果未提供,则创建的虚拟机的性能将受到负面影响。
3.4 从网络安装虚拟机
--location http://example.com/path/to/os该选项指定安装树位于指定的网络位置。
virt-install \
--name guest1-rhel7 \
--memory 2048 \
--vcpus 2 \
--disk size=8 \
--location http://example.com/path/to/os \
--os-variant rhel7
3.5 使用 PXE 安装虚拟机
--network--pxe使用 PXE 引导协议安装虚拟机时,必须指定指定桥接网络的选项和选项。
以下示例使用 PXE 安装虚拟机:
virt-install \
--name guest1-rhel7 \
--memory 2048 \
--vcpus 2 \
--disk size=8 \
--network=bridge:br0 \
--pxe \
--os-variant rhel7
3.6 使用 Kickstart文件安装虚拟机
以下示例使用 kickstart 文件安装虚拟机:
initrd-inject和extra-args选项指定将使用 Kickstarter 文件安装虚拟机。
virt-install \
--name guest1-rhel7 \
--memory 2048 \
--vcpus 2 \
--disk size=8 \
--location http://example.com/path/to/os \
--os-variant rhel7 \
--initrd-inject /path/to/ks.cfg \
--extra-args="ks=file:/ks.cfg console=tty0 console=ttyS0,115200n8"
四、在虚拟机创建时配置虚拟机网络
创建虚拟机时,您可以指定和配置虚拟机的网络。本部分提供每种虚拟机主要网络类型的选项。
- 带 NAT 的默认网络默认网络使用 的网络地址转换 (NAT) 虚拟网络交换机
在使用virt-install NAT 创建具有默认网络的虚拟机之前,请确保已安装 libvirt-daemon-config-network 软件包。要为虚拟机配置 NAT 网络,请对以下选项使用:
--network default
注意:如果未指定网络任何选项,则虚拟机将配置具有 NAT 的默认网络。
- 带DHCP的桥接网络
当配置为桥接网络时,虚拟机使用外部 DHCP 服务器。如果主机具有静态网络配置,并且虚拟机需要与局域网 (LAN) 建立完全的入站和出站连接,则应使用此选项。如果要使用虚拟机执行实时迁移,则应使用此迁移。要为虚拟机配置具有 DHCP 的桥接网络,请使用以下选项:
--network br0
注意:在运行virt-install之前,必须单独创建网桥。有关创建网桥的详细信息,请参见第 6.4.1 节 “在 Red Hat Enterprise Linux 7 主机上配置桥接网络”。
- 具有静态 IP 地址的桥接网络
桥接网络还可用于将客户机配置为使用静态 IP 地址。要为客户机虚拟机配置具有静态 IP 地址的桥接网络,请使用以下选项:有关网络引导选项的更多信息,请参阅《Red Hat Enterprise Linux 7 安装指南》。
- 没有网络
要配置不带网络接口的客户机虚拟机,请使用以下选项:
--network=none