在 CentOS Stream 上安装 QEMU 和 libvirt

· 技术 · 约 1922 字

本文介绍在运行 CentOS Stream 的服务器上安装 QEMU 和 libvirt、以及利用系统预装的 Cockpit 管理虚拟机的方法。

本文以 CentOS Stream 为示范,但步骤理论适用于大部分的 Linux 发行版。

本文已默认你正在使用 root 账户操作。

检查虚拟化支持

运行下述指令检查 CPU 的虚拟化支持:

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

查看返回结果是否大于 0。若是,说明 CPU 支持虚拟化、可进行下一步;反之,请重启至 BIOS、检查如 Intel VT-x 或 AMD-V 的虚拟化选项是否开启。

如果你尝试在 VPS 上操作,请确保你正在使用的实例支持 嵌套虚拟化,不然可以洗洗睡了。

QEMU 和 libvirt

这是什么?

Linux 内核内置了一个名为 KVM 的模块,能够模拟 CPU、内存和网络,但也只能够模拟这三类;而 QEMU 是一个免费的开源模拟器,可以模拟出一个完整的计算机系统,美中不足的是它早期以纯软件形式实现的模拟、性能较差。因此,当时的 KVM 团队维护了一个名为 qemu-kvm 的 Fork、让 QEMU 来补齐 KVM 的 ”短板“,大幅提升了虚拟机的性能。后来这个 Fork 合并回了 QEMU、成为了其原生支持的功能。

libvirt 是由 Red Hat 开发的、用于管理硬件虚拟化的工具库,支持 KVM、LXC 在内的多种虚拟化方案。

如何安装?

首先需要安装 qemu-kvmqemu-img。前者提供了用户级的 KVM 模拟器,后者则提供了磁盘管理器。

运行下述指令安装这两个软件包:

dnf install qemu-kvm qemu-img

如果你感到自信、考虑跳过软件安装的确认部分,可以考虑加一个 -y

接着,来安装一些需要的 libvirt 软件包:

  • libvirt:libvirt 本体;

  • libvirt-python:允许用 Python 编写的程序调用 libvirt API 接口,可选;

  • virt-manager:大家所熟知的 Virtual Machine Manager、提供了一个快捷管理虚拟机的界面,但需要服务器安装了桌面环境(Desktop Environment)、没有的可以考虑不装;

  • libvirt-client:提供了一个名为 virsh 的 CLI,可用于在命令行或 Virtual Shell 中管理虚拟机的状态。

本文需要使用到第一个和第五个软件包。运行下述指令安装它们:

dnf install libvirt libvirt-client

安装完成后,将 libvirtd 设为自启动并运行服务:

systemctl enable --now libvirtd

Cockpit

Cockpit 是由 Red Hat 开发的、允许管理员在网页端管理服务器的软件。考虑到一般的 Linux 服务器不会安装桌面环境、也用不了 Virtual Machine Manager,因此就以 Cockpit 为替。

安装 Cockpit

自 2019 年发布的 RHEL 8 开始,Cockpit 会默认附装在系统里,除非用户在安装时选择了最小安装。如果你的服务器系统在安装时选择了最小安装,或是由提供商预先安装、因此并未选装 Cockpit,可以运行下述指令手动安装:

dnf install cockpit

同时,需要在防火墙放行 Cockpit:

firewall-cmd --permanent --add-service=cockpit

不论是手动安装还是附装,默认情况下的 Cockpit 服务,需要运行下述指令将其设为自启动并运行:

systemctl enable --now cockpit.socket

现在可通过 http://{服务器 IP}:9090 访问 Cockpit 页面。

允许 root 用户登录 Cockpit

出于安全考虑,自 RHEL 9.2 / CentOS Stream 9 开始,Cockpit 默认不允许使用 root 用户登录。

编者同样不推荐这么做,除非你铁了心要 root 用户走到底。这种情况下,可以通过修改 /etc/cockpit/disallowed-users、将里面的 root 删掉。

nano /etc/cockpit/disallowed-users

// /etc/cockpit/disallowed-users
# List of users which are not allowed to login to Cockpit
root <-- 删掉这一个

修改完成后,重启 Cockpit 服务,即可使用 root 用户登录 Cockpit。

通过 Cockpit 管理虚拟机

要使用 Cockpit 管理虚拟机,你需要额外安装一个名为 cockpit-machines 的软件包。运行下述指令安装这个软件包:

dnf install cockpit-machines

安装完成后,刷新 Cockpit 页面,即可在侧边栏发现一个名为 Virtual machines 的选项。这里便是你在 Cockpit 管理虚拟机的入口。

喜欢的话,投喂亿下孩子吧(逃)
爱发电

💬 在 s-complex/discussions 上发表你对本文的看法。