如何在 CentOS 8 上安装 KVM

不同的业务和开发工作负载要求您的环境具有更多的多功能性。 虚拟化提供了创建虚拟环境以托管、测试和开发任务关键型项目的选项。

如果您在 CentOS 8 上安装基于内核的虚拟机 (KVM) 时需要帮助,那么您来对地方了。 我们将介绍在配备图形用户界面 (GUI) 和使用命令行界面 (CLI) 的服务器的桌面环境中设置虚拟机 (VM) 的步骤。

什么是 KVM?

基于内核的虚拟机 (KVM) 是一种开源虚拟化解决方案,可将您的 Linux 机器变成 x86 硬件上的虚拟机管理程序。 它为每个 VM 提供了自己的虚拟化资源集,例如处理器、存储和 RAM。

什么是虚拟化?

对于那些想知道“什么是虚拟化”的人来说,它是在物理硬件上运行虚拟计算机实例的过程。 它使您可以重新分配系统硬件以用作较小的虚拟计算机。

虚拟化通过允许客户操作系统 (OS) 在主机操作系统上运行来实现这一点。 主机操作系统是在硬件上运行的操作系统,它与任何来宾服务器实例 (VM) 共享其资源。 来宾操作系统是在您创建的 VM 上运行的虚拟化操作系统。

当主机操作系统无法运行所需的软件(遗留软件的兼容性)或将一台大型计算机变成更小的计算机时,虚拟化非常有用。 后者是托管服务提供商为许多客户自己的环境提供完全控制权所做的事情。

注意:在“什么是虚拟机管理程序?”中有其他可用资源。 以及裸机服务器与虚拟服务器之间的区别。

要求

现在我们了解了 KVM 的基础知识及其工作原理,下面是在 CentOS 8 上安装虚拟机所需的内容:

  • 运行 CentOS 8 的计算机或服务器。
  • 要安装的客户操作系统的 ISO 映像(光盘映像)。
  • 根或 sudo 机器上的权限。
  • CLI 或终端访问。

注意:这些步骤可以在 CentOS 7 和 AlmaLinux 8.4 桌面和服务器变体上执行。 AlmaLinux OS 与 CentOS Stream 之前的 RHEL 和 CentOS 版本(CentOS 7 和 8)1:1 二进制兼容。 或者,了解有关 Ubuntu 服务器虚拟化的更多信息。

软件虚拟化 VS 硬件虚拟化

软件虚拟化是指主机操作系统模拟在客户机上执行的所有软件。 虽然性能会受到影响,但额外的抽象层更容易维护,因为主机和客户操作系统将完全独立。

硬件虚拟化的优点是主机硬件将执行客户机上运行的全部或部分指令,从而提高了性能; 但是,由于主机硬件必须能够执行此操作,因此它限制了兼容的系统或平台。

硬件虚拟化兼容性

让我们检查一下您的硬件是否与硬件虚拟化兼容,因为您的客户操作系统会表现得更好。

运行以下命令。 如果有输出,说明兼容硬件虚拟化。 vmx 是 Intel 硬件的标志,svm 是 AMD 硬件的标志。

$ cat /proc/cpuinfo | egrep "vmx|svm"

没有输出有两个原因:

  • 您的硬件与虚拟化不兼容。
  • 您的硬件在基本输入/输出系统 (BIOS) 中已关闭。

查看 CPU 的规格以确认它是否兼容。 如果是,请在计算机启动之前采取措施在 BIOS 中启用虚拟化。

使用 GUI 安装 VM

让我们在我们的 CentOS 虚拟化服务器(主机服务器)中安装一个带有桌面环境和 GUI 的 VM。

第 1 步:安装必要的软件

1. 让我们更新我们的软件包并收集所需的软件。 virt-manager 将允许我们从 GUI 管理 VM,而 virt-top 和 libguestfs-tools 提供管理工具。 实施这些包是开始使用虚拟机的最简单方法。

$ sudo yum update
$ sudo yum install @virt virt-manager
$ sudo yum install virt-top libguestfs-tools  virt-install virt-viewer

2.让我们检查一下KVM是否安装正确。

$ lsmod | grep kvm

我们的输出应该是这样的。

3. 接下来,确保 libvirtd 处于活动状态且正在运行。

$ sudo systemctl start libvirtd.service
$ sudo systemctl enable libvirtd.service

第 2 步:使用图形用户界面进行安装

使用之前安装的虚拟机管理器添加 VM。

在您的桌面上,单击 活动 在左上角。 它为您提供了一个菜单,用于查看类似于 Windows 中的开始菜单的常用应用程序。 然后,输入 虚拟的 在屏幕中央的搜索栏中显示 虚拟机管理器 应用。 最后,单击图标打开应用程序。

第 3 步:设置虚拟机

请按照以下步骤设置您的虚拟机。

1. 点击 文件 然后 新的虚拟机.

2. 选择 本地安装媒体(ISO 映像或 CDROM) 然后点击 向前.

3. 点击 浏览 查找并选择您的首选安装媒体路径(如果它要求权限,请单击 是的)。 验证“从安装媒体/源自动检测”复选框是否已选中,并且它检测到了适当的操作系统。 点击 向前 接着说。

4. 为 VM 添加所需的内存量和 CPU 内核数,然后单击 向前.

5. 选择磁盘大小并点击 向前.

6. 最终菜单将显示之前选择的配置。 点击 后退 进行任何更改。 但如果不需要更改,请单击 结束.

一旦你点击 结束,一旦 VM 自动启动,请按照来宾操作系统安装说明进行操作。

在这个 example,你看到一个 Ubuntu 20.04 ISO 安装. KVM 部分在我们的 CentOS 虚拟化服务器中完全设置。

可用性提示

丢失的光标

如果您的光标丢失或鼠标没有响应,则它很可能被 VM 捕获。 要将其恢复到主机桌面,请按住 Ctrl + Alt 键。

调整虚拟机大小

如果 VM 的显示看起来关闭或超出范围,请通过单击进行调整 看法, 然后 调整为 VM.

还原更改

在执行会改变 VM 行为的软件更改或升级时,快照非常有用。 单击快照图标拍摄 VM 的快照,这将允许您回滚到作为快照的确切 VM 状态。

您现在已成功安装并准备使用 Ubuntu VM。

通过 CLI 添加虚拟机

在这个 example,您将使用没有 GUI 的 CentOS 虚拟化服务器。 ISO 是一个没有 GUI 的 Ubuntu 服务器安装. 以 root 用户身份运行命令。

座舱 是用于安装 VM 的方法。 虽然还有其他方法,但它已安装在 CentOS 8 上。您需要安装 cockpit-machines 才能使 Cockpit 正常运行。

Cockpit 允许我们安装 Ubuntu 服务器,这要归功于虚拟网络计算 (VNC) 服务器。 VNC 是一个图形桌面共享系统,它使用远程帧缓冲协议 (RBF) 来远程控制另一台计算机。

第 1 步:安装所需软件

1.类似于GUI example安装 virt-top 和 libguestfs-tools。

# yum install  @virt virt-top libguestfs-tools  virt-install virt-viewer -y

2.记得启动并启用libvirtd。

# systemctl start libvirtd.service
# systemctl enable libvirtd.service

3. 下面的命令会安装 Cockpit 和 cockpit-machines,但会跳过已经安装的包。

# yum install cockpit cockpit-machines

4. 使用以下命令启动并启用 Cockpit。

# systemctl start cockpit.socket
# systemctl enable cockpit.socket

5. 验证 Cockpit 在防火墙中是否允许。

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

第 2 步:通过 CLI 创建虚拟机

1.通过命令行添加虚拟机,命令如下。 它需要根据您的 VM 规格进行定制。

# virt-install --name Ubuntu-server --ram=2048 --vcpus=2 --cpu host --hvm --disk path=/var/lib/libvirt/images/ubuntuservervm1,size=20 --cdrom /var/lib/libvirt/boot/ubuntu-20.04.3-live-server-amd64.iso --graphics vnc

注意:上述命令的 ISO 目录是 –cdrom /var/lib/libvirt/boot/ubuntu-20.04.3-live-server-amd64.iso。 建议您将您的 ISO 放在 /var/lib/libvirt/boot 目录中,这样您就不需要授予更多权限。

下面仔细看看标志的含义。 根据您的需要修改它们:

  • –name:虚拟机的名称。
  • –ram:VM 可以使用的内存量(以 MB 为单位)(2048M 等于 2 GB)。
  • –vcpus:分配给 VM 的虚拟 CPU 内核。
  • –cpu 主机:CPU 或处理器类型。 命令的主机部分使 VM 完全模拟主机处理器。
  • –hvm:来宾(VM)完全虚拟化。
  • –disk path:CentOS 8 虚拟化服务器上​​存储 VM 的虚拟磁盘的位置,紧跟其后的是大小。
  • size=20:VM 的磁盘空间量(以 GB 为单位)。
  • –graphics:选择用于安装客户操作系统的工具(VNC、Spice 等)

要获取每个标志可用的所有选项和子选项,请键入 virt-install –help 命令。

您的终端将显示它正在等待安装完成。 完成后进入下一步。

2. 使用您的 IP 地址登录 Cockpit 以完成安装。 使用以下命令查找您的 CentOS 虚拟化服务器的私有 IP 地址。

# hostname -I | awk '{print $1}'

3. 打开您的网络浏览器并输入 https://你的IP:9090.

注意:将您的 IP 替换为您的实际私有 IP 地址。

它将发出有关 SSL 证书的警告。 由于这是您自己的服务器,请单击 进步 并继续。

使用您的 CentOS 虚拟化服务器的 root 用户名和密码登录到 Cockpit 管理面板。 点击 虚拟机 左侧部分,稍等片刻,它应该显示 VM 正在运行。

4. 单击虚拟机的名称(在本例中为 Ubuntu-server)。

您将进入概览屏幕,右侧有一个终端,以完成在 VM 上安装您的客户操作系统。

5. 按照步骤安装您的客户操作系统。 如果您正在安装 Ubuntu 服务器,请记下您在设置时输入的用户名和密码。 您将使用它通过 SSH(安全外壳)进入虚拟机。

第 3 步:通过 SSH 连接到虚拟机

安装后通过 SSH 连接到您的虚拟机。 SSH 访问需要主机服务器和 VM 的私有 IP 地址。

在 Cockpit 中,您可以通过向下滚动到 网络 部分或将终端与上一步中的命令一起使用。

注意:Cockpit 将 IP 显示为 yourIP/24。 丢弃 /24 子网掩码,因为它不需要。

使用您喜欢的方法,通过 SSH 连接到您的 CentOS 虚拟化服务器和虚拟机。

VM 用户名和密码将是您在安装过程中输入的用户名和密码。

新 VM 已安装并可供使用。

基本命令

以下是从命令行管理虚拟机的一些有用命令。 值得注意的是,您也可以从 Cockpit 控制面板执行这些操作。 如果您选择从 CentOS 虚拟化服务器运行以下命令,请将 Ubuntu-server 替换为您的 VM 名称。

使用以下命令获取有关可用命令及其功能的帮助。

# virsh --help

以下命令列出了所有虚拟机,无论其状态如何。

# virsh list --all

使用以下命令关闭 VM。

# virsh shutdown Ubuntu-server

使用以下命令启动 VM。

# virsh start Ubuntu-server

使用此命令克隆您的虚拟机。

# virt-clone --original Ubuntu-server --auto-clone

您希望克隆的 VM 名称跟在命令的 –original 部分之后。 –auto-clone 命令将自动为克隆分配一个新名称和磁盘位置。

要创建克隆,您首先需要关闭或暂停正在克隆的 VM。 然后,在创建克隆后,使用 virsh list –all 命令查看新的 VM。 为了这 example,新克隆的虚拟机被命名为 Ubuntu-server-clone。

这些是命令行中最基本的虚拟化命令。

总结

本教程是 KVM 虚拟化的起点。 它展示了如何在有和没有 GUI 的 CentOS 8 上安装 KVM。

Liquid Web 不希望您单独进行服务器虚拟化。 这就是为什么我们提供私人 Cloud 由 VMware 环境提供支持,以适应您的任务关键型工作负载。 立即联系我们的销售团队,讨论如何为您的需求提供合适的环境。

私人的 Cloud 由 VMware 和 NetApp 横幅提供支持