只用VMware开虚拟机?来了解一下更强大KVM虚拟化技术

新闻 前端
本文讲解KVM虚拟化的优势以及如何在Ubuntu 20.04 系统上安装KVM虚拟化套件。

1. 前言

本文讲解KVM虚拟化的优势以及如何在Ubuntu 20.04 系统上安装KVM虚拟化套件。

先来了解了一下KVM虚拟化技术:

以下引用摘自红帽官网:

1.1 KVM是什么?

KVM是基于内核的虚拟机 Kernel-based Virtual Machine(KVM)是一种内建于 Linux® 中的开源虚拟化技术。具体而言,KVM 可帮助您将 Linux 转变为虚拟机监控程序,使主机计算机能够运行多个隔离的虚拟环境,即虚拟客户机或虚拟机(VM)。

KVM 是 Linux 的一部分。Linux 2.6.20 或更新版本包括 KVM。KVM 于 2006 年首次公布,并在一年后合并到主流 Linux 内核版本中。由于 KVM 属于现有的 Linux 代码,因此它能立即享受每一项新的 Linux 功能、修复和发展,无需进行额外工程。

只用VMware开虚拟机?来了解一下更强大KVM虚拟化技术

Ubuntu 20.04如何安装和创建KVM虚拟机

1.2 Linux KVM虚拟化有什么优势?

安全性: KVM 利用安全增强型 Linux(SELinux) 和安全虚拟化(sVirt) 组合来加强虚拟机的安全性和隔离性。SELinux 在虚拟机周围建立安全边界。sVirt 则扩展 SELinux 的功能,使强制访问控制 (MAC)安全机制应用到客户虚拟机,并且预防手动标记错误。

存储:KVM 能够使用 Linux 支持的任何存储,包括某些本地磁盘和网络附加存储(NAS)。还可以利用多路径 I/O 来增强存储并提供冗余能力。KVM 还支持共享文件系统,因此虚拟机镜像可以由多个主机共享。磁盘镜像支持精简置备,可以按需分配存储,不必预先备妥一切。

硬件支持:KVM 可以使用多种多样的认证 Linux 兼容硬件平台。由于硬件供应商经常助力内核开发,所以 Linux 内核中通常能快速采用最新的硬件功能。

内存管理:KVM 继承了 Linux 的内存管理功能,包括非统一内存访问和内核同页合并。虚拟机的内存可以交换,也可通过大型宗卷支持来提高性能,还可由磁盘文件共享或支持。

实时迁移:KVM 支持实时迁移,也就是能够在物理主机之间移动运行中的虚拟机,而不会造成服务中断。虚拟机保持开机状态,网络连接保持活跃,各个应用也会在虚拟机重新定位期间正常运行。KVM 也会保存虚拟机的当前状态,从而存储下来供日后恢复。

性能和可扩展性:KVM 继承了 Linux 的性能,针对客户机和请求数量的增长进行扩展,满足负载的需求。KVM 可让要求最苛刻的应用工作负载实现虚拟化,而这也是许多企业虚拟化设置的基础,如数据中心和私有云等(通过 OpenStack®)。

调度和资源控制:在 KVM 模型中,虚拟机是一种 Linux 进程,由内核进行调度和管理。通过 Linux 调度程序,可对分配给 Linux 进程的资源进行精细的控制,并且保障特定进程的服务质量。在 KVM 中,这包括完全公平的调度程序、控制组、网络命名空间和实时扩展。

更低延迟,更高优先级: Linux 内核提供实时扩展,允许基于虚拟机的应用以更低的延迟、更高的优先级来运行(相对于裸机恢复)。内核也将需要长时间计算的进程划分为更小的组件,再进行相应的调度和处理。

了解完KVM的特性与优势后,我们开始在Linux系统上安装KVM套件和尝试启动一台虚拟机。

2. 先检查我们自己服务器的硬件条件

2.1 检查CPU是否支持虚拟化

我们先检查本机CPU是否可以支持虚拟化。

  1. grep -Eoc '(vmx|svm)' /proc/cpuinfo  

输出结果

  1. 96  

只用VMware开虚拟机?来了解一下更强大KVM虚拟化技术

Ubuntu 20.04检查CPU是否支持虚拟化

我的输出结果表明,被匹配了96次。为什么是96次呢?因为我的服务器的每个CPU都带虚拟化,共96个CPU,每个CPU都匹配一次。所以在每台机器上执行该命令都可能不一样。只要输出结果大于0即表明您的CPU支持虚拟化。

注:Linux系统上的CPU数量与CPU的线程数一致,即一个线程数一个CPU

2.2 检查主板是否开启虚拟化

CPU支持虚拟化就可以正常使用KVM加速功能了吗?不一定的,我们还需要在主板BIOS上开启虚拟化的功能。

使用下面的指令检查KVM加速是否可用。

先安装检查工具:

Ubuntu系统执行以下命令: 

  1. sudo apt update && sudo apt install cpu-checker -y 

只用VMware开虚拟机?来了解一下更强大KVM虚拟化技术

Ubuntu 20.04安装KVM加速检测套件

笔者在CentOS系统上查找kvm-ok命令对应的软件包时,被提示所有EPEL仓库移除了该命令对应的软件包。

查找kvm-ok命令对应的软件包 

  1. yum provides kvm-ok 

只用VMware开虚拟机?来了解一下更强大KVM虚拟化技术

查找kvm-ok命令对应的软件包

输出结果: 

  1. https://centos.anexia.at/epel/7/x86_64/repodata/83cce7d719a366a5ebc50fd9a1ff70f575d9df83a6994f948f582850213897f7-filelists.sqlite.bz2: [Errno 14] HTTPS Error 404 - Not Found 

提示找不到文件。

Ubuntu 安装完成后,执行以下命令: 

  1. kvm-ok 

只用VMware开虚拟机?来了解一下更强大KVM虚拟化技术

Ubuntu 20.04检测KVM虚拟化加速是否已经启用

我的服务器上输出的结果如下: 

  1. INFO: /dev/kvm exists 
  2. KVM acceleration can be used 

表明kvm加速可用。

3. 安装KVM虚拟化套件

确认CPU和主板都可支持后。接下来安装kvm虚拟化套件:

Ubuntu系统: 

  1. sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager -y 

qemu-kvm: 提供硬件底层虚拟化。
libvirt-daemon-system: 为 libvirt作为系统服务的守护程序运行。
libvirt-clients: 为不同的虚拟机提供长期稳定的C API
bridge-utils:提供网络桥接功能
virtinst: 为libvirt创建虚拟机提供一系列的命令行工作
virt-manager: KVM虚拟机管理图形界面,如果服务器没有安装图形化界面,没有必要安装它。

检查libvirtd是否正在运行: 

  1. sudo systemctl is-active libvirtd 

输出结果: 

  1. active 

表明我的服务器上正在运行libvirtd

想要创建和管理虚拟机,你需要添加你的用户到libvirt 和 kvm用户组。输入: 

  1. sudo usermod -aG libvirt $USER 
  2. sudo usermod -aG kvm $USER 

如果不把用户加入组中,那就要在每条命令之前添加sudo获取更高的权限。

4. 查看虚拟网络

查看虚拟网桥,您可以理解为一个多接口的虚拟交换机: 

  1. brctl show 

只用VMware开虚拟机?来了解一下更强大KVM虚拟化技术

查看虚拟网络

我的服务器输出结果:

该网桥用于为虚拟机提供连接物理网络的功能,即虚拟机可以访问其它机器,其它机器也可以直接访问它。

但本文不讨论它,因为接下来我只演示NAT模式。

5. 创建KVM虚拟机

先准备好操作系统的ISO镜像文件:
我已经准备好了CentOS 7.8的安装镜像,它的位置是: 

  • /var/lib/libvirt/images/CentOS-7-x86_64-Minimal-2003.iso 

先规划好虚拟机参数:

  • 名字:centos7_2003
  • 内存:4096M
  • CPU:2
  • 类型:linux
  • 模版:centos7.0
  • 虚拟显示器:VNC,定义密码,定义端口号5911
  • 网络模式:NAT
  • 虚拟磁盘文件:/var/lib/libvirt/images/CentOS7.qcow2
  • ISO安装镜像: /var/lib/libvirt/images/CentOS-7-x86_64-Minimal-2003.iso

命令行创建: 

  1. sudo virt-install  --name=centos7_2003  --ram=4096  --vcpus=2 --virt-type=kvm --os-type=linux --os-variant=centos7.0  --network default,model=virtio --graphics=vnc,password=linuxrumen.com,port=5911,listen=0.0.0.0 --noautoconsole  --accelerate  --cdrom=/var/lib/libvirt/images/CentOS-7-x86_64-Minimal-2003.iso --disk path=/var/lib/libvirt/images/CentOS7.qcow2,device=disk,format=qcow2,bus=virtio,cache=writeback,size=40 

只用VMware开虚拟机?来了解一下更强大KVM虚拟化技术

在Ubuntu 20.04 上创建KVM虚拟机

输出以下结果即表明创建成功: 

  1. 开始安装...... 
  2. 正在分配 'CentOS7.qcow2'                                                                                                                  |  40 GB  00:00:00      
  3. 域安装仍在进行。您可以重新连接 
  4. 到控制台以便完成安装进程。 

当然,您也可以在Linux桌面环境中使用图形界面的virt-manager创建它。

6. 连接KVM虚拟机显示器

在Windows系统上安装VNC viewer客户端:
连接新创建虚拟机的显示器:

VNC服务器地址:

IP+端口

比如192.168.20.35:5911

在VNC viewer客户端:

添加一台VNC主机:

只用VMware开虚拟机?来了解一下更强大KVM虚拟化技术

连接KVM虚拟机显示器

输入创建KVM虚拟机时配置的密码:

只用VMware开虚拟机?来了解一下更强大KVM虚拟化技术

输入KVM虚拟机显示器密码

只用VMware开虚拟机?来了解一下更强大KVM虚拟化技术

成功连接到KVM虚拟机

7. 结论:

本文主要演示如何在Ubuntu 20.04 系统上安装KVM与使用KVM基本功能。Linux KVM虚拟化平台非常值得深入研究和学习。它能提供稳定高性能的虚拟化技术。维护也比Exsi简单。命令行套件可以覆盖所有的功能。我一般使用命令行创建,一个SSH终端窗口可以搞定一切。如果您有更酷的用法。请留言。

本文已同步至博客站,尊重原创,转载时请在正文中附带以下链接:
https://www.linuxrumen.com/rmxx/1866.html

 

 

责任编辑:张燕妮 来源: 今日头条
相关推荐

2020-06-18 16:39:10

KVM虚拟化虚拟机

2014-02-21 11:20:34

KVMXen虚拟机

2011-05-05 09:32:59

CentOS 5.6KVM

2011-11-10 13:44:13

VMwareKVM迁移

2015-09-02 14:23:37

虚拟机医生戴尔

2009-08-07 11:16:28

2009-02-18 19:13:25

2012-04-05 09:40:10

虚拟化vmware虚拟机

2012-08-27 09:24:02

虚拟化

2009-08-06 11:27:23

VMware虚拟机NA

2009-08-21 17:05:48

VMware虚拟机Vi

2009-12-11 14:00:09

VMware虚拟机

2009-11-17 10:41:28

2009-10-27 11:29:44

linux虚拟机

2009-09-09 08:05:51

优化VMware Se

2009-02-12 18:18:01

VMware虚拟机虚拟化

2009-08-10 10:49:27

Linux下安装VMw

2013-11-11 09:57:29

Hyper-V虚拟机

2012-03-19 21:19:14

vmwarekvm

2014-10-09 09:43:05

虚拟机迁移
点赞
收藏

51CTO技术栈公众号