on  it road.com

在 CentOS 8 上安装 KVM 虚拟化主机

以 root 用户身份使用 ssh 连接 kvm-virtualization-01.recipes.com。

验证 CPU 对虚拟技术的支持。

[root@kvm-virtualization-01 ~]# lscpu | grep Virtualization
Virtualization:      VT-x
Virtualization type: full

上述命令的输出表明,我们的服务器 kvm-virtualization-01.recipes.com 支持虚拟化。

但是,如果上述命令在服务器上没有返回结果,则

  • 如果是裸机,则必须从系统 BIOS 启用 VT 支持。
  • 如果是虚拟机,则必须从 VM 的 CPU 设置中启用 VT 支持。

在 CentOS 8/RHEL 8 中,包括 KVM 和 QEMU 管理程序在内的虚拟化组件都捆绑在 virt 模块中。

因此,现在在 CentOS 8 中配置 KVM 虚拟化主机真的很简单。

使用 dnf 命令安装 virt 模块。

[root@kvm-virtualization-01 ~]# dnf install -y @virt

我们也在安装 virt-install 包,因为它提供了一些非常有用的命令行工具。

[root@kvm-virtualization-01 ~]# dnf install -y virt-install

验证 KVM 主机上的所有组件都可以支持虚拟化。

[root@kvm-virtualization-01 ~]# virt-host-validate
   QEMU: Checking for cgroup 'blkio' controller support                       : PASS
  QEMU: Checking for cgroup 'blkio' controller mount-point                   : PASS
  QEMU: Checking for device assignment IOMMU support                         : PASS
  QEMU: Checking if IOMMU is enabled by kernel                               : WARN (IOMMU appears to be disabled in kernel. Add intel_iommu=on to kernel cmdline arguments)

看起来 CentOS 8 内核中尚未启用 IOMMU(输入-输出内存管理单元)支持。

上面的命令已经建议了解决方案。
因此,我们在内核命令行选项中添加了相同的内容。

[root@kvm-virtualization-01 ~]# grub2-editenv - set "$(grub2-editenv - list | grep kernelopts) intel_iommu=on"

重新启动机器以使上述更改生效。

[root@kvm-virtualization-01 ~]# systemctl reboot

重启后,再次运行 virt-host-validate 命令。

[root@kvm-virtualization-01 ~]# virt-host-validate
  QEMU: Checking for cgroup 'blkio' controller support                       : PASS
  QEMU: Checking for cgroup 'blkio' controller mount-point                   : PASS
  QEMU: Checking for device assignment IOMMU support                         : PASS
  QEMU: Checking if IOMMU is enabled by kernel                               : PASS

现在一切都OK。

CentOS 8 上已安装 KVM 和 QEMU 管理程序。

系统要求

KVM 的推荐系统要求是:

  • CPU - 每个虚拟机 1 个 CPU 内核或者线程
  • 内存 - 虚拟主机的 2 GB 内存 + 每个预期来宾的 2 GB 内存
  • 存储 - 6 GB 空间用于虚拟主机 + 6 GB 空间用于每个预定的来宾

安装环境

服务器配置如下:

  • CPU - 3.4 Ghz(2 核)
  • 内存 - 2 GB
  • 存储 - 20 GB
  • 操作系统 - CentOS 8.0
  • 主机名 - kvm-virtualization-01.recipes.com
  • IP 地址 - 192.168.1.206 /24

在 CentOS 8 中安装 Cockpit Web Interface

尽管如此,KVM 命令行工具对于管理虚拟化环境来说已经足够了。
但是,我们也可以使用 CentOS 8 原生 Web UI 例如:Cockpit 通过图形界面管理虚拟机。

我们正在使用 dnf 命令安装 Cockpit。

[root@kvm-virtualization-01 ~]# dnf install -y cockpit

要通过 Cockpit 添加对管理虚拟机的支持,我们必须安装 cockpit-machines 包。

[root@kvm-virtualization-01 ~]# dnf install -y cockpit-machines

启用并启动 Cockpit Unit。

[root@kvm-virtualization-01 ~]# systemctl enable --now cockpit.socket
Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket -> /usr/lib/systemd/system/cockpit.socket.

CentOS 8 防火墙默认允许 Cockpit 服务。

在客户端浏览器中浏览 URL https://kvm-virtualization-01.recipes.com:9090/。

Cockpit 使用自签名 SSL 证书,因此,我们可能会看到安全警告。

忽略安全警告并继续访问该网站。

以 root 用户身份登录 Cockpit Web UI。

单击左侧窗格中的虚拟机。

我们现在位于虚拟机页面。
我们可以从这里管理我们的 KVM 虚拟化环境。

我们已经在 CentOS 8 上成功安装了 KVM 虚拟化主机。

在 CentOS 8 上安装 KVM 虚拟化主机

KVM(基于内核的虚拟机)是 Linux 的虚拟化解决方案。

它由一个可加载的内核模块组成,允许 Linux 内核作为管理程序工作。
KVM 为各种客户操作系统提供硬件辅助虚拟化。

在本文中,我们将在 CentOS 8 上安装 KVM 虚拟化主机。
我们还安装了 Cockpit 以通过图形界面管理我们的 KVM 虚拟化环境。

日期:2020-09-17 00:16:29 来源:oir作者:oir