一种存储资源负载均衡方法及装置与流程

文档序号:11479760阅读:285来源:国知局
一种存储资源负载均衡方法及装置与流程

本发明属于数据存储技术领域,尤其涉及一种存储资源负载均衡方法及装置。



背景技术:

随着监控业务的发展,监控规模越来越大,对存储资源的承压是一种考验。为了提高监控业务的读写性能,需要对存储资源的负载进行均衡,降低单个资源的压力。例如如图1所示的云存储系统,一般在cdv上挂载多个san存储资源,需要对每个cdv上的业务均匀分摊到每个存储资源上来提供各种业务性能。

现有技术方案,往往根据单个存储资源上的读写任务数和容量来做负载均衡,在容量足够时,选取任务数最少的存储资源来使用。该方案简单易用,一般情况下负载比较均衡,在每个存储资源上维护一个任务计数,每个存储资源上的任务数能根据读写任务打开关闭及时更新。但该方案随着存储业务的增加,网络环境的复杂,具有比较明显的缺点:

在瞬时密集业务时,无法完全保证任务数均衡,达到负载均衡;

网络环境的复杂,比如关闭文件失败时,可能导致任务数残留,这时候根据任务数最少来选择资源,实际并不均衡;

根据任务数来选资源,即文件的分布具有很大的随机性,会增加资源上目录数,降低检索读取业务的性能。



技术实现要素:

本发明的目的是提供一种存储资源负载均衡方法及装置,避免根据任务数进行负载均衡时所具有的上述缺点。

为了实现上述目的,本发明技术方案如下:

一种存储资源负载均衡方法,应用于数据存储系统中的存储管理服务器,所述数据存储系统还包括应用设备和存储虚拟化组件,所述存储虚拟化组件包括至少两个物理存储资源,每个物理存储资源虚拟出至少两个虚拟节点,每个虚拟节点对应有一个被存储管理服务器管理的虚拟节点信息,以及根据该虚拟节点信息计算出的节点哈希值,所述存储资源负载均衡方法包括:

存储管理服务器获取应用设备写任务中携带的设备信息,根据所述设备信息计算所述写任务对应的任务哈希值;

将所述任务哈希值与存储虚拟化组件中的各虚拟节点的节点哈希值进行比较,根据比较结果,选择满足设定规则的虚拟节点所对应的物理存储资源作为所述写任务的物理存储资源进行存储。

优选地,所述设备信息为所述写任务对应的用户目录编码。

优选地,所述选择满足设定规则的虚拟节点所对应的物理存储资源作为所述写任务的物理存储资源进行存储,包括:

从按照节点哈希值排序的虚拟节点中,选择第一个节点哈希值比任务哈希值大的虚拟节点;

将该虚拟节点所在的物理存储资源作为该写任务的物理存储资源进行存储。

进一步地,所述存储资源负载均衡方法还包括:

如果所选择的物理存储资源不可用或者容量不足,则计算所有可用并且容量足够的物理存储资源上的写任务数,选择写任务数最小的物理存储资源作为该写任务的物理存储资源进行存储。

优选地,所述单个存储虚拟化组件下的物理存储资源虚拟出的虚拟节点总数不小于单个存储虚拟化组件的最大存储路数。

本发明还提出了一种存储资源负载均衡装置,应用于数据存储系统中的存储管理服务器,所述数据存储系统还包括应用设备和存储虚拟化组件,所述存储虚拟化组件包括至少两个物理存储资源,每个物理存储资源虚拟出至少两个虚拟节点,每个虚拟节点对应有一个被存储管理服务器管理的虚拟节点信息,以及根据该虚拟节点信息计算出的节点哈希值,所述存储资源负载均衡装置包括:

任务接收模块,用于获取应用设备写任务中携带的设备信息,根据所述设备信息计算所述写任务对应的任务哈希值;

任务分配模块,用于将所述任务哈希值与存储虚拟化组件中的各虚拟节点的节点哈希值进行比较,根据比较结果,选择满足设定规则的虚拟节点所对应的物理存储资源作为所述写任务的物理存储资源进行存储。

优选地,所述设备信息为所述写任务对应的用户目录编码。

优选地,所述任务分配模块选择满足设定规则的虚拟节点所对应的物理存储资源作为所述写任务的物理存储资源进行存储,执行如下操作:

从按照节点哈希值排序的虚拟节点中,选择第一个节点哈希值比任务哈希值大的虚拟节点;

将该虚拟节点所在的物理存储资源作为该写任务的物理存储资源进行存储。

进一步地,所述任务分配模块还用于:

如果所选择的物理存储资源不可用或者容量不足,则计算所有可用并且容量足够的物理存储资源上的写任务数,选择写任务数最小的物理存储资源作为该写任务的物理存储资源进行存储。

优选地,所述单个存储虚拟化组件下的物理存储资源虚拟出的虚拟节点总数不小于单个存储虚拟化组件的最大存储路数。

本发明提出的一种存储资源负载均衡方法及装置,存储管理服务器根据写任务对应的任务哈希值,将任务哈希值与存储虚拟化组件中的虚拟节点的节点哈希值进行比较,根据比较结果,从虚拟节点中选择满足设定规则的虚拟节点所在的物理存储资源作为该写任务的物理存储资源进行存储。由于写任务对应的任务哈希值是固定的,保证了负载均衡的稳定性,使单个应用设备尽量存储在某个物理存储资源上。通过增加虚拟节点,使物理存储资源尽量分散开,增加负载的均衡性,使多个应用设备尽量分散存储在多个物理存储资源上,在异常情况下,通过计算物理存储资源上的写任务数进行负载均衡调整。并通过保证负载的稳定性及均衡性,提高了读写检索等业务的性能。

附图说明

图1为视频监控中常用的云存储系统结构示意图;

图2为存储虚拟化组件的结构示意图;

图3为本发明存储资源负载均衡方法流程图;

图4为实验数据分布图;

图5为本发明存储资源负载均衡装置结构示意图。

具体实施方式

下面结合附图和实施例对本发明技术方案做进一步详细说明,以下实施例不构成对本发明的限定。

如图1所示,为一种视频监控中常用的云存储cds(clouddirectstorage)方案,在该云存储系统中,应用设备包括网络摄像机ipc、编码器ec或其他数据源设备,ipc拍摄的视频数据需要存储到存储资源中。云存储管理服务器cdm(clouddirectmanagement)集中统一管理底层的存储虚拟化组件cdv(clouddirectvirtual),构成全局统一的虚拟存储空间。一般在一个cdv上挂载多个ipsan/fcsan/nas存储设备,本实施例将一个ipsan/fcsan/nas存储设备称为一个物理存储资源,即一个cdv上挂载多个物理存储资源。

在如图1所示的云存储系统中,当应用设备要进行读写时,首先向cdm请求可以访问的存储空间,并将视频数据离散存储到各底层标准的物理存储资源上去,当某一物理存储资源发生故障时,cdm会自动重新分配一个新的存储空间给应用设备进行访问,从而实现业务不停顿的读写,支持动态扩容和缩容,提供不间断的视频和图片存储服务。同时也能提供视频实况、视频点播回放、报警管理、布防撤防、地图应用等多种视频业务。

本实施例以图1所示的视频监控中常用的云存储为例,来详细阐述本发明的存储资源负载均衡方法,应用于数据存储系统中的存储管理服务器。本技术方案中数据存储系统还包括应用设备和存储虚拟化组件,存储虚拟化组件包括至少两个物理存储资源,每个物理存储资源虚拟出至少两个虚拟节点,每个虚拟节点对应有一个被存储管理服务器管理的虚拟节点信息,以及根据该虚拟节点信息计算出的节点哈希值。

例如,如图2所示,物理存储资源有三个res1、res2和res3,res1对应有虚拟节点res1-1、res1-2和res1-3,res2对应有虚拟节点res2-1、res2-2和res2-3,res3对应有虚拟节点res3-1、res3-2和res3-3。假设res1-1、res1-2、res1-3、res2-1、res2-2、res2-3、res3-1、res3-2、res3-3为各虚拟节点对应的节点哈希值,在图2中按照节点哈希值的大小顺序排列。

在实际监控系统中,假设单个cdv最大存储路数为512路,本实施例将每个物理存储资源虚拟出32个虚拟节点,当所有虚拟节点的总数不大于512时,则增加每个物理存储资源的虚拟节点数,例如有5个物理存储资源,每个物理存储资源虚拟出32个虚拟节点,虚拟节点的总数才160,这时候需要增加每个物理存储资源虚拟出的虚拟节点数,例如增加到每个物理存储资源的虚拟节点数为105个,使得虚拟节点的总数大于512。这样的设置,使得单个存储虚拟化组件下的物理存储资源虚拟出的虚拟节点总数不小于单个存储虚拟化组件的最大存储路数,对于每一路存储总有虚拟节点可以进行选择,便于后续的负载均衡。

图2中仅示出了3个物理存储资源,虚拟节点放在一条虚线上表示其节点哈希值顺序性,从小到大排列,这样在后续进行虚拟节点选择时更加容易选择。根据需要可以配置更多的物理存储资源,这里不再赘述。由于单个cdv最大存储路数有限,本实施例中单个存储虚拟化组件下的物理存储资源虚拟出的虚拟节点总数不小于单个存储虚拟化组件的最大存储路数,对于每一路存储总有虚拟节点可以进行选择,便于后续的负载均衡。

本实施例中,存储管理服务器可以管理多个存储虚拟化组件,每个存储虚拟化组件包括至少两个物理存储资源,每个物理存储资源虚拟出至少两个虚拟节点,虚拟节点的总数不小于存储虚拟化组件的存储路数,每个虚拟节点对应有一个被存储管理服务器管理的虚拟节点信息,该虚拟节点信息通常是该虚拟节点的名称,或者虚拟路径等其他有代表性且唯一的信息,其中虚拟路径是指虚拟节点带有的,用来指向对应的物理存储资源的路径,存储管理服务器可以根据虚拟节点的虚拟路径来找到对应的物理存储资源。例如根据虚拟节点的虚拟路径,通过哈希(hash)函数计算出一个对应的节点哈希值,每个虚拟节点记录有自己的虚拟节点的虚拟路径和节点哈希值。

如图3所示,本实施例一种存储资源负载均衡方法,包括:

存储管理服务器获取应用设备写任务中携带的设备信息,根据设备信息计算写任务对应的任务哈希值;

将任务哈希值与存储虚拟化组件中的各虚拟节点的节点哈希值进行比较;

根据比较结果,选择满足设定规则的虚拟节点所对应物理存储资源作为该写任务的物理存储资源进行存储。

以图1中的视频监控中常用的云存储cds为例,ipc输出的视频数据需要写入物理存储资源,写任务发送到cdm,cdm通过设定的哈希函数计算出其对应的任务哈希值。例如采用的哈希函数为md5、sha等,本实施例选择md5算法,md5具有很低的碰撞概率及较好的散列均匀性。对写任务对应的设备信息进行计算得到任务哈希值,设备信息可以是ipc的名称、序列号等信息,或用户目录编码等具有唯一性的信息。例如在视频监控系统中每个任务都对应有各自的用户目录编码,且该用户目录编码唯一,采用用户目录编码来计算得到任务哈希值。

例如一个典型的用户目录编码如下:

256gb001#1885365065_47640

由于在视频监控系统中每个用户目录编码都是唯一的,通过hash函数能得到不同的哈希值,在一般规模(每个cdv最大存储数为512路,物理存储资源最大数为128个)的业务中,能够保证写任务分散到每个物理存储资源上。并且用户目录是固定不变,稳定的,通过hash函数得到的任务哈希值每次都一样,在物理存储资源可用的情况下保证了每次都能选择到该物理存储资源,当物理存储资源从异常状态恢复正常时,能再次选择到该资源。这样就保证了资源选择的稳定性,即同一个写任务都写入同一个物理存储资源。从而也便于后续进行回放等其他业务在读取的时候更加方便,提高了系统中的业务性能。

假设计算出的任务哈希值为hash(usrdircode),将任务哈希值与存储虚拟化组件中的虚拟节点的节点哈希值进行比较,按照设定规则选择进行写任务的虚拟节点,例如从按照节点哈希值排序的虚拟节点中,选择第一个节点哈希值比hash(usrdircode)大的虚拟节点,虚拟节点根据节点哈希值大小排序,方便查找。假设此节点为res2-2,对应的物理存储资源为res2,则在res2上进行写入操作。选择时设定规则可以进行调整,不限于选择第一个节点哈希值比hash(usrdircode)大的虚拟节点,也可以是选择第一个节点哈希值比hash(usrdircode)小的虚拟节点。

进一步地,如果该物理存储资源不可用或者容量不足,则计算所有可用并且容量足够的物理存储资源上的写任务数,选择写任务数最小的物理存储资源作为该写任务的物理存储资源进行存储,保证异常情况下能动态调整均衡性。另外,如果该物理存储资源不可用或者容量不足,也可以计算所有可用并且容量足够的物理存储资源上的写任务数,选择写任务数低于设定阈值的物理存储资源上的虚拟节点。一般物理存储资源的容量都能够自动检测并上报到存储管理服务器,当物理存储资源的容量小于设定的阈值时,认为该物理存储资源的容量不足,或者当物理存储资源的容量小于该写任务所需要的存储空间容量时,认为该物理存储资源的容量不足,否则就认为容量足够。具体的选择根据均分的原则,在可用并且容量足够的物理存储资源上选择,这里不再赘述。

需要说明的是,本实施例的技术方案对于其他存储系统中存储资源的负载均衡同样适用,例如在电视节目存储系统中,应用设备为各电台的录制前端,其存储管理服务器不是本实施例中的cdm,而是对存储资源进行管理的存储管理服务器。即本技术方案适合于所有进行数据存储管理的数据存储系统。

如图4所示,在一个实施例中,配置92路存储,物理存储资源数为20个,得到的存储分布结果,纵轴表示物理存储资源上的存储写任务数,横轴表示物理存储资源。存储结果符合预期所有资源上的存储写任务数数偏差(最大存储数-最小存储数)在5以内,总体均衡分布。

如图5所示,本实施例一种存储资源负载均衡装置,应用于数据存储系统中的存储管理服务器。本实施例数据存储系统还包括应用设备和存储虚拟化组件,所述存储虚拟化组件包括至少两个物理存储资源,每个物理存储资源虚拟出至少两个虚拟节点,每个虚拟节点对应有一个被存储管理服务器管理的虚拟节点信息,以及根据该虚拟节点信息计算出的节点哈希值。本实施例存储资源负载均衡装置包括:

任务接收模块,用于获取应用设备写任务中携带的设备信息,根据所述设备信息计算所述写任务对应的任务哈希值;

任务分配模块,用于将所述任务哈希值与存储虚拟化组件中的各虚拟节点的节点哈希值进行比较,根据比较结果,选择满足设定规则的虚拟节点所对应的物理存储资源作为所述写任务的物理存储资源进行存储。

与上述图3的存储资源负载均衡方法对应,本实施例的存储资源负载均衡装置:

优选地,所述设备信息为所述写任务对应的用户目录编码。

优选地,任务分配模块选择满足设定规则的虚拟节点所对应的物理存储资源作为所述写任务的物理存储资源进行存储,执行如下操作:

从按照节点哈希值排序的虚拟节点中,选择第一个节点哈希值比任务哈希值大的虚拟节点;

将该虚拟节点所在的物理存储资源作为该写任务的物理存储资源进行存储。

优选地,在所选择的物理存储资源不可用或者容量不足时,任务分配模块还用于:

如果所选择的物理存储资源不可用或者容量不足,则计算所有可用并且容量足够的物理存储资源上的写任务数,选择写任务数最小的物理存储资源该写任务的物理存储资源进行存储。

同样,本实施例单个存储虚拟化组件下的物理存储资源虚拟出的虚拟节点总数不小于单个存储虚拟化组件的最大存储路数,从而对于每一路存储总有虚拟节点可以进行选择,便于根据写任务的任务哈希值选择到虚拟节点,实现负载均衡。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1