前言
大家好,我是秋意零。
上一篇的介绍了软件和硬件虚拟化类型,现在来看看半虚拟化技术和通过硬件虚拟化类型辅助的全虚拟化技术吧!
👿 简介
- 🏠 个人主页: 秋意零
- 🔥 账号:全平台同名, 秋意零 账号创作者、 云社区 创建者
- 🧑 个人介绍:在校期间参与众多云计算相关比赛,如:🌟 “省赛”、“国赛”,并斩获多项奖项荣誉证书
- 🎉 目前状况:24 届毕业生,拿到一家私有云(IAAS)公司 offer,目前已在实习
- 💕欢迎大家:欢迎大家一起学习云计算,走向年薪 30 万
- 💕推广:CSDN 主页左侧,是个人扣扣群推广。方便大家技术交流、技术博客互助。
一、半虚拟化
半虚拟化是一种虚拟化技术,通过修改编译虚拟机操作系统内核,来与VMM配合,这就是半虚拟化技术,也叫准虚拟化技术。
- 因为修改内核的关系,可以提高性能和简化VMM软件的复杂度(相当于给翻译的工作量减少了);
- 不太需要依赖硬件虚拟化的支持,从而使软件设计(VMM)可以跨平台。
典型的半虚拟化技术是virtio,使用virtio需要在宿主机/VMM和客户机里都相应地装上驱动。
二、全虚拟化
全虚拟化也是一种虚拟化技术,它是不需要修改虚拟机内核。因此,全虚拟化需要模拟出完整的、和物理资源一模一样的资源给虚拟机,它增加了虚拟化层(VMM) 的复杂度。
性能上,2005年硬件虚拟化兴起之前,软件实现的全虚拟化完败于VMM和客户机操作系统协同运作的半虚拟化,这种情况一直延续到2006年。之后以Intel VTx、VT-d为代表的硬件虚拟化技术的兴起,让由硬件虚拟化类型辅助的全虚拟化技术全面超过了半虚拟化技术。但是,以virtio为代表的半虚拟化技术也一直在演进发展,性能上只是略逊于全虚拟化,加之其较少的平台依赖性,依然受到广泛的欢迎。
三、Type1和Type2虚拟化
从软件框架的角度上,根据虚拟化层是直接位于硬件之上还是在一个宿主操作系统之上,将虚拟化划分为Type1和Type2,如图所示:
Type1(类型1)Hypervisor也叫native或bare-metal Hypervisor。这类虚拟化层直接运行在硬件之上,没有宿主机操作系统。它们直接控制硬件资源以及客户机。典型地如Xen和VMware ESXI。
Type2 (类型2) Hypervisor运行在一个宿主机操作系统之上,如VMware Workstation;或系统里,如KVM。这类Hypervisor通常就是宿主机操作系统的一个应用程序,像其他应用程序一样受宿主机操作系统的管理。比如VMware Workstation就是运行在Windows或者Linux操作系统上的一个程序而已。客户机是在宿主机操作系统上的一个抽象,通常抽象为进程。
总结
半虚拟化和全虚拟化的区别在于,一个修改了虚拟机内核,一个未修改虚拟机内核。
虽然未修改虚拟机内核的全虚拟化,性能并没有半虚拟化好,但是通过硬件虚拟化类型辅助的全虚拟化技术性能要高于本虚拟化技术。