学习云计算虚拟化基础是关键

最近看一些虚拟化的资料,总是觉得不对路,难道是因为没有做过虚拟化开发的原因?找了几本书,翻了一些网页,发现最主要的原因是基础没有打好,一些固有的想法,影响了判断,本文将一些虚拟化的基本概念与大家分享。

虚拟化是将软件和硬件分离,可以想象成在操作系统和硬件中间加了一个夹心层--虚拟化软件。而这一夹心层,采用时间、空间分时分割的方式,将物理硬件抽象成逻辑资源,让运行在上层的操作系统像在真正的服务器一样运行在夹心层上(虚拟化软件上)。

这里的虚拟化软件称之为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这种硬件辅助虚拟化技术。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180404A1H5Y400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券