虚拟化技术系列--基础概念篇

1.1 虚拟化技术起源

随着云计算的日益普及,虚拟化技术突然变得重要起来。事实上,云计算中的IaaS(Infrastructure as a service)本质上就是计算资源的池化或者虚拟化,简而言之虚拟化技术是构建云计算数据中心的基础。

但是,虚拟化技术并非是随着云计算的概念而诞生的,从时间来看虚拟化技术最早可追溯到上世纪60年代。当时IBM的大型机上已经使用了虚拟化技术,其目的也跟今日基本一致:允许多租户复用同一物理计算资源。这一时期可称为虚拟化技术的萌芽阶段。

早期计算机硬件是相当昂贵的基础设施,注定不可能为个人所拥有,虚拟化技术能显著地提高计算资源使用效率,因此在大型机时代得到了青睐;随着半导体技术遵循摩尔定律快速发展,计算机的价格也慢慢地平民化,“旧时王谢堂前燕,飞入寻常百姓家”,PC机的私人属性注定了资源复用这一特性不再是什么优点。虚拟化技术进入低潮期。

虚拟化技术的复归,其实走了一条相当漫长的路,推动虚拟化技术从新繁荣的因素有很多,但最决定性的因素还是以下两点

        a)半导体技术的发展。当摩尔定律每18个月翻番的规律持续奏效的时候,我们知道这一定律迟早会终结。但在摩尔定律尚未完全触碰到硅技术的物理极限前,单芯片的性能已经强大到过剩了,换言之安迪-比尔定律里的比尔,已经无法完全吃掉安迪提供的性能了。

        b)能源网络等助攻因素。 相比半导体技术的飞速发展,电池技术的发展可以用龟速来形容。而能源危机的阴影也时刻笼罩着这个世界,节能已经成了科技界的主旋律。从能耗的管理来说,集约式地管理方式显然比各自为政式的管理更为高效。而随着网络技术的快速发展,低功耗终端设备+大规模云计算的模式成为了可能(我更愿意称之为数据中心计算)。

事实上上述两点内容,并非单纯的技术性因素,每一点背后都有更深刻的商业因素在里面。关于背后的商业模式推动力,本就可以独立成书,有兴趣的读者可参考吴军的浪潮之巅,里面多有涉猎,本文不再赘述。


1.2 虚拟化技术概念

虚拟化,其实是一个广泛而变化的概念。从广义上来说,从JAVA虚拟机,到操作系统的虚拟内存概念,到存储技术,到仿真,到虚拟局域网VLAN,到服务器虚拟化技术都采用了虚拟化的思想。业界对虚拟化概念的定义也有很多版本,在这里,我给虚拟化的定义是:以透明方式提供抽象的计算资源。此外,要特别强调的是,本系列文章探讨的虚拟化概念,是狭义上的计算平台资源虚拟化。因此,虚拟化技术包含了三层含义

a) 被虚拟化的对象,是各种计算资源,如CPU、磁盘,内存,网络等

        b) 物理资源被虚拟化成逻辑资源后,对用户隐藏了不必要的细节

        c) 用户在虚拟环境中可实现物理环境中的部分或全部功能。

   

1.3 虚拟化技术关键特性

虚拟化技术的关键特性有4点:多实例,隔离性,高性能,抽象性

多实例,通俗来说就是在同一物理服务器上运行多个虚拟机,可支持多个客户操作系统。物理服务器上的CPU、内存、磁盘等资源是以可控的方式分配给各个虚拟机的。

隔离性,如果说多实例的虚拟化技术的根本价值所在,那么隔离性就是确保虚拟化服务可用的最根本利器。运行在同一物理服务器上的虚拟机,要做到几点:彼此不感知,虚拟机间数据不会相互泄露,某个虚拟机崩溃不影响其他虚拟机的正常运行。事实上,只有确保做到这几点,虚拟机服务才是可用的,而这也是云计算安全课题里相当重要的一个环节。

高性能,要理解高性能这一特性,需要结合虚拟化技术的软件结构层次来理解。本系列文章后续会详细就这一细节展开,此处简单总结来说,运行虚拟化平台的物理服务器,在操作系统与硬件层之间还有一层虚拟机监控器软件,也叫VMM或Hypervisor,操作系统访问硬件前或多或少会受到这一软件层的干扰,会产生一定的性能开销。高性能特性,指的是Hypervisor引入的性能开销要控制在可承受的氛围内。

抽象性,抽象性即是硬件无关性。虚拟机得到的计算资源,是标准化的虚拟设备,而不关心虚拟机运行硬件具体特性,如CPU指令集/网卡特性/磁盘接口类型等等。抽象性是确保虚拟机可在不同物理平台上无缝迁移的前提,也是数据中心管理中必不可少的特性。

猜你喜欢

转载自blog.csdn.net/dxq136363/article/details/17801167