14.5. 从 PXE 服务器启动虚拟机
使用预引导执行环境(PXE)的虚拟机可以从网络引导并加载它们的配置。本章描述了如何使用 libvirt
在虚拟或桥接网络上从 PXE 服务器引导虚拟机。
这些流程仅作为示例提供。在操作之前,请确保您有足够的备份。
14.5.1. 在虚拟网络中设置 PXE 引导服务器
这个流程描述了如何配置 libvirt
虚拟网络以提供预启动执行环境(PXE)。这可让主机上的虚拟机被配置为从虚拟网络上提供的引导镜像引导。
先决条件
本地 PXE 服务器(DHCP 和 TFTP),例如:
- libvirt 内部服务器
- 手动配置 dhcpd 和 tftpd
- dnsmasq
- Cobbler 服务器
-
PXE 引导映像,如 Cobbler 配置的
PXELINUX
或手工进行配置。
流程
-
将 PXE 引导镜像和配置放在
/var/lib/tftpboot
文件夹中。 设置文件夹权限:
# chmod -R a+r /var/lib/tftpboot
设置文件夹所有权:
# chown -R nobody: /var/lib/tftpboot
更新 SELinux 上下文:
# chcon -R --reference /usr/sbin/dnsmasq /var/lib/tftpboot # chcon -R --reference /usr/libexec/libvirt_leaseshelper /var/lib/tftpboot
关闭虚拟网络:
# virsh net-destroy default
在默认编辑器中打开虚拟网络配置文件:
# virsh net-edit default
编辑
<ip>
元素,来包含合适的地址、网络掩码、DHCP 地址范围和引导文件,其中 example-pxelinux 是引导镜像文件的名称。<ip address='192.0.2.1' netmask='255.255.255.0'> <tftp root='/var/lib/tftpboot'/> <dhcp> <range start='192.0.2.2' end='192.0.2.254' /> <bootp file='example-pxelinux'/> </dhcp> </ip>
启动虚拟网络:
# virsh net-start default
验证
验证
default
虚拟网络是否处于活跃状态:# virsh net-list Name State Autostart Persistent --------------------------------------------------- default active no no
其它资源
14.5.2. 使用 PXE 和虚拟网络引导虚拟机
要从虚拟网络上的预引导执行环境(PXE)服务器引导虚拟机(VM),您必须启用 PXE 引导。
先决条件
- 在虚拟网络上设置 PXE 引导服务器,如在虚拟网络 中设置 PXE 引导服务器 中所述。
流程
创建启用了 PXE 引导的新虚拟机。例如,若要从
default
虚拟网络上提供的 PXE 安装一个新的 10 GB qcow2 镜像文件:# virt-install --pxe --network network=default --memory 2048 --vcpus 2 --disk size=10
另外,您可以手动编辑现有虚拟机的 XML 配置文件:
确保
<os>
元素中有一个<boot dev='network'/>
元素:<os> <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type> <boot dev='network'/> <boot dev='hd'/> </os>
确定客户端网络已配置为使用您的虚拟网络:
<interface type='network'> <mac address='52:54:00:66:79:14'/> <source network='default'/> <target dev='vnet0'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface>
验证
-
使用
virsh start
命令启动虚拟机。如果正确配置了 PXE,则虚拟机可以从 PXE 服务器上提供的引导镜像启动。
14.5.3. 使用 PXE 和桥接网络启动虚拟机
要从桥接网络上提供的预引导执行环境(PXE)服务器启动虚拟机(VM),您必须启用 PXE 引导。
先决条件
- 启用了网络桥接。
- 网桥网络上提供了 PXE 引导服务器。
流程
创建启用了 PXE 引导的新虚拟机。例如,若要在
breth0
桥接网络上从 PXE 安装一个新的 10 GB qcow2 镜像文件:# virt-install --pxe --network bridge=breth0 --memory 2048 --vcpus 2 --disk size=10
另外,您可以手动编辑现有虚拟机的 XML 配置文件:
确保
<os>
元素中有一个<boot dev='network'/>
元素:<os> <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type> <boot dev='network'/> <boot dev='hd'/> </os>
确保虚拟机配置为使用桥接网络:
<interface type='bridge'> <mac address='52:54:00:5a:ad:cb'/> <source bridge='breth0'/> <target dev='vnet0'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface>
验证
-
使用
virsh start
命令启动虚拟机。如果正确配置了 PXE,则虚拟机可以从 PXE 服务器上提供的引导镜像启动。
其它资源