通常情况下,当使用虚拟化在台式机或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 启用虚拟化。
第 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 用户添加到libvirt
和kvm
组:
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 --
首先,让我们创建一个能够与虚拟机一起使用的桥接接口。 “ 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
现在,要检查 Bridge 连接的 IP 地址,请使用:
ip -brief addr show dev br0
第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)”。之后点击“前进”按钮。
- 单击“浏览”按钮并选择要安装的 ISO 映像。取消选中“自动从安装介质/源检测”复选框,然后手动搜索要安装的操作系统
配置您想要分配给虚拟机的 RAM 数量。
分配客户操作系统所需的虚拟存储量。
要配置网络,请单击“网络选择”箭头,从下拉框中选择“桥接设备...” ,最后单击“完成”按钮。
很快,您的虚拟机将启动并开始安装过程,就像我们在任何物理机上一样。
结论:
这些是在 Ubuntu 24.04 LTS 服务器上安装和配置的步骤。虽然虚拟机的安装并不像我们在 VMware 或 VirtualBox 上安装的那么简单,但从性能方面看,会感受到差异。
此外,对于那些无法在 Windows 上本地安装虚拟机管理器的人来说,Cockpit Virtual Manager 将是最佳使用方法,因为它具有基于 Web 的界面。