“ KVM ”,“ Kernel Virtual Machine ”的缩写,是Linux内核的hypervisor。它在企业中非常流行并用于轻松执行操作系统的虚拟化。在本教程中,我们将学习在Debian 10 或 11 Bullseye 服务器或桌面 Linux安装和启用 KVM 管理程序的步骤和命令

从 2007 年开始,KVM 成为正式的内核组件,但与其他开源管理程序 Xen 相比,KVM 的历史变化不大,只是从一开始就急剧上升。KVM 也是 OpenStack 中首选的虚拟机管理程序,因此在云中被广泛使用。

KVM究竟是什么?

KVM 主要不是裸机管理程序,而是基于 Linux。我们可以在任何 Linux 操作系统上使用一些命令进行安装,将其转换并用作虚拟化服务器。因此,KVM 在形式上是一种类型 2 管理程序,这仅仅意味着它运行在非特权环 3 中。然而,多年来,专家们一直在进行关于 KVM 到底是不是类型 1 管理程序的历史讨论。

我们可以使用它在同一台机器上一起运行多个虚拟机,但是,主机系统必须在其各自的进程中支持并启用 Intel VT-x(虚拟化技术扩展)或 AMD-V(AMD64 虚拟化扩展)。

在 Debian 11 Bullseye 上安装和启用 KVM 的步骤

下面给出的命令适用于 Debian 10 Buster 和 Debian 11 Bullseye 来设置 Qemu KVM 并在其上运行虚拟机。

1.确认虚拟化支持

正如一开始,我说过,我们需要一个启用了虚拟化扩展的 Intel 或 AMD 进程的系统。因此,要确认这一点,请在 Debian 11 上打开命令终端并运行给定的命令:



egrep -c '(vmx|svm)' /proc/cpuinfo
grep -E --color '(vmx|svm)' /proc/cpuinfo

当你运行,以确认虚拟化上面的命令启用与否,输出将更加为零。如果没有,那么首先您必须重新启动系统并进入系统 BIOS。启用虚拟化,然后启动到操作系统,再次运行上述命令以确认相同。

一个 命令输出将大于零,这意味着它可能是 1、2、6 或 8。因此,系统支持虚拟化。



使用第二个 命令,您将获得有关 CPU 的信息 - 无论是 Intel 还是 AMD。如果红色输出文本是VMX则它是IntelSVM表示AMD

输出

kvm 显示协议 kvm debian_服务器

 

2.运行系统更新

如果您已经运行了更新命令,则跳过此步骤,否则运行一次,然后再进一步更新已安装的软件包并重建存储库缓存。


sudo apt update


 

3. 在 Debian 11 Bullseye 上安装 QEMU-KVM 和 Libvirt 的命令

接下来是本教程的关键命令,它将下载并安装在 Debian 11 Linux 上安装 Qemu、KVM 管理程序和 Libvirt 所需的所有内容。

sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon

 

4. KVM 的 Virt-Manager GUI

使用图形化 Debian 11 桌面的用户还可以安装Virt-Manager,这是一个由 RedHat 开发的图形用户界面,用于使用 KVM 以图形方式创建、管理和运行虚拟机。

sudo apt install virt-manager -y

 

5. 激活网络并自动重启

要列出要在 KVM 虚拟机中使用的可用网络,请运行以下命令:


sudo virsh net-list --all


但是,在输出中,您将看到默认网络未处于活动状态,也未设置为在系统重新启动时自动启动。因此,要使其处于活动状态并自动启动,请运行以下命令:


sudo virsh net-start default sudo virsh net-autostart default


你可以再次检查网络...

kvm 显示协议 kvm debian_kvm 显示协议_02

 

6. 添加“vhost_net”

为了提高网络数据传输的性能并减少 的负载virtio-net,我们可以vhost_net使用以下给定的命令在 Debian 11 Linux 中添加” 内核模块:

vhost-net是后端(主机端),而virtio-net(来宾端)是在来宾内核空间中运行的前端。要了解有关它们的更多信息,请参阅:Vhost-net & Virtio-networking


sudo modprobe vhost_net


要检查它是否已启用: 


lsmod | grep vhost


 

—————————-这一步不是必须的,直到你想要它——————————————

7. 创建桥接网络(可选)

尽管 KVM 带有一个开箱即用的名为“ virbr0”的桥接网络接口,但是,由于分配的 IP 范围,这不会让我们使用网络中的其他计算机从主机 PC 访问 KVM 虚拟机通过它。因此,我们将在具有我们网络 IP 范围的主机系统的物理网卡上创建我们自己的全桥接口。

找到连接到要用于桥接的主机系统的物理网络接口。


ip a


您将在主机上看到所有连接的网络接口。现在,记下要用于 Bridge 网络的那个。

例如,这里我们有enps03 和 IP 地址是192.168.0.109。因此,范围介于192.168.0.1-192.168.0.255

kvm 显示协议 kvm debian_kvm 显示协议_03

现在,编辑您的 Debian 11 网络接口文件:


sudo nano /etc/network/interfaces


添加以下几行:

注意:根据您的网络更改黄色值...

#


#Configure bridge and give it a static ip
auto br0
iface br0 inet static
        address 192.168.0.100
        netmask 255.255.255.0
        network 192.168.0.1
        broadcast 192.168.0.255
        gateway 192.168.0.1
        bridge_ports enp0s3
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0
        dns-nameservers 8.8.8.8 4.4.2.2


kvm 显示协议 kvm debian_linux_04

保存按文件按Ctrl + O,打回车使用键,并退出按Ctrl + X

或者

注意:如果您希望网桥使用DHCP获取 IP 地址:

然后使用以下设置代替上述设置:


## DHCP ip config file for br0 ##
auto br0
 
# Bridge setup
 iface br0 inet dhcp
    bridge_ports enp0s3


kvm 显示协议 kvm debian_kvm 显示协议_05

 

重新启动网络管理器以应用更改。


sudo systemctl restart networking.service
or
sudo /etc/init.d/networking restart


检查IP地址


ip a


这次您将看到新创建的br0桥接界面以及其他界面。

——————————————————————————————————————————

 

8. 使用 Virt-Manager GUI 创建虚拟机

那些想要使用Virt 命令行创建虚拟机并使用 KVM 运行的人只需点击链接即可。

而如果您使用 GUI Debian 11 Desktop 可以使用 Virt-Manager。在这里给出一个想法是一瞥......

运行虚拟管理器

转到应用程序启动器并搜索“虚拟机管理器”(VVM)并运行它。在它打开之前,系统会要求提供 root 密码。这将允许它创建和管理虚拟机。

创建虚拟机:

单击 PC 图标以使用 KVM 在 Virt-Manager 上创建新的虚拟机。

找到 ISO 媒体卷

单击“浏览”按钮,然后找到要用于在虚拟机上作为来宾操作系统安装操作系统的ISO文件。

kvm 显示协议 kvm debian_kvm 显示协议_06

 

之后取消选中自动从安装媒体/源检测”框,然后单击“前进”按钮。

kvm 显示协议 kvm debian_kvm 显示协议_07

选择内存和 CPU 设置

设置要分配给 VM 的虚拟内存量,然后设置 CPU 内核数。

kvm 显示协议 kvm debian_debian_08

 

创建 Qemu 虚拟磁盘镜像

要安装 VM 来宾操作系统,我们需要一些存储空间,为此,我们必须创建一个磁盘映像文件。只需输入您要分配的硬盘空间量并继续。

kvm 显示协议 kvm debian_kvm 显示协议_09

 

网络

在此处命名您的虚拟机。此外,默认情况下,Virt-manager 将使用NAT,但是,您可以选择默认的桥接接口,即vibr0或您创建的接口。如果您不了解这些设置,请选择默认NAT

kvm 显示协议 kvm debian_kvm 显示协议_10

 

Debian 11 Bullseye 上的 Qemu KVM 虚拟机

最后,您将拥有一个启动的虚拟机,它可以像使用键盘和鼠标的任何物理计算机一样进行控制。

kvm 显示协议 kvm debian_linux_11