通常情况下,当使用虚拟化在台式机或PC上运行各种操作系统时,我们要么使用 Vmware,要么使用 VirtualBox,但它们都是第 2类虚拟化软件。因此,与1类相比,它们无法提供性能。此外,我们需要一个图形用户界面桌面才能同时使用这两种技术。但是,如果我们有一台 Linux 服务器并想要运行多个操作系统,那么最流行和最有效的虚拟化解决方案之一是 KVM(基于内核的虚拟机)与QEMU(快速模拟器)相结合。

什么是KVM?

KVM是一种开源技术,可将任何现有 Linux 平台转变为功能齐全的虚拟机管理程序。它是Linux内核中的虚拟化模块,因此易于启用,并可用于以原生速度运行多个虚拟操作系统。KVM 代表基于内核的虚拟机,需要具有硬件虚拟化扩展(Intel VT 或 AMD-V)的处理器,所有现代处理器都具备该扩展。

QEMU是什么?

QEMU 是一款通用的开源机器模拟器和虚拟器。当用作虚拟器(与 KVM 配合使用)时,QEMU 可通过直接在主机 CPU 上执行客户机代码来实现接近原生的性能。当用作模拟器时,它可以模拟各种架构,让您能够运行为不同平台设计的应用程序和操作系统。

先决条件

在学习本教程之前,请确保您已准备好以下工作:

  • Ubuntu 24.04 服务器或桌面操作系统运行系统。
  • 具有 sudo 访问权限的用户或 root 用户
  • 必须从 BIOS 启用硬件虚拟化支持


Ubuntu 24.04 KVM QEMU安装

KVM 和 QEMU 共同提供了一个强大的解决方案,用于在 Ubuntu 24.04 Noble LTS 和其他 Linux 系统上创建和管理虚拟机。


步骤 1:检查硬件虚拟化支持

好吧,我们不知道我们的 BIOS 中是否启用了虚拟化,因此要确认我们可以在我们的 Ubuntu 24.04 终端中运行给定的命令。

lscpu | grep Virtualization

根据您的进程,上面的输出是VT-x 或 AMD-V,如下截图所示。但是,如果运行上述命令后得到空白输出或没有任何返回,则意味着您必须从系统的 BIOS 启用虚拟化。

如何在Ubuntu 24.04 LTS服务器系统上安装KVM QEMU_桥接

第 2 步:在 Ubuntu 24.04 LTS 上安装 KVM

Qemu-KVM 软件包可通过默认的 Ubuntu 24.04 系统存储库安装,它将在我们的 Ubuntu Linux 系统上启用内核虚拟机功能。但是,除此之外,我们还将安装管理虚拟机所需的其他一些软件包。因此,请在终端中执行给定的命令:

sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon virt-top libguestfs-tools libosinfo-bin qemu-system tuned

 

步骤 3:将您的用户添加到 Libvirt 和 KVM 组

要管理没有 root 权限的虚拟机,请将您当前的 Ubuntu 24.04 用户添加到libvirtkvm组:

sudo usermod -aG libvirt $(whoami)sudo usermod -aG kvm $(whoami)

之后启用并启动 Libvirt Deamon 服务

sudo systemctl enable --now libvirtd

验证 KVM 模块是否已加载:将在输出中看到“ KVM ”,表明它已加载...

lsmod | grep kvm

现在,重新启动您的系统:

sudo reboot

第 4 步:针对运行 KVM 来宾进行优化

在安装 KVM 时,我们还安装了一个名为“tuned”的软件包。此工具提供预配置的配置文件,可根据需要优化主机或客户机。

启用 Tuned 服务:

sudo systemctl enable --now tuned

默认情况下,平衡配置文件将在 Tuned 上激活,但由于我们想要在 Linux 主机上运行虚拟机,我们可以选择一个优化主机以运行虚拟机的配置文件,下面是执行此操作的命令:

sudo tuned-adm profile virtual-host

要验证相同,请使用:

tuned-adm active

要列出所有可用的配置文件,您可以运行:

tuned-adm list

第 6 步:在 Ubuntu 24.04 上创建桥接网络

默认情况下,NAT 配置为在 KVM 客户机上使用,如果您只想在客户虚拟机上浏览互联网,但无法连接或访问主机网络上可用的其他系统,那么它就很好了。即使是在客户操作系统上运行的 Web 服务器和其他 Web 服务也无法从主机系统外部访问。因此,我们将创建一个 Bridge 网络,允许客户虚拟机直接从我们主机系统可用的同一 DHCP 服务器获取 IP 地址。

通过 Bridge,客户虚拟机将像主机系统一样在物理网络上可用,因此配置 Bridge 网络非常重要,下面是需要遵循的命令:

要列出默认 NAT 网络,请使用:

sudo virsh net-list --all

现在,找到主机用于连接外界或网络的网络适配器或接口:

sudo nmcli device status

在我们的例子中,它是ens33,并且在我们的例子中会有所不同,因此请记下它。

DEVICE             TYPE         STATE                           CONNECTION         
ens33             ethernet      connected                       netplan-ens33 
lo                loopback    connected (externally)           lo                 
virbr0             bridge        connected (externally)           virbr0
Vnet1              tun            unmanaged                          --

如何在Ubuntu 24.04 LTS服务器系统上安装KVM QEMU_虚拟化_02

首先,让我们创建一个能够与虚拟机一起使用的桥接接口。 “ Br0 ”是我们分配给桥接口的名称。

sudo nmcli connection add type bridge con-name br0 ifname br0

我们已经使用前面的命令创建了 Biidge 接口,现在,指定您要用作从属的物理以太网或接口,网桥连接将从中获取 IP 地址。由于这里我们的物理接口名称是ens33,因此我们将使用它,类似地在给定命令中将“ ens33 ”替换为您的网络接口名称。另外,我们必须为我们正在创建的连接命名,这里我们将其称为“ KVM Bridge connection 1 ”,您可以指定任何您想要的名称。

sudo nmcli connection add type ethernet slave-type bridge \
con-name 'KVM Bridge connection 1' ifname ens33 master br0

启用“ connection.autoconnect-slaves ”参数,该参数确定从属连接(例如,以太网端口或 Wi-Fi 适配器等单个网络接口)在可用时是否自动添加到主连接(例如,桥接或绑定连接)。

sudo nmcli connection modify b0 connection.autoconnect-slaves 1

激活桥接连接:

sudo nmcli connection up br0

重新加载网络:

sudo nmcli connection reload

检查网络接口状态以确认桥接连接已建立

sudo nmcli device status

如何在Ubuntu 24.04 LTS服务器系统上安装KVM QEMU_桥接_03

现在,要检查 Bridge 连接的 IP 地址,请使用:

ip -brief addr show dev br0

如何在Ubuntu 24.04 LTS服务器系统上安装KVM QEMU_虚拟化_04

 

第7步:设置图像目录权限

默认情况下,镜像存储在“ /var/lib/libvirt/images”目录中,并且该目录的访问仅限于“ root ”用户。要使当前用户可以访问它,请使用给定的命令。

检查您当前使用是否可以访问它;

ls /var/lib/libvirt/images/

这样将收到一条“权限被拒绝”的消息。

现在,首先删除目录的现有权限……

sudo setfacl -R -b /var/lib/libvirt/images

设置当前用户访问 Images 目录的权限

sudo setfacl -R -m u:$USER:rwX /var/lib/libvirt/images

上面的内容只会设置现有文件的权限,但是要将其应用于我们将来创建的任何文件夹和文件,请运行给定的命令。

sudo setfacl -m d:u:$USER:rwx /var/lib/libvirt/images

现在,将您拥有并想要使用它们创建虚拟机的任何 ISO 映像复制到“ /var/lib/libvirt/images ”。

步骤8:在KVM上创建虚拟机

在 KVM 上创建虚拟机有两种图形方式,一种是使用 Virtual Machine Manager,另一种是借助 Cockpit。

在 Linux 操作系统上运行给定的命令来安装虚拟管理器:

对于基于 Debian 的:

sudo apt install virt-manager virt-viewer

对于基于 RHEL 的

sudo dnf install virt-manager

而那些想要使用Web界面的人可以使用Cockpit创建虚拟机。小编测试环境网站趣云笔记(www.ecscoupon.com)就是基于WEB界面。

但是,使用 Virt Manager 的用户请遵循以下说明:

  • 单击 Virtual Machine Manager 上的“计算机图标”,然后选择 ISO 映像的介质。如果是在“/ var/lib/libvirt/images ”则选择“本地安装介质(ISO 映像或 CDROM)”。之后点击“前进”按钮。

如何在Ubuntu 24.04 LTS服务器系统上安装KVM QEMU_桥接_05

  • 单击“浏览”按钮并选择要安装的 ISO 映像。取消选中自动从安装介质/源检测”复选框,然后手动搜索要安装的操作系统

如何在Ubuntu 24.04 LTS服务器系统上安装KVM QEMU_Ubuntu_06

配置您想要分配给虚拟机的 RAM 数量。

如何在Ubuntu 24.04 LTS服务器系统上安装KVM QEMU_桥接_07

分配客户操作系统所需的虚拟存储量。

如何在Ubuntu 24.04 LTS服务器系统上安装KVM QEMU_Ubuntu_08

要配置网络,请单击“网络选择”箭头,从下拉框中选择“桥接设备...” ,最后单击“完成”按钮。

如何在Ubuntu 24.04 LTS服务器系统上安装KVM QEMU_Ubuntu_09

很快,您的虚拟机将启动并开始安装过程,就像我们在任何物理机上一样。

如何在Ubuntu 24.04 LTS服务器系统上安装KVM QEMU_虚拟化_10

结论:

这些是在 Ubuntu 24.04 LTS 服务器上安装和配置的步骤。虽然虚拟机的安装并不像我们在 VMware 或 VirtualBox 上安装的那么简单,但从性能方面看,会感受到差异。

此外,对于那些无法在 Windows 上本地安装虚拟机管理器的人来说,Cockpit Virtual Manager 将是最佳使用方法,因为它具有基于 Web 的界面。