CN109800076B - 存储调度方法及装置 - Google Patents
存储调度方法及装置 Download PDFInfo
- Publication number
- CN109800076B CN109800076B CN201711137415.3A CN201711137415A CN109800076B CN 109800076 B CN109800076 B CN 109800076B CN 201711137415 A CN201711137415 A CN 201711137415A CN 109800076 B CN109800076 B CN 109800076B
- Authority
- CN
- China
- Prior art keywords
- data
- configuration
- node
- copy
- performance evaluation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种存储调度方法及装置,其中存储调度方法包括:根据数据节点的动态因素,针对所述数据节点建立性能评价模型;根据所述数据节点的性能评价模型、以及所述数据节点的配置属性,对实施存储功能的所述数据节点进行调度,从而提供了一种有效的调度机制,部分或者全部避免或者缓解了现有技术中的上述技术问题。
Description
技术领域
本申请实施例涉及存储技术领域,尤其涉及一种存储调度方法及装置。
背景技术
HDFS即Hadoop分布式文件系统,具有高容错性、高可靠性、高可扩展性等优点。它简化了文件的一致性模型,通过流式方法提高数据访问的吞吐量,尤其适合海量数据的存储和访问。
HDFS的容错性允许集群中存在廉价的主机作为存储数据的数据节点,因此,很多HDFS集群中所包含大量性能异构的服务器节点,既有新购置的高性能的服务器,又有遗留下来的廉价的、性能较低的、可靠性较差的服务器。并且不同的服务器在CPU和内存性能、网卡和磁盘I/O速度以及网络位置等方面的差异会对存储集群的整体性能造成影响。
但是,HDFS系统在调度时默认集群的所有节点都是同构的,在放置多个副本时采用基于机架感知的数据块存储策略,在机架的选择以及多个副本放置机器的选择上采取随机调度策略。这样虽然在一定程度上保障了数据存储的可靠性,但是在性能差异较大的异构集群中可能会引起节点负载不均衡导致的集群性能问题。一方面,可能将经常访问的数据的所有副本都存储在性能较差的数据节点上,导致低性能数据节点负载过重,从而降低集群运行的速度;另一方面,可能将不经常访问的数据的所有副本存储在性能较高的数据节点上,导致高性能节点的未被充分利用。并且当访问频率低的数据过多的占用高性能数据节点,会迫使访问频率高的数据节点存储到低性能数据节点上,访问压力增大时,会进一步降低集群的响应速度。
发明内容
有鉴于此,本发明实施例所解决的技术问题之一在于提供一种存储调度方法及装置,用以克服或者缓解现有技术中上述技术缺陷。
本申请实施例提供了一种存储调度方法,其包括:
根据数据节点的动态因素,针对所述数据节点建立性能评价模型;
根据所述数据节点的性能评价模型、以及所述数据节点的配置属性,对实施存储功能的所述数据节点进行调度。
可选地,在本申请的任一实施例中,所述动态因素包括以下中的至少一种:CPU使用率、内存使用率、网络带宽使用率、磁盘使用率。
可选地,在本申请的任一实施例中,根据数据节点的动态因素,针对所述数据节点建立性能评价模型包括:根据所述数据节点以及为其不同动态因素赋予的权重,针对所述数据节点建立性能评价模型。
可选地,在本申请的任一实施例中,还包括:根据所述数据节点的性能评价模型,确定所述数据节点的性能评价数据;
对应地,根据所述数据节点的性能评价模型、以及所述数据节点的配置属性,对实施存储功能的所述数据节点进行调度包括:根据所述数据节点的性能评价数据、以及所述数据节点的配置属性,对实施存储功能的所述数据节点进行调度。
可选地,在本申请的任一实施例中,若实施存储功能的所述数据节点有多个,还包括:根据其中最大的性能评价数据以及最小的性能评价数据,以及存储机制,确定部分或者全部所述数据节点对应的性能级别;
对应地,根据所述数据节点的性能评价模型、以及所述数据节点的配置属性,对实施存储功能的所述数据节点进行调度包括:根据所述数据节点的性能级别、以及所述数据节点的配置属性,对实施存储功能的所述数据节点进行调度。
可选地,在本申请的任一实施例中,还包括:根据所述数据节点的配置属性对所述数据节点进行配置级别划分;
对应地,根据所述数据节点的性能评价模型、以及所述数据节点的配置属性,对实施存储功能的所述数据节点进行调度包括:根据所述数据节点的性能评价模型、以及所述数据节点的配置级别,对实施存储功能的所述数据节点进行调度。
可选地,在本申请的任一实施例中,对实施存储功能的所述数据节点进行调度包括:对实施存储功能的所述数据节点进行初始调度、动态调度中至少一种。
可选地,在本申请的任一实施例中,还包括:根据设定的热阈值或者冷阈值,确定需要移动的被存储数据,以在确定好调度对象后进行数据迁移。
可选地,在本申请的任一实施例中,在对实施存储功能的所述数据节点进行调度时参考网络位置进行调度。
本申请实施例还提供一种存储调度装置,其包括:
第一程序模块,用于根据数据节点的动态因素,针对所述数据节点建立性能评价模型;
第二程序模块,用于根据所述数据节点的性能评价模型、以及所述数据节点的配置属性,对实施存储功能的所述数据节点进行调度。
本申请实施例的技术方案,通过根据数据节点的动态因素,针对所述数据节点建立性能评价模型;再根据所述数据节点的性能评价模型、以及所述数据节点的配置属性,对实施存储功能的所述数据节点进行调度,从而提供了一种有效的调度机制,部分或者全部避免或者缓解了现有技术中的上述技术问题。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本申请实施例的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1本申请实施例一中存储调度方法的流程示意图;
图2为本申请实施例二中初始调度的流程示意图;
图3为本申请实施例三中初始调度的结构框图;
图4为本申请实施例四中动态调度的流程示意图;
图5为本申请实施例五中动态调度的流程示意图;
图6为本申请实施例六中存储调度装置的结构示意图。
具体实施方式
实施本发明实施例的任一技术方案必不一定需要同时达到以上的所有优点。
为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
下面结合本发明实施例附图进一步说明本发明实施例具体实现。
图1本申请实施例一中存储调度方法的流程示意图;如图1所示,其包括:
S101、根据数据节点的动态因素,针对所述数据节点建立性能评价模型;
本实施例中,所述动态因素包括以下中的至少一种:CPU使用率、内存使用率、网络带宽使用率、磁盘使用率。当然,此处举例并非限定动态因素只有这四种。
本实施例中,步骤S101中,在根据数据节点的动态因素,针对所述数据节点建立性能评价模型时,具体可以根据所述数据节点以及为其不同动态因素赋予的权重,针对所述数据节点建立性能评价模型。
进一步地,在步骤S101之后或者在步骤S101中还包括:根据所述数据节点的性能评价模型,确定所述数据节点的性能评价数据。
具体地,假如在一具体应用场景中,如果所述动态因素包括:CPU使用率、内存使用率、网络带宽使用率、磁盘使用率,则给不同的动态因素赋予大小不同的权重,从而据此建立所述性能评价模型,对于单个数据节点来说,比如如公式(1)所示限定性能评价模型:
NEval=WCPU×NCPU+WMEM×NMEM+WNET×NNET+WSTO×NSTO
(1)
上述公式(1)中,NEval表示性能评价数据,WCPU、WMEM、WNET、WSTO变量对应CPU使用率、内存使用率和网络带宽使用率和磁盘使用率在性能评价中的权重值,NCPU表示CPU使用率、NMEM表示内存使用率、NNET表示网络带宽使用率、NSTO表示磁盘使用率。
假如有多个数据节点{M1,M2,…,Mn},根据上述公式(1)计算出来的性能评价数据分别为{NEvalM1,NEvalM2,…,NEvalMn}。
进一步地,若存在多个数据节点,则在步骤S101中或者步骤S101之前或者步骤S102之前,根据多个性能评价数据中的最大的性能评价数据以及最小的性能评价数据,以及存储机制,确定部分或者全部所述数据节点对应的性能级别。
比如,将本实施例应用到Hadoop分布式文件系统时,如果基于三副本存储机制且性能级别可化为三个级别P1、P2、P3,其中P1表示性能最高即最高性能级别,P3表示性能最低即最低性能级别,则通过下述(2)-(3)确定单个数据节点的性能级别。
NEvalMax=Max{NEvalM1,NEvalM2,…,NEvalMn} (2)
NEvalMin=Min{NEvalM1,NEvalM2,…,NEvalMn} (3)
以确定其中数据节点M1来说:
若NEvalM1≥NEvalMin且NEvalM1<NEvalMin+[(NEvalMax-NEvalMin)/3],则数据节点M1的性能级别PM1=P1。
若NEvalM1≥NEvalMin+[(NEvalMax-NEvalMin)/3]且NEvalM1<NEvalMax-[(NEvalMax-NEvalMin)/3],则数据节点M1的性能级别PM1=P2。
若NEvalM1≥NEvalMax-[(NEvalMax-NEvalMin)/3]且NEvalM1≤NEvalMax,则数据节点M1的性能级别PM1=P3。
推而广之,对于单个数据节点来说,若其性能评价数据不小于其中最小的性能评价数据且小于最小的性能评价数据与步长均差的之和的话,则为该单个数据节点具有最高性能。
对于单个数据节点来说,若其性能评价数据不小于最小的性能评价数据与步长均差的之和,且小于其中最大的性能评价数据与步长均差的之差的话,则为该单个数据节点具有居中性能。
对于单个数据节点来说,若其性能评价数据不小于其中最大的性能评价数据与步长均差的之差,且不大于其中最大的性能评价数据的话,则为该单个数据节点具有最低性能。
上述所述的步长均差为最大的性能评价数据与最小的性能评价数据之差再除以存储机制中副本中的数量。
或者,上述确定性能级别的过程卡概括为:根据最小的性能评价数据、最大的性能评价数据、步长均差以及存储机制中副本的数量,确定所述数据节点的性能级别。
需要说明的是,上述确定性能级别的三个分支,在具体应用时,可以具有先后关系直至确定出性能级别,或者择一执行。
S102、根据所述数据节点的性能评价模型、以及所述数据节点的配置属性,对实施存储功能的所述数据节点进行调度。
本实施例中,如果存在所述数据节点的性能评价数据的话,则在步骤S102中,对实施存储功能的所述数据节点进行调度是可以包括:根据所述数据节点的性能评价数据、以及所述数据节点的配置属性,对实施存储功能的所述数据节点进行调度。
本实施例中,在步骤S101中或者步骤S101或者在步骤S102之前,还可以包括:根据所述数据节点的配置属性对所述数据节点进行配置级别划分。比如,在一具体应用场景中,所述数据接节点的配置级别有两个层次,分别为高配置、低配置。当然,在其应用场景中,也可以配置级别可以有三个层次,比如分别为高配置、中配置、低配置。
对应地,在步骤S102中,在进行调度时,根据所述数据节点的性能评价模型(进一步为性能评价数据)、以及所述数据节点的配置配置级别,对实施存储功能的所述数据节点进行调度。
进一步地,如果在步骤S102之前存在所述数据节点的性能级别,则在步骤S102中,可以具体根据所述数据节点的性能级别、以及所述数据节点的配置属性(进一步为配置级别),对实施存储功能的所述数据节点进行调度。
另外,在步骤S102中,在对实施存储功能的所述数据节点进行调度时,可以具体包括对实施存储功能的所述数据节点进行初始调度、动态调度中至少一种。初始调度和动态调度的示意性处理过程可分别参见下述图2、图3、图4记载所示。
在上述实施例的基础上,还包括:根据设定的热阈值或者冷阈值,确定需要移动的被存储数据,以在确定好调度对象后进行数据迁移。通过热阈值或者冷阈值的设定从而可以按断是否达到了动态调度的触发条件。比如当数据的访问频率比热(冷)阈值高(低)时,则可称其为高(低)访问频率数据。
图2为本申请实施例二中初始调度的流程示意图;如图2所示,以在Hadoop分布式文件系统中应用为例进行说明,在HDFS中,名称节点通过数据节点发送的心跳包来检测数据节点是否正常运行。在系统运行时,数据节点把当前的动态因素随心跳包一同发送给名称节点,包括CPU使用率及内存使用率、网络带宽使用率、磁盘使用率,还可以包括网络距离等信息发送给名称节点。本实施例中,初始调度包括如下流程:
S201、判断客户端是否是数据节点,如果是,则执行步骤S202A,否则执行步骤S202B;
本实施例中,如果客户端位于HDFS集群内,则可确定所述客户端为HDFS集群中的数据节点,否则,可确定所述客户端不为HDFS集群中的数据节点。
S202A、将被存储的对象上传到客户端本地;
本实施例中,将被存储的对象上传到客户端本地相当于初步将被存储的对象上传到作为该客户端的数据节点所在的机架本地。
S202B、随机选择一个机架;并在后执行S203B;
S203B、计算步骤S202B中选择的机架上高配置的数据节点和低配置的数据节点,并转到步骤S206;
本实施例中,由于HDFS集群内设置有多个机架,每个机架上设置有多个数据节点,因此,在选择机架上,优选你选择跟步骤S202A客户端网络距离最近的一个机架,然后在根据在步骤S203B中确定配置级别最高的一个数据节点和配置级别最低的一个数据节点。
S203A、判断步骤S202A中的作为客户端的数据节点是否为高配置,如果是则执行步骤S204A,否则执行步骤S204B;
本实施例中,具体可以根据数据节点的CPU架构、频率、核数、内存大小、磁盘大小、磁盘I/O等固有硬件的性能来判断是高配置还是低配置。
S204A、计算步骤S202A中数据节点所在机架上所有低配置的数据节点的性能级别;
S204B、计算步骤S202A中数据节点所在机架上所有高配置的数据节点的性能级别;
本实施例中,步骤S204A、S204B中计算性能级别的方法可参见图1实施例记载。
S205、选择性能级别最高的数据节点存储被存储对象。
本实施例中,若P1表示最高性能级别,则选择性能级别为P1的数据节点来存储被存储对象;若有多个性能级别为P1的数据节点,则可随机选择一个或者,选择一个距离客户端最近的数据节点。
在Hadoop分布式文件系统中,若基于三副本存储机制,则将其中一个副本存储到步骤S205中确定出的数据节点上。
S206、选择与性能级别最高的数据节点距离最小R-2个机架;
本实施例中,如应用于Hadoop分布式文件系统,副本数R等于3的话,由于客户端本身是高配置的数据节点存储一个副本,之前通过步骤S205A又确定了一个数据节点存储另外一个副本,而三个副本中只剩一个副本尚未匹配到能存储其的数据节点。因此,为了保证数据读取的有效性,在性能级别最高的数据节点所在机架之外的机架上选择能存储最后一个副本的数据节点。
S207、计算步骤S206中选出的机架上所有低配置数据节点的性能级别;
本实施例中,如应用于Hadoop分布式文件系统,R=3,三个副本中的两个副本已经存储到了同一机架的两个数据节点上,而通过步骤S207在其他机架上确定一个最低配置的数据点。
S208、从步骤S206中对应的机架上选择性能级别最高的数据节点存储被存储对象。
本实施例中,如应用于Hadoop分布式文件系统,R=3,从最低配置中的数据节点中选择性能级别最高的数据节存储剩余的最后一个副本。
由此可见,本实施例中,若应用于Hadoop分布式文件系统,一个副本存放在本地机架的一个高配置数据节点上,另一个副本存放在同一机架的另一个低配置数据节点上,第三个副本存放在在不同机架的低配置高性能级别的数据节点上,从而减少了机架间的数据传输,提高了写操作的效率,使得机架错误的概率远比节点错误的概率小,从而保证不会对数据的可靠性和可用性造成影响。与此同时,因为数据只存在两个机架上,这种策略减少了读数据时需要的网络传输带宽。在这种策略下,副本并不是均匀地分布在机架上。这种策略在不损坏可靠性和读取性能的情况下,改善了写的性能。
图3为本申请实施例三中初始调度的结构框图。假如Hadoop分布式文件系统中三个机架A、B、C,两个交换机,通过客户端实现将数据或者被存储对象(具体为3个副本)写入到机架上的数据节点中,假如对于机架A来说,其上有三个数据节点,各数据节点的配置级别与性能级别组合分别为低配置P1(简称低P1)、高配置P1(简称高P1)、低配置P3(简称低P3);对于机架B来说,其上有四个数据节点,各数据节点的配置级别与性能级别组合分别为高配置P3(简称高P3)、低配置P1(简称低P1)、高配置P1(简称高P1)、低配置P3(简称低P3);对于机架C来说,其上同样有四个数据节点,各数据节点的配置级别与性能级别组合分别为高配置P1(简称高P1)、低配置P3(简称低P3)、高配置P3(简称高P3)、低配置P1,P1、P2、P3含义参见上述实施例记载。
执行完上述图2实施例之后,示例性地,三个副本中的副本1和副本2分别存储在机架A上的高配置P1的数据节点、低配置P1的数据节点,副本3存储在机架C的低配置P1的数据节点。
上述图3,仅仅是示例,并非是对图2实施例或者本申请的限定,在上述实施例的启发下,存储副本1、副本2、副本3的数据节点也可以有其他组合形式。
在系统运行过程中,数据节点的性能在动态变化,而且数据的访问频率也在不断变化。对于访问频率高的副本,适当增加高配置节点存储会提高数据访问性能,相反减少高配置节点存储会提高资源利用率。所以,为了提高数据的访问效率和资源利用率,需要对数据的存储位置进行适当的调整,即所谓的动态调整,如下详细进行示例性说明。
图4为本申请实施例四中动态调度的流程示意图;本实施例中,示例性地,针对Hadoop分布式文件系统,当系统处于闲置状态即可进入动态调度,或者管理员手动触发动态调度。本实施例中,小于冷阈值表示对应数据节点的副本访问频率较低,而冷阈值的大小可以根据经验数据可确定。
本实施例中,以针对高配置点为例进行说明,其包括如下步骤:
S401、遍历系统中的所有高配置数据节点,并判断是否遍历结束;若遍历结束,则结束,否则,执行步骤S402;
本实施例中,也可以局部动态调整,也可以全局动态调整。局部的话,遍历系统中部分机架上的所有高配置数据节点,如实全局动态调整,则遍历系统中全部机架上的所有高配置数据节点。
S402、遍历所有高配置数据节点上存储的副本,并判断是否遍历结束;若未遍历结束,执行步骤S403A,否则执行步骤S403B;
S403A、判断副本的访问频率是否小于冷阈值;若是,则执行步骤S404,否则跳转到S402;
S403B、判断有所述高配置节点在同一机架上是否有低配置节点;若是,则执行步骤S405A,否则执行步骤S405B;
本实施例中,由于是对应数据节点上的副本的访问频率小于冷阈值,表明数据使用率并不高,为了从系统角度进行数据节点优化,需要将对应的副本移动到低配置节点上。
S404、记录此副本到需要移动的副本集合中;并跳转到步骤S402;
本实施例中,需要移动的副本集合中记录有需要把存储位置从当前数据节点转移到其他数据节点。
S405A、对该同一机架上的低配置节点进行性能级别排序,跳转到步骤S406;
本实施例中,优选在同一机架上进行低配置数据节点的选择,进一步参考性能级别,从中选择性能级别最高或者较高的数据节点来存储要移动的副本。
S405B、选择与所述高配置节点距离最近的另一机架;并跳转到步骤S405A;
S406、将需要移动的副本集合移动到性能级别最高的低配置节点上,并从副本集合中移除原副本,清空所述副本。
本实施例中,通过对副本进行移除、清空等操作,从而可以便于下次进行需移动副本的记录。
图5为本申请实施例五中动态调度的流程示意图;本实施例中,示例性地,针对Hadoop分布式文件系统,当系统处于闲置状态即可进入动态调度,或者管理员手动触发动态调度。本实施例中,大于冷阈值表示对应数据节点的副本访问频率较高,而热阈值的大小可以根据经验数据可确定。
本实施例中,以针对低配置点为例进行说明,其包括如下步骤:
S501、遍历系统中的所有低配置数据节点,并判断是否遍历结束;若遍历结束,则结束,否则,执行步骤S502;
本实施例中,也可以局部动态调整,也可以全局动态调整。局部的话,遍历系统中部分机架上的所有低配置数据节点,如实全局动态调整,则遍历系统中全部机架上的所有低配置数据节点。
S502、遍历所有低配置数据节点上存储的副本,并判断是否遍历结束;若未遍历结束,执行步骤S503A,否则执行步骤S503B;
S503A、判断副本的访问频率是否大于热阈值;若是,则执行步骤S504,否则跳转到S502;
S503、判断有所述低配置节点在同一机架上是否有高配置节点;若是,则执行步骤S505A,否则执行步骤S505B;
本实施例中,由于是对应数据节点上的副本的访问频率大于热阈值,表明数据使用率较高,为了从系统角度进行数据节点优化,需要将对应的副本移动到高配置节点上。
S504、记录此副本到需要移动的副本集合中,并跳转到步骤S502;
本实施例中,需要移动的副本集合中记录有需要把存储位置从当前数据节点转移到其他数据节点。
S505A、对该同一机架上的高配置节点进行性能级别排序,跳转到步骤S506;
本实施例中,优选在同一机架上进行高配置数据节点的选择,进一步参考性能级别,从中选择性能级别最高或者较高的数据节点来存储要移动的副本。
S505B、选择与所述低配置节点距离最近的另一机架;并跳转到步骤S505A;
S506、将需要移动的副本集合移动到性能级别最高的高配置节点上,并从副本集合中移除原副本,清空所述副本。
本实施例中,通过对副本进行移除、清空等操作,从而可以便于下次进行需移动副本的记录。
图6为本申请实施例六中存储调度装置的结构示意图;如图6所示,其包括:
第一程序模块601,用于根据数据节点的动态因素,针对所述数据节点建立性能评价模型;
第二程序模块602,用于根据所述数据节点的性能评价模型、以及所述数据节点的配置属性,对实施存储功能的所述数据节点进行调度。
可选地,在本申请的任一实施例中,所述动态因素包括以下中的至少一种:CPU使用率、内存使用率、网络带宽使用率、磁盘使用率。
可选地,在本申请的任一实施例中,所述第一程序模块601进一步用于根据所述数据节点以及为其不同动态因素赋予的权重,针对所述数据节点建立性能评价模型。
可选地,在本申请的任一实施例中,还包括第三程序模块,所述第三程序模块进一步用于根据所述数据节点的性能评价模型,确定所述数据节点的性能评价数据;
对应地,所述第二程序模块602进一步用于根据所述数据节点的性能评价数据、以及所述数据节点的配置属性,对实施存储功能的所述数据节点进行调度。
可选地,在本申请的任一实施例中,若实施存储功能的所述数据节点有多个,还包括第四程序模块,所述第四程序模块进一步用于根据其中最大的性能评价数据以及最小的性能评价数据,以及存储机制,确定部分或者全部所述数据节点对应的性能级别;
对应地,所述第二程序模块602进一步用于根据所述数据节点的性能级别、以及所述数据节点的配置属性,对实施存储功能的所述数据节点进行调度。
可选地,在本申请的任一实施例中,还包括:第五程序模块,所述第五程序模块进一步用于根据所述数据节点的配置属性对所述数据节点进行配置级别划分;
对应地,所述第二程序模块602进一步用于根据所述数据节点的性能评价模型、以及所述数据节点的配置级别,对实施存储功能的所述数据节点进行调度。
可选地,在本申请的任一实施例中,所述第二程序模块602进一步用于对实施存储功能的所述数据节点进行初始调度、动态调度中至少一种。
可选地,在本申请的任一实施例中,第五程序模块,所述第五程序模块进一步用于根据设定的热阈值或者冷阈值,确定需要移动的被存储数据,以在确定好调度对象后进行数据迁移。
可选地,在本申请的任一实施例中,所述第二程序模块602进一步用于在对实施存储功能的所述数据节点进行调度时参考网络位置进行调度。
需要说明的是,上述第一程序模块601、第二程序模块602、第三程序模块、第四程序模块、第五程序模块的划分并非绝对,在一些具体应用场合,相互之间可以复用。
本申请实施例还提供一种电子设备,其包括处理器,所述处理器上配置有执行如下技术处理的程序模块:
根据数据节点的动态因素,针对所述数据节点建立性能评价模型;
根据所述数据节点的性能评价模型、以及所述数据节点的配置属性,对实施存储功能的所述数据节点进行调度。
处理器可以CPU、或者MCU或者DSP等任一具备数据处理能力的电子单元。
电子设备可以是服务器,也可以是电子终端产品。
上述程序模块并非设置于同一处理器,也可以分别设置于不同处理器。
本申请实施例还还提供一种存储介质,所述存储介质上存储有执行如下技术处理的指令:
根据数据节点的动态因素,针对所述数据节点建立性能评价模型;
根据所述数据节点的性能评价模型、以及所述数据节点的配置属性,对实施存储功能的所述数据节点进行调度。
本申请的上述实施例中,充分考虑集群节点的配置高低、CPU和内存使用率、网络带宽、磁盘使用率和网络距离等因素,建立存储节点的性能评价模型,据此进行数据节点的调度。比如,在数据初始放置时可保障数据的多个副本的均衡放置,并能跟随数据的访问频率进行动态调整,从而实现了最大限度的利用集群中的高、低配置的节点,使高访问频率的数据集中在高配置数据节点,而低访问频率的数据尽可能的存储在性能相对较低的数据节点上,同时在上传数据时能兼顾到后期副本调整,减小调度开销。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,所述计算机可读记录介质包括用于以计算机(例如计算机)可读的形式存储或传送信息的任何机制。例如,机器可读介质包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪速存储介质、电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)等,该计算机软件产品包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请实施例的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
本领域的技术人员应明白,本发明实施例的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
Claims (2)
1.一种存储调度方法,其特征在于,应用于Hadoop分布式文件系统,包括:
根据多个数据节点{M1,M2,…,Mn}的动态因素,针对所述数据节点建立性能评价模型,所述数据节点的动态因素包括:CPU使用率、内存使用率、网络带宽使用率以及磁盘使用率,所述性能评价模型为:NEval=WCPU×NCPU+WMEM×NMEM+WNET×NNET+WSTO×NSTO,NEval表示性能评价数据,WCPU、WMEM、WNET、WSTO分别为CPU使用率、内存使用率、网络带宽使用率、磁盘使用率在性能评价中的权重值,NCPU表示CPU使用率、NMEM表示内存使用率、NNET表示网络带宽使用率、NSTO表示磁盘使用率;
计算所述多个数据节点的性能评价数据{NEvalM1,NEvalM2,…,NEvalMn};
根据多个性能评价数据中的最大的性能评价数据、最小的性能评价数据以及步长均差和存储机制中副本的数量确定所述数据节点的性能级别,所述步长均差为最大的性能评价数据与最小的性能评价数据之差再除以存储机制中副本中的数量,所述性能级别包括性能最高的最高性能级别、性能居中的居中性能级别以及性能最低的最低性能级别;
根据所述数据节点的配置属性对所述数据节点进行配置级别划分,所述数据节点的配置级别有两个层次,分别为高配置、低配置;
根据所述数据节点的性能级别、以及所述数据节点的配置级别,对实施存储功能的所述数据节点参考网络位置进行调度,所述调度包括初始调度、动态调度中的至少一种;
针对高配置数据节点,所述动态调度包括:
S401、遍历系统中的所有高配置数据节点,并判断是否遍历结束;若遍历结束,则结束,否则,执行步骤S402;
S402、遍历所有高配置数据节点上存储的副本,并判断是否遍历结束;若未遍历结束,执行步骤S403A,否则执行步骤S403B;
S403A、判断副本的访问频率是否小于冷阈值;若是,则执行步骤S404,否则跳转到S402;
S403B、判断有所述高配置节点在同一机架上是否有低配置节点;若是,则执行步骤S405A,否则执行步骤S405B;
S404、记录此副本到需要移动的副本集合中;并跳转到步骤S402;
S405A、对该同一机架上的低配置节点进行性能级别排序,跳转到步骤S406;
S405B、选择与所述高配置节点距离最近的另一机架;并跳转到步骤S405A;
S406、将需要移动的副本集合移动到性能级别最高的低配置节点上,并从副本集合中移除原副本,清空所述副本;
针对低配置数据节点,所述动态调度包括:
S501、遍历系统中的所有低配置数据节点,并判断是否遍历结束;若遍历结束,则结束,否则,执行步骤S502;
S502、遍历所有低配置数据节点上存储的副本,并判断是否遍历结束;若未遍历结束,执行步骤S503A,否则执行步骤S503B;
S503A、判断副本的访问频率是否大于热阈值;若是,则执行步骤S504,否则跳转到S502;
S503、判断有所述低配置节点在同一机架上是否有高配置节点;若是,则执行步骤S505A,否则执行步骤S505B;
S504、记录此副本到需要移动的副本集合中,并跳转到步骤S502;
S505A、对该同一机架上的高配置节点进行性能级别排序,跳转到步骤S506;
S505B、选择与所述低配置节点距离最近的另一机架;并跳转到步骤S505A;
S506、将需要移动的副本集合移动到性能级别最高的高配置节点上,并从副本集合中移除原副本,清空所述副本。
2.一种存储调度装置,其特征在于,应用于Hadoop分布式文件系统,包括:
第一程序模块,用于根据多个数据节点{M1,M2,…,Mn}的动态因素,针对所述数据节点建立性能评价模型,所述数据节点的动态因素包括:CPU使用率、内存使用率、网络带宽使用率以及磁盘使用率,所述性能评价模型为:NEval=WCPU×NCPU+WMEM×NMEM+WNET×NNET+WSTO×NSTO,NEval表示性能评价数据,WCPU、WMEM、WNET、WSTO分别为CPU使用率、内存使用率、网络带宽使用率、磁盘使用率在性能评价中的权重值,NCPU表示CPU使用率、NMEM表示内存使用率、NNET表示网络带宽使用率、NSTO表示磁盘使用率;
第三程序模块,用于计算所述多个数据节点的性能评价数据{NEvalM1,NEvalM2,…,NEvalMn};
第四程序模块,根据多个性能评价数据中的最大的性能评价数据、最小的性能评价数据以及步长均差和存储机制中副本的数量确定所述数据节点的性能级别,所述步长均差为最大的性能评价数据与最小的性能评价数据之差再除以存储机制中副本中的数量,所述性能级别包括性能最高的最高性能级别、性能居中的居中性能级别以及性能最低的最低性能级别;
第五程序模块,用于根据所述数据节点的配置属性对所述数据节点进行配置级别划分,所述数据节点的配置级别有两个层次,分别为高配置、低配置;
第二程序模块,用于根据所述数据节点的性能级别、以及所述数据节点的配置级别,对实施存储功能的所述数据节点参考网络位置进行调度,所述调度包括初始调度、动态调度中的至少一种;
针对高配置数据节点,所述动态调度包括:
S401、遍历系统中的所有高配置数据节点,并判断是否遍历结束;若遍历结束,则结束,否则,执行步骤S402;
S402、遍历所有高配置数据节点上存储的副本,并判断是否遍历结束;若未遍历结束,执行步骤S403A,否则执行步骤S403B;
S403A、判断副本的访问频率是否小于冷阈值;若是,则执行步骤S404,否则跳转到S402;
S403B、判断有所述高配置节点在同一机架上是否有低配置节点;若是,则执行步骤S405A,否则执行步骤S405B;
S404、记录此副本到需要移动的副本集合中;并跳转到步骤S402;
S405A、对该同一机架上的低配置节点进行性能级别排序,跳转到步骤S406;
S405B、选择与所述高配置节点距离最近的另一机架;并跳转到步骤S405A;
S406、将需要移动的副本集合移动到性能级别最高的低配置节点上,并从副本集合中移除原副本,清空所述副本;
针对低配置数据节点,所述动态调度包括:
S501、遍历系统中的所有低配置数据节点,并判断是否遍历结束;若遍历结束,则结束,否则,执行步骤S502;
S502、遍历所有低配置数据节点上存储的副本,并判断是否遍历结束;若未遍历结束,执行步骤S503A,否则执行步骤S503B;
S503A、判断副本的访问频率是否大于热阈值;若是,则执行步骤S504,否则跳转到S502;
S503、判断有所述低配置节点在同一机架上是否有高配置节点;若是,则执行步骤S505A,否则执行步骤S505B;
S504、记录此副本到需要移动的副本集合中,并跳转到步骤S502;
S505A、对该同一机架上的高配置节点进行性能级别排序,跳转到步骤S506;
S505B、选择与所述低配置节点距离最近的另一机架;并跳转到步骤S505A;
S506、将需要移动的副本集合移动到性能级别最高的高配置节点上,并从副本集合中移除原副本,清空所述副本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711137415.3A CN109800076B (zh) | 2017-11-16 | 2017-11-16 | 存储调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711137415.3A CN109800076B (zh) | 2017-11-16 | 2017-11-16 | 存储调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109800076A CN109800076A (zh) | 2019-05-24 |
CN109800076B true CN109800076B (zh) | 2021-09-10 |
Family
ID=66555542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711137415.3A Active CN109800076B (zh) | 2017-11-16 | 2017-11-16 | 存储调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109800076B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105743994A (zh) * | 2016-04-04 | 2016-07-06 | 上海大学 | 基于动态用户融合的云计算服务架构方法 |
US9529609B2 (en) * | 2013-12-10 | 2016-12-27 | Vmware, Inc. | Tracking guest memory characteristics for memory scheduling |
CN106294511A (zh) * | 2015-06-10 | 2017-01-04 | 中国移动通信集团广东有限公司 | 一种Hadoop分布式文件系统的存储方法及装置 |
CN106453546A (zh) * | 2016-10-08 | 2017-02-22 | 电子科技大学 | 分布式存储调度的方法 |
US9811263B1 (en) * | 2014-06-30 | 2017-11-07 | Altera Corporation | Memory controller architecture with improved memory scheduling efficiency |
-
2017
- 2017-11-16 CN CN201711137415.3A patent/CN109800076B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9529609B2 (en) * | 2013-12-10 | 2016-12-27 | Vmware, Inc. | Tracking guest memory characteristics for memory scheduling |
US9811263B1 (en) * | 2014-06-30 | 2017-11-07 | Altera Corporation | Memory controller architecture with improved memory scheduling efficiency |
CN106294511A (zh) * | 2015-06-10 | 2017-01-04 | 中国移动通信集团广东有限公司 | 一种Hadoop分布式文件系统的存储方法及装置 |
CN105743994A (zh) * | 2016-04-04 | 2016-07-06 | 上海大学 | 基于动态用户融合的云计算服务架构方法 |
CN106453546A (zh) * | 2016-10-08 | 2017-02-22 | 电子科技大学 | 分布式存储调度的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109800076A (zh) | 2019-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108009016B (zh) | 一种资源负载均衡控制方法及集群调度器 | |
CN107391031B (zh) | 一种基于混合存储的计算系统中的数据迁移方法及装置 | |
CN110262901B (zh) | 一种数据处理方法及数据处理系统 | |
CN103810020B (zh) | 虚拟机弹性伸缩方法及装置 | |
US20200201763A1 (en) | Memory hierarchy-aware processing | |
US20170039485A1 (en) | System and Method for Balancing Computation with Communication in Parallel Learning | |
WO2017166643A1 (zh) | 一种任务资源的量化方法和装置 | |
CN108900626B (zh) | 一种云环境下数据存储方法、装置及系统 | |
US20170134304A1 (en) | Resource planning method, system, and apparatus for cluster computing architecture | |
CN106503791A (zh) | 用于有效神经网络部署的系统和方法 | |
Xie et al. | Pandas: robust locality-aware scheduling with stochastic delay optimality | |
CN110415160B (zh) | 一种gpu拓扑分区方法与装置 | |
JP2017117204A (ja) | プロセッサ、再構成可能回路の制御方法及びプログラム | |
US9742684B1 (en) | Adaptive service scaling | |
CN108376103A (zh) | 一种云平台的资源平衡控制方法及服务器 | |
WO2019001323A1 (zh) | 信号处理的系统和方法 | |
CN105554049B (zh) | 分布式业务量控制方法和装置 | |
CN111352915B (zh) | 一种机器学习系统、一种机器学习参数服务器及实现方法 | |
CN111930516A (zh) | 一种负载均衡方法及相关装置 | |
CN109213745B (zh) | 一种分布式文件存储方法、装置、处理器及存储介质 | |
CN109800076B (zh) | 存储调度方法及装置 | |
CN110167031A (zh) | 一种面向集中式基站的资源分配方法、设备及存储介质 | |
CN107547593A (zh) | 一种实现日志同步的方法、装置及分布式系统 | |
CN110750363B (zh) | 计算机存储管理方法和装置、电子设备和存储介质 | |
WO2017028744A1 (zh) | 一种用于确定待部署资源的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |