虚拟化是将软件和硬件分离,可以想象成在操作系统和硬件中间加了一个夹心层--虚拟化软件。而这一夹心层,采用时间、空间分时分割的方式,将物理硬件抽象成逻辑资源,让运行在上层的操作系统像在真正的服务器一样运行在夹心层上(虚拟化软件上)。 这里的虚拟化软件称之为VMM(Virtual Machine Monitor),现在很多书中比较酷的叫Hypervisor,就是虚拟机监控器的意思。 平时见到这张图没细想,其实也有不少内容 Hypervisor软件栈架构根据Hypervisor在系统中层次位置的不同,可以将其分为两种类型。 Type-I型,是指Hypervisor直接运行在裸金属机上,使用和管理底层的硬件资源,运行在最高特权级别,GuestOS对硬件资源的访问都要通过Hypervisor来完成。Hypervisor拥有所有硬件的驱动程序,VMWare ESX应该就是这类,不用装操作系统,直接插光盘安装ESX就可以。 Type-II型,又可以称作主机型,Hypervisor也是一个程序,要运行在宿主操作系统之上,这里的宿主操作系统可以称为HostOS,与运行在Hypervisor之上的GuestOS对应。GuestOS使用最底层的硬件资源,最终都需要通过HostOS来调用,KVM、XEN应该是这类了。 Hypervisor软件栈架构两种类型 计算虚拟化技术细分计算虚拟化技术可以大致分为全虚拟化、半虚拟化和硬件辅助虚拟化。 全虚拟化,Hypervisor模拟了完整的底层硬件环境,为每一个虚拟机提供完整的硬件支持,包括物理CPU、内存、BIOS等。Guest完全不用做任何修改,也感知不到是否运行在虚拟化环境。 半虚拟化,Hypervisor只是模拟了部分底层硬件,因此需要GuestOS进行配合对有缺陷的指令进行修改和替换,所以GuestOS知道自己是运行在虚拟化环境,而不是真正的物理环境。 硬件辅助虚拟化,Hypervisor需要借助硬件的协助才能完成高效的全虚拟化。主要集中在CPU上,如Intel-VT、AMD-T这种硬件辅助虚拟化技术。 云计算、容器,这张图太完美了 想把技术了解透彻,还得注重基本概念的理解。看了这个,其实对未来了解Docker也有好处,VMware一直搞虚拟机,用了容器不用虚拟机的套路,相信这家公司也得想不少的应对策略。(头条号:博识科技 原创首发,总有人不打招呼抄袭,打个标记) |
|