如何使用 KVM(基于内核的虚拟机)在 Linux 中创建虚拟机 - 第 1 部分
本教程讨论了 KVM 的介绍、部署以及如何使用它在基于 RedHat 的发行版(如RHEL / CentOS7和Fedora 21)下创建虚拟机。
什么是 KVM?
KVM 或(基于内核的虚拟机)是针对 Intel 64 和 AMD 64 硬件上的 Linux 的完整虚拟化解决方案,自 2.6.20 起包含在主线 Linux 内核中,对于大多数工作负载来说都很稳定且快速。
KVM 功能
使用 KVM 部署虚拟平台时,您将获得许多有用的功能和优势。KVM 虚拟机管理程序支持以下功能:
- 过度承诺:这意味着分配比系统上可用资源更多的虚拟化 CPU 或内存。
- 精简配置:允许分配灵活的存储并优化每个客户虚拟机的可用空间。
- 磁盘 I/O 限制:可以设置从虚拟机发送到主机的磁盘 I/O 请求的限制。
- 自动 NUMA 平衡:提高在 NUMA 硬件系统上运行的应用程序的性能。
- 虚拟 CPU 热添加功能:提供在正在运行的虚拟机上根据需要增加处理能力的能力,而无需停机。
这是我们第一部正在进行的 KVM(基于内核的虚拟机)系列,这里我们将分部分介绍以下文章。
先决条件
确保您的系统具有硬件虚拟化扩展:对于基于 Intel 的主机,使用以下命令验证 CPU 虚拟化扩展 [ vmx ] 是否可用。
[root@server ~]# grep -e 'vmx' /proc/cpuinfo
对于基于 AMD 的主机,请验证 CPU 虚拟化扩展 [ svm ] 是否可用。
[root@server ~]# grep -e 'svm' /proc/cpuinfo
如果没有输出,请确保 BIOS 中启用了虚拟化扩展。验证 KVM 模块是否已加载到内核中“它应该默认加载”。
[root@server ~]# lsmod | grep kvm
输出应包含基于 intel 的主机的kvm_intel或基于 amd 的主机的kvm_amd 。
在开始之前,您需要在系统上配置具有 sudo 权限的 root 帐户或非 root 用户,并确保您的系统是最新的。
[root@server ~]# yum update
确保 Selinux 处于 Permissive 模式。
[root@server ~]# setenforce 0
步骤1:KVM 安装和部署
1.首先,我们将安装qemu-kvm和qemu-img软件包。这些软件包提供用户级的 KVM 和磁盘映像管理器。
[root@server ~]# yum install qemu-kvm qemu-img
2.现在,您已经满足了在主机上部署虚拟平台的最低要求,但我们仍然拥有有用的工具来管理我们的平台,例如:
- virt-manager提供了一个 GUI 工具来管理您的虚拟机。
- libvirt-client提供了一个 CL 工具来管理您的虚拟环境,该工具称为 virsh。
- virt-install提供命令“virt-install”来从 CLI 创建虚拟机。
- libvirt提供用于与虚拟机管理程序和主机系统交互的服务器和主机端库。
让我们使用以下命令安装上述工具。
[root@server ~]# yum install virt-manager libvirt libvirt-python libvirt-client
3.对于 RHEL/CentOS7 用户,还需要安装额外的软件包组,例如:虚拟化客户端、虚拟化平台和虚拟化工具。
[root@server ~]#yum groupinstall virtualization-client virtualization-platform virtualization-tools
4.管理整个平台的虚拟化守护进程是“ libvirtd ”。让我们重新启动它。
[root@server ~]#systemctl restart libvirtd
5.重新启动守护进程后,运行以下命令检查其状态。
[root@server ~]#systemctl status libvirtd
示例输出
libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled) Active: active (running) since Mon 2014-12-29 15:48:46 EET; 14s ago Main PID: 25701 (libvirtd)
现在,让我们切换到下一部分来创建我们的虚拟机。
步骤 2:使用 KVM 创建虚拟机
正如我们之前提到的,我们有一些有用的工具来管理我们的虚拟平台和创建虚拟机。其中一个工具称为 [ virt-manager ],我们将在下一节中使用它。
6.虽然virt-manager是一个基于 GUI 的工具,但我们也可以从终端或者 GUI 启动它。
[root@server ~]#virt-manager
使用 GNOME
使用 GNOME Classic
7.启动该工具后,将出现此窗口。
8.默认情况下,您会发现管理器直接连接到localhost,幸运的是,您可以使用相同的工具远程管理另一台主机。从“文件”选项卡中,只需选择“添加连接”,就会出现此窗口。
勾选“连接到远程主机”选项,然后提供远程服务器的主机名/ IP。如果您需要在每次启动管理器时建立与远程主机的连接,只需勾选“自动连接”选项。
9.让我们回到本地主机,在创建新的虚拟机之前,您应该决定将文件存储在哪里?换句话说,您应该为您的虚拟机创建卷磁盘(虚拟磁盘/磁盘映像)。
右键单击 localhost 并选择“详细信息”,然后选择“存储”选项卡。
10.接下来,按“新建卷”按钮,然后输入新虚拟磁盘(卷磁盘)的名称,并在“最大容量”部分输入您想要/需要的大小。
分配大小是磁盘的实际大小,完成这些步骤后将立即从物理磁盘中分配。
注意:这是存储管理领域中一项重要的技术,称为“精简配置”。它仅分配已使用的存储大小,而不是所有可用大小。
例如,您创建了大小为60G 的虚拟磁盘,但实际只使用了20G,使用此技术从物理硬盘分配的大小将是20G而不是60G。
换句话说,分配的物理大小将根据实际使用的大小动态分配。您可以在VMWare vStorage Thin Provisioning中找到更多详细信息。
11.您会注意到新卷磁盘的标签已出现在列表中。
您还应该注意新磁盘映像(卷磁盘)的路径,默认情况下它位于/var/lib/libvirt/images下,您可以使用以下命令进行验证。
[root@server Downloads]# ls -l /var/lib/libvirt/images -rw-------. 1 root root 10737418240 Jan 3 16:47 vm1Storage.img
12.现在,我们准备创建虚拟机。点击主窗口中的“ VM ”按钮,将出现此向导窗口。
选择您将用于创建虚拟机的安装方法。现在我们将使用本地安装媒体,稍后我们将讨论其余方法。
13.现在是时候指定要使用哪个本地安装介质了,我们有两个选择:
- 来自物理 [CDROM/DVD]。
- 来自 ISO 映像。
对于我们的教程,让我们使用 ISO 映像方法,因此您应该提供 ISO 映像的路径。
重要提示:不幸的是,对于使用 RHEL/CentOS7 的人来说,有一个非常愚蠢的错误。此错误阻止您使用物理 [CDROM/DVD] 进行安装,您会发现该选项呈灰色。
如果您将光标放在它上面,就会出现此错误消息。
到目前为止,还没有针对此错误的官方/直接解决方案,您可以在https://bugzilla.redhat.com上找到更多相关信息。
14.存储已经恢复,我们将使用之前创建的虚拟磁盘来安装虚拟机。如图所示。
15.最后一步是询问您虚拟机的名称和其他高级选项,我们稍后再讨论。
如果您想更改某些配置或进行一些自定义,只需选中“安装前自定义配置”选项。然后单击完成并等待几秒钟,控制台将出现,供您的客户操作系统进行管理
结论
现在您已经了解了什么是 KVM,如何使用 GUI 工具管理虚拟平台,如何使用它部署虚拟机以及其他一些很棒的事情。
虽然这不是本文的结尾,但在我们即将发布的文章中,我们将讨论与 KVM 相关的另一个重要主题。利用先前的知识亲自动手,为下一部分做好准备……