李超 张建强 凡小明
中移系统集成有限公司 北京 100052
面向数据中心,传统的资源分配策略主要是基于虚拟化资源的调度技术,通过虚拟化技术将有限的物理资源重新分配。底层利用率较低的虚拟机,会通过虚拟机动态迁移技术被整合到同一台服务器上,空置的服务器将会被关闭或强制休眠,以达到降低能耗的目的。
影响数据中心高效节能资源分配方法的因素主要有以下三个:一是数据中心资源监测方法是否准确高效,是否能够反馈准确的实时资源数据为资源分配策略提供支撑;二是能否建立能够准确地计算出数据中心能源消耗情况的能耗计量模型;三是能耗计量模型的高效率自适应算法,在确定能耗模型后,能够进行高效稳定的极值寻优求解,并能快速地进行资源的分配[1]。而目前的资源分配策略主要存在以下不足:首先,监控资源的方法基于单一的轮询方式或者事件驱动方式,在监测云数据中心虚拟资源的动态变化时灵活性较低;其次,目前通常采用对CPU利用率或者内存利用率等因子进行时间积分的方式建立能耗模型,在通过遗传算法对模型进行极值寻优,从而进行资源分配,这种做法不利于提高工程运用中的效率,而且也不能自适应的去调节模型参数。
为了解决以上问题,本文提出一种基于神经网络的数据中心能耗模型,其架构主要包括实时自动化监控模块、能耗模块和基于神经网络模型的资源分配模块。该架构既能灵活地监测云数据中心的虚拟资源,又能够提供自适应、自组织的资源分配策略,并将监控系统采集的数据不断加入到神经网络的训练集中,形成闭环的自适应数据中心资源分配系统,以达到数据中心节能的目的[2]。基于神经网络的数据中心能耗模型共包括基于代理节点的实时自动化监控模块、能耗模块和神经网络求解的节能策略模块。首先,将数据中心集群中的物理主机进行编号(1、2…m),然后对物理主机内的虚拟机编号为(1.1、1.2…1.n),即V(m.n),第m台主机上的第n台虚拟机,自动化监控模块将各个虚拟机的(Rstatus,Cstatus)的值获取出来,以便选取不同的监控方式,并将监测到的各虚拟机的(Ucpu,Umem)获取出来并传给能耗模型模块,能耗模型模块获取2个输入参数Ucpu和Umem,建立以Ucpu和Umem为输入参数,以总体能耗E为参数的非线性函数模型。基于神经网络模型的资源分配模块获取到Ucpu和Umem并存储,利用RBM神经网络求解能耗模型,然后求解出能耗最小时,所对应的Ucpu和Umem的参数矩阵,最后依据Ucpu和Umem进行虚拟资源的分配。此处需要说明的是,CPU、内存、网络接口以及磁盘存储量是服务器计算节点能耗的主要部分,本文中主要在建立能耗模型后,利用神经网络中的RBM算法对能耗模型进行非线性函数拟合求解,得出能耗最小时各虚拟机所对应的Ucpu和Umem,从而进行资源分配,故本文中不考虑网络因素,并将其它因素作为基础常量进行建立模型[3]。
实时自动化监控模块的架构图如图1所示,主要包括监控模块控制器、数据存储模块、集群监控器、代理节点五个部分。通过周期性的接收代理节点发送该节点处的CPU利用率Ucpu和内存的利用率Umem数据,以此作为数据中心的资源监控信息。
图1 实时自动化监控模块架构图
固定周期轮询的监控方式,能够监控到稳定不间断的有效数据,但是它灵活性不足,不能根据实际的状况调整监控周期,从一定程度上来说,消耗了资源。而事件驱动方式的监控能够在任务多、资源利用率比较大的情况下,及时触发,不会因为轮询次数过多而引起资源阻塞,为了保证监控系统的可靠性运行,本文采用两者结合的监控方式进行监控。
数据中心的能耗主要是各服务器计算节点的能耗,主要包括虚拟机CPU、磁盘存储、网络接口和内存四个部分。与系统资源相比,CPU和内存是计算节点能源消耗核心部分。而根据计算系统运行原理,CPU能耗的增加必然导致内存能耗的增加;磁盘存储的能耗变化则是一定的变动区间内,磁盘一旦使用,必然会有能源消耗;而网络的能耗的产生则主要是由网络交换设备的运转而产生的,在实际工程的资源分配策略中,主要考虑CPU和内存能耗,把其它的相关因素作为基础常量考虑。
本文主要针对目前数据中心资源分配策略中的监控资源方法单一、灵活性有限的问题,提出一种基于神经网络模型的数据中心节能策略方法,本方法不仅可以提供自动化的监控模块和能耗模型,还能提供基于神经网络模型的节能策略,经过试验具有良好的能耗节省率。