服务器虚拟化的优缺点分析及趋势

2012-10-20 08:35
微型电脑应用 2012年9期
关键词:内存虚拟化服务器

周 波

0 引言

服务器虚拟化(Server Virtualization)是最近国内外研究的一个非常热门的领域。在复杂的IT环境中,冗余的硬件设备使公司机房饱和,每一件新购入的设备也会带来额外的能源开销。将物理服务器转化为虚拟服务器,是确保机房环境稳定及IT开销在可控制范围内的行之有效的方法。

采用虚拟化技术后,可以动态地开启或者关闭虚拟服务器,就像操作物理服务器那样。在一台物理服务器上运行多个虚拟机,可以高效地利用物理服务器的硬件资源,并对于可能的需求变化,做出快速的反应。

据虚拟化管理企业Veeam公司在2011年7月发布的报告显示[1],目前企业服务器虚拟化率仅有不到40%。调查了若干个国家的544家企业,有92%的企业已经开始了虚拟化技术的应用,但还是有大约60%的业务没有实现虚拟化。

1 服务器虚拟化的情况

对于当今而言,有3种基本的虚拟化技术[2]。

1.1 完全虚拟化

完全虚拟化模式使用的是宿主/客户机结构。管理核心被称为hypervisor,是允许多个客户系统来共享一台物理主机,允许每个客户系统访问宿主主机的处理器、内存和其他资源的程序。它在虚拟机与硬件之间创建一个抽象的层,客户机(或称虚拟机)运行于一个虚拟的硬件层。VMware和微软的Virtual Server是使用完全虚拟模式的。完全虚拟化,如图1所示:

图1 完全虚拟化示意图

1.2 并行虚拟化

并行虚拟模式也是基于宿主/客户机结构的,也使用hypervisor,如图2所示:

图2 并行虚拟化示意图

在完全虚拟化中,hypervisor需要处理器资源去管理不同的虚拟机并且将它们互相隔离,所以无法使处理器以最高效率运行。一种降低处理器需求的方法是对于与每个操作系统进行修改,所以在并行虚拟化中,由hypervisor对客户系统进行修改,这个修改的过程成为移植(porting)。移植允许hypervisor谨慎的使用系统调用,使操作系统能够意识到运行于虚拟环境中,并且与hypervisor协作,从而使虚拟化更有效率地运行。这种方法就是并行虚拟化。并行虚拟化技术的优势在于它的性能,以并行技术运行的虚拟机的响应速度接近于非虚拟机。Xen是一种基于开源系统的并行虚拟化的技术。

1.3 操作系统层次的虚拟化

操作系统层次虚拟化,它不是基于宿主/客户机模式的,没有hypervisor层。

与其他技术最明显的区别是,所有的虚拟服务器必须运行同一种操作系统(当然,每个实例都有自己的应用程序和账户)。这类技术在系统的灵活程度上有所欠缺,但带来的优势则是性能上的优化。因为分布式架构消除了层与层之间的系统调用,从而降低了CPU的开销。此外,相对于使用不同操作系统的虚拟机,这类在所有虚拟服务器上使用单一的标准操作系统的结构也便于管理。操作系统层次的虚拟化。Virtuozzo和Solaris Zones都是操作系统层次的,如图3所示:

图3 操作系统层次虚拟化示意图

1.4 虚拟化技术的瓶颈

以上的3种虚拟化技术,都是软件层面上的。难道不能在硬件层面上实现更有效率的虚拟化技术吗?

直到2007年,Intel和AMD才开发出支持CPU层次虚拟化的处理器。通过硬件上支持虚拟化,使得用于hypervisor的CPU资源得以释放,提高了虚拟技术的性能。

当然,CPU层次的虚拟化技术并不是自适应的,相关的虚拟化软件必须被重新开发,以便支持。因为这种技术使得虚拟化技术的性能增长不少,所有的虚拟化软件都将以支持CPU层次的虚拟技术为目标进行开发。

1.5 虚拟化技术的选择

每一种虚拟化技术都有其优势,如何发挥优势,取决于采用的解决方案。例如,对于一组使用相同操作系统的服务器,采用操作系统层次的虚拟化技术,就是一个好的选择。

并行虚拟化是一种折中的技术,尤其部署在那些可以感知到虚拟化的处理器的环境中。在提供了异构操作系统混合使用能力的同时,也带来了不错的性能表现。

完全虚拟技术是这3种技术中对于性能影响最大的,但采用这种技术的物理服务器上的虚拟系统,是相互独立的,并且与主机系统也是无关的。对于软件质量控制、测试来说,是最佳的选择。除此之外,完全虚拟技术还能支持最多种类的客户系统。

完全虚拟技术还提供了些独特的功能。例如,我们可以获取虚拟机的快照,快照中保留了虚拟机的当前状态,可以使用快照来进行灾难恢复。虚拟机的镜像文件则可以用来快速地创建新的虚拟服务器。

2 服务器虚拟化所带来的优势

2.1 降低IT成本

虚拟化技术带来的经济上的收益立竿见影。最显而易见的效果就是硬件的大量减少,例如对服务器数量需求的减少。利用市场上现有的技术,将IT开销缩减50%~70%是很常见的。有时几百台服务器可以用原先数量的 1/10来替代,在每台上运行多个虚拟服务器。更少的硬件,整体的IT预算就会下降。相对于其他任何因为迁移至虚拟化系统带来的开销的减少,硬件开销的减少是非常显著的。

对于虚拟化环境来说,节省能源是一个显而易见的益处。在大型企业中,由于有在一台物理服务器上使用同样的能源来运行多个服务器的能力,就能够节省相当多的能源开销。符合国际上大力提倡的“低碳环保”的新经济模式。

节省宝贵机房则是另一大优点。传统服务器环境中,终有一天机房的空间会被服务器占满。使用 Hyper-V或者VMware就可以结束这样的烦恼了。

很多由此带来的开销的减少,最终会反映在企业经济上的收益。比如说,设备的减少意味着用更少的电,对于楼层空间需求的减少,意味着更少的房屋租金。

2.2 充分利用未使用的计算能力和空间

CPU、内存使用率是服务器利用率的衡量标准,利用率过低,就意味着企业在为他们不需要的计算能力买单。一台服务器只发挥了25%的处理能力,但它的能源消耗依然会达到其额定功率的80%左右。

虚拟化的最大优势在于,能将多台物理服务器整合到一台机器上。只要磁盘空间和内存充裕,就可以继续向宿主服务器上添加虚拟服务器。在一台机器上运行多个虚拟机,可以使得企业能够更有效率地使用服务器。

事实上,如果将处理能力提高到60%左右,所带来的能源消耗的提升相对于性能提升来说,是忽略不计的。处理能力在60%左右时,能耗为额定功率的85%左右。用5%的能源消耗换来了处理能力成倍的增长,是非常有效率的。

2.3 可靠性的提高

非虚拟化的环境中,唯一提升可靠性的技术,就是将整个系统置于高可用性的集群环境中。但集群环境非常昂贵,也很难维护。大多数情况下,集群技术只用来保护那些及其重要的应用,例如DBMS和邮件服务器之类的,而其他大部分的软件应用,是没有任何保护的。

采用虚拟化则可以有完全不同的方法来处理这些问题。它在hypervisor层次上进行保护,而不是在应用层次上。这听上去并不好,因为当宿主系统运行时,万一应用程序出错,没有任何防护措施。但另一方面,非常容易去实现应用保护,因为采用应用程序无关技术,使得服务器级的可靠性提高了,相应地,软件的可靠性也就提高了。这个特性不仅在系统突发故障时很重要,而且在计划停机检修时则更重要。

2.4 灵活性

如果有新的软件或者操作系统需要安装,使用服务器虚拟化,能使这个过程在短时间内完成,因为无需再去准备新的硬件设备。这就使得响应速度提高的同时增加了适应性。去分析和量化虚拟化所带来的益处是比较困难的,因为这没有一个简单的公式去计算。企业的确需要花一段时间去思考,从长远来看,由虚拟化可以带来扩展性的好处。

2.5 更好地支持软件测试

虚拟化技术的另一个优势则是便于测试。在软件开发企业中,必须彻底地测试所开发的软件,尤其是ERP软件或是应用于关键任务的程序。

对于软件测试来说,一个与生产环境完全相同的测试环境是必需的,微小的环境差异就会使得测试缺乏可靠性。在非虚拟化环境中,测试的代价是非常高的,因为要为每一个生产环境搭建出一个完全相同的测试环境。还必须保持生产和测试环境的同步。如果是那些需要在集群系统里运行的关键应用,测试将会变得更复杂。可信赖的测试要求你的系统也必须是建立在集群系统里的,这个代价可能会贵得离谱。

在虚拟化系统中,可在任何时候获取生产实例的副本,并使用该副本进行准确地测试。这就为创建虚拟化的测试服务器铺平了道路,不仅提高了测试的可靠性,也提高了整个测试流程的效率。

3 服务器虚拟化后存在的问题

在数据中心里,服务器虚拟化技术正在替代传统的、庞大的服务器系统。在虚拟化趋势的背后,经济的因素占有不可取代的地位。虚拟化技术能在降低成本的同时,使得服务器的灵活性也大大提高。但是,事物总是有它的两面性,虚拟化后也的确带来了不少的问题[3]。

3.1 被放大的物理故障

传统环境中,一台服务器硬件故障意味着这台服务器不能用了,然后开启备份服务器。在虚拟世界中,所有的服务器都在一台物理主机上,有硬件故障了,那么所有的服务器就都不能用了。

举例来说,你有10台重要的服务器在一台物理主机上运行,但是你的RAID控制卡出问题了,硬盘上所有的数据全部丢失了。别说这种情况不可能发生,事实上,已经发生过这种情况,而且使用的还是品牌RAID卡[4]。

有几种方法可以去弥补这些弱点。首先是集群,这需要大量额外的工作。另一个方法则是备份这些虚拟机。如果物理服务器有故障了,就可以将这些虚拟机恢复到其他的物理主机上。因此,如果企业的虚拟化结构是有组织、有计划的,物理故障可能也就没有那么可怕了。然而,也就意味着企业需要在冗余硬件上投资,在某种程度上,也就削弱了虚拟化的优势。

3.2 新旧技术的冲突

安装虚拟化软件后,可以像以前那样部署操作系统,这看似非常简单。但事实并非如此,在虚拟环境下,很多事情都不一样。有可能会遇到这样的事情,你在一台宿主机上部署了10台虚拟服务器,但是过了一段时间,你可能会发现其中的几台停止运行了。发生了什么?当你以传统方式部署一台物理服务器时,服务器有多少内存,操作系统就可以使用多少。而在虚拟机上就不是这样了,如果还是按照传统的方式来分配内存,就会出现上述的故障了,系统会提示没有更多的内存可用了。

3.3 服务器蔓延

创建了很多的虚拟服务器,在消耗了宿主主机资源的同时,得到的回报却很低,这就是服务器蔓延。易于部署和缺乏整个生命周期内的管理,是造成虚拟机蔓延的原因。

即使虚拟机的管理可能会很复杂,但安装一台虚拟机却很简单。只需将虚拟机的镜像文件复制到宿主机上,新的虚拟机就创建好了。虚拟机增长速度会非常快,而缺少足够管理员去管理。那些新建的虚拟服务器也可能并不常用。

对于服务器蔓延,应该从管理的层面上来避免这种情况的出现,而并非是从技术上来解决。在物理服务器环境中,也会有类似的情况发生。

3.4 并非适应所有的应用

服务器虚拟化并不适用于所有的人。如果存在非常高端的应用,而这些应用是非常消耗资源且需要频繁访问内存和硬盘,那么就不应该把这些服务器应用放置于虚拟环境之下。而相对来说对性能要求不太高的那些服务器应用,则可以在虚拟环境下运行良好。

3.5 复杂的排错过程

虚拟化一个服务器意味着对整个系统做了巨大的修改。一个新的复杂的层次被加入了进来,这就引起了新的问题。主要的困难是,如果有样东西没有如计划中正常运行,那么可能需要相当多的额外的工作区寻找原因。

4 服务器虚拟化的趋势

2011年对于服务器虚拟化来说是令人激动的一年。在这一年中,采用服务器虚拟化技术的企业稳步增长,达到了70%的增长率[5]。在之后的几年中,虚拟化依旧会是IT界的前沿话题。

4.1 内存虚拟化

与在服务器上添加越来越多的内存相比,不如让内存成为可以共享的资源。内存虚拟化平台的原理是:聚集所有节点上的可用内存,使之成为内存池,各个节点的服务器都可以通过共享网络来使用它。服务器在为内存池做出贡献的同时,可以实现按需使用。

4.2 开源虚拟化的发展

在虚拟化厂商NxTOP看来,对个人计算机来说有4种基本部件,硬件、操作系统、应用程序和用户数据,而他们的目标则是,虚拟化这些部件并使得IT管理员可以通过网络,管理这些系统而不是单独地处理每一个实体系统。

4.3 桌面虚拟化

桌面虚拟化技术正在被加速应用。在大量对网络和存储系统的测试和分析后发现,从经济上来看,将桌面终端整合到虚拟桌面并没有太多的优势。但是新技术的推出,如固态磁盘和I/O虚拟化,正在推动桌面虚拟化进入应用阶段。

5 结论

服务器虚拟化可以为企业带来有形的(开销上的)和无形的(性能上的)收益。虽然前者能够让企业的领导者们充分领略虚拟化所带来的好处,也是他们所看重的,但是性能上的收益,才是可以将IT设施当作可提升企业市场竞争力的战略资源的原因。

另一方面,作为一门新兴技术,虚拟化也存在不少问题。当然,我们也有理由相信,随着时间的推移和各方的努力,这些问题都会得到不同程度地解决。

总之,虚拟化是趋势所在,企业应当从自己的实际情况出发,综合考虑虚拟化后带来的各种影响,找到一个适合自己的模式。

[1]ZhangCha.企业服务器虚拟化率不到 40% [OL].比特网,2011.

[2]金海.计算系统虚拟化:原理与应用[M].北京清华大学出版社.2008.

[3]Robin Layland.The dark side of server virtualization [OL].Network World,2010.

[4]Nicole Lewis.Virtualization Security[OL].www.focus.com,2009.

[5]王伟纲.服务器虚拟化[J].金融科技时代,2010.(2)

猜你喜欢
内存虚拟化服务器
通信控制服务器(CCS)维护终端的设计与实现
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
基于OpenStack虚拟化网络管理平台的设计与实现
对基于Docker的虚拟化技术的几点探讨
中国服务器市场份额出炉
H3C CAS 云计算管理平台上虚拟化安全防护的实现
得形忘意的服务器标准
计算机网络安全服务器入侵与防御
内存搭配DDR4、DDR3L还是DDR3?