一种面向云环境的虚拟机存储子系统节能方法与流程

文档序号:12361804阅读:276来源:国知局
本发明涉及计算机集群系统节能的
技术领域
,特别涉及一种面向云环境的虚拟机存储子系统节能方法。
背景技术
:近年来,计算机组件,包括处理器、内存、磁盘驱动器等的性能和容量都以指数方式上升。由于这种前所未见的增长,大型企业IT系统的资源利用率大概是35%。在一些企业,甚至只有15%。谷歌报告指出服务器很少处于完全空闲和几乎不会在它们最大利用率的情况下运行,大部分时间,它们的运行水平是在最大利用率的10%到50%之间。现代计算机系统有足够的能力同时运行多个虚拟机,每个虚拟机运行独立的操作系统实例。通过促进虚拟机,多个不同的操作系统环境可以强相互隔离地共存于相同的物理计算机平台上。在虚拟机之间分散资源的能力提高了资源的利用,使得虚拟化成为一项绿色技术。这也是虚拟化技术复兴的一个重要原因。节省能耗已经成为设计计算机系统的重大挑战之一。对一台只有一个操作系统控制的计算机来说,操作系统可以直接管理它的活动,以满足能量限制。然而,在一个由多虚拟机和客体操作系统组成的虚拟机基础环境,单一操作系统采取的直接和集中能量管理有三方面不适用。首先,客体操作系统没有直接对物理硬件进行存取,而是工作在虚拟设备(例如:虚拟CPU,虚拟磁盘驱动器,虚拟网卡,等等)。其次,单个客体操作系统不知道物理硬件是否与其他客体操作系统共用。再者,由于每个虚拟机被分配的具体硬件份额不一样,能量消耗不能简单地以多虚拟机划分。因此,在虚拟机基础环境中,涉及多操作系统的协调能量管理非常重要。许多研究已经致力于基于虚拟机环境的能耗节省。Stoess等提出一个新的框架,用于对基于虚拟机环境的能量进行管理。该框架提供了一个统一的模块来划分和分配能量,还有一个能量感知源计算和分配机制。虚拟能源支持各个虚拟平台上的客体虚拟机的独立和互不干扰的操作,宏观协调这些虚拟机对虚拟资源的不同能源管理策略。Waldspurger提出几种支持内存和空间提交的方法,来提高内存管理的效率。Stoess和Reinhardt提出对虚拟服务器的能量管理应当设计为两个层,虚拟机内部层和虚拟机连通层。一方面,只有客体操作系统可以详细地知道应用程序和用户信息。另一方面,只有主体操作系统和它的资源管理子系统能够控制全局,所有机械组件的能量需求和条件。大部分计算机组件支持多种能量状态(例如活动,空闲和准备)。不同能量状态下,能量的消耗各不相同。突发行为表明事件的发生是短期,参差不齐地爆发。现代计算机的工作一般呈现突发行为,这就存在一个契机,当硬件组件由高能耗状态转换为低能耗状态时,可以节省大量能源。传统操作系统针对资源在竞争任务间的公平分配,通过使存取模式尽可能流畅,以获得最大的输出和最小的延迟。技术实现要素:本发明的目的在于克服现有技术的缺点与不足,提供一种面向云环境的虚拟机存储子系统节能方法,该方法在虚拟机环境下,将同一个物理机上的各个虚拟机在同一个时间段内的I/O负载进行叠加放大,以及通过预测设定大小时间段内的I/O数量来控制磁盘的功耗状态的切换,来延长虚拟机存储子系统的空闲时间并节省能量。本发明的目的通过下述技术方案实现:一种面向云环境的虚拟机存储子系统节能方法,所述节能方法包括:S1、负载聚合放大,将来自云环境下同一个物理机上的各个虚拟机的工作负荷分成时间长度相等的时间间隙,然后将不同虚拟机的时间间隙按起始时间和结束时间对齐,再将单位时间间隙内来自多个不同虚拟机的所有I/O请求的执行时间集中调度到该时间间隙的末尾以实现负载的放大,然后再集中发送到磁盘;S2、请求预测机制,通过预测下一个时间间隙单位内的I/O请求数,然后基于磁盘处理I/O的能力,计算出将磁盘从低能耗状态转入工作状态以服务上述I/O请求的唤醒时间点W;S3、磁盘能耗状态的切换,基于预测的I/O请求的数量,磁盘在唤醒时间点W被转入工作状态以服务实际到达的I/O请求,当上述I/O请求被处理完毕,磁盘立即转入低能耗状态,直至到达下一个时间间隙的起始时间点S。进一步地,所述时间间隙的长度必须满足以下公式中的条件:B≥(RpC+Tp)]]>其中,B表示时间间隙的大小,单位:秒,C为磁盘的最大I/O处理能力,单位:请求/秒,Tp是磁盘由工作状态转为低能耗状态,然后再转回工作状态所花费的时间,Rp是单个时间间隙内请求的个数。进一步地,所述下一个时间间隙单位内的I/O请求数根据当前时间间隙内I/O请求数的预测值和真实值,预测下一时间间隙内请求的个数Rp。进一步地,单个时间间隙单位内的I/O请求数通过以下公式进行预测,公式具体为:Bn+1p=α×Bnr+(1-α)Bnpα∈[0,1];]]>其中,Bnp是第n个时间间隙的请求数的预测值,Bnr表示第n个时间间隙的请求数的真实值,Bn+1p表示第n+1个时间间隙的请求数的预测值,系数α是用来调节历史数据对预测值影响的系数。进一步地,所述系数α通过一种自适应机制按照预测的准确度来调整,具体过程如下:利用一个滑动窗口来存储对预测的准确度有影响的历史信息,当要预测在第n+1个时间间隙内的I/O请求数时,先预测在第n个时间间隙内的I/O请求数,此时,以步长为0.01将α的值从0逐渐增加到1;然后将第n个时间间隙内预测的I/O请求数和其真实的I/O请求数逐一进行比对,当在第n个时间间隙内预测的I/O请求数目和真实的I/O请求的数目最接近时,利用此时的α值来预测第n+1个时间间隙内的I/O请求数。进一步地,在单个时间间隙内,将磁盘从低能耗状态唤醒并开始执行I/O请求的唤醒时间点W到该时间间隙的开始时间点S之间的时间长度(B-Rp/C)至少大于将磁盘从低能耗状态切换到工作状态所需要的时间Tp,即:(B-RpC)≥Tp]]>其中,B表示时间间隙的大小,Rp/C表示磁盘驱动服务Rp个请求花费的时间长度。进一步地,磁盘由工作状态转为低能耗状态,然后再转回工作状态所节省的能量必须要大于磁盘进行不同能耗状态切换所消耗的能量Ep,即Pi×(B-RpC)-Ps×(B-Tp-RpC)≥Ep]]>Rp为下一时间间隙中将要到来的请求的预测数,Pi和Ps分别为磁盘驱动在空闲和就绪状态下的能量花费,Tp是磁盘由工作状态转为低能耗状态,然后再转回工作状态所花费的时间,B表示时间间隙的大小,Rp/C表示磁盘驱动服务Rp个请求花费的时间长度。进一步地,所述唤醒时间点W的选择是由虚拟机存储子系统的状态动态决定,其选择方法具体如下:定期检查磁盘的I/O请求队列,如果队列中没有I/O请求,磁盘会保持低能耗状态,直到新的请求进来;如果在到达唤醒时间点W之前,I/O请求队列中实际存在的I/O请求的数目Nr大于预测值Bn+1p,Nr会被用来重新计算唤醒时间点的预测值w。综上所述,本发明提出通过关联多个来自不同虚拟机上的不同操作系统的使用模式,放大I/O负载的突发行为。这个方法将I/O负载分散调度到长度相等的时间间隙中,然后预测每个时间间隙中即将到来的I/O请求数,而不是预测传统方法采用的预测空闲时间段的长度。这个方法同时把每个时间间隙中I/O请求的执行时间延迟聚合到时间间隙的最后,因此扩大空闲时间的长度。通过刻意对I/O负载进行重塑,放大了磁盘所经历的空闲时间间隔的长度,从而节省磁盘存储子系统的能量。此外,由于进行了刻意的I/O负载的调度,磁盘在处于工作状态时,其资源利用率得到了提高。本发明相对于现有技术具有以下优点:(1)本发明采用叠加放大的方式,将时间分成大小相等的时间间隙,处理一段时间间隙内的请求时,将所有请求移到时间间隙的末端集中处理,从而扩大在该时间间隙内磁盘所经历的空闲时间段的长度,待I/O请求处理完毕则立即将磁盘转入低能耗状态,以达到减少磁盘驱动能耗的目的。(2)本发明中提出的请求预测机制,改变了单纯根据历史信息(磁盘在过去一段时间内所经历的空闲时间长度)来预测接下来磁盘可能经历的空闲时间长度的思想。本发明通过预测下一时间间隙中将会到来的I/O请求数,并按磁盘的I/O处理能力来计算磁盘被唤醒的时间点以服务I/O请求。当I/O请求被执行后则可立即将磁盘转入低能耗状态,从而实现针对空闲时间段长度的最大化。附图说明图1为本发明公开的一种面向云环境的虚拟机存储子系统节能方法的流程图。具体实施方式下面结合实施例子及附图,对本发明作进一步详细说明,但本发明的实施方式不限于此。实施例一本实施例公开了一种面向云环境的虚拟机存储子系统节能方法,该方法通过放大磁盘的突发请求,将单位时间间隙内所有请求的执行时间推到该段时间间隙的末尾,集中扩大磁盘的空闲时间,从而节省磁盘能量;同时,该方法还提供一种预测磁盘空闲时间长度的技术方案,通过预测下一段单位时间间隙内的任务数,代替单纯预测估计接下来的空闲时间长度,这种方法可以更高效,更灵活地调整预测系数,实现更准确的磁盘运行时间预测。如图1所示的一种面向云环境的虚拟机存储子系统节能方法的流程图,该节能方法具体包括以下步骤:S1、负载聚合放大,将来自云环境下同一个物理机上的各个虚拟机的工作负荷分成时间长度相等的时间间隙,然后将不同虚拟机的时间间隙按起始时间和结束时间对齐,再将单位时间间隙内来自多个不同虚拟机的所有I/O请求的执行时间,集中调度到该时间间隙的末尾。从而可以将来自多个虚拟机的离散分布在一个时间间隙内的I/O请求集中聚合到每个时间间隙的末尾以实现负载的放大,然后再集中发送到磁盘。该步骤可以集中扩大磁盘的空闲时间,从而节省磁盘能量。S2、请求预测机制,提供一种预测磁盘空闲时间的方法。该方法通过预测下一个时间间隙单位内的I/O请求数,然后基于磁盘处理I/O的能力,计算将磁盘从低能耗状态转入工作状态以服务这些I/O请求的唤醒时间点W。该步骤可以通过高效、灵活地调整预测系数,实现更准确的磁盘空闲时间预测。请求预测机制,将请求分配到长度相等的时间间隙中。每个时间间隙中都承载着一组连续的请求。实践中可以容易地计算出每个时间间隙中的请求数。通过这样做,负载被转换成另一种新的时间序列过程。基于这种方法,预测单一时间间隙内的请求数,而不是预测负载中的空闲时间段的长度。这种方法由于削减了负载中的突发尖峰,可以提高预测的准确性。这种方法相对传统的直接预测估计磁盘在接下来的时间段可能处于空闲的时间长度,高效简单。同时这种方法可以通过灵活地调整预测系数,实现更准确的磁盘空闲时间的控制。S3、磁盘能耗状态的切换,基于预测的I/O请求的数量,磁盘在唤醒时间点W被转入工作状态以服务实际到达的I/O请求。当上述I/O请求被处理完毕,磁盘立即转入低能耗状态,直至到达下一个时间间隙的起始时间点S。那么在每一个时间间隙内,从该时间间隙的起始时间点S到磁盘被唤醒的时间点W,磁盘都被置于低能耗状态,从而实现节能的目的。具体应用中,所述步骤S1中,将来自每个虚拟机存储子系统的I/O请求时间序列划分为一个个等长的时间间隙,然后在时间间隙内进行请求的叠加放大。时间间隙的大小有限制,如果时间间隙太大,虚拟机存储子系统响应请求的延迟会很长;如果时间间隙太小,磁盘在短的时间内,不能实现从工作状态和低能耗状态的相互转换,也就无法达到节省能量的目的。当磁盘的最大I/O处理能力是C个请求/秒。磁盘由工作状态转为低能耗状态,然后再转回工作状态所花费的时间是Tp,本次转换所消耗的能量是Ep焦耳。时间间隙的大小是B秒。下一个时间间隙中由多个虚拟机发送到磁盘上的I/O请求总数的预测值为Rp。则确定的时间间隙的长度必须满足以下公式中的条件:B≥(RpC+Tp)]]>具体应用中,所述步骤S2中,根据当前时间间隙内I/O请求数的预测值和真实值,预测下一时间间隙内请求的个数Rp。用于预测单个时间间隙内I/O请求数的方法具体为:一个递归的预测模型,Bnp是第n个时间间隙的请求数的预测值,Bnr表示第n个时间间隙的请求数的真实值。Bn+1p表示第n+1个时间间隙的请求数的预测值,α是用来调节历史数据对预测值影响的系数。根据以下公式来预测下一个时间间隙内将会接收到的I/O请求数。公式如下:Bn+1p=α×Bnr+(1-α)Bnpα∈[0,1]]]>根据上式可以预测接下来的时间间隙内将会接收到的请求数。根据预测值不同,时间间隙机制采取两种措施。第一种是决定磁盘是否应该停下来。第二种措施是决定在时间间隙内的哪个时间点,磁盘驱动应该被启动。当使用第一种措施时,能量表现系数(EPC)被用来作为度量,决定是否应该停止磁盘。如果每个时间间隙内磁盘成功地进行了能耗状态的切换,所节省的能量记为Eps,预测过程的延迟记为Dp,则EPC=Dp/Eps。第二种措施,动态调整时间间隙内的唤醒时间,定期检查请求队列。如果队列中没有请求,磁盘会保持低能耗状态,直到新的请求进来。这意味着预测唤醒的时间点w被推迟了。通过这样做,可以容易处理那些跨越多个时间间隙的长的空闲时间段。如果在到达唤醒时间点之前,队列中请求的数目(Nr)大于预测值(Bn+1p),Nr会被用来重新计算唤醒时间点的预测值w。这意味着唤醒时间点会被提前。在磁盘启动之后,如果由于磁盘的处理能力不够,一些I/O请求在当前时间间隙结束之前未能响应,这些I/O请求会被推迟到下一个时间间隙开始的时候执行。当请求完成后,立即开始下一轮时间间隙的预测和计算。具体应用中,利用一种自适应机制按照预测的准确度来调整α。该机制利用一个滑动窗口来存储对预测的准确度有影响的历史信息。当要预测在第n+1个时间间隙内的I/O请求数时,先预测在第n个时间间隙内的I/O请求数。此时,以步长为0.01将α的值从0逐渐增加到1。然后将第n个时间间隙内预测的I/O请求数和其真实的I/O请求数(由于现在在第n+1个时间间隙的时间点,该真实值已经知道)逐一进行比对。当在第n个时间间隙内预测的I/O请求数目和真实的I/O请求的数目最接近时,利用此时的α值来预测第n+1个时间间隙内的I/O请求数。具体应用中,根据虚拟机基础环境,对于针对不同磁盘驱动的处理能力和系统繁忙的程度来控制磁盘能耗状态的切换,以最大化磁盘能量的节省。当磁盘在活动,空闲,就绪状态下的能量花费分别是Pa,Pi和Ps,那么在单个时间间隙内,将磁盘从低能耗状态唤醒并开始执行I/O请求的唤醒时间点W到该时间间隙的开始时间点S之间的时间长度(B-Rp/C)至少大于将磁盘从低能耗状态切换到工作状态所需要的时间Tp,即:(B-RpC)≥Tp]]>Rp/C表示磁盘驱动服务Rp个请求花费的时间长度。上式表明在每个时间间隙的开始挤出空闲时间段的长度应该比磁盘驱动由活动转为空闲,再转为活动用的时间长。另外,节省的能量必须要大于磁盘进行不同能耗状态切换所消耗的能量Ep,即Pi×(B-RpC)-Ps×(B-Tp-RpC)≥Ep]]>Rp为下一时间间隙中将要到来的请求的预测数,Pa,Pi和Ps分别为磁盘驱动在活动,空闲,就绪状态下的能量花费。上式表明节省的能量应当比启动磁盘驱动所带来的的能量消耗更大。通过实现这两个约束条件,磁盘则可以由高能耗的工作状态转入低能耗状态。具体应用中,磁盘的唤醒时间点W的选择是由系统状态动态决定。选择方法:定期检查磁盘的I/O请求队列,如果队列中没有I/O请求,磁盘会保持低能耗状态,直到新的请求进来。这意味着利用本预测机制所预测的I/O请求数量来计算的磁盘的唤醒时间点W被推迟了。如果在到达唤醒时间点之前,队列中实际存在的I/O请求的数目(Nr)大于预测值(Bn+1p),Nr会被用来重新计算唤醒时间点的预测值w。这意味着唤醒时间点W会被提前。预测负载之间的空闲时间间隔,然后利用该时间间隔将磁盘转入低能耗状态是常用于减少磁盘驱动器能耗的方法。但由于工作负荷集中,很难找到较长的空闲时段。即使存在长时间的空闲时段,也很难准确地对其进行预测。在云环境下,现代计算机系统物理资源能够运行多个虚拟机。本发明针对云环境下的虚拟机,提出将来自各个虚拟机的工作负荷分成时间长度相等的时间间隙,预测每个时间间隙内将会接收到的I/O请求数。同时将每个时间间隙内的I/O请求的执行时间调度到该时间间隙的末尾。通过调整调度I/O请求的执行时间,可以增加有效的空闲时间段的长度,然后结合磁盘的能耗状态切换可以降低云环境下的面向虚拟机的存储子系统的能耗。本发明在保证虚拟机系统的服务质量的前提下,可以有效地降低面向存储虚拟的存储子系统的能耗。综上所述,本实施例公开了一种通过叠加放大I/O负载的方式以降低虚拟机环境下磁盘子系统能量的方法,提出通过关联多个来自不同虚拟机上的不同操作系统的使用模式,放大负载中的突发I/O行为。这个方法将I/O负载分散到时间上相等的时间间隙中,然后预测每个时间间隙中即将到来的请求数,而不是传统的预测I/O负载中的空闲时间段的长度。这个方法同时把每个时间间隙中请求的执行时间调度到该时间间隙的末尾来执行,因此扩大空闲时间的长度。通过刻意对I/O负载进行重塑,放大了磁盘所经历的空闲时间间隔的长度,从而节省磁盘存储子系统的能量。此外,由于进行了刻意的I/O负载的调度,磁盘在处于工作状态时,其资源利用率得到了提高。实施例二预测负载之间的空闲时间间隔,然后利用该时间间隔将磁盘转入低能耗状态是常用于减少磁盘驱动器能耗的方法。但由于工作负荷集中,很难找到较长的空闲时段。即使存在长时间的空闲时段,也很难准确地对其进行预测。在云环境下,现代计算机系统物理资源能够运行多个虚拟机。本实施例针对云环境下的虚拟机,提出将来自各个虚拟机的工作负荷分成时间长度相等的时间间隙,预测每个时间间隙将会接收到的请求数。同时将每个时间间隙的请求的执行时间挤到时间间隙的末尾。通过重塑请求的执行时间,可以增加有效的空闲时间段的长度,然后结合磁盘的能耗管理策略降低云环境下的面向虚拟机的存储子系统的能耗。本实施例具体公开一种用于虚拟机基础环境的节能方法,S和E分别表示一个时间间隙的起始时间点和结束时间点。假设五个请求被分布到三台虚拟机上。如果可以预先准确地预测到一台虚拟机上的一个时间间隙的请求数,就可以计算出准确的磁盘驱动需要被唤醒的时间点W,然后将磁盘由低能耗状态转换为高能耗状态,以无延迟的方式,响应执行该时间间隙内所有的请求。例如,假设三台虚拟机的I/O请求的预测数分别为2、2和1。将这些数字叠加,考虑磁盘驱动的响应能力,五个请求在时间间隙的末端被响应。从唤醒时间点W到该时间间隙的结束时间点E的时间长度等于将磁盘驱动从低能耗状态启动到活动能耗状态需要的时间再加上Rp/C。本实施例中的公开节能方法,在保证虚拟机系统的服务质量的前提下,可以有效地降低面向存储虚拟的存储子系统的能耗。上述实施例子为本发明较佳的实施方式,尽管已针对本发明进行了详细的说明和描述,但并不限制本发明的范围。任何不脱离本发明方案的精神和原理的修改或等同方案,均应涵盖在本发明的权利要求范围当中。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1