什么是虚拟化?
云计算的核心技术之一就是虚拟化技术。所谓虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
虚拟化的核心软件 VMM,是一种运行在物理服务器和操作系统之间的中间层软件。VMM 是一种在虚拟环境中的“元”操作系统。他们可以访问服务器上包括 CPU、内存、磁盘、网卡在内的所有物理设备。VMM 不但协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护。当服务器启动并执行 VMM 时,它会加载所有虚拟机客户端的操作系统同时会分配给每一台虚拟机适量的内存,CPU,网络和磁盘。
虚拟化方式
虚拟化技术有很多实现方式,比如根据虚拟化的程度和级别,有软件虚拟化和硬件虚拟化,全虚拟化和半虚拟化。
软件虚拟化:顾名思义,就是采用纯软件的方法在在现有的物理平台上实现物理平台访问的截获和模拟,该物理平台往往不支持硬件虚拟化。
硬件虚拟化:简单来说,就是物理平台本身提供了对特殊指令的截获和重定向的硬件支持,新的硬件会提供额外的资源来帮助软件实现对关键硬件资源的虚拟化,从而提升性能。
全虚拟化:完全虚拟化技术又叫硬件辅助虚拟化技术,最初所使用的虚拟化技术就是全虚拟化(Full Virtualization)技术,它在虚拟机(VM)和硬件之间加了一个软件层 Hypervisor,或者叫做虚拟机管理程序或虚拟机监视器(VMM)。
半虚拟化:半虚拟化技术是后来才出现的技术,也叫做准虚拟化技术,现在比较热门,它就是在全虚拟化的基础上,把客户操作系统进行了修改,增加了一个专门的 API,这个 API 可以将客户操作系统发出的指令进行最优化,即不需要 VMM 耗费一定的资源进行翻译操作。
免费虚拟化技术课程:阿里云大学——开发者课堂