kvm三个组件及应用
KVM虚拟化架构及三种模式
1、 客户模式(guestOS):VM中的OS为GuestOS
客户机在操作系统中运行的模式,客户机分为内核模成和用户模式
2、用户模式:
为用户提供虚拟机管理的用户空间工具以及代表用户执行I/O, Qemu工作在此模式下(Qemu的主要功能)
3、linux内核模式
模拟CPU、内存,实现客户模式切换,处理从客户模式的推出,KVM即运行在此模式下
KVM原理
1、 Guest:客户机系统,包括CPU (vCPU) 、内存、驱动(Console、 网卡、I/O设备驱动等)
被KVM置于一种受限制的CPU模式下运行。
2、KVM内核模块模拟处理器和内存以支持虚拟机运行
3、Qemu主要处理I/O以及为客户提供一 个用户空间/dev/kvm工具libvirt来进行虚拟机管理
ioctl(定义)专用于设备输入输出操作的系统调用
libvirt: KVM管理工具
以上构成一个完整的虚拟化平台
简单理解:
KVM驱动提供处理器、内存的虚拟化,以及客户机I/O的拦截,guest的I/O被拦截后,交由Qemu处理
Qemu利用接口libkvm调用(ioctl)虚拟机设备接口/dev/kvm来分配资源、管理、维护虚拟机
KVM工作流程
用户模式的Qemu利用接口libkvm 通过 ioctl系统调用进入内核模式。KVM驱动为虚拟机创建虚拟CPU和虚拟内存,然后执行VMLAU-NCH指令进入客户模式,装载Guest OS并运行。Guest OS运行过程中如果发生异常,则暂停Guest OS的运行并保存当前状态同时退出到内核模式来处理这些异常。
内核模式处理这些异常时如果不需要V/O则处理完成后重新进入客户模式。如果需要V/O则进入到用户模式,则由Qemu来处理I/O,处理完成后进入内核模式,再进入客户模式
kvm虚拟化分为哪三层
kvm虚拟化分为以下三层:
1.第一层KVM
第一层的KVM,基本上是Linux内核自带,从Linux 2.6.20版本开始,KVM被完全正式收录到Linux内核中,KVM作为Linux内核中的一个模块而存在,因此只要使用了Linux 2.6.20版本或高于Linux 2.6.20版本的Linux,在安装系统的时候,就已经加载了KVM模块,因此我们只需要在CLI命令行模式下启用KVM模块即可。
2.第二层QEMU
第二层的QEMU,在2012年的时候,qemu-kvm这个分支并入了主流的QEMU了,从此之后要实现KVM虚拟化可以不需要特殊的qemu-kvm(你也可以继续使用,现在的CentOS就在用着),而只需要在通用的QEMU命令上增加“-enable-kvm”选项就等于是使用KVM功能了,是KVM驱动虚拟机了,也就是QEMU可以调用KVM内核了,这样效率就比纯QEMU高多了。
3.第三层KVM管理工具
第一层的KVM和第二层的QEMU解决了之后,剩下的就是KVM管理工具了,KVM管理工具的玩法有很多种,如果你的企业搞云计算的团队只有40-50个人,那玩WebVirtMgr、Proxmox VE这种类型的管理工具比较合适,如果你的企业搞云计算的团队有几百号人,又有金主爸爸,可以玩OpenStack这种类型的云计算管理平台。
以上内容是万老网对kvm 显卡驱动的问题就介绍到这了,希望介绍关于kvm 显卡驱动的2点解答对大家有用。