如何在 CentOS/RHEL 8 上安装 KVM
基于内核的虚拟机(简称KVM)是一种开源且事实上的标准虚拟化解决方案,与Linux紧密集成。它是一个可加载的内核模块,可将 Linux 转变为 1 型(裸机)虚拟机管理程序,从而创建用于运行虚拟机 (VM) 的虚拟操作平台。
在KVM下,每个VM都是一个由内核调度和管理的 Linux 进程,拥有私有的虚拟化硬件(即 CPU、网卡、磁盘等)。它还支持嵌套虚拟化,即在一个 VM 内运行另一个 VM。
它的一些主要功能包括支持广泛的 Linux 硬件平台(具有虚拟化扩展的 x86 硬件(Intel VT 或 AMD-V)),它使用SELinux和安全虚拟化(sVirt)提供增强的 VM 安全性和隔离,它继承了内核内存管理功能,并且它支持离线和实时迁移(在物理主机之间迁移正在运行的 VM)。
在本文中,您将学习如何安装KVM虚拟化,在CentOS 8和RHEL 8 Linux中创建和管理虚拟机。
先决条件
此外,通过运行以下命令确保您的硬件平台支持虚拟化。
# grep -e 'vmx' /proc/cpuinfo #Intel systems # grep -e 'svm' /proc/cpuinfo #AMD systems
另外,确认 KVM 模块已加载到内核(默认情况下应该是这样的)。
# lsmod | grep kvm
以下是基于 Intel 的测试系统上的示例输出:
在之前的 KVM 指南系列中,我们展示了如何使用 KVM(基于内核的虚拟机)在 Linux 中创建虚拟机,其中我们演示了如何使用virt-manager GUI 工具(根据 RHEL 8 文档,该工具现已弃用)创建和管理虚拟机。对于本指南,我们将采用不同的方法,我们将使用Cockpit Web 控制台。
步骤 1:在 CentOS 8 上设置 Cockpit Web 控制台
1. cockpit是一个易于使用、集成且可扩展的基于 Web 的界面,用于在 Web 浏览器中管理 Linux 服务器。它使您能够执行系统任务,例如配置网络、管理存储、创建虚拟机和使用鼠标检查日志。它使用系统的正常用户登录名和权限,但也支持其他身份验证方法。
它预装并在新安装的CentOS 8和RHEL 8系统上启用,如果你尚未安装,请使用以下dnf 命令进行安装。应安装 cockpit-machines 扩展来管理基于Libvirt 的虚拟机。
# dnf install cockpit cockpit-machines
2.当包安装完成后,启动 cockpit 套接字,使其在系统启动时自动启动并检查其状态以确认它已启动并正在运行。
# systemctl start cockpit.socket # systemctl enable cockpit.socket # systemctl status cockpit.socket
3.接下来,使用firewall-cmd命令在默认启用的系统防火墙中添加cockpit服务,并重新加载防火墙配置以应用新的更改。
# firewall-cmd --add-service=cockpit --permanent # firewall-cmd --reload
4.要访问驾驶舱 Web 控制台,请打开 Web 浏览器并使用以下 URL 进行导航。
https://FQDN:9090/ OR https://SERVER_IP:9090/
驾驶舱使用自签名证书启用HTTPS,当您收到浏览器警告时,只需继续连接即可。在登录页面,使用您的服务器用户帐户凭据。
第 2 步:安装 KVM 虚拟化 CentOS 8
5.接下来,安装虚拟化模块和其他虚拟化软件包,如下所示。virt -install软件包提供了从命令行界面安装虚拟机的工具,virt-viewer用于查看虚拟机。
# dnf module install virt # dnf install virt-install virt-viewer
6.接下来,运行virt-host-validate命令来验证主机是否设置为运行libvirt虚拟机管理程序驱动程序。
# virt-host-validate
7.接下来,启动libvirtd守护进程 ( libvirtd ) 并使其在每次启动时自动启动。然后检查其状态以确认它已启动并正在运行。
# systemctl start libvirtd.service # systemctl enable libvirtd.service # systemctl status libvirtd.service
步骤 3:通过 Cockpit 设置网桥(虚拟网络交换机)
8.现在创建一个网桥(虚拟网络交换机),将虚拟机集成到与主机相同的网络。默认情况下,一旦启动libvirtd守护进程,它就会激活代表以NAT模式运行的虚拟网络交换机的默认网络接口virbr0。
在本指南中,我们将创建一个名为br0的桥接模式网络接口。这将使虚拟机能够在主机网络上访问。
在驾驶舱主界面,单击“网络”,然后单击“添加桥接”,如下面的屏幕截图所示。
9.在弹出的窗口中,输入网桥名称并选择网桥从属设备或端口设备(例如,enp2s0代表以太网接口),如下图所示。然后单击“应用”。
10.现在,当您查看接口列表时,新的网桥应该出现在那里,几秒钟后,以太网接口应该被禁用(关闭)。
步骤 4:通过 Cockpit Web 控制台创建和管理虚拟机
11.在主界面中,单击虚拟机选项,如以下屏幕截图所示。在虚拟机页面中,单击创建 VM。
12.将显示一个窗口,其中包含创建新VM 的选项。输入连接、名称(例如ubuntu18.04)、安装源类型(在测试系统上,我们将 ISO 映像存储在存储池下,即/var/lib/libvirt/images/)、安装源、存储、大小、内存,如下图所示。输入安装源后,应自动选择操作系统供应商和操作系统。
还要检查立即启动虚拟机的选项,然后单击“创建”。
13.单击上一步中的“创建”后, VM应自动启动并使用提供的 ISO 映像启动。继续安装客户操作系统(在我们的例子中为Ubuntu 18.04 )。
如果您单击虚拟机的网络接口,网络源应该指示新创建的桥接网络接口。
在安装过程中,在配置网络接口的步骤中,您应该能够注意到虚拟机以太网接口从主机网络的DHCP服务器接收 IP 地址。
请注意,您需要安装OpenSSH包才能从主机网络上的任何机器通过 SSH 访问客户操作系统,如上一节所述。
14.当客户操作系统安装完成后,重新启动虚拟机,然后转到磁盘并分离/删除虚拟机磁盘下的 cdrom 设备。然后单击运行以启动虚拟机。
15.现在,在控制台下,您可以使用在安装操作系统期间创建的用户帐户登录到客户操作系统。
步骤 5:通过 SSH 访问虚拟机客户操作系统
16.要通过 SSH 从主机网络访问新安装的客户操作系统,请运行以下命令(将10.42.0.197替换为您的客户的 IP 地址)。
$ ssh example@10.42.0.197
17.要关闭、重新启动或删除虚拟机,请在虚拟机列表中单击它,然后使用以下屏幕截图中突出显示的按钮。
现在就这些了!在本指南中,我们展示了如何安装 KVM 虚拟化包,以及如何通过 cockpit web 控制台创建和管理虚拟机。有关更多详细信息,请参阅:RHEL 8 中的虚拟化入门。