1。前言本文介绍了KVM虚拟化的优势以及如何在Ubuntu20.04系统上安装KVM虚拟化套件。首先我们来了解一下KVM虚拟化技术:以下引用摘自RedHat官网:1.1什么是KVM?KVM是一种基于内核的虚拟机基于内核的虚拟机(KVM)是一种内置于Linux?中的开源虚拟化技术。具体来说,KVM可帮助您将Linux变成管理程序,使主机能够运行多个隔离的虚拟环境,称为虚拟来宾或虚拟机(VM)。KVM是Linux的一部分。Linux2.6.20或更新版本包括KVM。KVM于2006年首次发布,一年后并入主流Linux内核版本。因为KVM是现有Linux代码的一部分,它可以立即享受每一个新的Linux功能、修复和演进,而无需额外的工程。如何在Ubuntu20.04上安装创建KVM虚拟机1.2LinuxKVM虚拟化有什么优势?安全性: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是否支持虚拟化。grep-Eoc'(vmx|svm)'/proc/cpuinfooutput96Ubuntu20.04检查CPU是否支持虚拟化我的输出显示匹配了96次。为什么是96次?因为我的服务器每个CPU都有虚拟化,一共96个CPU,每个CPU匹配一次。所以在每台机器上执行这个命令可能会有所不同。只要输出大于0,就说明你的CPU支持虚拟化。注意:Linux系统的CPU个数与CPU的线程数相同,即一个线程就是一个CPU2.2检查主板是否开启了虚拟化。如果CPU支持虚拟化,KVM加速功能是否可以正常使用?不一定,我们还需要在主板BIOS上开启虚拟化功能。使用以下命令检查KVM加速是否可用。首先安装检查工具:Ubuntu系统执行如下命令:sudoaptupdate&&sudoaptinstallcpu-checker-yUbuntu20.04安装KVM加速检测工具我在CentOS系统上搜索kvm-ok命令对应的软件包时提示删除所有命令包对应的EPEL仓库。找到kvm-ok命令对应的软件包yumprovideskvm-ok找到kvm-ok命令对应的软件包输出结果:https://centos.anexia.at/epel/7/x86_64/repodata/83cce7d719a366a5ebc50fd9a1ff70f575d9df83a6994f948f582bl850213897f7[Errno14]HTTPSError404-NotFound提示找不到文件。Ubuntu安装完成后,执行如下命令:kvm-okUbuntu20.04查看是否开启了KVM虚拟化加速我的服务器输出如下:INFO:/dev/kvmexistsKVMaccelerationcanbeused表示开启了kvm加速。3、安装KVM虚拟化套件并确认CPU和主板支持后。接下来安装kvm虚拟化套件:Ubuntu系统:sudoaptinstallqemu-kvmlibvirt-daemon-systemlibvirt-clientsbridge-utilsvirtinstvirt-manager-yqemu-kvm:提供硬件底层虚拟化。libvirt-daemon-system:libvirt的守护进程作为系统服务运行。libvirt-clients:为不同的虚拟机提供长期稳定的CAPIbridge-utils:提供网络桥接功能virtinst:为libvirt提供创建虚拟机的一系列命令行作业virt-manager:KVM虚拟机管理图形界面,如果服务器没有要安装GUI,没必要安装。检查libvirtd是否正在运行:sudosystemctlis-activelibvirtdoutput:active表示libvirtd正在我的服务器上运行要创建和管理虚拟机,您需要将您的用户添加到libvirt和kvm用户组。输入:sudousermod-aGlibvirt$USERsudousermod-aGkvm$USER如果不将用户添加到组中,则必须在每个命令前添加sudo以获得更高的权限。4、查看虚拟网络,查看虚拟网桥,可以理解为多接口虚拟交换机:brctlshow查看虚拟网络的输出myserver:这个网桥是用来给虚拟机提供连接到的功能物理网络,即虚拟机可以访问其他机器,其他机器也可以直接访问它。但是本文不讨论,因为我接下来只会演示NAT模式。5、创建KVM虚拟机,首先准备好操作系统的ISO镜像文件:我准备了CentOS7.8的安装镜像,它的位置是:/var/lib/libvirt/images/CentOS-7-x86_64-Minimal-2003.iso首先规划虚拟机参数:名称:centos7_2003内存:4096MCPU:2类型:linux模板:centos7.0虚拟显示:VNC,定义密码,定义端口号5911网络模式:NAT虚拟磁盘文件:/var/lib/libvirt/images/CentOS7.qcow2ISO安装镜像:/var/lib/libvirt/images/CentOS-7-x86_64-Minimal-2003.iso命令行创建:sudovirt-install--name=centos7_2003--ram=4096--vcpus=2--virt-type=kvm--os-type=linux--os-variant=centos7.0--networkdefault,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--diskpath=/var/lib/libvirt/images/CentOS7.qcow2,device=disk,format=qcow2,bus=virtio,cache=writeback,size=40在Ubuntu20.04上创建KVM虚拟机,输出如下结果说明创建成功:Startingtoinstall...distributing'CentOS7。qcow2'|40GB00:00:00域安装仍在进行中。您可以重新连接到控制台以完成安装过程。当然你也可以在Linux桌面环境下使用virt-manager的图形界面来创建。6、连接KVM虚拟机监视器在Windows系统上安装VNC查看器客户端:连接新建虚拟机的监视器:VNC服务器地址:IP+端口如192.168.20.35:5911在VNC查看器客户端上:添加一个VNC主机:连接KVM虚拟机显示输入创建KVM虚拟机时配置的密码:输入KVM虚拟机显示密码成功连接KVM虚拟机7.结语:本文主要演示如何安装KVM和使用KVM基础在Ubuntu20.04系统上运行。LinuxKVM虚拟化平台非常值得深入研究和学习。它可以提供稳定和高性能的虚拟化技术。维护也比Exsi简单。命令行套件可以涵盖所有功能。我一般都是用命令行来创建,一个SSH终端窗口就可以搞定一切。如果你有更酷的用法。请留言。本文已同步至博客站点,尊重原创,转载请在文中加入以下链接:https://www.linuxrumen.com/rmxx/1866.html
