【IT168 资讯】随着绿色IT以及动态IT的概念不断深入人心,作为其主要实现手段之一的虚拟化技术似乎在一夜之间席卷而来。在IT业中甚至有“言必称虚拟化”的现象。难免有人因此质疑虚拟化技术是否有泡沫化的嫌疑。笔者从2002年开始使用虚拟化技术至今,经过多年的应用实践,可以很确信的告诉大家,虚拟化绝不是IT泡沫——如果能够正确的在企业中应用它,将为我们带来相当不错的收益。下面我通过介绍虚拟化技术在我报社逐步应用的过程,和大家分享其中的经验和教训。
第一阶段,初试锋芒。
我在2002年开始尝试虚拟化技术。当时虚拟化并不广为人知,技术成熟度也与今日相去甚远,主要应用在一些搭建实验环境的场合。我当时正需要对Windows 2000域环境进行功能测试,但是并没有足够的服务器和计算机搭建实验环境。为此我开始尝试在一台内存较大的普通PC上用虚拟机来搭建复杂的应用环境。经过初步尝试后,虚拟化技术带给我的感觉可以说是非常震撼——在这台配置相对普通的PC上,虚拟环境中运行了两台域控制器、一个XP客户端和一台Exchange2000服务器,其运行速度比真实环境并未逊色多少。而以往要进行类似的测试,起码要准备数台服务器和PC。
有了这次成功的应用经验,我开始在虚拟机环境中进行全部测试工作。如此灵活方便的测试手段,成为我学习并掌握先进技术的保障。
第二阶段,从“实”到“虚”,从“虚”到“实”。
早在用虚拟化技术搭建测试环境的时候,我就考虑过能否将如此先进的技术应用到生产环境之中。但是一方面服务器硬件性能不够强大,另一方面虚拟化技术还不够成熟,因此少有在生产环境中的成功应用。但是随着服务器硬件性能的不断提升,虚拟化厂商也逐渐推出了一些用于生产环境的产品。
我第一次将虚拟化应用于生产环境可以说是被“逼上梁山”——2005年10月,我报社广告公司的一台老旧NT服务器磁盘阵列(RAID1)中的一块磁盘损坏,另一块也工作不太稳定。由于此服务器年代久远,支持的磁盘已经无法买到,其上承载的应用和数据有随时崩溃丢失的可能。而当时不但没有新服务器来安装此应用,而且此服务器承担着域控制器的角色,重装过程非常繁琐,很难在短时间之内全面修复。好在当时广告公司有另一台比较新的服务器,其应用负载也不大。我就想到能否将旧服务器虚拟化之后运行在那台较新的服务器上。在简单的几次尝试之后,旧服务器便以虚拟机的方式在另一台服务器上顺利运行起来,其响应速度甚至比原来还要快的多。经过这次在生产环境中从“实”到“虚”的成功应用,我对虚拟化技术有了更强的信心。
随后在2006年底,我在外网实施客户端自动化部署和管理解决方案BDD2007的时候,便利用免费的虚拟化产品在一台物理服务器上完成了解决方案中全部五台服务器的部署。
此系统已经稳定运行将近两年,未出现任何问题。可以说,虚拟化技术应用在报社终于从“虚”走向了“实”,在生产系统中经过了实践的检验。
第三阶段,全面开花,从边缘走向核心,从免费产品到解决方案。
从2007年到现在,可以说是虚拟化技术在报社应用全面开花的一年。在经过外网生产系统的检验之后,内网的核心应用也开始使用虚拟化技术。我在今年内网网络应用架构升级改造时,全面采用虚拟化技术。并且为了使系统能够更加稳定可靠,应用热迁移、高可用性等高级虚拟化技术,开始使用企业版的虚拟化解决方案。报社的虚拟化应用终于走向成熟。
虚拟化收益。
说到这里,大家肯定希望了解一下虚拟化技术到底能为我们带来哪些好处。经过几年的实践积累,我认为虚拟化主要从直接和间接两个方面为我们带来收益
直接收益。
直接收益主要是那些我们在实施虚拟化技术之后,立竿见影的收益。它们往往与节省资金和成本的控制有关。
1.提高资源利用率:
报社应用的特点是应用服务器角色众多,但应用的资源占用程度普遍不高。以往我们采取的策略是为不同的应用部署不同的物理服务器。结果造成服务器泛滥,资源利用率极低。机房中那些看上去似乎十分气派的一排排的服务器,其实绝大部分时间中都是在闲置状态。根据我报社和兄弟报社的应用经验,很多应用服务器的资源浪费非常严重,在高峰时段服务器的CPU占用率也不过百分之十几。
使用虚拟化技术之后,能够充分利用服务器的CPU、内存和磁盘等资源。以往我们总是为一个应用角色分配一台服务器,这个应用就独占了此服务器上的全部硬件资源。而虚拟化技术使我们可以在一台物理服务器上运行多个逻辑服务器,这些逻辑服务器可以共享物理服务器的硬件资源。从而对服务器硬件资源充分利用。以我报社外网应用为例,如果按照以往策略需要部署5台服务器,每台服务器至少分配4块磁盘,一共就是20块磁盘。而现在我们通过使用虚拟化的动态磁盘技术,实现用多少,占多少。只要6块磁盘就可以满足需要了。
2.减少服务器数量,降低无谓消耗。
应用虚拟化技术之后,我们可以在单台服务器上承载更多的逻辑服务器,从而可以大大减少物理服务器的数量,进而节省机房空间和降低能源消耗。在当前节能减排的大环境下实现IT的绿色化。另外服务器数量的减少还可以降低网络设备接口占用,从而节省更多的网络设备。
3.降低软硬件购买成本。
这也是显而易见的事情,服务器少了,自然购买服务器的费用就降低了。而软件购买成本为何也可以降低呢?因为微软等软件厂商对虚拟化提出了与物理服务器不同的许可策略。比如我们可以用一个软件许可在虚拟机中运行四个Windows Server企业版实例。从而实现一个许可给4个逻辑服务器使用,大幅降低软件许可的购买成本。
间接收益。
另一类收益则体现在从简化管理到提高系统可用性等管理层面,而这些收益往往是难以通过金钱进行衡量的。
1.提高服务器部署速度。
以往我们部署一台服务器的过程相当繁琐,从制定预算购买硬件到操作系统和应用的安装,往往需要耗费数周甚至数月的时间。而在应用虚拟化技术之后,一台逻辑服务器从规划到配置完成投入应用只要数十分钟而已。
而另一方面,我们还可以更方便的将测试系统迁移到生产系统之中。从而实现从测试评估环境到实际生产应用的平滑过渡。
2.提高系统可靠性,减少计划内和计划外停机时间。
很多人认为虚拟化是“把所有的鸡蛋放在一个篮子里”,一旦服务器出现问题,将导致运行在上面的所有逻辑服务器也随之崩溃。其实情况并非如此,首先在我们的应用中本身就存在这样的单点故障问题。比如现在作为核心应用的活动目录服务器一旦瘫痪,整个企业应用也难逃停顿的厄运。作为报社应用,一旦采编服务器出现问题,整个应用也将陷于停顿。虚拟化技术如果通过很好的规划,使用高可用性技术,我们完全可以避免单点故障的情况发生。
通过使用动态迁移技术,我们现在可以在不关闭逻辑服务器的情况下将其移动到另一台物理服务器上。从而实现零停机时间的服务器硬件维护。我们终于可以不用再等到夜深人静的时候,熬夜进行服务器硬件维护了。
3.降低维护复杂度,消除“服务器硬件捆绑”现象。
在实施虚拟化技术之前,我们往往要面对很多各种型号和品牌的物理服务器。这些服务器的连接方式五花八门,承载的应用更是千奇百怪。随着IT人员的流动,甚至会出现一些被人遗忘的服务器长期在机房运行。如何有效地管理这些服务器恐怕会令每一位IT主管头痛不已。而经过虚拟化整合之后,我们可以通过统一的界面来查看企业中运行的每一台服务器的情况。很容易地对其进行管理和维护。
以往应用角色独占物理服务器的一个最大的副作用就是“服务器硬件捆绑”现象——一个应用被捆绑在一台具有特定硬件的服务器上。一旦此服务器出现问题,备用硬件很难买到,我们就会不得不去重装整个应用。但是正如大家所知,很多应用的安装过程非常繁琐或者其配置文档早就被遗失了。这样应用恢复会非常困难。但是使用虚拟化技术之后,应用不再和硬件设备相关,我们可以自由的更换服务器硬件。为了更换硬件设备而进行痛苦的应用迁移的经验将仅仅留在我们的记忆之中。
4.简化数据备份方式和恢复流程。
由于虚拟化之后逻辑服务器仅仅是保存在主机或者存贮设备上的磁盘文件。这就为我们简化备份策略提供了很好的支持。我们可以不再为不同的应用去考虑使用不同的备份解决方案。现在我们只要考虑如何去备份这些虚拟机文件就可以了。而使用新的备份技术,我们甚至可以在完全不影响虚拟机运行的情况下对其进行备份。从而不用再计算备份时间,考虑备份窗口的问题。与备份的简化一样,恢复流程也变得同样简单。只是去考虑恢复虚拟机的文件而已。
5.实现企业IT动态增长,便于规划和实施。
以前我们在购买服务器时最头疼的问题莫过于考虑配置多少硬件资源。由于我们很难预计应用的成长速度和资源消耗情况,因此往往在购买硬件的时候多多益善。在预算许可的情况下,购买尽可能多的硬件资源。而事后往往发现这些资源在购买几年后,服务器将被报废时也没有被用到。
而虚拟化技术可以帮助我们实现企业IT的动态增长。我们可以只购买真正需要的那些硬件资源。当资源不足时我们再去购买新的资源设备,将其加入企业的“资源池”中。因此我们以后购买服务器时考虑的不再是具体的应用,而仅仅是我们将要用到多少CPU处理能力、多大的内存以及磁盘空间。
6.拯救老旧应用系统。
很多企业中都运行着或多或少的老旧应用系统。这些应用或者由于开发商早已不复存在,或者由于升级成本过高,导致其只能运行在特定的操作系统版本之中。而目前很多新服务器不再提供对这些老旧操作系统的支持。同时很多应用的安装文档和介质也遗失或难以找到。此时我们可以利用P2V(物理到虚拟化)工具来非常方便的实现这些老旧应用系统到虚拟环境的迁移,从而保证其持续运行,保护软件投资。
经验教训。
在报社实施虚拟化的过程之中,我总结了以下经验教训,在这里与大家分享。
1.不要为了虚拟化而虚拟化。避免“因虚而务虚”。
虚拟化是当前IT发展的一个主要潮流,很多人为了追赶潮流而在未进行充分调研的情况下匆忙上马,因而并未取得预期的效果。在应用虚拟化技术之前一定要进行充分的调研工作,了解当前应用对服务器的资源利用情况,再根据实际情况酌情进行实施,才能收到较好的效果。目前很多厂商都提供了免费或收费的对现有架构进行虚拟化评估的工具。我建议大家在决定采用虚拟化技术之前,好好利用一下这些工具,对现有应用架构进行全面的评估之后再做决定。
2.不要追求“一蹴而就”。
很多人在了解了虚拟化技术的优势之后,希望能够尽快在企业中全面进行实施。但是由于大家对于虚拟化技术细节还不够了解,如果上来就在关键应用上实施,一旦出现问题,很难掌控。因此我的建议是先在周边应用上利用那些免费的虚拟化产品进行技术探索和尝试,当确信对虚拟化技术有了一定的深入了解,做足技术准备之后再在关键应用上实施。
3.当心虚拟服务器泛滥成灾。
由于在实施虚拟化之后建立逻辑服务器相当简单。如果不能有效控制,很容易造成虚拟服务器泛滥的情况。这些服务器会很快耗光企业的IT资源,使得虚拟化技术在实施后适得其反。因此我们需要建立良好的虚拟服务器管理流程,掌控其生命周期,才会保证虚拟化实施之后得到预期的收益。
4.虚拟服务器的安全仍然要加以重视。
虚拟服务器在应用角度和物理服务器并务差别,仍然需要对其中的操作系统打补丁和升级以保证其安全可靠。我们尤其要当心的是那些不经常运行的虚拟服务器,一定要定期启动他们对其进行升级。我就曾经在此问题上吃过亏,一台很久没有启动过的虚拟服务器没有安装关键的安全补丁,在一次偶然启动之后被感染了病毒。虽然没有对网络造成很大影响,但是也让我对此记忆犹新。
另一方面我们也要当心虚拟服务器的数据安全,一定要保护好虚拟机文件,这些文件一旦失窃,其效果将等同于物理服务器的失窃,但其更有隐蔽性,对企业的网络安全会造成更大的威胁。所以我们要保护好诸如虚拟机备份文件这样的数据,防止其被恶意使用。