第9期
徐小龙:面向绿色云计算数据中心的动态数据聚集算法
1927
算法伪代码如下所示:
Dataaggregationalgorithm
Put
alldataintothesystemDataPool;
DataPool={D1,D2,D3,…,D。,…,D。);
TheDataPoolisdividedintoseveralDataSetsbased
on
thedatavisithistory;
DataPool=DataSetlUDataSet2U…UDataSet。;fork一1
tO
mdo
While
thenumberofdatainDataSetIis
not
less
than2andthereare
dataable
tO
beaggregated
doPickD,,D,,∈DataSet^;/*D,.place—NodeA,D,.place—NodeBifVisitsA≥VisitsB
thenifVisitsA+Visits,.≤口then
Bis
moved
to
NodeA;
Visits^一VisitsA+Visits,;DataSet^}DataSetk一{D,);
elseif
VisitsB+Visitsi≤口
thenD。ismoved
to
NodeB;
VisitsB}VisitsB+Visits,;DataSett}DataSetk一{D:);
elseifVisitss
4"Visitsf≤口
thenD,ismovedtoNodeB;
VisitsB—VisitsB+Visits。;DataSet^pDataSet女一{D,);
elseifVisits^4-Visits,≤口thenDJismoved
tO
Node^;
VisitsA一--Visits^+Visits,;
DataSetk+-DataSet^一{D,)
通过分析所有节点上数据的历史访问记录,基于数据节点A的当前服务提供量为Visits。,节点B的服务提反复进行上述操作,直至所有数据与任务实现有序化聚集和重新分布。
步骤2将具有基本相似运行规律的节点部署于数据中心同一区域Section内。
经过上述的数据聚集后,重新考察各节点的服务提供量。若节点A和B运行规律相同或基本相似,则将节点A和B重置于同一个区域中,以实现集中温度调控。
步骤3运行规律相反节点的相互数据备份以实现服务的持续提供和数据的不间断访问。
在实现数据和节点的重新部署后,节点的深度休眠状态和关闭状态将有可能导致部分数据无法被少数用户访问的情况出现。
万方数据
算法通过运行规律相反节点数据的相互备份以实现数据的不间断访问:假设节点A和节点B运行规律基本相反,系统运行时段分为△。,△:,△3,△4和△。,节点A在△。,△3,△;处于高度活跃状态,而在△。,△。处于不活跃状态,而节点B的运行规律与节点A基本相反。系统将节点A的数据副本存放于节点B,节点B的数据副本存放于节点A。由此,当节点A(A:和△。期间)进入深度休眠状态或关机状态时,将原本需要节点A提供的数据服务将改由节点B来
提供;反之亦然。2.4算法分析
本文提出的算法具有以下优势:
(1)数据聚集和节点聚集后,部分区域节点工作负荷明显增加,功耗也随之增加,部分区域则完全消除了服务器的待机空转状态,温控设备也无需为该区域制冷降温,从而降低了总体能耗。
(2)数据聚集后,节点在开机运行时,将尽量处于高负载状态,由此提高了资源利用率;得益于算法采用的运行规律相反节点数据的相互备份实现服务的持续提供和数据的不间断访问,系统QoS也得到了保障。
(3)算法使得数据中心各节点轮转运行,这种工作方式可显著延长硬件设备的使用寿命以及提升硬件设备的稳定性。
3
仿真实验
3.1仿真实验
本文模拟构建由廉价节点构成的数据中心,每个节点
性能参数及功耗实测情况如表1所示。
表1
实验环境节点性能参数及功耗
最大负荷工作状态节点总功耗为138W,其他部件功耗8W;待机状态下节点总功耗为84W;负载50%下(CPU两核满载)节点总功耗为124W;关机状态下节点总功耗约
为2.5W,若采用关机节电开关技术则为0。
节点反复处于工作、待机和关机这3种状态。其中,待机是机器的CPU、硬盘等处于基本不工作,机器仅通过主板维持内存数据不丢失并记录机器中其他设备的状态。从上表中可以看出,处于待机状态的节点仍有不小的功耗,传统的不从节能角度考虑数据部署和任务调度的数据中心不得不让大量的节点处于造成空耗的待机状态,以避免数据无法被访问导致的用户满意度下降的情形发生。而关机状态下的节点功耗极低,主要是电源线等部件的空耗,基本可
以忽略。
访问规律,将所有数据划分为若干个数据子集合。数据D:和D,由于基本相似的访问规律被归入一个数据子集合中。
供量为Visits。。若在时段厶内,节点A的访问量大于节点B,且Visits一+Visits,≤p,则将B将转移至节点A;否则,若Visits。+Visits。≤口,则将数据D。重部署于节点B。这样做的目的是为了进一步降低计算和数据重部署的系统开销。如果上述两种情况均不满足,放弃本次数据聚集。