设为首页 收藏本站
查看: 1218|回复: 0

[经验分享] KVM基本原理和架构一-概念和术语

[复制链接]

尚未签到

发表于 2015-12-24 15:39:25 | 显示全部楼层 |阅读模式
l  KVMKernel-based Virtual Machine基于kernel的虚拟机
l  VMMVirtual Machine Monitor,虚拟机监控器,在KVM虚拟化环境中,即KVM内核。
l  VMVirtual Machine,虚拟机,即Guest机。
l  全虚拟化:Guest OS无需做任何改动即可运行。有两种实现方式:软件辅助实现和硬件辅助实现。
ü  软件辅助实现的全虚拟化:一般采用优先级压缩(Ring Compression)和二进制翻译(Binary Translation)实现。由于一些特权指令必须运行于特权级Ring0LGDT,通常OS kernel运行Ring0中,这样虚拟化环境中,VMM就没有Ring可用了。优先级压缩大致原理为:使VMM运行于Ring0Guest OS kernel运行于Ring1,而Guest OS user运行于Ring3。优先级压缩能正确处理大部分的特权指令,但是由于x86架构存在虚拟化漏洞(部分敏感指令不能被捕获),采用二进制翻译方法来处理这些虚拟化漏洞:VMM扫描并修改Guest的二进制代码,将无法捕获的敏感指令转换为支持虚拟化的指令。
ü  硬件辅助实现的全虚拟化:依赖硬件虚拟化特性(比如Intel VT-x),基本思想是:在硬件架构上加入了足够的虚拟化功能,使其可以截获Guest OS中所有敏感指令,并进行模拟。
l  半虚拟化:Guest OS需要进行修改,对不能“陷入”的敏感指令进行替换,以解决敏感指令的捕获问题。
l  VT-xIntelCPU虚拟化提供了VT-x(Intel Virtualization for x86)技术(AMD SVM也提供了类似的功能)VT-x引入了一套新的工作模式,即VMX(Virtual Machine eXtension),该模式下的CPU具有两种操作模式:根模式(VMX root operation)和非根模式(VMX non-root operation)。每种操作模式下,都有独立的Ring0-Ring3
ü  VMM运行于根模式,对KVM虚拟化环境来说,即KVM主机运行于根模式,主机中的kernel运行于根模式中的Ring0,主机中用户态程序(比如Qemu-kvm)运行于根模式中的Ring3
ü  Guest运行于非根模式,Guest中的kernel运行于非根模式中的Ring0Guest中的用户态程序运行于非根模式中的Ring3
此外,VT-x还引入了一组新的指令,包括VMLAUNCH/VMRESUME(用于发起VM-Entry)VMREAD/VMWRITE(用于配置VMCS)等。
l  VM-Exit/VM-Entry:在VT-x环境中,非根模式下(Guest),执行敏感指令触发的“陷入”称为VM-ExitVM-Exit发生时,CPU自动从非根模式切换到根模式下,然后就可以由VMM对触发VM-Exit的敏感指令做进一步处理或模拟。
VM-Exit对应的是VM-Entry,此操作由VMM发起,通常是VMM调度某个Guest(VCPU)运行时引起,此时CPU自动由根模式切换为非根模式。
l  VMCS:在VT-x环境中,引入了VMCS(Virtual Machine Control Structure,虚拟机控制结构),以便更好的支持CPU虚拟化。VMCS用于保存虚拟CPU需要的相关状态,比如:CPU在根模式和非根模式下的寄存器的值、VM-Exit的原因等,当CPU发生VM-ExitVM-Entry时,会自动查询和更新VMCSVMM也可以通过配置VMCS控制CPU的行为。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-155846-1-1.html 上篇帖子: KVM基本原理和架构二-基本原理 下篇帖子: 绑定kvm虚拟机到CPU核心
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表