当Windows Server 2008正式推出时,Hyper-V虚拟化插件的功能仍然不是很完善。在Windows7中,微软修正了Hyper-V的部分功能。不仅在性能上还是在功能上都有了很大的改进。
无论是否采用虚拟服务器,服务器的CPU最大的负荷只有60%左右。如果超过这个负荷的话,那么就会对服务器上部署的应用服务产生不利影响。用户访问服务器上的资源速度会明显下降。所以要在Windows7上实现虚拟化应用时,一定要注意这一点。
在Windows Server 2008种,提出了一个令广大系统管理员欣喜不已的一个功能,即Hyper-V插件。其实这就是一个微软操作系统提供的虚拟化软件。不过可惜的是,当 2008正式推出时,这个功能仍然不是很完善。在Windows7中,修正了Hyper-V的部分功能。不仅在性能上还是在功能上都有了很大的改进。不过要在Windows7上实现虚拟化,还是需要注意很多内容。具体的说,需要注意以下几个方面的内容。
一、需要注意CPU的最大利用率。
现在大多数企业的服务器,其CPU处理器的使用率只有5%左右,很少有服务器的CPU使用率会长期在10%以上。为此,这也就意味着服务器上有过多的处理能力未被利用。通过虚拟服务器,将多个应用服务合并在一台服务器上,可以帮助企业降低信息化项目上的支出,提高资源的利用率。但是需要注意的是,在服务器上实现虚拟化服务器之后,这个CPU的使用率达到多少是合适的呢?有些系统管理员在这方面可能会有误区,他们会认为达到80% 或者90%以上才是合理的。其实不然。根据笔者的经验,无论是否采用虚拟服务器,服务器的CPU最大的负荷只有60%左右。如果超过这个负荷的话,那么就会对服务器上部署的应用服务产生不利影响。用户访问服务器上的资源速度会明显下降。所以要在Windows7上实现虚拟化应用时,一定要注意这一点。不要把CPU的负荷设置的太高。通常情况下,如果在Windows7操作系统上实现虚拟化应用,集成多个应用服务后,CPU的平均负荷最好能够控制在60%左右。最高(如对应用服务器上的数据进行备份等等)不能够超过80%。否则的话,应用服务器的性能会急剧下降。
二、要注意I/O对虚拟服务器性能的影响。
从理论上讲,Windows7 操作系统支持多达十几个的CPU处理器,支持的内存也很大。但是需要注意的是,有时候这个CPU越多或者内存越大,并不能够代表服务器的性能越好。有时候,即使配置了很多的CPU或者内存,其实际的负荷率都很低。但是应用服务器的性能仍然不是很理想。这是怎么回事情呢?因为CPU与内存的大小虽然在很大程度上决定了服务器的性能,但是并不是唯一的确定因素。当CPU与内存不再是左右服务器性能的因素时,I/O能力对服务器性能的影响就会很突出。特别是在虚拟服务器的环境下。
如现在要把分布在五个服务器上的应用服务利用Hyper-V 技术集中在一台服务器上实现。此时会出现什么情况呢?首先,本来分散在五台服务器上的网络流量都要集中在一台服务器上来。也就是说,现在虚拟服务器处理 CPU与内存的负担加重之外,更重要的是同一块网卡、同一根网线需要传输更多的数据。其次使用Hyper-V虚拟服务器后,数据的读取也是在原先的硬盘上完成。这也就是说,硬盘的I/O负担也会成倍的增加。为此如果虚拟服务器的CPU和内存配置确实比较好,在部署虚拟服务器之前其负荷率只有3%。即使实现了虚拟服务器集成多个应用服务器后,其负荷率也只有达到40%左右,也是可以接受的。但是此时很可能性能没有系统管理员想象的那么好。这主要是因为现在影响虚拟服务器上应用服务性能的瓶颈因素是I/O能力(网络网络的吞吐量与硬盘的吞吐量),而不是CPU或者内存。
当Windows Server 2008正式推出时,Hyper-V虚拟化插件的功能仍然不是很完善。在Windows7中,微软修正了Hyper-V的部分功能。不仅在性能上还是在功能上都有了很大的改进。
这就好像商品房开发中的房间与电梯的关系。开发商有这个实力的话,尽管可以造高楼大厦,造的越高,房间越多。这就好像虚拟服务器配置越高,可以合并的应用服务器越多。但是此时进出这幢大楼的人多,此时大楼即使可以容纳数以百万计的人,但是由于电梯数量有限,他们的出入将收到很大的限制。他们不得不花很长的时间来等待电梯。这就使I/O能力不足的表现。为此有些访问量高的大楼,如商场等等,即使面积不大,也必须配置多部电梯来分散客流。这跟虚拟服务器是相同的道理。
为此如果在服务器上利用虚拟化技术合并了多个应用服务的话,系统管理员就有可能需要视情况来调整一下硬件配置。如采用I/O性能更好的硬盘。或者采用磁盘阵列技术来提高硬盘的I/O能力。再或者在虚拟服务器上配置多块网卡或者将虚拟服务器部署在主干路由器上来提高网络传输的性能。总之,无论是采用哪一家的虚拟化软件,其服务器的性能优化就会变得更加的复杂。为此在使用Hyper-V,笔者对各位系统管理员的建议是慎重。特别是企业已经有多台实体服务器的情况下,不要为了赶时髦,而利用Hyper-V虚拟化技术将他们集成在同一台服务器上。
三、善于使用快照技术。
快照技术是Hyper-V虚拟化软件的一个非常强大的功能。Hyper-V中的客户会话快照使用的是微软的VSS技术,来抓取服务器上的文件印象。这种快照技术,不仅在单一服务器上可以使用,在虚拟化服务器环境中也可以工作的很好。在实际生产环境中,快照常被用来进行容错与灾难恢复。
通过客户映像快照可以将一个映像回滚到前一个状态。如有时候系统管理员在测试部署方案的时候,这个客户映像快照就非常的有用。当应用环境搭建好之后,系统管理员需要进行详细的测试,以判断这个方案的可用性。但是可惜的是,在测试的过程中会产生很多的垃圾数据。为此当测试完之后,删除这些垃圾数据需要花费系统管理员很多的时间。为此有些系统管理员宁愿冒着应用环境不完善的危险,也不愿意队搭建好的应用环境进行详细的测试。为此在实现虚拟化的过程中,系统管理员就需要善于使用客户映像快照的功能。当有了快照技术之后,用户测试过程中产生的垃圾数据或者进行的一些破坏性测试不需要手工清楚。可以通过快照技术将一个印象回滚到前一个状态。
另外快照技术在软件演示的时候也非常有用。如笔者因为工作的关系,经常需要给客户作培训与演示。如果有了快照技术的支持,那么笔者就可以添加删除信息、调整软件设置、修改客户印象上软件的信息等等。完成培训或者演示之后,笔者不需要再反过来操作一遍。即不需要回过头来删除更改。或者说再进行下一次演示时,不需要从头开始重建印象以再一次进行演示。此时笔者只需要将映像回滚到对印象做出变更前的快照即可。如此重复的回滚印象,则笔者就可以重复的执行相同的过程,而不用进行反向的操作。据笔者所知,现在不少的微软系统培训师或者销售人员在培训与演示的时候,都采用了这种快照技术,以方便资源的重复利用。所以无论企业是否需要实现虚拟化策略,但是这个Hyper-V虚拟化软件的快照技术系统管理员还是有必要掌握。因为无论是在方案测试还是在系统培训或者演示上都用的着。
不过对于生产型的虚拟服务器来说,快照的主要用途还在于容错与灾难性恢复。如在系统故障前有个快照的话,那么系统管理员就可以凭借这个快照将服务器恢复到服务器失效或者问题发生的那个点上。如果没有快照,即使有系统备份文件,系统管理员也可能需要花费几个小时的时间才能够恢复数据。因为不仅需要恢复操作系统与应用软件,还有其中的重要数据。而采用快照的话,系统管理员所要做的仅仅是选择故障发生之前的那个快照,并选择启动这个客户映像即可。当系统启动客户映像之后,虚拟服务器就处在快照创建时印象所处的状态。