网站搜索

RHCSA 系列:使用 KVM 进行虚拟化和来宾管理的要点 - 第 15 部分


如果您在字典中查找“虚拟化”一词,您会发现它的意思是“创建某物的虚拟(而不是实际)版本”。在计算中,虚拟化一词是指在同一物理(硬件)系统(在虚拟化架构中称为主机)之上同时运行多个操作系统并彼此隔离的可能性。

通过使用虚拟机监视器(也称为管理程序),为虚拟机(称为来宾)提供虚拟资源(即CPU、RAM、存储、网络)接口(仅举几例)来自底层硬件。

考虑到这一点,很明显虚拟化的主要优点之一是节省成本(在设备和网络基础设施以及维护工作方面)以及大幅减少容纳所有必要硬件所需的物理空间。

由于本简短的操作方法无法涵盖所有虚拟化方法,因此我鼓励您参阅摘要中列出的文档以获取有关该主题的更多详细信息。

请记住,本文旨在成为学习使用 KVM(基于内核的虚拟机)和命令行实用程序的 RHEL 7 虚拟化基础知识的起点,而不是一个入门指南。 ——对主题的深入讨论。

验证硬件要求并安装软件包

为了设置虚拟化,您的 CPU 必须支持它。您可以使用以下命令验证您的系统是否满足要求:


grep -E 'svm|vmx' /proc/cpuinfo

在下面的屏幕截图中,我们可以看到当前系统(具有AMD微处理器)支持虚拟化,如svm所示。如果我们有基于 Intel 的处理器,我们会在上述命令的结果中看到 vmx

此外,您还需要在主机固件(BIOSUEFI)中启用虚拟化功能。

现在安装必要的软件包:

  1. qemu-kvm 是一个开源虚拟器,为 KVM 虚拟机管理程序提供硬件模拟,而 qemu-img 则提供用于操作磁盘映像的命令行工具。
  2. libvirt 包含与操作系统虚拟化功能交互的工具。
  3. libvirt-python 包含一个模块,允许用 Python 编写的应用程序使用 libvirt 提供的接口。
  4. libguestfs-tools:用于虚拟机的各种系统管理员命令行工具。
  5. virt-install:用于虚拟机管理的其他命令行实用程序。

yum update && yum install qemu-kvm qemu-img libvirt libvirt-python libguestfs-tools virt-install

安装完成后,请确保启动并启用 libvirtd 服务:


systemctl start libvirtd.service
systemctl enable libvirtd.service

默认情况下,每个虚拟机只能与同一物理服务器中的其余虚拟机以及主机本身进行通信。为了允许访客访问 LAN 内的其他计算机以及 Internet,我们需要在主机中设置一个桥接接口(例如 br0),方法是:

1. 将以下行添加到我们的主 NIC 配置中(很可能是 /etc/sysconfig/network-scripts/ifcfg-enp0s3):


BRIDGE=br0

2. 使用以下内容为 br0 创建配置文件 (/etc/sysconfig/network-scripts/ifcfg-br0)(请注意,您可能需要更改IP地址、网关地址和DNS信息):


DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=br0
ONBOOT=yes
DNS1=8.8.8.8
DNS2=8.8.4.4

3.最后,通过在/etc/sysctl.conf中启用数据包转发,


net.ipv4.ip_forward = 1

并加载对当前内核配置的更改:


sysctl -p

请注意,您可能还需要告诉 firewalld 应允许此类流量。请记住,如果您需要帮助,可以参考本系列中有关该主题的文章(第 11 部分:使用 FirewallD 和 Iptables 进行网络流量控制)。