一种IO调度系统和调度方法以及相应的电子设备与流程

文档序号:23146620发布日期:2020-12-01 13:27阅读:164来源:国知局
一种IO调度系统和调度方法以及相应的电子设备与流程
本发明涉及数据存储
技术领域
,尤其涉及了一种io调度系统和调度方法以及相应的电子设备。
背景技术
:随着科技的发展,在我们生活和工作中产生的数据越来越多。这些数据中有一大部分都属于冷数据,即较长时间之前的数据,其特点是较低的访问频率,需要最大限度的降低其存储成本,但同时也要保持随时可访问。互联网普及带来信息爆炸,新兴市场与海量用户导致数据存储需求激增。其中很少访问但又需要兼顾访问效率的冷数据,通常采用近似在线的冷存储方案。冷存储系统由相对独立的设备组成存储集群,集群中的存储节点可实现独立的供电控制。因此除了采用性能较低但更便宜的存储设备外,冷存储系统也通过节省电力开销降低存储成本。为了降低冷存储系统功耗,无数据访问的存储节点应当处于低功耗的下电(standby)状态,需要读写数据时才转为正常的上电(active)状态。冷存储系统由于硬件限制,可能存在两种情况:一种是某些适用冷存储系统的存储介质上下电频率限制,一种是特定场景下供电设备有限或者电源总功率受限。因此某次请求需要访问的数据不一定在上电状态的存储节点中,在调度中需要考虑系统总功率和上下电造成的损耗。目前,可用于冷存储系统的经典io调度策略,包括如下几种:(一)先来先服务(firstcomefirstservice,fcfs),按读/写请求时间排序,按顺序给相应存储节点上电并处理请求。如果当前系统上电总数有限制,则进入等待状态。该算法可满足读/写请求的公平性,但未能考虑存储节点具备上下电状态的特殊性,导致存储介质使用寿命缩短。(二)最长请求队列(maximumqueuelength,mql),将读/写请求根据访问的存储节点进行分类,优先给请求多的存储节点上电并处理。该算法减少总体的上下电次数,可提高冷存储系统吞吐率,但可能存在请求饿死的情况。(三)有时间限制的最长请求队列(maximumqueuelengthwithtimingrestrictions,mql-time),在前述的最长请求队列的基础上,记录每个读/写请求等待时间,根据两个条件的综合选择上电的存储节点。(四)时间片轮转(roundrobin,rr),调度器为存储节点分配上电时间片,在上电时间片内处理该存储节点的读/写请求,超过时间片后提出的读/写请求等待下次时间片再处理。上述的调度策略不能完全满足冷存储需求,比如无法处理紧急模式的请求,无法提供预估的请求处理时间。技术实现要素:为了解决上述缺陷,在冷存储系统的较低的硬件成本基础上,提高数据读写效率,本发明提出了新的io调度系统及方法。首先,本发明提供一种io调度系统,用于对多个存储节点进行上下电管理,以及,响应对所述多个存储节点的读和/或写请求,包括io处理单元、状态表和上下电控制单元;所述io处理单元,接受所述读和/或写请求,并在相应存储节点上电后,执行读和/或写操作;其中,若所述读和/或写请求是紧急请求,则通知所述上下电控制单元给所述相应存储节点上电,若所述读和/或写请求是普通请求,则向所述状态表中写入读请求标记和/或写请求标记,并从所述状态表中查询所述相应存储节点是否上电。上述的调度系统中,所述上下电控制单元根据所述状态表中的上电时间、读请求标记和/或写请求标记调度多个所述存储节点的上下电状态,并将调度结果记录在所述状态表中;其中,若接收到所述io处理单元转发的所述紧急请求,则直接给所述相应存储节点上电,然后修改所述状态表中所述相应存储节点的上下电状态、上电时间、读请求标记和/或写请求标记。上述的调度系统中,对于当前为写入节点的所述存储节点设置一切换阈值,当所述写入节点的写入数据量与所述写入节点总存储量的比值大于所述切换阈值时,所述上下电控制单元重新选择所述多个存储节点中的另一个存储节点作为写入节点。上述的调度系统中,所述上下电控制单元中还包括用于记录多个所述存储节点的存储量的存储量表,所述存储量表中包括每个所述存储节点的可用存储量,所述上下电控制单元重新选择所述写入节点时,选取所述可用存储量最大的存储节点作为新的写入节点。上述的调度系统中,当所述多个存储节点中的一个存储节点下电后,所述上下电控制单元根据所述存储节点的上电时间间隔计算所述存储节点下一次的上电时间,并记录在所述状态表中。上述的调度系统中,所述状态表中还包括记录实际上电时间与所述状态表中的上电时间之间的差值的上电时间偏差;所述io处理单元根据所述上电时间和所述上电时间偏差预估所述读和/或写请求的等待时间。上述的调度系统中,当处于上电状态的所述存储节点个数超过数量阈值时,对于当前为读出节点的所述存储节点,当处于上电状态的所述读出节点个数超过数量阈值时,所述上下电控制单元关闭若干所述读出节点的电源,以保持处于上电状态的所述读出节点个数小于所述数量阈值。上述的调度系统中,所述上下电控制单元根据所述存储节点保持上电状态的时长选择所述读出节点,以关闭电源:所述读出节点保持上电状态的时长小于最短上电时间tmin,则保持上电状态;所述读出节点保持上电状态的时长大于等于所述最短上电时间tmin,且无读请求的时间超过空转时间tidle,则关闭电源;所述读出节点保持上电状态的时长超过上电时间片tslice,则关闭电源。基于同一发明构思,本发明还提出了一种io调度方法,响应多个存储节点的上下电状态,以及,处理对所述多个存储节点的读和/或写请求,,包括:响应请求,响应于读和/或写请求,查找相应所述存储节点,在所述存储节点处于上电状态时,执行读和/或写操作;其中,若所述读和/或写请求是紧急请求,则给所述相应存储节点上电,以立即响应请求;若所述读和/或写请求是普通请求,则向状态表中写入读请求标记和/或写请求标记,并从所述状态表中查询所述相应存储节点是否上电。上述的调度方法中,包括:上电管理,所述状态表中包括用于预估所述存储节点下一次上电的上电时间,到达所述上电时间时,所述状态表中的读请求标记有效,则接通所述存储节点的电源,并将所述上电时间更新为实际上电时间;其中,若在为到达所述上电时间的情况下,接收到紧急请求,则接通相应存储节点的电源,并将所述上电时间更新为实际上电时间。上述的调度方法中,包括:下电选择,对于当前为读出节点的所述存储节点,当处于上电状态的所述读出节点个数超过数量阈值时,关闭若干所述读出节点的电源,以保持处于上电状态的所述读出节点个数小于所述数量阈值。上述的调度方法中,所述状态表中还包括记录实际上电时间与所述状态表中的上电时间之间的差值的上电时间偏差;根据所述上电时间和所述上电时间偏差预估所述读写请求的等待时间。上述的调度方法中,所述读出节点下电后,还包括:根据所述存储节点各自的上电时间间隔,更新所述状态表中的所述上电时间,用于预估下一次上电的时间。上述的调度方法中,根据所述读出节点保持上电状态的时长选择所述读出节点,以关闭电源:所述读出节点保持上电状态的时长小于最短上电时间tmin,则保持上电状态;所述读出节点保持上电状态的时长大于等于所述最短上电时间tmin,且无读请求的时间超过空转时间tidle,则关闭电源;所述读出节点保持上电状态的时长超过上电时间片tslice,则关闭电源。上述的调度方法中,包括:写入节点切换,对于当前为写入节点的所述存储节点设置一切换阈值,当所述写入节点的写入数据量与所述写入节点总存储量的比值大于所述切换阈值时,关闭所述写入节点的电源,选择一个新的所述存储节点上电,以其作为新的写入节点。上述的调度方法中,包括用于记录多个所述存储节点的存储量的存储量表,所述存储量表中包括每个所述存储节点的可用存储量,切换所述写入节点时,选取所述可用存储量最大的所述存储节点作为新的写入节点。此外,本发明还提出了一种电子设备,包括:存储器,其上存储有指令;处理器,是所述电子设备的处理器之一,用于执行所述指令;当所述指令被执行时,实现如权利要求9-16中任一项所述的方法与现有技术相比,本发明在冷存储场景下,在较低硬件水平约束的前提下,确保各存储节点使用均匀,在读/写请求量较低时,本发明通过延迟集中处理请求,极大降低冷存储系统能耗。系统中各存储节点的上电时间独立,下电时能预估下次上电时间,从而可向请求提出方提供等待时间的预估。进一步地,通过调整调度系统中的参数,还可以使冷存储系统的io调度适应具体的业务场景。附图说明图1是本发明中一个io调度系统实施例的系统框图;图2是本发明中io处理单元接受一个读/写请求后的一个示例性处理流程图;图3是本发明中上下电控制单元选择写入节点的一个示例性流程图;图4本发明中上下电控制单元响应读请求而给节点上电和选择节点下电的一个示例性流程图;图5是本发明中一实施例的电子设备的框图。具体实施方式以下由特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其他优点及功效。虽然本发明的描述将结合较佳实施例一起介绍,但这并不代表此发明的特征仅限于该实施方式。恰恰相反,结合实施方式作发明介绍的目的是为了覆盖基于本发明的权利要求而有可能延伸出的其它选择或改造。为了提供对本发明的深度了解,以下描述中将包含许多具体的细节。本发明也可以不使用这些细节实施。此外,为了避免混乱或模糊本发明的重点,有些具体细节将在描述中被省略。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。应注意的是,在本说明书中,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,默认为同一定义。还需声明的是,本发明中对方法、流程进行编号是为了便于引用,而不是限定先后顺序,各步骤之间如有先后顺序,当以文字说明为准。本发明的构思在于,将所有存储节点分为写入节点和读出节点,分别采用不同的调度方法对其进行io管理,使其通过读/写服务。写入节点指,允许向所述存储节点写入数据。读出节点指,允许从所述存储节点读出数据。始终维持一个写入节点上电,并且,对于写入节点的选择按“平均分配”的原则,当写入节点的数据量超过阈值时,将写入节点切换到目前数据量最少的存储节点上。对于每个读出节点,分配下一次上电时间,当到达所述上电时间时,若系统中记录有读请求,则给该读出节点上电,以便执行读操作。同时,监控当前处于上电状态的存储节点的个数,若超过数量阈值,则按一定逻辑使若干读出节点下电。为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。图1所示是本发明中一个io调度系统的实施例的系统框图。图中示意了调度系统100的组成、控制信号流以及与存储节点的交互。调度系统100用于对多个存储节点1...n进行上下电管理,以及,响应外部的其他设备对所述多个存储节点1...n的读和/或写请求,包括io处理单元101、状态表103、上下电控制单元102和存储量表104。一个优选的状态表103的表头如表1所示,其中包括了存储节点的编号、相应于该存储节点当前的上电/下电状态、上电时间(上电状态下是本次实际上电的时间,下电状态下是预估的下次上电时间)、上电时间偏差(上一次实际上电时间与表1中预估的上电时间之间的差值)、写请求标记和读请求标记。表1存储节点编号状态(上电/下电)上电时间上电时间偏差写请求标记读请求标记其中,写请求标记和读请求标记是相互独立的两个标记,可以同时有效也可以只有一个有效。而其中的上电时间偏差可以用于在极端情况下控制多个存储节点保持总体上平均的上下电频率。例如,紧急请求可能使实际上电时间比原计划的上电时间提前,在极端情况下,可能出现针对某一存储节点的连续紧急请求。如果这些连续紧急请求的出现间隔恰好为最短上电时间tmin,且同一时间段内,没有针对该存储节点的其他请求,则在这段时间内会造成该存储节点以最短上电时间tmin为间隔的频繁上下电,这将影响该存储节点的使用寿命。在这种情况下,记录由紧急请求导致的提前上电的时间偏差(即,上电时间偏差),一方面可以在下次上电是根据所述上电时间偏差推迟实际的上电时间,另一方面可以根据所述上电时间偏差延长上电状态的保持时间,从而可以达到控制该存储节点保持总体上平均的上下电频率。io处理单元101接受来自外部的其他设备的读和/或写请求,并能够判断与该读和/或写请求相对应的存储节点的编号,io处理单元101通过读取状态表103获知相应存储节点上电后,可执行读和/或写操作,从而使所述外部的其他设备从相应的读出节点获取数据或者向写入节点写入数据。在存储系统支持的情况下,io处理单元101也可以通知所述外部的其他设备直接从相应的存储节点读/写数据。进一步地,若io处理单元101接受的是紧急请求,则通知上下电控制单元102,要求直接给所述相应存储节点上电,而不是等待上下电控制单元102根据状态表103中的上电时间对所述相应存储节点上电。若接受的是普通请求,则向所述状态表中写入读请求标记和/或写请求标记,并从所述状态表中查询所述相应存储节点是否上电;上述的区分紧急请求和普通请求的实施例主要针对的是读请求的情况。根据后文的具体说明,本发明中在任意时刻,始终维持至少一个存储节点处于上电状态,且该存储节点是作为写入节点存在的。因此,当io处理单元101接受到写请求时,必然有一个写入节点处于上电状态,可以较快的响应写请求;当io处理单元101接受到读请求时,可能相应的存储节点正好处于上电状态,那么所述读请求的响应会是最快的;相应存储节点更大可能是处于下电状态,那么,如果该读请求是紧急请求,则上下电控制单元102立刻给所述相应的存储节点上电;如果该读请求是普通请求,则上下电控制单元102可以根据状态表103中的上点时间给出预估的所述相应存储节点的下次上电时间。上述的实施例中,通过区分紧急请求和普通请求实现对来自外部的其他设备的读和/或写请求分类管理,能够更高效更合理的提供数据服务。上下电控制单元102根据状态表103中记录的上电时间、读请求标记和/或写请求标记调度存储节点1…n的上下电状态,并将调度结果记录(更新)在状态表103中。其中,若上下电控制单元102接收到io处理单元101给出的紧急请求的提示,则直接给相应存储节点上电,然后修改状态表103中的上下电状态、上电时间、读请求标记和/或写请求标记。对于普通请求,io处理单元101可以根据表1中的数据计算出读/写请求的预计响应时间。具体的,对每个存储节点而言,都存在一个上电时间间隔tinterval(tinterval≥1/f),其中f为存储节点的上电频率,由该存储节点的存储介质决定。对于每个存储节点,预先设定一个上电时间间隔tinterval,io处理单元101和上下电控制单元102中均保存该上电时间间隔tinterval,当io处理单元101接受一个普通请求时,可结合表1中的上电时间、上电时间偏差和上电时间间隔tinterval综合估计对所述普通请求的响应时间。当上下电控制单元102控制一个存储节点下电时,可根据上电时间间隔tinterval计算该存储节点下一次的上电时间,然后记录在表1中。进一步地,为了有效的指导数据均匀的写入到存储节点1…n中,在一个优选的实施例中,对每个写入节点设置一个切换阈值δ(0<δ<1),所述切换阈值δ用于辅助判定是否当前的写入节点的存储量已经过高,需要切换另一个存储节点作为写入节点。也就是说,当所述写入节点本次的的写入数据量与所述写入节点总存储量的比值大于所述切换阈值δ时,上下电控制单元102重新选择一个存储节点作为写入节点,而该写入节点应当是当前所有存储节点中数据存储量最小的一个。具体来说,上下电控制单元102中包括一个用于记录存储节点1…n的存储量的存储量表104。一个优选的存储量表104的表头如表2所示,其中包括了存储节点编号、相应于该存储节点的当前的可用存储量、当前是否是写入节点的标记以及该节点在转为写入节点时的可用存储量(即写入初始可用存储量)。表2存储节点编号可用存储量当前是否写入节点写入初始可用存储量切换阈值δ(0<δ<1)是一个百分比值,可由上下电控制单元102预先确定。一个存储节点在作为写入节点期间的数据的写入量可由表2中的“写入初始可用存储量”和“可用存储量”的差值得出。上下电控制单元102根据表2中的写入初始可用存储量和可用存储量监控该写入节点的写入量是否已超过切换阈值δ,当上下电控制单元102判断出所述写入量与该写入节点的总存储量的比值超过切换阈值δ时,切换写入节点。上下电控制单元102首先给当前的写入节点断电,使其进入下电状态,并更新表2终端当前是否写入节点的标记,然后从表2中选择写入初始可用存储量最大的存储节点作为新的写入节点,使其进入上电状态,并更新表2终端当前是否写入节点的标记。根据存储节点的存储量,每个存储节点(写入节点)的切换阈值δ可以相同也可以不同。通过上述的对写入节点的监控和切换,能够使写入的数据较为均匀的分布在存储节点1…n中,每个存储节点因成为写入节点而上电的时间也相对均匀。并且,在任意时刻都保持有一个存储节点处于上电状态,写入操作都能得到较为及时的响应。当数据需要被读出时,各节点被唤醒(上电)的机率也较为平均,不容易出现读请求集中于一个存储节点的情况,有利于延长存储节点的寿命。上述若干个实施例说明了如何因应紧急请求、普通请求和写节点轮流切换而给存储节点上电的过程。以下说明下电的过程。首先设置一个数量阈值k。冷存储系统为了节约硬件成本,其电源系统的供电能力往往不能满足同时给所有存储节点1…n供电的要求。在冷存储系统的电源系统的供电能力可以支持m个存储节点同时供电的情况下,数量阈值k小于等于m。当处于上电状态的存储节点个数超过数量阈值k时,上下电控制单元102选取若干个存储节点,关闭它们的电源,以保持处于上电状态的存储节点个数小于数量阈值k,以免冷存储系统的电源系统长时间处于超负荷状态,而导致所述冷存储系统瘫痪。具体的,上下电控制单元102可以根据各存储节点的权重选取可下电的节点,也可根据各存储节点的上电时间选取可下电的节点。以下说明如何按存储节点保持上电状态的时长选择可下电的节点。上下电控制单元102需监控处于上电状态的存储节点的三个时间:最短上电时间tmin、空转时间tidle和上电时间片tslice。所述的三个时间都可以采用经验值预先设定,也可以在上下电控制单元102中包括一个专门的、用于动态调整素数三个时间的管理模块。最短上电时间tmin用于限定一个存储节点保持上电状态的最短时间,也就是说,如果一个存储节点保持上电状态的时间未超过最短上电时间tmin则不允许其下电。这样可以避免短时间内对同一个存储节点反复上下电,能够减少短时间频繁上下电给该存储节点带来的损伤。空转时间tidle用于在最短上电时间tmin的基础上进一步指示哪一个存储节点可以下电。具体的,当一个存储节点处于上电状态的时间大于最短上电时间tmin并且处于无读请求的时间超过空转时间tidle,则关闭电源。空转时间tidle与最短上电时间tmin是两个相互独立的参数,空转时间tidle可以大于最短上电时间tmin也可以小于最短上电时间tmin。为了避免电量消耗,一个优选的实施例中,tidle<<tmin。另外,此处需注意的是,写入节点虽然也能满足上电时间大于最短上电时间tmin且大于空转时间tidle,但其下电遵循前述的超过切换阈值δ后下电的方案。上电时间片tslice是另一个用于判断存储节点是否可以下电的参数。在处于上电状态的存储节点个数超过数量阈值k的前提下,若一存储节点保持上电状态的时间超过上电时间片tslice,则关闭其电源,使其下电。本领域普通技术人员可知,上电时间片tslice与最短上电时间tmin之间存在限制条件:tmin<tslice。此外,上电时间片tslice与数量阈值k、系统中存储节点总数n以及上电时间间隔tinterval之间也存在以下关系:tslice=k×tinterval/n。本实施例中,为了在总时间d内均匀使用各存储节点1…n,则要求平均每个存储节点上电时间为dk/n,由于各存储节点以tinterval的间隔上电运行tslice时间,因此dk/n=dtslice/tinterval,由此得出tslice=k×tinterval/n。图2是本发明中io处理单元101接受一个读/写请求后的一个示例性处理流程图。io处理单元101接收到外部设备提出的读/写请求后,首先执行s21,判断该请求是读请求还是写请求。对于读请求,io处理单元101还进一步分析/提取其请求的数据位于的存储节点的编号x。对于写请求,执行如下步骤:s22,查询存储量表104,获取当前写入节点的信息,所述信息包括写入节点的编号。s23,根据获取的写入节点的编号更新状态表103中写请求标记(置为有效y)。s24,向写入节点写入数据。由于写入节点始终在线,步骤s22~步骤s24通过简单的查询即可快速实现写入操作。对于读请求,执行如下步骤:s25,将状态表103中编号为x的存储节点的读请求标记更新为有效y。s26,查询状态表103中编号为x的存储节点的上电或下电的状态。s27,若存储节点x为上电状态,则读取数据。s28,若存储节点x为下电状态,则进一步判断该读请求是否为紧急请求。s29,若是紧急请求,则触发(或者说通知上下电控制单元102)存储节点x上电,然后执行步骤s27。s210,若不是紧急请求,则io处理单元101读取状态表103中存储节点x的上电时间。当前存储节点x处于下电状态,则该上电时间是存储节点x下一次上电的时间,可用于通知外部设备需等待的时长。或者,还可以结合状态表103中存储节点x的上电时间偏差,更精确的给出外部设备需等待的时间。图2所示流程图是io处理单元101的常规工作流程,其一方面与外部的设备交互,实现数据的读写,另一方面与上下电控制单元102通过状态表103交互,获取各存储节点1…n的上电/下电状态,以决定读/写的时机。以下说明上下电控制单元102工作流程。上下电控制单元102对读和写进行分别管理,保证在任意时刻至少有一个写入节点处于上电状态,对于数据写入的响应较快;对于紧急的读请求也有“快速通道”可以较快响应;对于普通的读请求则按照上下电控制单元102中固定的上电节奏进行响应,即接收到读请求后,在轮到该节点上电时,才响应所述读请求。图3是本发明中上下电控制单元102选择写入节点的一个示例性流程图。s31,上下电控制单元102读取存储量表104中写入初始可用存储量,通过比较选取其中写入初始可用存储量最大的存储节点z作为写入节点,令其上电,并更新存储量表104中当前是否写入节点的值为y。s32,向写入节点写入数据,或者说,等待写入数据。执行步骤s31后,冷存储系统处于可以接受写入数据的状态,此时若有写请求,则执行写操作,否则就处于等待写入的状态。s33,数据写入后,上下电控制单元102需监控当前的写入节点的可用存储量,并将其记入存储量表104中。s34,上下电控制单元102根据步骤s31中获得的写入初始可用存储量和步骤s33中获得的可用存储量判断当前写入节点的写入量是否超过写入阈值,若没有超过,则可返回步骤s32,继续等待下一次写入。s35,若超过了写入阈值,则更新存储量表104中当前写入节点的写入初始可用存储量为当前的可用存储量(即,将当前的可用存储量记入)初始可用存储量,以及,将当前是否写入节点置为无效n,然后跳转到步骤s31,重新选择新的写入节点。步骤s31~步骤s35是针对如何控制、切换写入节点的单独控制的过程,其与图2所示的io处理单元101之间的联系是状态表103。io处理单元101和上下电控制单元102交互读取和修改状态表103中的数据,以此获取存储节点1…n的各种状态,并进而判断是否能对存储节点1…n进行读或写的操作。图4本发明中上下电控制单元102响应读请求而给节点上电和选择节点下电的一个示例性流程图。首先,上下电控制单元102执行s41,初始化状态表103和存储量表104,并且将变量i初始化为0。优选的,变量i用于指示存储节点的编号,其取值范围为小于等于系统中存储节点总数n。s42,判断i是否小于n。s410,i如果大于n则说明上下电控制单元102已对冷存储系统中的所有存储节点都检查过一遍,可以开始下一轮的检查(即,跳转至s42)。优选的,继续等待空转时间tidle,以利于尽快识别出tidle时间内无读/写请求的存储节点。s43,i如果小于n则说明本轮对冷存储系统中的所有存储节点的检查没有结束,继续检查当前的存储节点是否为下电状态。s44,如果步骤s43的判断结果是下电状态,则进一步判断当前的时间是否大于等于状态表103中记录的上电时间。s46,如步骤s44的判断结果是不是,则说明当前的存储节点还没有到应该上电的时间,不对其进行操作,变量i递增1,对下一个存储节点进行检查,即返回执行s42。s47,如步骤s44的判断结果是是,则说明当前的存储节点已经到了应该上电的时间,则进一步读取状态表103,判断当前的存储节点是否有读/写请求未响应。s48,如果步骤s47的判断结果是是,则给当前的存储节点上电,并更新状态表103中的状态(上电/下电)和上电时间。然后返回执行s46。s49,如果步骤s47的判断结果是不是,则不给当前的存储节点上电,并更新状态表103中的上电时间。此处的上电时间是根据上电时间间隔tinerval算出来的下一次应该上电的时间。然后返回执行s46。s45,如果步骤s43的判断结果是上电状态,则进一步判断当前的存储节点处于上电状态的时间是否超过tmin。进一步的,此处还可以结合空转时间tidle综合考虑当前的存储节点处于上电状态的时间是否超过空转时间tidle。如未超过,则返回执行s46,以免过于频繁的对一个存储节点上下电。s411,如果步骤s45的判断结果是是,则进一步判断当前的存储节点是否有读/写请求未响应。s414,如果步骤s411的判断结果是否,则可以给当前的存储节点下电,以避免较长时间的空转。同时,更新状态表103中的状态(上电/下电)和上电时间。然后返回执行s46。s412,如果步骤s411的判断结果是是,则进一步判断当前的存储节点是否已保持上电状态超过上电时间片tslice,如否,则返回执行s46。s413,如果步骤s412的判断结果是是,则进一步判断当前冷存储系统中保持上电状态的读出节点数是否超过数量阈值k,如否,则执行s414,如是,则返回执行s46。本步骤对短时间内出现大量读请求的状况有较好的控制作用,提高读出节点的轮转速度,即控制了同时在线的读出节点数,以适应冷存储系统供电能力较低的现状,也避免了出现对其他存储节点的请求饿死的情况。以上,通过图1~图4从多个角度说明了本发明的技术方案,综合来说,本发明中,任意处于下电状态的存储节点都已知下次上电时间,对于普通读请求可提供最长等待时间,对于提出读/写请求的外部设备较为友好。本发明还通过上电时间片tslice和数量阈值k对存储节点限制了最长上电时间,避免一个节点占用过长时间,导致访问其他存储节点的请求饿死。通过最短上电时间tmin限制,避免存储节点频繁上下电,使各存储节点均匀使用。本发明根据实际的外部设备的请求量,可以调整调度系统100的个别参数,降低系统总功率,实现能耗和吞吐效率的动态平衡。例如:(1)写入节点切换阈值δ影响数据分布在不同存储节点,如果该值设置过低,造成写入节点切换频繁,如果该值设置过高,造成数据集中在某个或某几个节点从而影响数据访问。可结合业务写入请求量和存储节点总量进行设置,使业务数据能均匀写入各存储节点。(2)存储节点上电时间间隔tinterval受硬件(存储节点的上电频率f)限制,调整该值可调整平均等待时长。上电时间间隔tinterval越大,平均等待时间越长。(3)上电节点数量阈值k,用于权衡系统能耗和效率。如果系统内上电数未超过k,这些节点保持上电状态,可提高系统吞吐率;如果系统内上电数超过阈值k,则选择部分节点下电,以确保冷存储系统总功率维持在较低水平。该值在业务请求量大时如果设置得偏低,可能导致系统内上下电频繁。如果当前k值已设置为最大值m,且系统内依然上下电频繁,各节点上电时间为时间片tslice,说明系统已达到负载极限。(4)上电时间片tslice,上电时间片由tinterval、k和n决定,同时也可检查tinterval和k是否合理。若该值太小,各节点上电达到tslice下电,影响连续的数据处理,因此需调大tinterval和k。若该值太大,请求平均等待时间长,需调小tinterval。(5)最短上电时间tmin避免存储节点频繁上下电,若整体请求量较少,但存储节点上下电相对频繁,从存储介质寿命损耗角度可调大tmin,但tmin调大可能导致系统总功耗增加,不利于节省开销。(6)空转时间tidle,与业务请求有关,可对业务请求进行统计,将访问同一存储节点的业务请求按时间进行聚类,tidle小于类内间隔极小值。本申请方式所提供的方的实施方式可以在服务器、交换机、路由器、计算机终端等网络设备中执行。图5是本发明中支持io调度系统运行的电子设备900的硬件结构框图。如图5所示,电子设备900可以包括一个或多个(图中仅示出一个)处理器910(处理器910可以包括但不限于中央处理器cpu、图像处理器gpu、数字信号处理器dsp、微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于与用户交互的输入输出接口920、用于存储数据的存储器930、用于通信功能的传输装置940以及总线950。本领域普通技术人员可以理解,图5所示的结构仅为示意,其并不对上述电子装置的结构造成限定。存储器930可用于存储应用软件的软件程序以及模块,如本发明实施方式中的io调度方法对应的程序指令/模块,处理器910通过运行存储在存储器930内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的io调度方法。存储器930可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器930可进一步包括相对于处理器910远程设置的存储器,这些远程存储器可以通过网络连接至电子设备900。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输装置940用于经由一个网络接收或者发送数据。在本发明中,传输装置940包括可编程的监测设备941,通过该监测设备941与其他网络设备相连进行通讯。作为一个示例,传输装置940可以是交换机芯片组、网卡等负责网络通信的设备,监测设备941可以是可编程硬件,诸如可编程网络芯片,例如asic芯片、p4芯片、tofino芯片等,这些可编程硬件通过替代地或附加地设置在传输装置940中,本发明对此不作限制。本发明实施方式并不限定应用程序的种类,可以为系统类应用程序,也可以为软件类应用程序。本发明实施方式并不限定电子设备900的对端网络设备的类型和数量,例如,对端网络设备可以是与电子设备900相同或相似的设备,例如对端网络设备的传输装置具有与监测设备941相同或相似的设备,或者,对端网络设备可以是不具有上述监测设备的常规的网络设备,例如,常规的交换机、路由器、网关、或者主机等。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1