CN112383628B - 一种基于流式存储的存储网关资源分配方法 - Google Patents
一种基于流式存储的存储网关资源分配方法 Download PDFInfo
- Publication number
- CN112383628B CN112383628B CN202011280374.5A CN202011280374A CN112383628B CN 112383628 B CN112383628 B CN 112383628B CN 202011280374 A CN202011280374 A CN 202011280374A CN 112383628 B CN112383628 B CN 112383628B
- Authority
- CN
- China
- Prior art keywords
- storage
- node
- dau
- max
- capacity
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于流式存储的存储网关资源分配方法,包括:对所述服务器集群进行逻辑划分,将所述服务器集群划分为多个存储组;创建磁盘阵列单元DAU;存储池的划分;存储网关作为设备接入的唯一入口,同时管理整个服务器集群相关资源;当存储网关接收到设备E的接入请求时,按选择的容量优先模式和省电优先模式,进行存储资源的分配。本发明不同于现有技术仅采用单一的视频存储方式,本发明构建的负载均衡策略中,考虑存储周期,设备带宽,存储容量等多种因素。通过各因素及参数,得到最适合的,负载均衡的分配结果,提升存储系统的使用性能。
Description
技术领域
本发明属于网关资源分配技术领域,具体涉及一种基于流式存储的存储网关资源分配方法。
背景技术
伴随着科学技术的迅猛发展,海量存储时代已经到来。在智慧城市等项目的推动下,存储技术对于安防领域的作用越来越明显,对存储的可靠性,资源利用率等有了越来越严格的要求。当前数据存储有一定的单一性,且对于设备的接入没有经过太多的处理,比如:仅随着存储设备的增加进行简单的资源分配的线性递增。
现有的存储设备在存储数据时,仅仅将数据流顺序的保存到存储设备中,容易导致整个集群中的资源分配不合理,资源的使用量不高,造成资源的浪费,以及对整个系统的性能产生较大的影响。同时,存储策略过于单一,缺少灵活性,导致实际应用时局限性较大,无法满足系统和应用场景要求。
发明内容
针对现有技术存在的缺陷,本发明提供一种基于流式存储的存储网关资源分配方法,可有效解决上述问题。
本发明采用的技术方案如下:
本发明提供一种基于流式存储的存储网关资源分配方法,包括以下步骤:
步骤1,存储网关与服务器集群连接;对所述服务器集群进行逻辑划分,将所述服务器集群划分为多个存储组;
每个所述存储组包括N个节点,分别为:节点Node1,节点Node2,...,节点NodeN;对于任意的节点Nodei,i=1,2,...,N,包括节点处理模块Ci以及D块磁盘,D块磁盘分别为:磁盘Diski1,磁盘Diski2,...,磁盘DiskiD;其中,N个节点中,包括N1个数据存储节点,N2个冗余存储节点;N=N1+N2;
步骤2,创建磁盘阵列单元DAU,方法为:
节点Node1的磁盘Disk11,节点Node2的磁盘Disk21,...,节点NodeN的磁盘DiskN1组成磁盘阵列单元DAU1;
节点Node1的磁盘Disk12,节点Node2的磁盘Disk22,...,节点NodeN的磁盘DiskN2组成磁盘阵列单元DAU2;
依此类推
节点Node1的磁盘Disk1D,节点Node2的磁盘Disk2D,...,节点NodeN的磁盘DiskND组成磁盘阵列单元DAUD;
步骤3,存储池的划分,方法为:
对于步骤2形成的D个DAU,选择若干个DAU形成的集合称为存储池;由此将D个DAU分配形成m个存储池,分别为存储池Pool1,存储池Pool2,...,存储池Poolm;
步骤4,存储网关作为设备接入的唯一入口,同时管理整个服务器集群相关资源;当存储网关接收到设备E的接入请求时,存储网关对接入请求进行解析,获得以下参数:设备E的设备ID,存储周期T、设备视频数据带宽B以及接入模式;其中,所述接入模式包括容量优先模式和省电优先模式;
存储网关根据存储周期T和设备视频数据带宽B,计算得到设备E所需总存储容量need_capacity;
如果为容量优先模式,则执行步骤5;如果为省电优先模式,则执行步骤6;
步骤5,存储网关采用容量优先模式,按以下方式,从服务器集群中选择所需的磁盘阵列单元DAU:
步骤5.1,存储网关比较各个存储组的当前剩余容量,选择剩余容量最大的存储组,表示为存储组storemax;
步骤5.2,存储网关判断存储组storemax的当前剩余容量是否大于等于设备E所需总存储容量need_capacity,如果判断结果为否,则向设备E发送接入失败的通知消息;如果判断结果为是,则执行步骤5.3;
步骤5.3,存储网关比较存储组storemax的各个存储池的当前剩余容量,选择剩余容量最大的存储池,表示为存储池Poolmax;
步骤5.4,存储网关判断存储池Poolmax的当前剩余容量是否大于等于设备E所需总存储容量need_capacity,如果判断结果为否,则需要在存储组storemax内跨存储池存储设备E的数据,向设备E发送是否允许跨存储池存储数据的询问消息,如果存储网关接收到设备E的禁止跨存储池存储数据的消息,则存储网关向设备E发送接入失败的通知消息;否则,存储网关按存储池占用数量最少的原则,确定需要采用的存储池;
如果判断结果为是,则执行步骤5.5;
其中,磁盘阵列单元DAU的当前可使用剩余容量采用以下方式计算:
步骤5.6,存储网关判断磁盘阵列单元DAUmax的当前可使用剩余容量是否大于等于设备E所需总存储容量need_capacity,如果判断结果为否,则需要在存储池Poolmax内跨磁盘阵列单元DAU存储设备E的数据,向设备E发送是否允许跨磁盘阵列单元DAU存储数据的询问消息,如果存储网关接收到设备E的禁止跨磁盘阵列单元DAU存储数据的消息,则存储网关向设备E发送接入失败的通知消息;否则,存储网关按磁盘阵列单元DAU占用数量最少的原则,确定需要采用的磁盘阵列单元DAU;
如果判断结果为是,则磁盘阵列单元DAUmax即为最终选定的磁盘阵列单元DAU,然后执行步骤7;
步骤6,存储网关采用省电优先模式,按以下方式,从服务器集群中选择所需的磁盘阵列单元DAU:
步骤6.1,存储网关建立存储组集合;初始时,存储组集合包括服务器集群的所有存储组;
步骤6.2,存储网关读取存储组集合,比较存储组集合中的各个存储组的当前活跃度,选择当前活跃度最大的存储组,表示为存储组store"max;
其中,存储组活跃度是指:存储组当前处于激活运行状态的磁盘的数量;处于激活运行状态的磁盘数越多,则存储组的当前活跃度越高;
步骤6.3,存储网关判断存储组store"max的当前剩余容量是否大于等于设备E所需总存储容量need_capacity,如果判断结果为否,则将当前识别到的存储组store"max从存储组集合中移出,再返回步骤6.2;
如果判断结果为是,则执行步骤6.4;
步骤6.4,存储网关建立与存储组store"max对应的存储池集合;初始时,存储池集合包括存储组store"max的所有存储池;
步骤6.5,存储网关读取存储池集合,比较存储池集合中的各个存储池的当前活跃度,选择当前活跃度最大的存储池,表示为存储池Pool"max;
其中,存储池活跃度是指:存储池当前处于激活运行状态的磁盘的数量;
步骤6.6,存储网关判断存储池Pool"max的当前剩余容量是否大于等于设备E所需总存储容量need_capacity,如果判断结果为否,则将当前识别到的存储池Pool"max从存储池集合中移出,再返回步骤6.4;
如果判断结果为是,则执行步骤6.7;
步骤6.7,存储网关建立与存储池Pool"max对应的磁盘阵列单元DAU集合;初始时,磁盘阵列单元DAU集合包括存储池Pool"max的所有DAU;
步骤6.8,存储网关读取DAU集合,比较DAU集合中的各个DAU的当前活跃度,选择当前活跃度最大的DAU,表示为磁盘阵列单元DAU"max;
其中,DAU的当前活跃度是指:DAU当前处于激活运行状态的磁盘的数量;
步骤6.9,存储网关判断磁盘阵列单元DAU"max的当前可使用剩余容量是否大于等于设备E所需总存储容量need_capacity,如果判断结果为否,则将当前识别到的DAU"max从DAU集合中移出,再返回步骤6.8;
如果判断结果为是,则磁盘阵列单元DAU"max即为最终选定的磁盘阵列单元DAU,然后执行步骤7;
步骤7,将最终选定的磁盘阵列单元DAU"max和磁盘阵列单元DAUmax,统一表示为磁盘阵列单元DAU0 max;将磁盘阵列单元DAU0 max的ID、设备E的设备ID以及设备E所需总存储容量need_capacity的对应关系形成配置表,并将配置表同步给选定存储组的各个节点的节点处理模块C;
步骤8,存储网关在N个节点,即在节点Node1,节点Node2,...,节点NodeN中,按照选择策略,选择一个与本次接入设备E对应的接入节点Node接入,将剩余N-1个节点称为非接入节点;
步骤9,存储网关将设备E的接入请求转接到接入节点Node接入;
步骤10,接入节点Node接入的节点处理模块C接入实时接收设备E的视频流,对设备E的视频流进行分块处理,方法为:每当接收到设定长度的视频流时,将该设定长度的视频流按序分割为N1个数据块,然后按N1个数据块各分送给对应的N1个数据存储节点的节点处理模块,即:1个数据块发送给对应的1个数据存储节点;
步骤11,对于接收到设备E的数据块的数据存储节点,按以下方式存储数据块:
数据存储节点首次接收到设备E的数据块时,通过本地存储的配置表,根据设备E的设备ID定位到对应的DAU,进而定位到对应的磁盘Disk;在定位到的磁盘Disk中,从当前可用磁盘容量中,划分出长度等于设备E所需总存储容量need_capacity的存储区域,作为设备E的存储区域;
后续过程中,数据存储节点将接收到的设备E的各个数据块,按序存储到确定的存储区域中。
优选的,步骤8中,采用以下方式,确定接入节点:
1)对于任意的节点Nodei,采用下式计算总负载Bi:
已接入设备的占用带宽为B_Nodei,节点Nodei的CPU负载为CPU_Nodei,则采用下式计算节点Nodei的总负载Bi:
Bi=α*B_Nodei+β*CPU_Nodei
其中:α为占用带宽权重;β为CPU负载权重;
2)总负载Bi最小的节点,即为接入节点;如果总负载Bi最小的节点存在多个,则选择框槽号或IP地址最小的节点作为接入节点。
本发明提供的一种基于流式存储的存储网关资源分配方法具有以下优点:
(1)本发明不同于现有技术仅采用单一的视频存储方式,本发明构建的负载均衡策略中,考虑存储周期,设备带宽,存储容量等多种因素。通过各因素及参数,得到最适合的,负载均衡的分配结果,提升存储系统的使用性能。
(2)本发明对设备寿命、降功耗以及数据处理性能等相关策略有较大的支撑和提升,可以有效的延长设备的使用时间,提升数据处理效率,提升系统的安全性,同时达到省电的目的。
(3)本发明为设备接入时的资源分配提供了更多的灵活性,适用于不同的系统、不同的应用场景以及不同的使用环境和要求,使存储系统具有更好的健壮性和可靠性。
附图说明
图1为本发明提供的一种基于流式存储的存储网关资源分配方法的流程示意图;
图2为本发明提供的基于流式存储的逻辑划分图;
图3为本发明提供的基于流式存储的节点资源图;
图4为本发明提供的流式存储的省电模式下节点资源使用图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种基于流式存储的存储网关资源分配方法,使流式设备在接入存储设备时,提供统一的系统资源分配算法,并综合考虑各类硬件资源(存储容量、码率、带宽)及动态资源(CPU处理能力、系统内存、磁盘IO速率),同时也采用特定的算法进行分配节点,并根据相关因素及接入参数,包括存储周期、带宽、存储参数和磁盘空间等,进行相关计算,得到一个能使系统负载均衡的资源,分配给对应的流式设备。
在进行资源分配时,本发明支持自定义分配策略,由用户根据实际需求选择适合的分配方式,例如容量优先或省电优先,以充分满足用户的实际使用场景,提高系统的灵活性和可配置性。
本发明提供一种基于流式存储的存储网关资源分配方法,参考图1-图4,包括以下步骤:
步骤1,存储网关与服务器集群连接;对所述服务器集群进行逻辑划分,将所述服务器集群划分为多个存储组;
每个所述存储组包括N个节点,分别为:节点Node1,节点Node2,...,节点NodeN;对于任意的节点Nodei,i=1,2,...,N,包括节点处理模块Ci以及D块磁盘,D块磁盘分别为:磁盘Diski1,磁盘Diski2,...,磁盘DiskiD;其中,N个节点中,包括N1个数据存储节点,N2个冗余存储节点;N=N1+N2;
步骤2,创建磁盘阵列单元DAU,方法为:
节点Node1的磁盘Disk11,节点Node2的磁盘Disk21,...,节点NodeN的磁盘DiskN1组成磁盘阵列单元DAU1;
节点Node1的磁盘Disk12,节点Node2的磁盘Disk22,...,节点NodeN的磁盘DiskN2组成磁盘阵列单元DAU2;
依此类推
节点Node1的磁盘Disk1D,节点Node2的磁盘Disk2D,...,节点NodeN的磁盘DiskND组成磁盘阵列单元DAUD;
步骤3,存储池的划分,方法为:
对于步骤2形成的D个DAU,选择若干个DAU形成的集合称为存储池;由此将D个DAU分配形成m个存储池,分别为存储池Pool1,存储池Pool2,...,存储池Poolm;
如图2所示,为存储组的逻辑划分图。通过对服务器集群进行逻辑划分,增强服务器集群的虚拟化。保证服务器集群对外呈现逻辑存储,隐藏物理存储。同时提高可靠性。首先将服务器集群划分形成多个存储组,存储组即各节点组成的一个资源处理组。当所配置的组内节点数为N1+N2个时,,存储的视频分片即为N1+N2个;其中,N1个节点指数据被拆分后的原始数据分片所在节点,N2个节点指数据被拆分后冗余数据分片所在节点。按照对应硬件的规格,每个存储组具有N个节点。对于任意节点,均包含D块磁盘,每个磁盘的容量原则上是相同的,同时单个节点包含独立CPU&OS的物理机。然后,将存储组划分形成多个存储池。存储池由多个磁盘阵列单元DAU组成,每个磁盘阵列单元DAU的最小单位即各节点的一块磁盘所组成的逻辑磁盘组。
步骤4,存储网关作为设备接入的唯一入口,同时管理整个服务器集群相关资源;整个集群的资源由存储网关进行采集,计算,分配以及调度。网关采集各类信息及指标后,统筹集群资源,按照不同的集群资源分配策略,进行接入节点的分配。
当存储网关接收到设备E的接入请求时,存储网关对接入请求进行解析,获得以下参数:设备E的设备ID,存储周期T、设备视频数据带宽B以及接入模式;其中,所述接入模式包括容量优先模式和省电优先模式;
存储网关根据存储周期T和设备视频数据带宽B,计算得到设备E所需总存储容量need_capacity;
例如,存储周期天数T day,设备视频数据带宽B bit/s。设备E所需总容量为need_capacity=B×1024÷(N1+N2)×(24×3600×T)÷1024÷1024;(单位MB)。
如果为容量优先模式,则执行步骤5;如果为省电优先模式,则执行步骤6;
步骤5,存储网关采用容量优先模式,按以下方式,从服务器集群中选择所需的磁盘阵列单元DAU:
步骤5.1,存储网关比较各个存储组的当前剩余容量,选择剩余容量最大的存储组,表示为存储组storemax;
步骤5.2,存储网关判断存储组storemax的当前剩余容量是否大于等于设备E所需总存储容量need_capacity,如果判断结果为否,则向设备E发送接入失败的通知消息;如果判断结果为是,则执行步骤5.3;
步骤5.3,存储网关比较存储组storemax的各个存储池的当前剩余容量,选择剩余容量最大的存储池,表示为存储池Poolmax;
步骤5.4,存储网关判断存储池Poolmax的当前剩余容量是否大于等于设备E所需总存储容量need_capacity,如果判断结果为否,则需要在存储组storemax内跨存储池存储设备E的数据,向设备E发送是否允许跨存储池存储数据的询问消息,如果存储网关接收到设备E的禁止跨存储池存储数据的消息,则存储网关向设备E发送接入失败的通知消息;否则,存储网关按存储池占用数量最少的原则,确定需要采用的存储池;
如果判断结果为是,则执行步骤5.5;
其中,磁盘阵列单元DAU的当前可使用剩余容量采用以下方式计算:
纠偏因子F根据实际存储要求确定,例如,为95%。
步骤5.6,存储网关判断磁盘阵列单元DAUmax的当前可使用剩余容量是否大于等于设备E所需总存储容量need_capacity,如果判断结果为否,则需要在存储池Poolmax内跨磁盘阵列单元DAU存储设备E的数据,向设备E发送是否允许跨磁盘阵列单元DAU存储数据的询问消息,如果存储网关接收到设备E的禁止跨磁盘阵列单元DAU存储数据的消息,则存储网关向设备E发送接入失败的通知消息;否则,存储网关按磁盘阵列单元DAU占用数量最少的原则,确定需要采用的磁盘阵列单元DAU;
如果判断结果为是,则磁盘阵列单元DAUmax即为最终选定的磁盘阵列单元DAU,然后执行步骤7;
步骤6,存储网关采用省电优先模式,按以下方式,从服务器集群中选择所需的磁盘阵列单元DAU:
步骤6.1,存储网关建立存储组集合;初始时,存储组集合包括服务器集群的所有存储组;
步骤6.2,存储网关读取存储组集合,比较存储组集合中的各个存储组的当前活跃度,选择当前活跃度最大的存储组,表示为存储组store"max;
其中,存储组活跃度是指:存储组当前处于激活运行状态的磁盘的数量;处于激活运行状态的磁盘数越多,则存储组的当前活跃度越高;
步骤6.3,存储网关判断存储组store"max的当前剩余容量是否大于等于设备E所需总存储容量need_capacity,如果判断结果为否,则将当前识别到的存储组store"max从存储组集合中移出,再返回步骤6.2;
如果判断结果为是,则执行步骤6.4;
步骤6.4,存储网关建立与存储组store"max对应的存储池集合;初始时,存储池集合包括存储组store"max的所有存储池;
步骤6.5,存储网关读取存储池集合,比较存储池集合中的各个存储池的当前活跃度,选择当前活跃度最大的存储池,表示为存储池Pool"max;
其中,存储池活跃度是指:存储池当前处于激活运行状态的磁盘的数量;
步骤6.6,存储网关判断存储池Pool"max的当前剩余容量是否大于等于设备E所需总存储容量need_capacity,如果判断结果为否,则将当前识别到的存储池Pool"max从存储池集合中移出,再返回步骤6.4;
如果判断结果为是,则执行步骤6.7;
步骤6.7,存储网关建立与存储池Pool"max对应的磁盘阵列单元DAU集合;初始时,磁盘阵列单元DAU集合包括存储池Pool"max的所有DAU;
步骤6.8,存储网关读取DAU集合,比较DAU集合中的各个DAU的当前活跃度,选择当前活跃度最大的DAU,表示为磁盘阵列单元DAU"max;
其中,DAU的当前活跃度是指:DAU当前处于激活运行状态的磁盘的数量;
步骤6.9,存储网关判断磁盘阵列单元DAU"max的当前可使用剩余容量是否大于等于设备E所需总存储容量need_capacity,如果判断结果为否,则将当前识别到的DAU"max从DAU集合中移出,再返回步骤6.8;
如果判断结果为是,则磁盘阵列单元DAU"max即为最终选定的磁盘阵列单元DAU,然后执行步骤7;
步骤7,将最终选定的磁盘阵列单元DAU"max和磁盘阵列单元DAUmax,统一表示为磁盘阵列单元DAU0 max;将磁盘阵列单元DAU0 max的ID、设备E的设备ID以及设备E所需总存储容量need_capacity的对应关系形成配置表,并将配置表同步给选定存储组的各个节点的节点处理模块C;
步骤8,存储网关在N个节点,即在节点Node1,节点Node2,...,节点NodeN中,按照选择策略,选择一个与本次接入设备E对应的接入节点Node接入,将剩余N-1个节点称为非接入节点;
步骤8中,采用以下方式,确定接入节点:
1)对于任意的节点Nodei,采用下式计算总负载Bi:
已接入设备的占用带宽为B_Nodei,节点Nodei的CPU负载为CPU_Nodei,则采用下式计算节点Nodei的总负载Bi:
Bi=α*B_Nodei+β*CPU_Nodei
其中:α为占用带宽权重;β为CPU负载权重;
例如,α为80%;β为20%。
2)总负载Bi最小的节点,即为接入节点;如果总负载Bi最小的节点存在多个,则选择框槽号或IP地址最小的节点作为接入节点。
具体的,各节点的已接入设备的占用带宽是根据当前已接入设备所占用的数值,且一般情况下是不相同的。各个节点的CPU负载CPU_Nodei同样为动态数据,其值也是不相同且实时发生变化的。选择该磁盘组阵列群中总负载最小的节点作为接入节点。接入设备对于接入负载相同的节点,选择框槽号(或IP地址)最小的节点作为分配节点。
步骤9,存储网关将设备E的接入请求转接到接入节点Node接入;
步骤10,接入节点Node接入的节点处理模块C接入实时接收设备E的视频流,对设备E的视频流进行分块处理,方法为:每当接收到设定长度的视频流时,将该设定长度的视频流按序分割为N1个数据块,然后按N1个数据块各分送给对应的N1个数据存储节点的节点处理模块,即:1个数据块发送给对应的1个数据存储节点;
步骤11,对于接收到设备E的数据块的数据存储节点,按以下方式存储数据块:
数据存储节点首次接收到设备E的数据块时,通过本地存储的配置表,根据设备E的设备ID定位到对应的DAU,进而定位到对应的磁盘Disk;在定位到的磁盘Disk中,从当前可用磁盘容量中,划分出长度等于设备E所需总存储容量need_capacity的存储区域,作为设备E的存储区域;
后续过程中,数据存储节点将接收到的设备E的各个数据块,按序存储到确定的存储区域中。
为使本发明的目的、技术方案和优点更加清晰,以下结合具体实例,并参照附图,对本发明进行详细的实施方式和具体的操作过程,但本发明的保护范围并不仅限于本实施例。
本实施例中,服务器集群包括16个节点,将16个节点分为2个存储组,每个存储组包括8个节点,冗余策略配置为7+1。每个节点下挂载4块磁盘,每个磁盘容量约为5.5T。存储网关负责服务器集群的管理。
每个存储组包括4个DAU,将4个DAU划分到一个存储池中,用于作为资源分配的基数。而后当设备开始接入时计算各资源预分配的情况。
具体的步骤包括:
第一步:配置存储组,存储池,冗余策略以及分配策略。如图2,根据当前的冗余策略生成对应的数据库文件进行记录,用以进行资源使用的记录。例如当前按照省电优先的原则进行均衡。
步骤二:上层平台调用云存储提供的设备资源分配接口,为流式设备申请并分配节点的资源。即上层平台的服务与存储网关进行直接通信,请求获取资源分配。
步骤三:存储设备中的网关收到请求后,判断当前集群中各个节点的状态。由于不在线的节点认为是资源不可用,所以需要将不可用资源所对应的节点进行过滤。同时,判断当前的冗余策略对应的节点数量是否与在线节点数一致。通过一定的分配策略计算出合适的节点资源。
步骤四:添加设备,获取设备及系统信息及参数配置:
包括当前系统各存储池,如当前2个存储池,各个节点以及磁盘阵列单元的容量,如5.5×4=22T。设备的接入存储周期,如30天,接入带宽,如4Mbps,以及各节点磁盘空间等。
如下表所示,为基于流式存储的资源空间计算与分析表。
步骤五:根据接入设备的带宽,存储周期计算所需的空间使用量。根据当前存储策略灵活进行单一存储池资源分配,或者存储池间的资源负载均衡。此处采用省电优先的原则进行。参照相关数据,每个节点在进行接入存储时的功耗约为5W,空转不工作节点的功耗约为4W,参照磁盘规格手册,每块磁盘的工作功耗为6.6W,空转功耗为0.6W。当前系统接入的第一台设备预分配到存储池1中。
步骤六:确定各存储池中的磁盘阵列单元中的剩余容量是否满足N1+N2冗余策略。即当前各节点的磁盘剩余容量是否满足保存7+1个分片,若不满足则返回失败。最后选择最小接入的总带宽的节点进行返回,例如选择存储池1中的第1个节点进行返回。
步骤七:更新数据库及配置相关信息,并同步到集群中的其它各个节点。此时,设备视频流通过该分配节点的IP作为服务进行连接,节点将接收到的视频传输到该节点。
步骤八:以此类推,接入8路视频流设备时,存储池1中各个节点刚好各分配1路。再进行更多的接入时,例如再接入8路,存储池1中各个节点分配会增加为2路。此时,整个系统的功耗约为(8×5+8×4×6.6)+(8×4+8×4×0.6)+(2×4+2×4×0.6)=331.2W。如果没有省电优先策略,则各个设备完全散列在其中的所有节点,如16台设备平均分配到16个节点,则此时整个系统的功耗约为(16×5+16×4×6.6)+(2×4+2×4×0.6)=515.2W,比较之前增加许多功耗。
步骤九:按照省电优先策略逐步添加后续更多的设备时,优先将存储池1的容量占满使用,如图3,保证存储池2在存储池1资源充足的情况下优先使用存储池1。当存储池1无法继续满足设备的接入时,再使用和分配存储池2中的资源。分批接入设备时,如果1个月接入200路,占用1个存储组,下1个月再接入200路,占用另一个存储组,则总功耗大概为((8×5+8×4×6.6)+(8×4+8×4×0.6)+(2×4+2×4×0.6))×30×24+(16×5+2×4×0.6)×30×24≈300度。如果第1个月接入的200路均分配到所有节点上,则2个月的总功耗大概为((16×5+16×4×6.6)+(2×4+2×4×0.6))×60×24≈741度,同样是2个月的功耗,省电模式节约441度的电量,即节约59.5%的用电量。而当设备越来越多,设备接入周期越来越长时,节约更大的用电成本。
本发明涉及的技术要点:
(1)通过存储池及磁盘组阵列和节点等多维度作为存储设备相关存储单元;
(2)通过设备带宽,存储周期等指标,计算最佳接入节点。
(3)通过存储容量,分组等策略对资源进行均衡划分及分配。
(4)通过资源策略的可配置,使系统集群达到性能优先或省电优先的效果。
与现有技术相比,本发明的有益效果是:
(1)本发明不同于现有技术仅采用单一的视频存储方式,本发明构建的负载均衡策略中,考虑存储周期,设备带宽,存储容量等多种因素。通过各因素及参数,得到最适合的,负载均衡的分配结果,提升存储系统的使用性能。
(2)本发明对设备寿命、降功耗以及数据处理性能等相关策略有较大的支撑和提升,可以有效的延长设备的使用时间,提升数据处理效率,提升系统的安全性,同时达到省电的目的。
(3)本发明为设备接入时的资源分配提供了更多的灵活性,适用于不同的系统、不同的应用场景以及不同的使用环境和要求,使存储系统具有更好的健壮性和可靠性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (2)
1.一种基于流式存储的存储网关资源分配方法,其特征在于,包括以下步骤:
步骤1,存储网关与服务器集群连接;对所述服务器集群进行逻辑划分,将所述服务器集群划分为多个存储组;
每个所述存储组包括N个节点,分别为:节点Node1,节点Node2,...,节点NodeN;对于任意的节点Nodei,i=1,2,...,N,包括节点处理模块Ci以及D块磁盘,D块磁盘分别为:磁盘Diski1,磁盘Diski2,...,磁盘DiskiD;其中,N个节点中,包括N1个数据存储节点,N2个冗余存储节点;N=N1+N2;
步骤2,创建磁盘阵列单元DAU,方法为:
节点Node1的磁盘Disk11,节点Node2的磁盘Disk21,...,节点NodeN的磁盘DiskN1组成磁盘阵列单元DAU1;
节点Node1的磁盘Disk12,节点Node2的磁盘Disk22,...,节点NodeN的磁盘DiskN2组成磁盘阵列单元DAU2;
依此类推
节点Node1的磁盘Disk1D,节点Node2的磁盘Disk2D,...,节点NodeN的磁盘DiskND组成磁盘阵列单元DAUD;
步骤3,存储池的划分,方法为:
对于步骤2形成的D个DAU,选择若干个DAU形成的集合称为存储池;由此将D个DAU分配形成m个存储池,分别为存储池Pool1,存储池Pool2,...,存储池Poolm;
步骤4,存储网关作为设备接入的唯一入口,同时管理整个服务器集群相关资源;当存储网关接收到设备E的接入请求时,存储网关对接入请求进行解析,获得以下参数:设备E的设备ID,存储周期T、设备视频数据带宽B以及接入模式;其中,所述接入模式包括容量优先模式和省电优先模式;
存储网关根据存储周期T和设备视频数据带宽B,计算得到设备E所需总存储容量need_capacity;
如果为容量优先模式,则执行步骤5;如果为省电优先模式,则执行步骤6;
步骤5,存储网关采用容量优先模式,按以下方式,从服务器集群中选择所需的磁盘阵列单元DAU:
步骤5.1,存储网关比较各个存储组的当前剩余容量,选择剩余容量最大的存储组,表示为存储组storemax;
步骤5.2,存储网关判断存储组storemax的当前剩余容量是否大于等于设备E所需总存储容量need_capacity,如果判断结果为否,则向设备E发送接入失败的通知消息;如果判断结果为是,则执行步骤5.3;
步骤5.3,存储网关比较存储组storemax的各个存储池的当前剩余容量,选择剩余容量最大的存储池,表示为存储池Poolmax;
步骤5.4,存储网关判断存储池Poolmax的当前剩余容量是否大于等于设备E所需总存储容量need_capacity,如果判断结果为否,则需要在存储组storemax内跨存储池存储设备E的数据,向设备E发送是否允许跨存储池存储数据的询问消息,如果存储网关接收到设备E的禁止跨存储池存储数据的消息,则存储网关向设备E发送接入失败的通知消息;否则,存储网关按存储池占用数量最少的原则,确定需要采用的存储池;
如果判断结果为是,则执行步骤5.5;
其中,磁盘阵列单元DAU的当前可使用剩余容量采用以下方式计算:
步骤5.6,存储网关判断磁盘阵列单元DAUmax的当前可使用剩余容量是否大于等于设备E所需总存储容量need_capacity,如果判断结果为否,则需要在存储池Poolmax内跨磁盘阵列单元DAU存储设备E的数据,向设备E发送是否允许跨磁盘阵列单元DAU存储数据的询问消息,如果存储网关接收到设备E的禁止跨磁盘阵列单元DAU存储数据的消息,则存储网关向设备E发送接入失败的通知消息;否则,存储网关按磁盘阵列单元DAU占用数量最少的原则,确定需要采用的磁盘阵列单元DAU;
如果判断结果为是,则磁盘阵列单元DAUmax即为最终选定的磁盘阵列单元DAU,然后执行步骤7;
步骤6,存储网关采用省电优先模式,按以下方式,从服务器集群中选择所需的磁盘阵列单元DAU:
步骤6.1,存储网关建立存储组集合;初始时,存储组集合包括服务器集群的所有存储组;
步骤6.2,存储网关读取存储组集合,比较存储组集合中的各个存储组的当前活跃度,选择当前活跃度最大的存储组,表示为存储组store"max;
其中,存储组活跃度是指:存储组当前处于激活运行状态的磁盘的数量;处于激活运行状态的磁盘数越多,则存储组的当前活跃度越高;
步骤6.3,存储网关判断存储组store"max的当前剩余容量是否大于等于设备E所需总存储容量need_capacity,如果判断结果为否,则将当前识别到的存储组store"max从存储组集合中移出,再返回步骤6.2;
如果判断结果为是,则执行步骤6.4;
步骤6.4,存储网关建立与存储组store"max对应的存储池集合;初始时,存储池集合包括存储组store"max的所有存储池;
步骤6.5,存储网关读取存储池集合,比较存储池集合中的各个存储池的当前活跃度,选择当前活跃度最大的存储池,表示为存储池Pool"max;
其中,存储池活跃度是指:存储池当前处于激活运行状态的磁盘的数量;
步骤6.6,存储网关判断存储池Pool"max的当前剩余容量是否大于等于设备E所需总存储容量need_capacity,如果判断结果为否,则将当前识别到的存储池Pool"max从存储池集合中移出,再返回步骤6.4;
如果判断结果为是,则执行步骤6.7;
步骤6.7,存储网关建立与存储池Pool"max对应的磁盘阵列单元DAU集合;初始时,磁盘阵列单元DAU集合包括存储池Pool"max的所有DAU;
步骤6.8,存储网关读取DAU集合,比较DAU集合中的各个DAU的当前活跃度,选择当前活跃度最大的DAU,表示为磁盘阵列单元DAU"max;
其中,DAU的当前活跃度是指:DAU当前处于激活运行状态的磁盘的数量;
步骤6.9,存储网关判断磁盘阵列单元DAU"max的当前可使用剩余容量是否大于等于设备E所需总存储容量need_capacity,如果判断结果为否,则将当前识别到的DAU"max从DAU集合中移出,再返回步骤6.8;
如果判断结果为是,则磁盘阵列单元DAU"max即为最终选定的磁盘阵列单元DAU,然后执行步骤7;
步骤7,将最终选定的磁盘阵列单元DAU"max和磁盘阵列单元DAUmax,统一表示为磁盘阵列单元DAU0 max;将磁盘阵列单元DAU0 max的ID、设备E的设备ID以及设备E所需总存储容量need_capacity的对应关系形成配置表,并将配置表同步给选定存储组的各个节点的节点处理模块C;
步骤8,存储网关在N个节点,即在节点Node1,节点Node2,...,节点NodeN中,按照选择策略,选择一个与本次接入设备E对应的接入节点Node接入,将剩余N-1个节点称为非接入节点;
步骤9,存储网关将设备E的接入请求转接到接入节点Node接入;
步骤10,接入节点Node接入的节点处理模块C接入实时接收设备E的视频流,对设备E的视频流进行分块处理,方法为:每当接收到设定长度的视频流时,将该设定长度的视频流按序分割为N1个数据块,然后按N1个数据块各分送给对应的N1个数据存储节点的节点处理模块,即:1个数据块发送给对应的1个数据存储节点;
步骤11,对于接收到设备E的数据块的数据存储节点,按以下方式存储数据块:
数据存储节点首次接收到设备E的数据块时,通过本地存储的配置表,根据设备E的设备ID定位到对应的DAU,进而定位到对应的磁盘Disk;在定位到的磁盘Disk中,从当前可用磁盘容量中,划分出长度等于设备E所需总存储容量need_capacity的存储区域,作为设备E的存储区域;
后续过程中,数据存储节点将接收到的设备E的各个数据块,按序存储到确定的存储区域中。
2.根据权利要求1所述的一种基于流式存储的存储网关资源分配方法,其特征在于,步骤8中,采用以下方式,确定接入节点:
1)对于任意的节点Nodei,采用下式计算总负载Bi:
已接入设备的占用带宽为B_Nodei,节点Nodei的CPU负载为CPU_Nodei,则采用下式计算节点Nodei的总负载Bi:
Bi=α*B_Nodei+β*CPU_Nodei
其中:α为占用带宽权重;β为CPU负载权重;
2)总负载Bi最小的节点,即为接入节点;如果总负载Bi最小的节点存在多个,则选择框槽号或IP地址最小的节点作为接入节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011280374.5A CN112383628B (zh) | 2020-11-16 | 2020-11-16 | 一种基于流式存储的存储网关资源分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011280374.5A CN112383628B (zh) | 2020-11-16 | 2020-11-16 | 一种基于流式存储的存储网关资源分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112383628A CN112383628A (zh) | 2021-02-19 |
CN112383628B true CN112383628B (zh) | 2021-06-18 |
Family
ID=74584750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011280374.5A Active CN112383628B (zh) | 2020-11-16 | 2020-11-16 | 一种基于流式存储的存储网关资源分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112383628B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102857577A (zh) * | 2012-09-24 | 2013-01-02 | 北京联创信安科技有限公司 | 一种集群存储自动负载均衡的系统及方法 |
CN103246716A (zh) * | 2013-04-26 | 2013-08-14 | 中国传媒大学 | 基于对象集群文件系统的对象副本高效管理方法及系统 |
CN105162847A (zh) * | 2015-08-10 | 2015-12-16 | 电子科技大学 | 分布式流数据存储系统的存储资源规划方法 |
WO2017117156A1 (en) * | 2015-12-29 | 2017-07-06 | Nexenta Systems, Inc. | Negotiating proxy server for distributed storage and compute clusters |
CN109901951A (zh) * | 2019-03-05 | 2019-06-18 | 山东浪潮云信息技术有限公司 | 一种ceph集群数据的存储系统及方法 |
CN110018878A (zh) * | 2018-01-09 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种分布式系统数据加载方法以及装置 |
CN110149377A (zh) * | 2019-04-30 | 2019-08-20 | 广州微算互联信息技术有限公司 | 一种视频服务节点资源分配方法、系统、装置及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7480705B2 (en) * | 2001-07-24 | 2009-01-20 | International Business Machines Corporation | Dynamic HTTP load balancing method and apparatus |
JP6328432B2 (ja) * | 2014-01-16 | 2018-05-23 | クラリオン株式会社 | ゲートウェイ装置、ファイルサーバシステム及びファイル分散方法 |
CN103929500A (zh) * | 2014-05-06 | 2014-07-16 | 刘跃 | 一种分布式存储系统的数据分片方法 |
CN107104992B (zh) * | 2016-02-19 | 2019-11-22 | 杭州海康威视数字技术股份有限公司 | 一种视频云存储的存储资源分配方法和装置 |
CN108206839B (zh) * | 2016-12-16 | 2020-02-07 | 贵州白山云科技股份有限公司 | 一种基于多数派数据存储方法、装置及系统 |
-
2020
- 2020-11-16 CN CN202011280374.5A patent/CN112383628B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102857577A (zh) * | 2012-09-24 | 2013-01-02 | 北京联创信安科技有限公司 | 一种集群存储自动负载均衡的系统及方法 |
CN103246716A (zh) * | 2013-04-26 | 2013-08-14 | 中国传媒大学 | 基于对象集群文件系统的对象副本高效管理方法及系统 |
CN105162847A (zh) * | 2015-08-10 | 2015-12-16 | 电子科技大学 | 分布式流数据存储系统的存储资源规划方法 |
WO2017117156A1 (en) * | 2015-12-29 | 2017-07-06 | Nexenta Systems, Inc. | Negotiating proxy server for distributed storage and compute clusters |
CN110018878A (zh) * | 2018-01-09 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种分布式系统数据加载方法以及装置 |
CN109901951A (zh) * | 2019-03-05 | 2019-06-18 | 山东浪潮云信息技术有限公司 | 一种ceph集群数据的存储系统及方法 |
CN110149377A (zh) * | 2019-04-30 | 2019-08-20 | 广州微算互联信息技术有限公司 | 一种视频服务节点资源分配方法、系统、装置及存储介质 |
Non-Patent Citations (2)
Title |
---|
《流媒体服务器负载均衡算法研究与应用》;杨炳钊;《中国优秀硕士学位论文全文数据库-信息科技辑》;20190915;I137-66 * |
《面向流式数据的嵌入式文件系统》;吴京洪;《计算机工程》;20150930;第41卷(第9期);第92-96页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112383628A (zh) | 2021-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104317742B (zh) | 一种优化空间管理的自动精简配置方法 | |
CN110120915B (zh) | 三级分解网络架构系统、装置以及用于确保三级分解网络架构中的服务质量的方法 | |
US10356150B1 (en) | Automated repartitioning of streaming data | |
CN108183947A (zh) | 分布式缓存方法及系统 | |
CN108900626B (zh) | 一种云环境下数据存储方法、装置及系统 | |
CN103929454A (zh) | 一种云计算平台中负载均衡存储的方法和系统 | |
CN104219318A (zh) | 一种分布式文件存储系统及方法 | |
CN113655969B (zh) | 一种基于流式分布式存储系统的数据均衡存储方法 | |
JP2010198056A (ja) | 割当制御プログラム及び割当制御装置 | |
CN105975398A (zh) | 一种内存碎片管理方法 | |
CN114389955B (zh) | 嵌入式平台异构资源池化管理方法 | |
CN102982182A (zh) | 一种数据存储规划方法及装置 | |
CN101673271A (zh) | 分布式文件系统及其文件分片方法 | |
CN110569302A (zh) | 一种基于lucene的分布式集群的物理隔离的方法及装置 | |
CN112380005A (zh) | 一种数据中心能耗管理方法及系统 | |
CN106973091B (zh) | 分布式内存数据重分布方法及系统、主控服务器 | |
CN108388471B (zh) | 一种基于双门限约束虚机迁移的管理方法 | |
CN112383628B (zh) | 一种基于流式存储的存储网关资源分配方法 | |
CN114048186A (zh) | 一种基于海量数据的数据迁移方法及系统 | |
CN110308991B (zh) | 一种基于随机任务的数据中心节能优化方法及系统 | |
CN105808150A (zh) | 用于混合式储存设备的固态硬盘快取系统 | |
Gao et al. | Compact, popularity-aware and adaptive hybrid data placement schemes for heterogeneous cloud storage | |
CN115617526A (zh) | 基于云数据中心构建和虚拟机整合的云数据中心节能方法 | |
CN115934311A (zh) | 一种数据重分布方法及电子设备 | |
CN114238481A (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 |