基于Hyper-v R2的服务器虚拟化资源分配优化

时间:2022-09-01 12:11:47

基于Hyper-v R2的服务器虚拟化资源分配优化

摘要:基于微软的Hyper-V R2虚拟化架构,提出了整合物理服务器时的资源分配定性分析原则、定量计算规则和资源动态分配的方法。首先通过对比VMware vSphere、Microsoft Hyper-V和Citrix Xen Server的裸金属虚拟化架构,得出微软虚拟化Hyper-V架构的优势,然后从资源的定性分析和定量计算上给出资源分配方法,并借能与资源优化(PRO)监视器实现虚拟化后的动态资源分配,最后通过实践分析论证这些资源分配方法的效果,结果表明,该方法能很好的满足企业用户的需求,灵活性高,性能优越。

关键词:PC服务器;虚拟化技术;Hyper-V;资源优化;动态分配

中图分类号:TP311文献标识码:A 文章编号:1009-3044(2011)07-1680-04

Resource Allocation Optimization of Server Virtualization Based on Hyper-v R2

ZHANG Qing-yu, LIU Jun-wan

(Department of Computer Science and Information Technology, Central South University of Forestry and Technology, Changsha 410004, China)

Abstract: In this paper, based on the advantages of Microsoft's Hyper-V R2 virtualization architecture, Put forward the principles of qualitative analysis of resource allocation, quantitative calculation rules and the method of dynamic resource allocation to consolidate physical servers. First, compared the bare-metal virtualization architecture of the current three companies VMware vSphere, Microsoft Hyper-V and Citrix Xen Server, Concluded the advantages of Microsoft's Hyper-V virtualization architecture, then from the qualitative analysis and quantitative resource calculated the methods of resource allocation, And with performance and resource optimization (PRO) monitor to achieve dynamic resource allocation, Finally, demonstrated the effect of these resource allocation methods through practice, the results show that the method can meet the needs of enterprise customers with highly flexibility and superior performance.

Key words: PC server; virtualization; Hyper-V; resource optimization; dynamic allocation

虚拟化是走向云计算的途径之一,是实现云的一种技术途径, 目前虚拟化技术主要关注于服务器虚拟化[1]。服务器虚拟化技术经过多年发展,无论在功能、性能还是安全性方面,均已基本满足企业级用户的需求。资源的合理分配是服务器虚拟化的关键所在。当前业界提供PC服务器虚拟化方案的主要有VMware vSphere、Microsoft Hyper―V和Citrix Xen Server。三家公司均采用裸金属架构,但三者的架构也有着较大差别。VMware vSphere主要采用的是胖管理层的全虚拟化技术,Microsoft Hyper-V和Citrix Xen Server采用的是瘦管理层的硬件辅助虚拟化技术。随着硬件辅助虚拟化的逐渐发展,全虚拟化的优势逐渐丧失;现在VMware也在其虚拟化架构中也逐渐增加硬件辅助虚拟化技术,它的胖管理层模式,需要投入大量人力物力去开发专用设备驱动,且对新推出硬件设备的支持有一定延后;Citrix的虚拟化则侧重于Linux系统的企业构建虚拟化架构;Hyper-V 的裸金属架构则避免了上述缺点,是今后发展的方向,而且Hyper-V R2版本在实现功能上已完全可以与VMware ESX抗衡,并在Windows系统的虚拟化上和价格方面有天然的优势,还能完美支持Linux系统,因此本文重点研究利用Hyper-V R2整合物理服务器时的资源分配和动态调整的问题[2-5]。

本文的组织如下:第二部分是资源分配定性分析与定量计算规则;第三部分阐述虚拟化后资源分配的动态调整;第四部分给出实施效果分析;第五部分为结束语。

1 资源分配定性分析和定量计算研究

1.1 资源分配定性分析原则

服务器虚拟化是指多个操作系统在同一时间一起运行在同一台主机上[6]。即将一台物理的计算机软件环境分割为多个独立分区,每个分区均可以按照需求模拟出完整的计算机(虚拟机)。虚拟化技术的实质是通过中间层次实现计算机资源的管理和再分配,实现资源利用的最大化[7]。

Hyper-V R2实施架构物理拓扑图如图1所示,该模型是根据微软服务器虚拟化解决方案建议书[8]和实际中大中型企业已经存在的架构特点以及企业架构新的需求而提出,这一架构模型在一定程度上可以满足不同企业的需求,具有一定的通用性。

实施框架基于这样一个假设:企业中存在2种级别的应用系统环境,有些应用系统部署规模小,使用压力很低,允许短时间停止对外提供服务,进行离线维护处理。而另一些应用系统,组成系统的服务器环境较为复杂,平时使用压力较高,必须要确保全天侯的在线服务,无法忍受离线维护造成的应用服务的中断。依据上述假设,我们为企业设计了两种配置的服务器群组,用于适应上述的2种不同级别的应用系统环境

1.1.1 低性能需求虚机服务器群组

本模块中提供的虚拟机服务器环境是用来满足那种规模小,压力很低的应用系统环境。例如:DNS, DHCP, Print服务器。虚拟机宿主服务器上可以提供更多数量的虚拟机运行实例。由于每个虚拟机实例对宿主服务器造成的压力不大,因此虚拟机实例对应的虚拟机硬盘文件将会直接保存在服务器本地自带硬盘中,以节省硬件成本。从另一个角度上描述,本模块中的每个宿主服务器彼此独立,相互不存在依存关系。如果虚拟机出现宕机情况,允许维护人员进行手工恢复工作。

1.1.2 高性能需求虚机服务器集群

本模块中的宿主服务器将会构建出一个更加可靠的、高效的物理资源环境,用以承载对物理资源要求更多,更加重大的应用系统环境。模块中的宿主服务器间将会构建成一个高可用群集环境,为部署在其上每个虚拟机实例提供良好的高可用基础环境。换句话说,即使因为某种原因宿主服务器出现宕机现象时,运行在其上的虚拟机实例也会自动、迅速的漂移到高可用群集的其它正常运行的宿主服务器上。

在此实施框架下,可以通过使用微软的SCOM实现对虚拟机运行状态和宿主物理服务器运行状态的统一监控和维护管理[9],便于进行资源的动态分配和调整。

1.2 资源分配定量计算规则

在理想的情况下,根据微软的建议,总CPU需求、总内存需求、总网络IO需求、总磁盘IO需求,遵循一定的计算规则,但是在实际应用中往往很难实现,实际操作中需要根据理想状态公式进行修正后实施,而修正后的操作办法在实践中证明具有通用性。由于I/O则是虚拟化的软肋,在此针对实际重点对磁盘和网络做了详细说明。

1.2.1 最理想化的计算公式

1)物理服务器整合总资源需求

使用如下公式汇总所有需要整合的服务器总资源量:

总CUP需求可以表示为:

(1)

其中,Countkernel表示内核数量,Velcpu表示CPU速度,单位为MHz,Utlcpu 表示CPU利用率,以百分比形式表示。

总内存需求可以表示为:

(2)

其中,Memtotal表示全部内存,单位为MB,Memutl表内存利用率,以百分比形式表示。

总网络I/O需求可以表示为:

(3)

其中,AvgR_net表示网络平均每秒接收字节数,AvgS_net表示网络平均每秒发送字节数。

总磁盘I/O需求可以表示为:

(4)

其中,AvgR_disk表示磁盘平均每秒读字节数,AvgS_disk表示磁盘平均每秒写字节数

2)宿主机服务器可提供资源

每台宿主服务器能够提供给虚拟机使用的物理资源计算公式为:

为虚拟机提供的宿主服务器CPU能力:

(5)

其中,Countcpu表示CPU数量, Countcpu_kernal表示每个CPU的内核数。

为虚拟机提供的宿主服务器内存:

(6)

其中,Memtotal表示全部内存,单位为GB。

为虚拟机提供的宿主服务器磁盘IO能力:

(7)

为虚拟机提供的宿主服务器网络IO能力:

(8)

3)宿主机服务器能提供虚拟机数量

宿主机可支撑的虚拟机数量可表示为:

(9)

即宿主机服务器可提供资源比上虚拟机分配资源。

分别用CPU、内存、磁盘IO、网卡IO算得4个宿主机可支持的虚拟机数量数值,其中数值最小的就是宿主服务器最终能够支持的虚拟机数量。

1.2.2 修正后的资源分配定量规则

以上是理想的计算值(考虑了标准的虚拟化损耗)用于采购宿主服务器硬件规划用。实际每个虚拟机资源分配定量计算,通过Performance Monitor收集需要整合虚拟化的物理服务器性能指标(注意在典型负载和合理的采样周期下收集),数据收集方法如下:

确定收集指标为CPU,内存,磁盘,和网络,对应的四个计数器为Memory\Available\Mbytes, Network Interface Bytes Total,PhysicalDisk(_Total)\% Disk Time,Processor(_Total)\% Processor Time。收集时间为24小时,数据采集间隔采用系统默认值:性能日志为15秒钟,日志文件类型为:文本文件(逗号分隔),保存位置为“D:\Perfmon”目录下。

参照理想化公式,对收集的性能数据做以下数字处理后作为资源分配的计算规则。

1)CPU分配核数计算公式如下:

(10)

这里Kerneltotal为总核数,表示每台服务器的所有逻辑CPU核数, Utlmost为CPU的最大利用率,Valuephy为物理值,表示虚拟化宿主机的CPU速度(MHz)。σ为系数,一般取值为0.8~1.0,本文中系数根据经验选择为0.8。

2)内存分配计算公式为:

(11)

即总的物理内存大小减去可用内存的最小值即可得到需要的最大内存。分配原则是内存取峰值,避免磁盘交换。

3)磁盘格式的分配:

一般使用固定盘,因为固定的 VHD 优先考虑它有更好的性能,然后再考虑空间分配的问题。而动态扩展方式则可节省空间,实现动态调整。对于大的数据文件采用直通方式直接访问存储空间。磁盘空间的具体分配参考原物理机磁盘空间利用率。

基于三种磁盘方式的优缺点、微软建议[8] 以及实际的实施经验,我们的做法如下:

做法一:针对仅系统要求的系统,或者系统空间需求比较小的系统,我们推荐使用最大值不超过特定限制的固定大小磁盘。如Windows 2003 空间分配10G;Windows 2008 及 2008 R2 空间分配15G。

做法二:针对系统空间扩展的可能性较大的系统,但磁盘性能要求不高,则我们推荐使用最大值不超过30-60G之间的大小的动态扩展磁盘;

做法三:针对系统空间扩展的可能性较大的系统,并且磁盘性能要求比较高,则我们推荐使用最大值不超过30-60G之间大小的固定大小磁盘;

做法四:如果出现空间紧张的情况,则可以采取扩展VHD或者另外附加额外的VHD磁盘来解决。一些共享的软件或者备份,建议不要放在虚拟服务器上,而放在集中的文件服务器上,这样可以节省存储空间。

4)网络IO计算公式:

(12)

分配原则是取峰值网卡 I/O bytes/s ,Bytes为每秒传送字节数,最终单位换算成Mbps。

说明:在Hyper-V中,对需要进行互通的虚拟机,通过配置其网络设置可以让虚拟机之间以高达10G的网络连通速度通讯。对于需要彼此隔离的虚拟机,在网络上可将其放置到某个独立的虚拟子网中,实现虚拟机之间在网络上的隔离;除此之外Hyper-V内置内存隔离技术,可确保虚拟机在运行过程中的内存数据安全[10]。

Hyper-V有三种类型的网卡:

External virtual networks:使用这种类型时允许同一物理服务器上的虚拟机相互访问,并且允许虚拟机和物理机直接访问,还允许虚拟机和外部的网络进行访问。

Internal virtual networks:使用这种类型时允许同一物理服务器上的虚拟机相互访问,并且允许这台物理机上的虚拟机和物理机直接访问。

Private virtual networks:使用这种类型时只允许同一物理机上的虚拟机互相访问,不能访问本机和外部网络。

通过灵活使用这三种网络可有效实现虚拟机和物理机、外部网络的隔离。

2 虚拟化后资源分配的动态调整

虚拟化时,起初的资源最优化分配只是一种初始状态,初始阶段非常有效,然而不同业务应用的数据增长速度也不同,一段时间后某个虚拟机的资源可能就会出现紧张,进行资源的动态分配调整就非常有必要。微软的虚拟化管理工具SCVMM 2008的性能和资源的最优化(PRO)组件可以实现动态分配、调整资源,实时响应资源,使用预警提示形成自动执行解决方案,比如:增加分配磁盘空间给报警虚拟机。但是这需要事先定制和设定监控包,也是难点所在。在此结合实践经验提出了定制和设定管理包的通用方法,从而给出了资源分配的动态调整智能方案。

首先要部署SCOM对主机进行健康检查和资源监控,定制时可以针对现有监视器创建替代或创建其他管理包元素来自定义 PRO,如规则和监视器,从而满足其虚拟化环境的要求。定制时将以下两类必备管理包导入 VMM 2008 R2 管理包: Microsoft SQL Server 管理包和 Microsoft Windows Server Internet Information Services (IIS) 2000/2003/2008 管理包,调整管理包中的默认设置和阈值如下:

然后在SCOM中创建所有 Hyper-V 主机的替代,调整每台宿主服务器的资源预留值为80%,当资源产生瓶颈时,PRO会提示你应当把此虚拟机迁移到其它宿主机上。此时的PRO功能需要构建在Windows Server 2008故障转移群集的基础之上,决定迁移至哪个宿主机,是由智能放置来完成的。

3 科技项目背景与实施效果分析

3.1 科技项目承办单位的项目背景

上述资源分配规则,在湖南中烟工业有限责任公司2010年下半年的科技项目中成功实施,并得到了组织鉴定单位湖南中烟公司科技委办公室和主持鉴定单位湖南中烟公司科学技术委员会的高度认可。该项目由著名香烟品牌芙蓉王制造厂商常德卷烟厂承办。随着IT技术的进步,常德卷烟厂已建立起包括小型机、PC服务器、存储系统、网络系统为一体的大型数据中心,承载了多种数据及应用系统。目前的PC服务器已经由三年前的14台增加到了70台,基本涵盖了各种服务器,小型机也由4台增加到了现在14台,随着新增业务系统的大量部署,面对不断增长的信息需求,如何有效的进行服务器资源整合,合理高效地分配和动态调整资源,提升服务器资源的利用率,成为常德卷烟厂信息化建设解决目前面临问题的关键所在。本文的资源整合分配办法基于此背景进行实践验证。

3.2 资源分配的实验分析

实验对象为常德烟厂的12台物理服务器:趋势集中管理平台,档案管理系统,图书管理系统,考试管理系统,流媒体系统,BO开发(实验用),BOXI(BOXI程序+SQL2000),数据挖掘系统(websphere5.1+oracle客户端),OA测试系统,邮件系统,公文\政工网系统和离退管理系统。图2是虚拟化前后资源分配的性能对比。

目前Hyper-V可分配给每个虚拟机的逻辑CPU数最多为4核,若CPU空闲会通过“内核停车”技术节约用电。Vmware也不推荐给虚拟机分配超过4个CPU,因为Vmware的CPU共享机制要求有足够设置数目的CPU空闲才进行分配,否则会等待。

从CPU可以看得出来,尽管虚拟化后分配的CPU数目较少,但是性能并不受影响,在实际中依然可以正常的替代原来的物理机,同时还节省了资源,提高了资源的利用率,证明了性能虚拟后的优越性,也证明了上述提出的资源分配方法合理实用。

虚拟化前后服务器内存分配的变化如图5所示,只有数据挖掘根据实际情况调大了内存,以适应实际中新的要求。注:Hyper-V 中虚拟机分配的内存不能共享。VMware利用Memory Overcommit实现内存共享,从而使虚拟机能够拥有比实际可用的更多的内存 ,这个特性只有当虚拟机不使用对应的内存才会生效。一旦某个虚拟机完全使用了内存,其他的虚拟机会有性能瓶颈,VMware自己也不推荐在生产环境中使用。

可以看出,不论是Hyper-V还是Vmware,服务器虚拟化都需要科学严谨地计算分配CPU和内存等资源,才能保证虚拟化后性能不受影响,同时又最大限度节省资源

从上述分析可以看出,采用该资源分配优化后的优点:

1)节省了资源,提高了资源的利用率。从前后的CPU和内存的分配数目可以得到体现。

2)性能优越,丝毫不逊于虚拟前的物理机。12台服务器虚拟机不论是上线前的压力测试,还是虚机上线后用户的体验,都完满的达到了企业的要求。

3)动态资源调整的运用,可以提供超越物理机的性能,具有很大优越性。从前后的CPU和内存的利用率可以验证。因为分配的资源尽管减少,但是CPU和内存的利用率并不高,这不仅说明了本文的资源分配方法的可取,而且说明了动态调整资源的好处。

4)可以灵活的动态分配资源。在内存分配时数据挖掘系统内存增大,是结合实际需要而设定的,但是在原来的物理机中,要根据不断增长的业务的需求增加内存,不仅复杂,而且增加成本。

4 结束语

该资源分配规则和动态调整方法,成功的运用于湖南中烟公司的科技项目,很好的满足了企业用户的需求。在群集中PRO如何监控网络流量和存储空间来实现节点的自动转移和存储的自动迁移移是下一步资源动态分配研究的重点。

参考文献:

[1] Armbrust M,Fox A,Griffith R,et al.Above the Clouds:A Berkeley View of Cloud Computing[R].University of California at Berkeley Technical Report No.UCB/EECS-2009-28,February 10 2009.

[2] 李燕.Windows Server 2008中的虚拟化技术[J].软件导刊,2009,8(4):24-25.

[3] Oguchi,Yoshihiko,Yamamoto,Tetsu.Server Virtualization Technology and Its Latest Trends[J].Fujitsu Scientific and Technical Journal,2008,2(44):46-52.

[4] Michael Otey.Windows Server 2008 Hyper-V 一瞥[J].Windows IT PRO Magazine:国际中文版,2008(6):26.

[5] David Rule,Rogier Dittner.The Best Damn Server Virtualization Book Period[M].Publisher:Syngress,2007.

[6] 周铁成.虚拟化技术在数据中心架构中的应用研究[J].现代计算机:下半月刊,2009(4):88-89.

[7] 沐士光,师秀凤.虚拟化技术探讨[J].中小企业管理与科技,2009(19):275-276.

[8] 微软官方网站.

[9] Whalley M,Steinder D,Carrera I,et al.Server virtualization in autonomic management of heterogeneous workloads[J].Integrated Network Management,Munich,Germany,2007(25):139-148.

[10] Jan De Clercq.Windows Server 2008 Hyper―V Security[J].Windows IT PRO Magazine,2010,20(1).

上一篇:面向Web系统应用的目标性能测试方法研究 下一篇:虚拟景区中层次碰撞检测方法的研究