开源虚拟化平台之KVM

网友投稿 1045 2022-11-05

开源虚拟化平台之KVM

开源虚拟化平台之KVM

KVM的全称是基于内核的虚拟机,它是一个开源的系统虚拟化模块,可以用来实现服务器的虚拟化功能。KVM是Linux内核的一部分,它的基本架构有两个组件构成。         两个组件分别是:libvirt和qemu.先说一说libvirt这个组件,libvirt是实现虚拟化数据库的工具包,想要运行KVM,就需要安装这个工具包,它的主要功能是实现KVM与Linux的交互,主要负责虚拟机的创建、虚拟内存的分配以及vCPU的运行等等。再说一说qemu,它是用于模拟虚拟机用户空间的组件,提供I/O设备模型,访问外部设备的途径等。qemu通过libKVM应用程序接口,用fd通过ioctl向设备驱动发送创建、运行虚拟机命令,运行了Linux的设备就会来解析并执行命令。KVM的架构图如下:

KVM模块使得运行了Linux的主机成了一个虚拟机监视器,并且在原有的两种Linux模式上又添加了客户模式,那么这三种模式的作用是什么呢?接下来看看         客户模式:执行非I/O的客户代码,虚拟机运行在这个模式下;         Linux用户模式:代表用户执行I/O指令,qemu运行在这个模式下;         内核模式:处理因I/O或者其他指令引起的客户模式推出(VM_EXIT)实现客户模块的切换工作。KVM模块工作在这个模式下。     对于上面的图,可以这样给大家去解释:用户的qemu通过libKVM应用程序接口,通过ioctl进入内核模式,而KVM模块为虚拟机创建虚拟内存、虚拟CPU之后执行虚拟机launch命令,进入客户模式,加载并执行Guest OS.如果Guest OS 在执行过程中发生外部中断,就会暂停并且退出客户模式并进行异常处理,处理完毕后会重新进入客户模式进行操作。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:ConcurrentHashMap是如何保证线程安全
下一篇:简单对比reboot /shutdown -r /halt
相关文章

 发表评论

暂时没有评论,来抢沙发吧~