虚拟化的那点事

  虚拟化现在被鼓吹得神乎其神,似乎不虚拟化就是落伍,似乎不虚拟化就无法实现各种先进功能,到底虚拟化是怎么产生的,它真的有这么牛逼吗。

         其实从os的发展来看,虚拟化不是今天诞生的,虚拟化思想无处不在,最早的地址虚拟化开始,32位下每个进程独享4g空间,那个时候觉得4g已经很多了,现在的主流cpu都超32位地址线,连入门级赛扬g530也到40位地址线了,更高的cpu都到48位或更高,那个时候4g是很多的,主流的才几M内存而已,实际地址和虚拟地址的对应关系通过os来管理,虚拟化地址大大简化了程序设计,高级语言的出现和地址空间的虚拟化使得程序设计获得了很大进步。

         之后出现了外设的虚拟化,最常见的就是虚拟光驱了,随便一个iso文件就可加载到某个虚拟光驱,通过驱动程序不光可以将磁盘虚拟化为光驱,将内存虚拟化成某个盘也很容易,将某个zip文件虚拟化成某个磁盘也可以,这都是虚拟化的实际应用,通过逻辑磁盘的管理,也可将多个物理磁盘虚拟化成超大逻辑磁盘,用户也无需关心实际磁盘多大,是怎么分区的,但实际就可使用跨区的虚拟化磁盘,而且效率下降几乎可忽略不及。还有将某个视频文件虚拟化为摄像头的,这类工具也出现了一些年头,不清楚的人还能被骗,这部分基本上可统一概括为外设的虚拟化。

         从计算机组成来看,主要几个部件,内存、磁盘、外设、cpu、显示、网络等。从最早的内存、磁盘、外设都虚拟化了,而且到了较高水平,之后网络、cpu也开始虚拟化,cpu之所以虚拟化是软硬件发展到一定阶段的自然产物,它的虚拟化提供了很多改变行业的特性,最容易想到的就是可提高资源使用率,如一台机器做web应用cpu基本是过剩的,完全可虚拟化出来做点计算等。通过cpu虚拟化,上层运行不同的os,通过os隔离极大提高了安全性,通过cpu虚拟化,由于os运行在模拟层上,因此os之间也可高速动态迁移。基于cpu虚拟化,已经其他一些资源服务,现在云主机业务已经如火如荼的展开了,实际上一台配置适当的服务器开20-30个左右的虚拟机是完全可行的,据说有的已经开到最多45个虚拟机。

         如今虚拟化系统就那么三家公司的事情,分别是critix的xenserver系列,vmware的esx系列,win的hyper-v系列,我前些天将家里的机器废物利用了一把,买了一点硬件组装了一台很简陋的机器(g530的cpu,8g内存),装了一个windows server2008 R2,在hyper-v上装了一个centos 6.2,跑起来爽得很,看上去执行效率也比较高。在日常用的笔记本上,原先装的vmware workstation之上装的几个centos、ubuntu、win2k3也很好用,学习linux的成本是超级低了,不清楚的win下搜一下很快就搞明白了。

         总之,跟计算机相关的各个部件被虚拟化你都不要惊讶,那都是自然的产物,就如现在桌面也虚拟化了,这也是自然的产物,其实需求早就存在,只是之前无法实现,软硬件没发展到那个程度而已。

         其实从本质上看,各种虚拟化都是朴素分层思想的体现,内存虚拟化,os做了虚拟地址和物理地址的映射,os虚拟化,前面增了一层直接运行在裸机上的操作系统,为上层os提供资源分配调度,其他各种虚拟化,你都能找到一个新增的层,只是各个层的表现形态和厚薄不一样而已。当然分层思想并不仅仅解决虚拟化的问题,我曾经总结过,几乎任何网络方面的规模性问题,都可通过加层方式轻松解决,每加一层就能将负载提升一个数量级左右。

         虚拟化并不是个神奇的产物,甚至都不算新事物,它是软硬件发展到一定阶段的自然产物,既然是发展的自然产物,就不要怀疑虚拟化,也不要神奇化虚拟化,接受它应用它改变它,让虚拟化来得更猛烈些吧。

猜你喜欢

转载自zljpp.iteye.com/blog/1493315