李文婵,彭志平
(1.江苏科技大学 计算机科学与工程学院,江苏 镇江 212003;2. 广东石油化工学院 计算机与电子信息学院,广东 茂名 525000)
在虚拟化数据资源管理中心环境[1]中,应用被封装在一个或多个虚拟机中。例如典型的互联网应用由web服务器前端、中间应用逻辑和后端数据库3个层次构成;这些层次可能各自封装在独立的虚拟机中。
虚拟化资源的调度存在于两个层次[2]: 局部调度涉及如何在虚拟机之间合理共享物理机的CPU、内存和IO资源,由虚拟机管理器负责;全局调度解决如何优化组合虚拟机、在物理机间平衡负载,这相当于把资源合理地分配给应用。本文主要讨论前者。
虚拟机技术允许多个虚拟机同时运行,每个虚拟机有自己的操作系统OS并同时支持多个服务,这就需要在同一个物理机上共享资源。它主要依赖隶属于硬件和来宾OS之间的虚拟机监视器VMM,以便在虚拟机之间分配资源。
CloudSim是在GridSim模型基础上发展而来,提供了云计算的特性,支持云计算的资源管理和调度模拟。CloudSim提供基于数据中心的虚拟化技术、虚拟化云的建模和仿真功能。CloudSim提供了资源的监测、主机到虚拟机的映射功能。CloudSim的CIS(Cloud Information Service)和DataCenterBroker实现资源发现和信息交互,是模拟调度的核心。用户自行开发的调度算法可在DataCenterBroker的方法中实现,从而实现调度算法的模拟。
XEN[3]是由剑桥大学开发的开源准虚拟化虚拟机,通过改动客户OS,使其以为自己运行在虚拟机上,能够和VMM协同工作,图1显示了XEN虚拟机的体系结构[4]。在XEN上的众多域中存在一个特权域(Dom0),用来辅助XEN管理其它域(DomU),提供相应的虚拟资源服务(处理器调度和内存分配等),特别是DomU对I/O设备的访问。管理程序(Hypervisor)允许Dom0直接访问硬件,而DomU的I/O数据包都必须经过Dom0的转发,通过事件通道通知将数据包传递给对方。
图1 XEN体系结构Fig. 1 XEN Architecture
强化学习[5]方法不依赖于被控对象的数学模型和先验知识,而是通过试错和与环境的不断交互获得知识,从而改进行为策略,具有自学习的能力。强化学习单元与环境之间的关系如图2所示。rk是环境针对当前时刻学习单元所选择的动作的好坏给予学习单元的奖赏值,其选择形式有很多种,比如选择二值型:{-1,0} ,当rk=0时表示该动作是正确的,得到了来自环境的奖励,当rk=-1时表示该动作是错误的,遭到了来自环境的惩罚。
图2 强化学习单元与环境关系图Fig. 2 Diagram of there lation shipbet ween leaming agentanden vironmen
一个RL问题通常可化成一个马尔科夫模型(MDP)[6]。正常情况下,对一个环境状态集S和一个动作集合{(A,MDP)}模型通过状态转移概率被定义成Pa(s,s)=Pr(st+1=s|st=s,at=a) ,还有一个立即回馈函数值R=E[rt+1|st=s,at=a,st+1=s]。在每一个步骤t,Agent获得它当前的状态at∈S和可能的行为集st∈A(st),agent转移到下一个状态st+1,并从当前环境获得一个立即回馈值rt+1。在状态S下采取动作a的值函数被定义成:
这里0 ≤ γ < 1为折扣因子帮助Q(s,a)收敛。
一个VM配置任务通常被构想成一个连续状态的折扣MDP,目标是优化所有的VM性能。我们定义基于单个VM的应用层次性能的回馈函数;而状态空间是虚拟机上的硬件配置信息,这些可以通过驱动域被完全观察到;动作则是配置参数的联合改变。具体设想如下:
回馈函数reward:单个VM的性能通过一个分值score来衡量,其中thrpt为当前吞吐量,ref_thrpt为参考吞吐量,resp为反应时间,penalty是违反SLA时的惩罚,wi是第i个虚拟机的权重,1≤ i≤n
状态空间:我们简化为(men1,time1,vcpu1…menn,timen,vcpun,) , meni, timei, vcpui分别代表第i个虚拟机的内存大小,调度值credit和虚拟cpu数目。
行为集:对上面3个配置参数可能的行为即是增加,减少或是维持不变。对RL任务来说,行为即是对每个参数的操作使之增加,减少或不变。
在VM配置任务中,基于RL的代理问题依随一种贪心算法[7]采取重配置措施。在一个小概率下,Agent选择一个随机动作并在大部分情况下跟随它发现的最好策略实施行为。开始于任何初始策略,Agent逐渐在之后的每一步根据它得到的回馈值重新定义策略。
SRLAC是基于RL的虚拟机自动配置Agent,被设计成一个独立的定居在驱动域中的精灵,它充分利用了dom0提供的控制界面来控制单个虚拟机的资源配置。图3强调了SRLAC的组织形式和XEN的虚拟化环境。
图3 SRLAC结构示意图Fig. 3 The organization of SRLAC
SRLAC通过监视每台虚拟机的性能回馈来管理VM的资源配置。在一个提前预知的时间段内,重新配置行为阶段性的进行。SRLAC查询驱动域的当前状态并计算出可靠的行为。按照RL算法产生的策略,SRLAC选择一个动作并将其送入dom0,以便VM进行重新配置。在每一步骤结束之时,SRLAC收集每个VM的性能回馈,然后计算立即回馈值。得到的新的立即回馈值通过RL来处理,SRLAC依据处理结果更新配置策略。
本实验的开发环境是基于Windows XP操作系统,内存在2G左右,CloudSim版本为2.1.1,采用MyEclipse下开发。实验中需要建立资源池cloudlab,配置Windows操作系统的实验环境虚拟机模板,安装Xen Tool,我们使用Xen 3.1作为虚拟环境,这里我们设计了一系列实验来展示依据RL的SRLAC的有效性。图4列出了CloudSim中资源池cloudlab虚拟机图4个不同的VM设置。
图4 cloudsim配置Fig. 4 The configuration of cloudsim
在这个实验中,应用和资源的数量被限制在一个小规模集合里,即环境是可控的。我们创建了虚拟机运行服务,代表了服务器虚拟化的应用,它是多层的TPCW[8]基准(面向电子商务的基准程序),即电子商务应用,TPCW是典型的CPU密集型应用,在这个可控环境中,内存参数是可以被修改的。通过调整将CPU资源分配到每一层,SRLAC可以最大化TPCW的吞吐量。
CloudSim仿真步骤为:
1)创建一个数据中心A;
2)通过A建立内存、CPU和吞吐量等资源参数;
3)注册。对 CIS 发送注册信号,注册成功后即刻登陆;
4)Data center Broker 将进行信息交互过程的管理。
RL算法并不需要假设任何系统模型,它在与环境的相互作用中提出策略并从新获取的经验中更新策略。在这个实验中,我们将应用的吞吐量作为最优目标。为限制问题规模,我们规定每层最多3个虚拟CPU。SRLAC被分配了一个基于表的Q值函数,并且全都被初始化为0。我们使用Sara(0)算法,其中α=0.2, γ=0.9, ε=0.1,来驱动配置代理,配置间隔被设为50秒。代理持续运行直到Q值收敛,最终一个最优配置策略便可以从Q表中得到。RL算法在上面3种工作负载下重复运行最后得出3种策略。图5描述了SRLAC在动态和静态策略下的在线性能,曲线是TPCW得到的吞吐量。结果表明,RL agents 都可以自动驱使一个不合理的配置使之在几步之内达到一个比较好的设置情况,TPCW的吞吐量也得到增长并达到一个更高的水准。RL算法可能的最好结果就是Agent适应了环境并得到了最优的性能。
图5 SRLAC在TPCW应用中的性能Fig. 5 SRLAC performance with TPCW application
文中讨论了虚拟环境中虚拟资源的分配问题,所利用的方法是基于RL的自动资源分配算法。自我配置系统自动适应软件参数、硬件资源以达到正确的功能应用和更好的性能优化,RL算法无疑是其中一种具有潜在利益的好方法。本文讨论的算法是在仿真软件中进行,对环境和资源维数有要求,而实际环境下会更复杂,这就需要我们更深一步的研究,RL算法是人类智慧的表达,将其应用在云环境中虚拟资源的自动配置上将是它的很好发挥。
[1] 黎寒光. 虚拟化技术介绍及虚拟应用环境实践[J].数字技术与应用,2010(4):79~81.LI Han-guang. Introduction of Virtualization technology and the practice of virtual application environment[J].Digital Technology and Application,2010(4):79~81.
[2] Amazon. Amazon EC2 Pricing[EB/OL].(2011). http: / /aws. amazon.com/ec2/pricing/.
[3] Barham P,Dragovic B,Fraser K.Xen and the art of virtualization[C] //2003.
[4] 石磊,邹德清,金海.Xen虚拟化技术[M].武汉;华中科技大学出版社,2009.
[5] 张汝波,顾国昌,张国印.强化学习系统的结构及算法[J].计算机科学,1999,26(10):53-56.ZHANG Ru-bo,GU Guo-chang,ZHANG Guo-yin.The system structure and algorithm of Reinforcement learning[J].Computer Science,1999, 26(10):53-56.
[6] 胡奇英,刘建庸著.马尔可夫决策过程引论[M].2版.西安电子科技大学出版社,2000.
[7] 仲宇,顾国昌,张汝波.分布式强化学习的体系结构研究[J].计算机工程与应用,2003(11):111-113.ZHONG Yu,GU Guo-chang,ZHANG Ru-bo.Research of distributed reinforcement learning architecture[J].Computer Engineering and Applications, 2003(11):111-113.
[8] 周万江,晏蒲柳.Web服务器性能评测软件的原理及发展[J].计算机应用研究,2003,24(8):93-95.ZHOU Wan-jiang,YAN Pu-liu. The principles and development of Web server performance evaluation software[J].Application Research of Computers,2003,24(8):93-95.