虚拟化技术是云计算的核心技术之一。 虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。虚拟化技术的出现和应用其实已经有数十年的历史了,在早期,这个技术主要应用在服务器以及大型主机上面,现在,随着PC性能的不断增长,Virtualization也开始逐渐在x86架构上流行起来。
虚拟化技术一现在有两大类
1. 在宿主Host OS上构建 Guest OS的“软虚拟机”方式;
2.在物理硬件上构建底层通讯的基本软件形态还不能称为操作系统级别,在其上构建不同OS,这是一种更加面向底层的虚拟化技术。(IBM的云计算目前就是这种方式。)
下图展示的是虚拟化技术的一种:
在一个物理主机通过Host operation System
构建虚拟化层,通过虚拟化构建一个貌似具有物理CPU,内存,Harddisk的主机。这种在宿主OS上构建的虚拟机是一般我们常用的软虚拟机的模式。存在如下问题:
1. 效率低,CPU开销大;
2. Host OS 的稳定性决定了Gust OS的稳定性;
3. 没有直接和底层硬件打交道,系统效率偏低;
这种模式的优势也显然:
1. 简单,易用;
2. Gust OS的备份搬迁工作容易;
当前,虚拟化技术基本走这两个派别,其中第二种方法和硬件厂商捆绑更加紧密,这也是大型硬件厂家所力推的一种模式。从现实意义而言,第二种方法也的确有优势,毕竟自己的硬件和自己的虚拟化方式有先天的开发优势和效率优势。但带来的问题也是显然,使用了某种虚拟化技术也就限定了自己硬件厂商选择的能力,这是要在商务层面作出平衡。
虚拟化的一个应用的目的就是在于提升系统主机资源使用效率(这里暂不谈存储,IO方面效率,只谈计算能力这块)常见的虚拟化比例有如下两种:
1:N模式
当前的虚拟化比例一般为1:15;但有传言说Verizon的项目中使用了1:40左右的虚拟化比。
这种虚拟化技术是现在现实中的比较常用的一种,因为不涉及的计算能力分配的问题,每个虚拟机都独立运行一个应用即可。但增加的系统IO的负担。对IO端口的能力提出了很大的挑战(未来文章会量化这部分)。
N:1模式
N台主机虚拟成一个“主机”,这种模式曾经被视为IT能力抽象整合的极致。
这种情况下已经不适合用“虚拟”这种词来描绘,因为往往这种情况下整合的是应用。例如某个搜索应用,采用这个模式。这种模式,就是我们常说的需要用到分布计算和网格计算等算法的发挥之处了。但该模式对主机之间的通讯要求很高。万兆通信是当前的模式,未来应在40G/100G的通讯速率左右时,才会极大提升这个运算的能力。