论文部分内容阅读
摘 要:本文提出一种利用专家系统建立虚拟机部署和迁移机制的方法。该方法以CLIPS语言作为框架,并结合专家系统的特点对虚拟机的部署和迁移机制进行改进,提出基于不同业务特点的负载平滑预测的部署策略,和基于脏页预测匹配的迁移策略,适用于复杂环境的云环境下虚拟机的管理,通过模拟测试验证了该机制有效性。
关键词:专家系统;虚拟机;部署;迁移;平滑预测
虚拟机的部署和迁移是云计算应用的重要课题。虚拟机的迁移需要在保持虚拟机运行的同时,把它从一台主机转移到另一台主机上,以灵活调配计算资源。目前,虚拟机迁移和部署的比较先进的方法主要有“快速预拷贝技术”和“负载均衡部署机制”等。快速预拷贝技术通过判断在迁移过程中频繁改动的内存页面,决定是否在最后一轮迭代中传输,以降低内存脏页率,达到快速迁移的目的。
专家系统由于能在一定程度上解决不确定性,能有效地模拟人类专家的各种判断能力并能学习新规则、新知识等特点而越来越被广泛应用。本文在此基础上对虚拟机部署机制进行改进,提出利用专家系统的方法,对虚拟机的部署和迁移进行一体化调度,智能地选择合适的主机和时机对虚拟机进行部署和迁移,探索了基于专家系统的云环境下虚拟机智能部署和迁移机制和方法,详述了专家系统的设计原理。
一、改进的基于均衡负载的虚拟机部署机制
1. 虚拟机部署机制
云计算域内的调度中心接受用户的部署请求,选择虚拟机模板,根据其业务特征计算出负载量,并向域内的宿主机发出资源请求广播,宿主机对自身的当前和下一时刻负载进行检测,判断是否达到部署要求,并反馈给调度中心。
不同的用户业务对虚拟机的各类资源的使用频度不同,例如,需要进行科学计算的业务对虚拟机的CPU资源需求较大;需要进行文件备份存储的业务对虚拟机的磁盘空间和吞吐率需求较大。因此在本专家系统中需要定义这类业务相关的资源需求指标,将CPU、内存、磁盘空间、磁盘吞吐率、网络带宽五类负载加权求和示意如下:
W(cpu)+W(mem)+W(dfree)+W(dThroughput)+W(bandwidth)=1 ①
各权值W用户或管理员定义后存在事实库中。
2.负载预测算法
虚拟机的负载情况具有一定的一贯性,过去的负载情况会影响未来的负载值(占用率)。相关文献对虚拟机的负载预测机制进行了一些探索,较为多见的是采用时间序列模型对负载进行预测。
本文采用时间序列平滑预测法中的霍尔特双参数线性指数平滑法预测下一时刻的虚拟机负载量。霍尔特双参数线性指数平滑法属于线性二次指数平滑法,该方法的优点是可以用不同的平滑参数对负载值序列的两种因素进行平滑,具有很大的灵活性。宿主机负载的预测值为:
S1=αx1+(1-α)(St-1+bt-1) ②
b1=γ(S1-St-1)+(1-γ)bt-1 ③
Ft+m=St+btm ④
α、γ为平滑参数,Ft为实际测得负载值,m为预测时刻数,②③式是平滑公式,②式利用前一期的趋势值bt-1直接修正平滑值St;③式是用来修正趋势项bt,趋势值用相邻两次平滑值之差来表示,可以利用平滑系数γ对两次相邻平滑值之差进行修正。
由系统管理员根据经验在专家系统中设置α、γ的值。根据本算法可求出某台宿主机的负载预测值,再组成UDP报文反馈给调度中心。
3.宿主机选择策略
根据用户业务特点灵活计算虚拟机的资源需求,再由负载预测算法求出该宿主机各类资源的未来负载预测值,经UDP报文反馈给调度中心后,由本专家系统进行匹配。
根据相关文献的思想,首先利用预定义的资源需求权值W,求出各宿主机的资源可用率Hn:
Hn=W(cpu)(1-Cn)+ W(mem)(1-Mn)+ W(dfree)(1-DRn)+ W(dThroughput)(1-DTn)+ W(bandwidth)(1-Bn) ⑤
Cn、Mn、DRn、DTn、Bn分别是CPU、内存、磁盘空间、磁盘吞吐率、网络带宽负载预测值。
调度中心的专家系统将所有参数读入事实库,匹配规则已定义好并存在知识库内,利用内置的推理机进行匹配,调整和优化,选择最合适的宿主机,最后将虚拟机快速拷贝到选定宿主机上。用户或管理员可以根据业务需要和管理效率自行设置知识库,随着云计算业务规模的扩大,可以制定复杂的匹配规则。一个简单的示例匹配规则如下:
(1)同一虚拟机业务的W(cpu)、W(mem)相差超过阀值,则重定义之,再计算H值;
(2)同一虚拟机业务的W(dThr-
oughput)、W(bandwidth) 相差超过阀值,
或W(dThroughput)> W(bandwidth)则重定义之,再计算H值;
(3)同一虚拟机业务的W(band-
width)、W(mem)相差超过阀值,则重定义之,再计算H值;
(4)两个H值接近的宿主机,优先匹配网络带宽的F值较大者,即提高该主机的H值;
(5)同一宿主机,某资源的W 值最大,而对应的F值高于警戒阀值,则该机H值置为0。
二、改进的快速预拷贝机制
1.快速预拷贝机制
有学者提出了一种较新的虚拟机快速预拷贝方法,通过记录内存页面的改动情况,用概率预测的思想筛选出改动频繁的脏页面,将它们安排在快速拷贝的最后一轮迭代中传输,避免了无谓的重复传输,从而节省带宽,加快迁移速度。
这种新的与拷贝方法将修改频繁的页归入工作集(Writable Working Set,WWS)内,根据内存页面的访问情况,用概率预测原理预测页面变脏的概率,较高的脏页再次被修改的概率也高,概率较高的页面被归入工作集内,暂不传输。 2. 脏页筛选预测策略
预测脏页的概率一般比较复杂,但在专家系统中,可以定义很多预测脏页的规则,形成知识库供专家系统推理,一个简单的示例预测规则如下:
(1)相邻地址的页面属于工作集,则该页面设为高脏页率(>50%);
(2)监控到连续两次被修改的页面归入工作集;
(3)前一时刻刚修改过的页面设为高脏页率(>50%);
(4)阀值时间段T1内的发生过3次修改的页面归入工作集;
(5)阀值时间段T2内一直没有修改过的页面设定脏页率(>40%);
(6)阀值时间段T2外,每一时刻没有修改过的页面,脏页率累加5%;
(7)脏页率>60%的页面归入工作集。
该套规则库的策略比较保守,工作集会比较大,但能有效减少页面的重复传送率,在虚拟机拷贝的末期,传输量会很大。专家系统的知识库对用户限定权限开放,系统管理员无需专业的程序设计技能,就可以根据云计算业务情况自行定义和修改规则,存入知识库,大大方便了云计算系统的管理。
本文中的专家系统采用CLIPS为主设计语言。CLIPS即“C语言集成产生式系统”,是一种基于规则的、多范例的专家系统编程语言,可移植性高。
先经过充分的系统需求分析论证,接着与行业专家(云平台管理、网络、软件、用户业务)广泛接触,获取虚拟机部署和迁移的要求和规则描述,以及各类元素的知识表达,开始构建事实库和知识库。部分事实库代码如下:
自定义模板描述虚拟机
(deftemplate MAIN::device
(slot name (type Dom0))
(slot status (allowed-values on off)))
设置待部署虚拟机出事状态为开on
(deffacts MAIN::device-information
(device(name Dom0)(status on))
(device)name Dom1)(status on))
(device)name Dom2)(status on)))
通过侦测器模块侦测实时负载和脏页率
(deftemplate MAIN:: Detector
(slot name(type Dom0_Det))
(slot state(allowed-values dirtypage
low-load-valus
high-load-valus)
(default Preset_value))
三、实验与分析
CLIPS本身用C语言编写,因此很容易嵌入到其他高级语言中,特别是VC++平台。为了方便进行技术验证实验,采用直接嵌入方式,把CLIPS的源代码嵌入到C++程序中,经过修改,可以在VC++平台内重新编译链接。
模拟试验环境建立在4台计算机构成的局域网上,每台主机都运行安装了Xen4.1.2的Fedora 16,其中一台主机模拟为调度中心,并安装了CLIPS平台和专家系统的原型。另3台作为模拟为待部署的宿主机,其上运行各类常见应用程序。所有主机通过一台千兆交换机相连,处于同一个云计算域内。
实验中对3个虚拟机模板进行不同组合,同时进行部署和迁移。做9次部署和迁移,每台虚拟机模板各取平均值,在式②③中设α=0.37、γ=0.38。宿主机选择策略中的权值相差阀值选为0.4,负载预测值的警戒阀值选为85%,设脏页率监控时间段T1 =5,T2=10。
本文系统的虚拟机部署时间比传统方法发生首次迁移时间明显缩短,而迁移时间比传统方法略有降低,说明本系统中一定程度上是有效的。
四、结论
利用专家系统技术建立的基于负责预测的虚拟机部署和基于脏页预测的虚拟机迁移方法提高了资源分配的灵活性和管理的便利性,缓解了计算资源分配的不合理问题。专家系统中的知识库和一些参数对系统管理员和用户有限开放,可以根据实际情况进行调整,在很大程度上提高了云计算调度中心的管理效率。
参考文献:
[1]马 飞,刘 峰,李竹伊.云计算环境下虚拟机快速实时迁移方法[J].北京邮电大学学报,2012(01).
[2]何增辉.基于预测机制的负载均衡模型的研究[D].郑州:郑州大学,2010.
(作者单位:苏州市职业大学)
关键词:专家系统;虚拟机;部署;迁移;平滑预测
虚拟机的部署和迁移是云计算应用的重要课题。虚拟机的迁移需要在保持虚拟机运行的同时,把它从一台主机转移到另一台主机上,以灵活调配计算资源。目前,虚拟机迁移和部署的比较先进的方法主要有“快速预拷贝技术”和“负载均衡部署机制”等。快速预拷贝技术通过判断在迁移过程中频繁改动的内存页面,决定是否在最后一轮迭代中传输,以降低内存脏页率,达到快速迁移的目的。
专家系统由于能在一定程度上解决不确定性,能有效地模拟人类专家的各种判断能力并能学习新规则、新知识等特点而越来越被广泛应用。本文在此基础上对虚拟机部署机制进行改进,提出利用专家系统的方法,对虚拟机的部署和迁移进行一体化调度,智能地选择合适的主机和时机对虚拟机进行部署和迁移,探索了基于专家系统的云环境下虚拟机智能部署和迁移机制和方法,详述了专家系统的设计原理。
一、改进的基于均衡负载的虚拟机部署机制
1. 虚拟机部署机制
云计算域内的调度中心接受用户的部署请求,选择虚拟机模板,根据其业务特征计算出负载量,并向域内的宿主机发出资源请求广播,宿主机对自身的当前和下一时刻负载进行检测,判断是否达到部署要求,并反馈给调度中心。
不同的用户业务对虚拟机的各类资源的使用频度不同,例如,需要进行科学计算的业务对虚拟机的CPU资源需求较大;需要进行文件备份存储的业务对虚拟机的磁盘空间和吞吐率需求较大。因此在本专家系统中需要定义这类业务相关的资源需求指标,将CPU、内存、磁盘空间、磁盘吞吐率、网络带宽五类负载加权求和示意如下:
W(cpu)+W(mem)+W(dfree)+W(dThroughput)+W(bandwidth)=1 ①
各权值W用户或管理员定义后存在事实库中。
2.负载预测算法
虚拟机的负载情况具有一定的一贯性,过去的负载情况会影响未来的负载值(占用率)。相关文献对虚拟机的负载预测机制进行了一些探索,较为多见的是采用时间序列模型对负载进行预测。
本文采用时间序列平滑预测法中的霍尔特双参数线性指数平滑法预测下一时刻的虚拟机负载量。霍尔特双参数线性指数平滑法属于线性二次指数平滑法,该方法的优点是可以用不同的平滑参数对负载值序列的两种因素进行平滑,具有很大的灵活性。宿主机负载的预测值为:
S1=αx1+(1-α)(St-1+bt-1) ②
b1=γ(S1-St-1)+(1-γ)bt-1 ③
Ft+m=St+btm ④
α、γ为平滑参数,Ft为实际测得负载值,m为预测时刻数,②③式是平滑公式,②式利用前一期的趋势值bt-1直接修正平滑值St;③式是用来修正趋势项bt,趋势值用相邻两次平滑值之差来表示,可以利用平滑系数γ对两次相邻平滑值之差进行修正。
由系统管理员根据经验在专家系统中设置α、γ的值。根据本算法可求出某台宿主机的负载预测值,再组成UDP报文反馈给调度中心。
3.宿主机选择策略
根据用户业务特点灵活计算虚拟机的资源需求,再由负载预测算法求出该宿主机各类资源的未来负载预测值,经UDP报文反馈给调度中心后,由本专家系统进行匹配。
根据相关文献的思想,首先利用预定义的资源需求权值W,求出各宿主机的资源可用率Hn:
Hn=W(cpu)(1-Cn)+ W(mem)(1-Mn)+ W(dfree)(1-DRn)+ W(dThroughput)(1-DTn)+ W(bandwidth)(1-Bn) ⑤
Cn、Mn、DRn、DTn、Bn分别是CPU、内存、磁盘空间、磁盘吞吐率、网络带宽负载预测值。
调度中心的专家系统将所有参数读入事实库,匹配规则已定义好并存在知识库内,利用内置的推理机进行匹配,调整和优化,选择最合适的宿主机,最后将虚拟机快速拷贝到选定宿主机上。用户或管理员可以根据业务需要和管理效率自行设置知识库,随着云计算业务规模的扩大,可以制定复杂的匹配规则。一个简单的示例匹配规则如下:
(1)同一虚拟机业务的W(cpu)、W(mem)相差超过阀值,则重定义之,再计算H值;
(2)同一虚拟机业务的W(dThr-
oughput)、W(bandwidth) 相差超过阀值,
或W(dThroughput)> W(bandwidth)则重定义之,再计算H值;
(3)同一虚拟机业务的W(band-
width)、W(mem)相差超过阀值,则重定义之,再计算H值;
(4)两个H值接近的宿主机,优先匹配网络带宽的F值较大者,即提高该主机的H值;
(5)同一宿主机,某资源的W 值最大,而对应的F值高于警戒阀值,则该机H值置为0。
二、改进的快速预拷贝机制
1.快速预拷贝机制
有学者提出了一种较新的虚拟机快速预拷贝方法,通过记录内存页面的改动情况,用概率预测的思想筛选出改动频繁的脏页面,将它们安排在快速拷贝的最后一轮迭代中传输,避免了无谓的重复传输,从而节省带宽,加快迁移速度。
这种新的与拷贝方法将修改频繁的页归入工作集(Writable Working Set,WWS)内,根据内存页面的访问情况,用概率预测原理预测页面变脏的概率,较高的脏页再次被修改的概率也高,概率较高的页面被归入工作集内,暂不传输。 2. 脏页筛选预测策略
预测脏页的概率一般比较复杂,但在专家系统中,可以定义很多预测脏页的规则,形成知识库供专家系统推理,一个简单的示例预测规则如下:
(1)相邻地址的页面属于工作集,则该页面设为高脏页率(>50%);
(2)监控到连续两次被修改的页面归入工作集;
(3)前一时刻刚修改过的页面设为高脏页率(>50%);
(4)阀值时间段T1内的发生过3次修改的页面归入工作集;
(5)阀值时间段T2内一直没有修改过的页面设定脏页率(>40%);
(6)阀值时间段T2外,每一时刻没有修改过的页面,脏页率累加5%;
(7)脏页率>60%的页面归入工作集。
该套规则库的策略比较保守,工作集会比较大,但能有效减少页面的重复传送率,在虚拟机拷贝的末期,传输量会很大。专家系统的知识库对用户限定权限开放,系统管理员无需专业的程序设计技能,就可以根据云计算业务情况自行定义和修改规则,存入知识库,大大方便了云计算系统的管理。
本文中的专家系统采用CLIPS为主设计语言。CLIPS即“C语言集成产生式系统”,是一种基于规则的、多范例的专家系统编程语言,可移植性高。
先经过充分的系统需求分析论证,接着与行业专家(云平台管理、网络、软件、用户业务)广泛接触,获取虚拟机部署和迁移的要求和规则描述,以及各类元素的知识表达,开始构建事实库和知识库。部分事实库代码如下:
自定义模板描述虚拟机
(deftemplate MAIN::device
(slot name (type Dom0))
(slot status (allowed-values on off)))
设置待部署虚拟机出事状态为开on
(deffacts MAIN::device-information
(device(name Dom0)(status on))
(device)name Dom1)(status on))
(device)name Dom2)(status on)))
通过侦测器模块侦测实时负载和脏页率
(deftemplate MAIN:: Detector
(slot name(type Dom0_Det))
(slot state(allowed-values dirtypage
low-load-valus
high-load-valus)
(default Preset_value))
三、实验与分析
CLIPS本身用C语言编写,因此很容易嵌入到其他高级语言中,特别是VC++平台。为了方便进行技术验证实验,采用直接嵌入方式,把CLIPS的源代码嵌入到C++程序中,经过修改,可以在VC++平台内重新编译链接。
模拟试验环境建立在4台计算机构成的局域网上,每台主机都运行安装了Xen4.1.2的Fedora 16,其中一台主机模拟为调度中心,并安装了CLIPS平台和专家系统的原型。另3台作为模拟为待部署的宿主机,其上运行各类常见应用程序。所有主机通过一台千兆交换机相连,处于同一个云计算域内。
实验中对3个虚拟机模板进行不同组合,同时进行部署和迁移。做9次部署和迁移,每台虚拟机模板各取平均值,在式②③中设α=0.37、γ=0.38。宿主机选择策略中的权值相差阀值选为0.4,负载预测值的警戒阀值选为85%,设脏页率监控时间段T1 =5,T2=10。
本文系统的虚拟机部署时间比传统方法发生首次迁移时间明显缩短,而迁移时间比传统方法略有降低,说明本系统中一定程度上是有效的。
四、结论
利用专家系统技术建立的基于负责预测的虚拟机部署和基于脏页预测的虚拟机迁移方法提高了资源分配的灵活性和管理的便利性,缓解了计算资源分配的不合理问题。专家系统中的知识库和一些参数对系统管理员和用户有限开放,可以根据实际情况进行调整,在很大程度上提高了云计算调度中心的管理效率。
参考文献:
[1]马 飞,刘 峰,李竹伊.云计算环境下虚拟机快速实时迁移方法[J].北京邮电大学学报,2012(01).
[2]何增辉.基于预测机制的负载均衡模型的研究[D].郑州:郑州大学,2010.
(作者单位:苏州市职业大学)