vlambda博客
学习文章列表

今天来讲讲学术界的主流VMM——KVM


众所周知,在云计算当中为了去提高资源利用率,改善整个整个环境的资源使用情况,会加入一些虚拟化的技术,在虚拟化的技术领域当中,我们常见的有分开源与闭源两种,开源的涉及到KVM、XEN这样的技术,而闭源就是厂商用来商用的一些虚拟化产品,比如说华为的FusionCompute、VMware –Vsphere等,但是今天要给大家介绍一下开源的KVM。


对于开源的KVM虚拟化来说是一个开源的系统虚拟化模块,它是集成在目前各主流Linux中,KVM已成为学术界的主流VMM之一。顺便提一下VMM是什么:即虚拟机监控器(Virtual Machine Monitor)也叫Hypervisor,是一种运行在基础物理服务器和操作系统之间的软件层,可允许多个操作系统和应用共享硬件,Hypervisor是所有虚拟化技术的核心,不但协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护。

         


背景介绍


KVM(Kernel-based Virtual Machine)

开源虚拟化、支持体系结构有x86(32位、64位)、IA64、PowerPC、S390,依赖X86硬件支持Intel VT-x /AMD –v。2006年10月以色列公司Qumranet发布KVM,同年12月KVM合入内核(Linux2.6.20rc),在2007年2月Linux2.6.20正式版发布,在2009年9月,RHEL5.4开始支持KVM(同时也支持Xen)。


KVM架构

(图片来源网络)


HVM Guest:客户机系统,包括CPU(vCPU)、内存、驱动(Console、网卡、I/O 设备驱动等),被 KVM 置于一种受限制的 CPU 模式下运行。


KVM(整个Linux Kernel):运行在内核空间,提供CPU 和内存的虚级化,以及客户机的 I/O 拦截。Guest 的 I/O 被 KVM 拦截后,交给 QEMU 处理。


qemu-kvm:修改过的为 KVM 虚机使用的 QEMU 代码,运行在用户空间,提供硬件 I/O 虚拟化,通过 IOCTL /dev/kvm 设备和 KVM 交互。


kvm.ko:用于管理虚拟 CPU 和内存

         


部 署


准备:VMware workstation、Ubuntu1904桌面版


1、通过VMware workstation 安装Ubuntu1904虚拟机

(注意:虚拟机开机前需要开启虚拟化功能)

今天来讲讲学术界的主流VMM——KVM

2、安装完成之后需要验证当前Ubuntu是否支持虚拟化

命令:egrep –v ‘(vmx|svm)’ /proc/cpuinfo

今天来讲讲学术界的主流VMM——KVM

命令:egrep –c ‘(vmx|svm)’ /proc/cpuinfo

今天来讲讲学术界的主流VMM——KVM

3、通过”apt-get install”安装KVM所需管理模块

命令:sudo apt install qemu qemu-kvm libvirt-bin bridge-utils virt-manager

(注意:libvirt-bin在新版系统中可能会提示被其它软件包代替,可跳过安装)

安装完成后输入命令验证:kvm-ok

今天来讲讲学术界的主流VMM——KVM

4、打开kvm虚拟化控制台

命令:virt-manager

(注意:这里一定是通过root用户权限来执行这个virt-manager命令的)

今天来讲讲学术界的主流VMM——KVM

今天来讲讲学术界的主流VMM——KVM


5、现在你就可以使用控制台进行虚拟机的创建了

今天来讲讲学术界的主流VMM——KVM


         


总 结


KVM在对各个厂商的虚拟化产品无疑是一种启发,很多厂商的虚拟化产品也是依据KVM开源的架构来进一步研发与完善的,比如华为FusionCompute从KVM主框架中进一步改造研发与完善,使之更适合商用,后期我们的文章会继续讲解华为虚拟化产品的结构,今天的学习就到这里,感谢大家。


了解KVM↓↓↓

  1. 若您有专属课程顾问,请联系她。

  2. 若没有专属课程顾问,可通过扫描下方二维码,立即在线沟通: