一种存储资源的管理和分配方法和系统的制作方法
【专利摘要】本发明公开了一种存储资源的管理和分配方法,包括:数据管理节点DataNode接收IP编码器的分配存储空间请求;所述DataNode按照第一策略为所述IP编码器选择存储资源,并根据第二策略为所述IP编码器分配所选存储资源中的存储空间片(slice),以供所述IP编码器根据所选存储资源的iSCSI挂载信息,通过iSCSI挂载存储资源,根据所分配的存储空间slice的起始地址、空间大小进行iSCSI数据写入。本发明同时还公开了一种存储资源的管理和分配系统。
【专利说明】一种存储资源的管理和分配方法和系统
【技术领域】
[0001]本发明涉及互联网的媒体流iSCSI块直存【技术领域】,尤其涉及一种存储资源的管理和分配方法和系统。
【背景技术】
[0002]随着高清在监控业务系统中的应用,对监控录像存储的可靠性、性能等要求越来越高。而前端互联网协议(IP,Internet Protocol)编码器到IP存储局域网(IPSAN,IPStorage Area Network)的端到端的媒体流块直存技术就是一种较好的录像存储方案。如图1所示,为相关技术中IP编码器到IPSAN的端到端的媒体流块直存示意图,在存储方式上,媒体流块直存的数据管理方式抛弃了媒体服务器;在IP网络的基础上,在编码器中集成了iSCSI模块,使得编码器可以基于iSCSI协议端到端的将录像数据写入IPSAN存储设备中。当监控点的图像需要进行集中存储时,前端IP编码器与IPSAN存储设备建立iSCSI连接,将IPSAN存储设备的存储资源通过iSCSI协议挂载到IP编码器本地,然后对存储视频流进行iSCSI协议封装,直接采用数据块的方式将媒体数据写入IPSAN存储设备中。
[0003]而在媒体流数据块直存技术的基础上,对存储空间的分配管理成为了一个关键问题,摄像机录像存储空间需要满足用户指定的录像留存期的需求,同时可以支持灵活扩容,另外需要提闻空间利用率,避免存储空间浪费。
[0004]相关技术中,监控iSCSI块存储的空间分配机制,是基于逻辑卷管理(LVM,LogicVolume Manage)的存储虚拟化技术,即在屏蔽底层物理存储实体的情况下,为每个摄像机单独分配一段逻辑存储空间,该逻辑存储空间称为存储资源。块存储资源管理的分层结构如图2所示,所谓存储资源,是通过iSCSI Target (标签)的逻辑单元号(LUN, Logic UnitNumber)与LVM层的逻辑卷进行绑定,从而为iSCSI存储业务提供的一段逻辑地址空间。而LVM层是由物理卷(PV)、卷组(VG)和逻辑卷(LV)等不同实体组成。物理卷是与物理阵列或物理磁盘相对应的实体,卷组是所有加入本卷组的物理卷的集合;而逻辑卷则是在卷组上分配的一块逻辑地址空间,在iSCSI存储应用中,与iSCSI Target的LUN进行绑定。
[0005]通过上述方案,可以为上层存储业务提供一种虚拟化的存储空间管理机制,实现了对底层实际的物理磁盘阵列的屏蔽。LVM层目前只支持逻辑卷的分配、删除、扩容,不支持单个逻辑卷的容量缩减,同时逻辑卷本身不提供小粒度、可分配管理的存储单元,因此逻辑卷本质上是一种空间独享的技术。在监控iSCSI块直存业务中为摄像机分配存储资源,对于LVM层,实际是在物理卷组成的卷组空间上分配一块逻辑卷,并将逻辑卷与为摄像机iSCSI直存所创建的[Target,LUN]进行绑定。这样,在前端IP编码器的iSCSIInitiator (iSCSI发起)端与IPSAN存储设备上的[Target,LUN]建立ISCSI连接后,可以将IPSAN存储设备上分配的逻辑卷映射为前端本地的一个逻辑盘,以自定义的块数据格式写入数据到逻辑盘,从而实现将媒体流数据通过iSCSI协议直存到存储设备中。
[0006]目前的iSCSI块存储的空间分配机制,是一种将单个存储资源空间一次性分配给单个摄像机、并由该摄像机独享写入该空间的机制。对于告警联动类存储、或者存储码率动态变化的存储业务,由于无法提前预估出摄像机存储空间的大小,因此不适合采用这种预先为单个摄像机分配固定存储空间的机制。在很多情况下,一些老的监控局点会新购置一些存储设备、或者在原有存储设备上增加磁盘,但是该方案无法支持对已有摄像机存储资源在系统新增存储设备、磁盘时的自动扩容,在系统升级改造上存在较多不便。
【发明内容】
[0007]为解决现有存在的技术问题,本发明实施例提供一种存储资源的管理和分配方法和系统。
[0008]本发明实施例提供了一种存储资源的管理和分配方法,该方法包括:
[0009]数据管理节点DataNode接收IP编码器的分配存储空间请求;
[0010]所述DataNode按照第一策略为所述IP编码器选择存储资源,并根据第二策略为所述IP编码器分配所选存储资源中的存储空间片Slice,以供所述IP编码器根据所选存储资源的iSCSI挂载信息,通过iSCSI挂载存储资源,根据所分配的存储空间slice的起始地址、空间大小进行iSCSI数据写入。
[0011]其中,所述第一策略包括:
[0012]如果当前正在分配slice的存储资源上仍有空闲状态的slice,则继续选择当前存储资源;且,
[0013]如果当前正在分配slice的存储资源的占用slice达到所述存储资源总slice的第一预设比例以上,则选择下一剩余存储空间最大的存储资源。
[0014]其中,该方法进一步包括:所述DataNode对存储资源以slice为单位进行切分,并通过空闲slice队列和占用slice队列对存储资源中的slice进行管理;
[0015]所述第二策略包括:在所述IP编码器请求的存储资源中选择空闲slice队列中的slice分配给所述IP编码器,且在应答成功后,将本次分配的slice更新为占用状态并调度到占用队列中。
[0016]其中,该方法进一步包括:在收到所述IP编码器发送的分配新Slice的请求时,所述DataNode根据所述IP编码器分配新slice的请求,判断所述原slice所属的存储资源中slice的占用率是否达到第三预设比例,如果未达到第三预设比例,则继续为所述IP编码器分配相同存储资源中的空闲slice,如果达到第三预设比例,则为所述IP编码器选择所述DataNode的其他存储资源;
[0017]如果所述DataNode的所有存储资源的slice占用率都达到所述第三预设比例,贝丨J删除所述DataNode中的老化数据并将所删数据对应的slice挂回到空闲slice队列,为所述IP编码器选择剩余slice空间最大的存储资源,并分配所选存储资源的空闲slice给所述IP编码器;
[0018]其中,所述分配新slice的请求,是由所述IP编码器在所分配slice的空间被写入比例达到第二预设比例时,向所述DataNode发送的。
[0019]其中,该方法进一步包括:
[0020]在所述IP编码器向DataNode发送分配存储空间请求之前,所述IP编码器向Master管理节点请求分配DataNode ;
[0021]所述Master管理节点根据第三策略为所述IP编码器分配所述DataNode。[0022]其中,所述第三策略包括:
[0023]根据各DataNode的剩余存储空间、剩余输入输出IO处理能力,并基于负载均衡、网络直连因素,为所述IP编码器分配DataNode。
[0024]其中,所述Master管理节点包括主Master管理节点和辅Master管理节点,该方法进一步包括:
[0025]所述辅Master管理节点用于对所述主Master管理节点进行冗余保护,在所述主Master管理节点故障时,所述辅Master管理节点切换为主Master管理节点。
[0026]其中,该方法进一步包括:所述Master管理节点在所述DataNode故障或断网时,为所述故障或断网的DataNode所对应的IP编码器分配新的可用DataNode。
[0027]本发明实施例还提供了一种存储资源的管理和分配系统,该系统包括:IP编码器和数据管理节点DataNode,其中,
[0028]所述IP编码器用于,向所述DataNode发送分配存储空间请求;
[0029]所述DataNode用于,按照第一策略为所述IP编码器选择存储资源,并根据第二策略为所述IP编码器分配所选存储资源中的存储空间片Slice ;
[0030]所述IP编码器还用于,根据所选存储资源的iSCSI挂载信息,通过iSCSI挂载存储资源,根据所分配的存储空间Slice的起始地址、空间大小进行iSCSI数据写入。
[0031 ] 其中,所述DataNode进一步用于,按照以下第一策略为所述IP编码器选择存储资源:
[0032]如果当前正在分配slice的存储资源上仍有空闲状态的slice,则继续选择当前存储资源;且,
[0033]如果当前正在分配slice的存储资源的占用slice达到所述存储资源总slice的第一预设比例以上,则选择下一剩余存储空间最大的存储资源。
[0034]其中,所述DataNode进一步用于,对存储资源以slice为单位进行切分,并通过空闲slice队列和占用slice队列对存储资源中的slice进行管理;
[0035]所述DataNode根据以下第二策略分配slice:在所述IP编码器请求的存储资源中选择空闲slice队列中的slice分配给所述IP编码器,且在应答成功后,将本次分配的slice更新为占用状态并调度到占用队列中。
[0036]其中,所述IP编码器进一步用于,在所分配slice的空间被写入比例达到第二预设比例时,向所述DataNode请求分配新的slice ;
[0037]所述DataNode进一步用于,根据所述IP编码器分配新slice的请求,判断所述原slice所属的存储资源中slice的占用率是否达到第三预设比例,如果未达到第三预设比例,则继续为所述IP编码器分配相同存储资源中的空闲slice,如果达到第三预设比例,则为所述IP编码器选择所述DataNode的其他存储资源;
[0038]如果所述DataNode的所有存储资源的slice占用率都达到所述第三预设比例,贝丨J删除所述DataNode中的老化数据并将所删数据对应的slice挂回到空闲slice队列,为所述IP编码器选择剩余slice空间最大的存储资源,并分配所选存储资源的空闲slice给所述IP编码器。
[0039]其中,该系统还包括:Master管理节点;
[0040]所述IP编码器进一步用于,在向所述DataNode发送分配存储空间请求之前,向所述Master管理节点请求分配DataNode ;
[0041]所述Master管理节点用于,在收到所述IP编码器分配DataNode的请求后,根据第三策略为所述IP编码器分配所述DataNode。
[0042]其中,所述Master管理节点进一步用于,根据以下第三策略为IP编码器分配DataNode:
[0043]根据各DataNode的剩余存储空间、剩余输入输出IO处理能力,并基于负载均衡、网络直连因素,为所述IP编码器分配DataNode。
[0044]其中,所述Master管理节点包括主Master管理节点和辅Master管理节点;
[0045]所述辅Master管理节点用于对所述主Master管理节点进行冗余保护,在所述主Master管理节点故障时,所述辅Master管理节点切换为主Master管理节点。
[0046]其中,所述Master管理节点进一步用于,在所述DataNode故障或断网时,为所述故障或断网的DataNode所对应的IP编码器分配新的可用DataNode。
[0047]本发明实施例所提供的一种存储资源的管理和分配方法和系统,在保持媒体流iSCSI直存的高性能优势的前提下,实现了存储空间的单元切分与弹性动态分配机制,满足告警联动存储、变码率存储等无法预估摄像机存储空间的场景需求,达到最大程度提高存储空间利用率的效果;还满足了已有摄像机存储空间在系统增加新设备、新磁盘后的自动扩容需求;支持摄像机存储空间在存储设备集群任意一到多台设备上的分配;基于分布式存储集群机制,实现了对Master管理节点、任意DataNode的故障容错机制,最大程度上保障了 IP编码器的录像存储不中断,提高了录像存储业务的可靠性。
【专利附图】
【附图说明】
[0048]图1为相关技术中IP编码器到IPSAN的端到端的媒体流块直存示意图;
[0049]图2为相关技术中块存储资源管理的分层结构示意图;
[0050]图3为本发明实施例的一种存储资源的管理和分配方法的流程图;
[0051]图4为本发明实施例的一种存储资源的管理和分配系统的结构示意图;
[0052]图5为本发明实施例的一种硬件组网示意图;
[0053]图6为本发明实施例的另一种存储资源的管理和分配方法的流程图。
【具体实施方式】
[0054]下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
[0055]本发明实施例提供的一种存储资源的管理和分配方法,如图3所示,主要包括:
[0056]步骤301,数据管理节点DataNode接收IP编码器的分配存储空间请求。
[0057]本发明实施例的DataNode部署于IPSAN存储设备中,用于管理其所属IPSAN存储设备的存储资源,DataNode对其所属IPSAN存储设备的存储资源以片(slice)为单位进行切分,并通过空闲slice队列和占用slice队列对存储资源中的slice进行管理,未被分配的slice为空闲状态并加入到空闲队列中,已被分配的slice为占用状态并调度到占用队列中。
[0058]IP编码器可以包括具有编码功能且将编码后数据封装成IP数据包的编码器,还可以包括带有摄像功能,并将拍摄后的图像数据编码并封装成IP数据包的网络摄像机IPC。
[0059]IP编码器需要存储空间进行iSCSI数据写入时,向DataNode发送分配存储空间请求。
[0060]步骤302,DataNode按照第一策略为IP编码器选择存储资源,并根据第二策略为IP编码器分配所选存储资源中的存储空间Slice,以供IP编码器根据所选存储资源的iSCSI挂载信息,通过iSCSI挂载存储资源,根据所分配的存储空间slice的起始地址、空间大小进行iSCSI数据写入。
[0061]DataNode根据IP编码器的请求,为所述IP编码器选择存储资源,并在所选存储资源中分配存储空间slice ;IP编码器根据所选存储资源的iSCSI挂载信息,通过iSCSI挂载存储资源,根据所分配的存储空间slice的起始地址、空间大小进行iSCSI数据写入。
[0062]其中,所述第一策略包括:
[0063]如果当前正在分配slice的存储资源上仍有空闲状态的slice,则继续选择当前存储资源;且,
[0064]如果当前正在分配slice的存储资源的占用slice达到所述存储资源总slice的第一预设比例以上,则选择下一剩余存储空间最大的存储资源。
[0065]也就是说,优先选择当前分配slice所在的存储资源。其中,第一预设比例可以根据实际需要进行设定,例如可以设定为90%。
[0066]所述第二策略包括:在所述IP编码器请求的存储资源中选择空闲slice队列中的slice分配给所述IP编码器,且在应答成功后,将本次分配的slice更新为占用状态并调度到占用队列中。
[0067]本发明实施例中,IP编码器在所分配slice的空间被写入比例(即在分配给IP编码器的slice空间中已经写入数据的slice空间所占的比例)达到第二预设比例时,可以向DataNode请求分配新的slice,同时IP编码器在原slice中继续数据写入;其中,所述第二预设比例可以根据实际需要进行设定,例如可以设定为90% ;
[0068]在收到所述IP编码器发送的分配新slice的请求时,DataNode判断所述原slice所属的存储资源中slice的占用率(即所述存储资源中已经写入数据的slice空间占所述存储资源总slice空间的比例)是否达到第三预设比例,如果未达到第三预设比例,则继续为所述IP编码器分配相同存储资源中的空闲slice,如果达到第三预设比例,则为所述IP编码器选择所述DataNode的其他存储资源;其中,所述第三预设比例可以根据实际需要进行设定(可以与第二预设比例相同,也可以不同),例如可以设定为90% ;
[0069]如果所述DataNode的所有存储资源的slice占用率都达到所述第三预设比例,贝丨J删除所述DataNode中的老化数据(如存储时间最长的数据、或者重要性不高的数据等)并将所删数据对应的slice挂回到空闲slice队列,为所述IP编码器选择剩余slice空间最大的存储资源,并分配所选存储资源的空闲slice给所述IP编码器。
[0070]本发明实施例中,在所述IP编码器向DataNode发送分配存储空间请求之前,所述IP编码器向Master管理节点请求分配DataNode ;
[0071]所述Master管理节点根据第三策略为所述IP编码器分配所述DataNode ;
[0072]其中,Master管理节点用于统一管理和分配DataNode。
[0073]第三策略包括:根据各DataNode的剩余存储空间、剩余输入输出(10)处理能力,并基于负载均衡、网络直连(即尽量向IP编码器分配同一子网地址的存储资源)因素,为所述IP编码器分配DataNode。其中,各DataNode的剩余存储空间、剩余IO处理能力可以由各DataNode分别上报给Master管理节点。
[0074]通过以上本发明的方法实施例,在保持媒体流iSCSI直存的高性能优势的前提下,支持摄像机存储空间在存储设备集群任意一到多台设备上的分配;实现了存储空间的单元切分与弹性动态分配机制,满足告警联动存储、变码率存储等无法预估摄像机存储空间的场景需求,达到最大程度提高存储空间利用率的效果。
[0075]优选的,所述Master管理节点可以包括主Master管理节点和辅Master管理节点,本发明实施例的方法进一步包括:
[0076]所述辅Master管理节点用于对所述主Master管理节点进行冗余保护,在所述主Master管理节点故障时,所述辅Master管理节点切换为主Master管理节点。
[0077]通过主辅Master管理节点的冗余保护,保障了 Master管理节点不受故障影响从而提供正常服务。
[0078]优选的,本发明实施例的方法进一步包括:所述Master管理节点在所述DataNode故障或断网时,为所述故障或断网的DataNode所对应的IP编码器分配新的可用DataNode。
[0079]具体的,所述Master管理节点对各DataNode进行主动探测,以判断各DataNode是否工作正常,将探测失败的DataNode设为下线状态,将探测成功、但与IP编码器的通讯失败计数达到预设阈值的DataNode设为失效状态,并向系统管理员触发告警,进行人工干预,将探测成功、且与IP编码器的通讯失败计数未达到预设阈值的DataNode设为在线状态;
[0080]相应的,所述Master管理节点是从在线状态的DataNode选择所述新的可用DataNode。
[0081]本发明实施例还提供了一种存储资源的管理和分配系统,如图4所示,主要包括:DataNodelO和IP编码器20,其中,
[0082]IP编码器20用于,向DataNodelO发送分配存储空间请求;
[0083]DataNodelO用于,按照第一策略为所述IP编码器20选择存储资源,并根据第二策略为所述IP编码器20分配所选存储资源中的存储空间slice ;
[0084]IP编码器20还用于,根据所选存储资源的iSCSI挂载信息,通过iSCSI挂载存储资源,根据所分配的存储空间slice的起始地址、空间大小进行iSCSI数据写入。
[0085]优选的,DataNodelO进一步用于,按照以下第一策略为所述IP编码器20选择存储资源:
[0086]如果当前正在分配slice的存储资源上仍有空闲状态的slice,则继续选择当前存储资源;且,
[0087]如果当前正在分配slice的存储资源的占用slice达到所述存储资源总slice的第一预设比例以上,则选择下一剩余存储空间最大的存储资源。
[0088]优选的,DataNodelO进一步用于,对存储资源以slice为单位进行切分,并通过空闲slice队列和占用slice队列对存储资源中的slice进行管理;
[0089]DataNodelO根据以下第二策略分配slice:在所述IP编码器20请求的存储资源中选择空闲slice队列中的slice分配给所述IP编码器20,且在应答成功后,将本次分配的slice更新为占用状态并调度到占用队列中。
[0090]优选的,IP编码器20进一步用于,在所分配slice的空间被写入比例达到第二预设比例时,向所述DataNodelO请求分配新的slice ;
[0091]所述DataNodelO进一步用于,根据所述IP编码器20分配新slice的请求,判断所述原slice所属的存储资源中slice的占用率是否达到第三预设比例,如果未达到第三预设比例,则继续为所述IP编码器20分配相同存储资源中的空闲slice,如果达到第三预设比例,则为所述IP编码器20选择所述DataNodelO的其他存储资源;
[0092]如果所述DataNodelO的所有存储资源的slice占用率都达到所述第三预设比例,则删除所述DataNodelO中的老化数据并将所删数据对应的slice挂回到空闲slice队列,为所述IP编码器20选择剩余slice空间最大的存储资源,并分配所选存储资源的空闲slice给所述IP编码器20。
[0093]优选的,该系统还包括:Master管理节点30,
[0094]IP编码器20进一步用于,在向DataNodelO发送分配存储空间请求之前,向所述Master管理节点30请求分配DataNodelO ;
[0095]所述Master管理节点30用于,在收到所述IP编码器20分配DataNode的请求后,根据第三策略为所述IP编码器20分配所述DataNode 10。
[0096]优选的,Master管理节点30进一步用于,根据以下第三策略为IP编码器20分配DataNodelO:
[0097]根据各DataNodelO的剩余存储空间、剩余IO处理能力,并基于负载均衡、网络直连因素,为所述IP编码器20分配DataNodelO。
[0098]优选的,Master管理节点30包括主Master管理节点和辅Master管理节点;
[0099]所述辅Master管理节点用于对所述主Master管理节点进行冗余保护,在所述主Master管理节点故障时,所述辅Master管理节点切换为主Master管理节点。
[0100]优选的,Master管理节点30进一步用于,在所述DataNodelO故障或断网时,为所述故障或断网的DataNodelO所对应的IP编码器20分配新的可用DataNode。
[0101]具体的,所述Master管理节点30对各DataNodelO进行主动探测,以判断各DataNode是否工作正常,将探测失败的DataNode设为下线状态,将探测成功、但与IP编码器的通讯失败计数达到预设阈值的DataNode设为失效状态,并向系统管理员触发告警,进行人工干预,将探测成功、且与IP编码器的通讯失败计数未达到预设阈值的DataNode设为在线状态;
[0102]相应的,所述Master管理节点30是从在线状态的DataNode选择所述新的可用DataNode。
[0103]下面再结合图4介绍一种包括数据管理节点DataNodelO、主(Master)管理节点30和IP编码器20的存储资源的管理和分配系统,其中,
[0104]DataNodelO,用于管理其所属IPSAN存储设备的存储资源,通过发送注册、保活消息,向Master管理节点30上报DataNodelO所属IPSAN存储设备的剩余存储空间、剩余输入输出(10)处理能力;
[0105]Master管理节点30,用于通过接收DataNodelO的注册、保活消息,获取并管理各IPSAN存储设备的剩余存储空间、剩余10处理能力;还用于在接收到来自IP编码器20的请求分配DataNode报文后,根据其管理的各IPSAN存储设备的剩余存储空间、剩余IO处理能力,为IP编码器20选择DataNode ;
[0106]IP编码器20,用于向Master管理节点30请求分配DataNode,并获取Master管理节点30为IP编码器20分配的DataNode的信息;还用于根据Master管理节点30分配的DataNode的信息,向相应的DataNodelO请求分配存储资源;
[0107]DataNodelO还用于,收到来自IP编码器20的分配存储资源的请求后,为IP编码器20进行存储资源的选择,并将所选存储资源的信息发送给IP编码器20。
[0108]优选的,DataNodelO进一步用于,对其所属IPSAN存储设备的存储资源以片(slice)为单位进行切分,并记录所有slice的所属存储资源标识、起始地址、空间大小、状态,所述状态包括空闲状态和占用状态;对每个存储资源的所有slice用空闲队列和占用队列进行管理,未被分配的slice为空闲状态并加入到空闲队列中,已被分配的slice为占用状态并调度到占用队列中。
[0109]优选的,DataNodelO进一步用于,当其所属IPSAN存储设备配置了一个或多个存储资源时,按照以下原则为IP编码器20进行存储资源的选择:
[0110]如果当前正在分配slice的存储资源上,仍有空闲状态的slice,则继续选择当前存储资源;且,
[0111]如果当前正在分配slice的存储资源的占用slice达到所述存储资源总slice的第一预设比例(如90%)以上,则选择下一剩余空间最大的存储资源。
[0112]优选的,DataNodelO所选存储资源的信息包括:所选存储资源的唯一标识和iSCSI挂载信息;
[0113]IP编码器20进一步用于,在收到DataNode IO所选存储资源的信息之后,执行相应存储资源的iSCSI挂载,并在挂载成功后,在IP编码器20本地生成逻辑盘符,并向DataNodelO请求在所选存储资源中分配存储空间。
[0114]优选的,DataNodelO进一步用于,在收到IP编码器20分配存储空间的请求后,根据所述请求中携带的存储资源标识,在对应存储资源的空闲slice队列中分配slice,并将所分配slice所属资源标识、所分配slice的起始地址、空间大小应答给IP编码器20 ;在应答成功之后,将本次分配的slice更新为占用状态并调度到占用队列中。
[0115]优选的,IP编码器20进一步用于,在收到DataNodelO分配slice的应答后,根据所述应答中的资源标识获取对应的本地盘符,并按照分配slice的起始地址、空间大小,对流媒体块进行iSCSI直存写入为IP编码器20分配的存储空间。
[0116]优选的,上述实施例中的Master管理节点30可以部署于数据管理(DM,DataManagement)服务器中,DataNodelO可以部署于IPSAN存储设备中,且所述系统中的多台IPSAN存储设备组成存储设备集群。
[0117]如图5所示,图5为本发明实施例的一种硬件组网示意图,在所述组网方案中,主要包括以下设备:
[0118]IP编码器,其中部署Client模块,支持对IP编码器各摄像机通道录像的iSCSI块存储。在本方案中,在IP编码器上部署Client模块,用于本方案的存储设备、存储空间的动态分配机制;Client模块用以实现上述图4所示系统中提及的IP编码器20的功能。
[0119]DM服务器,其中部署Master管理节点,即Master管理节点部署在DM等管理服务器上。一方面,通过接收IPSAN存储设备的注册、保活消息,获取管理本系统所有IPSAN存储设备的剩余存储空间、剩余IO处理能力、IP地址、在线状态等信息;另一方面,在IP编码器的录像iSCSI存储流程中,基于负载均衡、网络直连等因素,给IP编码器分配存储录像的IPSAN设备。
[0120]另外,为提高Master管理节点服务的可靠性,支持如下高可用性机制:
[0121]在设备级,Master管理节点支持双机热备机制,实现主备冗余保护;在主用Master管理节点岩机之后,备用Master管理节点能够在短时间内切换为主用节点,向外部提供服务;
[0122]在网络链路上,支持网络链路冗余机制;在主链路故障断开的情况下,可以通过备用链路,实现Master管理节点与外部设备之间的可靠网络连接。
[0123]IPSAN存储设备,其中部署DataNode。在本发明实施例的方案中,多台IPSAN存储设备组成了存储设备集群;同时,在本发明实施例的IPSAN存储设备上,部署DataNode。
[0124]一方面,DataNode通过向Master管理节点进行注册、保活,上报DataNode所属IPSAN存储设备的剩余存储空间、剩余IO处理能力、IP地址、在线状态等信息,支持Master管理节点对存储设备集群的统一调度管理;
[0125]同时,DataNode支持对其所属IPSAN存储设备上所有存储资源,以slice为单位进行存储单元切分、分配、管理。
[0126]slice管理方式如下:
[0127]在IPSAN存储设备创建任一存储资源后,DataNode自动按照一定空间单元粒度(比如256M字节),将存储资源空间切分为若干个slice。DataNode记录本设备所有slice的所属存储资源标识、起始地址、空间大小、状态(空闲或者占用)等信息;
[0128]对每一个存储资源的所有slice, DataNode使用空闲队列、占用队列等两个队列来进行管理。新创建存储资源的所有slice,首先挂入空闲队列中;在收到IP编码器的存储空间申请请求后,DataNode从指定存储资源的空闲slice队列中分配slice给IP编码器,用于新录像的存储;在分配slice成功之后,DataNode修改已分配的slice状态为占用状态,并将已分配的slice从空闲队列调度到占用队列。
[0129]由本发明实施例的上述存储资源的管理和分配系统实现的一种存储资源的管理和分配方法,包括:
[0130]DataNode管理其所属IPSAN存储设备的存储资源,通过发送注册、保活消息,向Master管理节点上报DataNode所属IPSAN存储设备的剩余存储空间、剩余10处理能力;
[0131]Master管理节点通过接收DataNode的注册、保活消息,获取并管理各IPSAN存储设备的剩余存储空间、剩余10处理能力;并在接收到来自IP编码器的请求分配IPSAN存储设备的报文后,根据其管理的各IPSAN存储设备的剩余存储空间、剩余10处理能力,为IP编码器选择IPSAN存储设备;
[0132]IP编码器根据Master管理节点分配的IPSAN存储设备的信息,向相应的DataNode请求分配存储资源;
[0133]DataNode收到来自IP编码器的分配存储资源的请求后,为IP编码器进行存储资源的选择,并将所选存储资源的信息发送给IP编码器。
[0134]优选的,该方法进一步包括:[0135]DataNode对其所属IPSAN存储设备的存储资源以slice为单位进行切分,并记录所有slice的所属存储资源标识、起始地址、空间大小、状态,所述状态包括空闲状态和占用状态;对每个存储资源的所有slice用空闲队列和占用队列进行管理,未被分配的slice为空闲状态并加入到空闲队列中,已被分配的slice为占用状态并调度到占用队列中。
[0136]优选的,该方法进一步包括:当DataNode所属的IPSAN存储设备配置了多个存储资源时,按照以下原则为IP编码器进行存储资源的选择:
[0137]如果当前正在分配slice的存储资源上,仍有空闲状态的slice,则继续选择当前存储资源;且,
[0138]如果当前正在分配slice的存储资源的占用slice达到存储资源总slice的第一预设比例(如90%)以上,则选择下一剩余空间最大的存储资源。
[0139]优选的,DataNode所选存储资源的信息包括:所选存储资源的唯一标识和iSCSI挂载信息;
[0140]该方法进一步包括:IP编码器在收到DataNode所选存储资源的信息之后,执行相应存储资源的iSCSI挂载,并在挂载成功后,在IP编码器本地生成逻辑盘符,并向DataNode请求在所选存储资源中分配存储空间。
[0141]优选的,该方法进一步包括:
[0142]DataNode在收到IP编码器分配存储空间的请求后,根据请求中携带的存储资源标识,在对应存储资源的空闲slice队列中分配slice,并将所分配slice所属资源标识、所分配slice的起始地址、空间大小应答给IP编码器;在应答成功之后,将本次分配的slice更新为占用状态并调度到占用队列中。
[0143]优选的,该方法进一步包括:
[0144]IP编码器在收到DataNode分配slice的应答后,根据应答中的资源标识获取对应的本地盘符,并按照分配slice的起始地址、空间大小,对流媒体块进行iSCSI直存写入为IP编码器分配的存储空间。
[0145]结合图5所示的设备组网图,一种更为具体的存储资源的管理和分配方法实施例如图6所示,该方法主要包括:
[0146]步骤601, IP编码器在开始存储录像之前,通过其client模块向Master管理节点发送请求分配DataNode的报文。
[0147]步骤602,Master管理节点收到IP编码器的请求报文后,基于各DataNode在存储空间、存储输入输出(10, Input Output)能力的负载情况,选择合适的DataNode,并将所选DataNode的IP地址、通讯端口等信息,返回给IP编码器。
[0148]作为一种优选的实施方式,Master管理节点在选择DataNode时,还可同时考虑网络因素,尽量向同一 IP编码器分配同一子网地址的IPSAN存储设备。
[0149]步骤603,IP编码器的client模块收到应答之后,在本地文件中记录所分配的DataNode信息(包括DataNode的IP地址、通讯端口等),然后向所分配的DataNode发送请求分配存储资源的报文。
[0150]步骤604,DataNode收到请求分配存储资源的报文之后,如果本存储设备配置了多个存储资源,则按照以下原则进行存储资源的选择:
[0151]如果当前正在分配slice的存储资源上,仍有空闲状态的slice,则继续选择当前存储资源;且,
[0152]如果当前正在分配slice的存储资源的占用slice达到所述存储资源总slice的第一预设比例(如90%)以上,则选择下一剩余空间最大的存储资源。
[0153]DataNode完成存储资源选择之后,将所选择的存储资源的唯一标识、存储资源的iSCSI挂载信息(包括存储资源绑定的Target、LUN、具有资源写权限的initiator等信息)通过应答报文返回给IP编码器。
[0154]步骤605,IP编码器收到所分配的存储资源信息(存储资源的唯一标识、iSCSI挂载信息)之后,对存储资源执行iSCSI挂载,并在挂载成功后,在IP编码器本地生成逻辑盘符,如sda。
[0155]步骤606,如果当前日期是第一次写入录像,则IP编码器向DataNode请求创建日期目录。
[0156]步骤607,DataNode创建对应的日期目录,并向IP编码器返回创建目录成功应答。
[0157]步骤608, IP编码器向DataNode请求在存储资源中分配存储空间,请求报文中携带存储资源的唯一标识。
[0158]步骤609,DataNode收到IP编码器的存储空间分配请求之后,通过存储资源的唯一标识,在对应存储资源的空闲slice队列中分配slice,并将该slice所属资源唯一标识、slice的起始地址、空间大小等信息应答给IP编码器;
[0159]在应答成功之后,DataNode将本次分配的slice状态更新为占用状态,并将相应slice挂入占用队列。
[0160]步骤610,IP编码器收到DataNode的slice分配应答消息之后,通过存储资源唯一标识获取该资源所对应的本地盘符,按照分配的slice的起始地址、空间大小,以自定义的块数据格式进行iSCSI录像直存写入该逻辑盘。数据将通过iSCSI传输通道,最终写入IPSAN存储设备的存储资源空间。
[0161]步骤611,在所分配slice的空间被写入到第二预设比例(如90% )时,IP编码器向DataNode请求分配slice,请求报文中携带该slice所属存储资源的唯一标识;同时,IP编码器在原slice中继续新录像的存储。
[0162]步骤612, DataNode在收到携带存储资源标识的slice分配请求报文之后,首先执行存储资源的选择流程:
[0163]按照该存储资源(请求报文中携带的资源标识所对应的存储资源)的slice占用是否达到90%进行判断:
[0164]如果占有率小于90%,则继续分配该存储资源中的空闲slice ;否则,选择本IPSAN存储设备的其他存储资源;
[0165]如果本设备的所有存储资源的slice占用率都达到90%,则启动满覆盖策略,即删除一部分最老录像所在slice的内容,将其挂回空闲slice队列,然后选择剩余空间最大的存储资源,并分配该资源的空闲slice。
[0166]在完成存储资源选择及空闲slice分配之后,DataNode向IP编码器进行应答:
[0167]如果是在同一存储资源中分配新的slice,则DataNode返回新分配的slice的起始地址、空间大小、slice所属存储资源标识等信息等给IP编码器;
[0168]如果是在新的存储资源中分配slice给IP编码器,则在应答上述slice信息的同时,DataNode将存储资源的iSCSI挂载信息(包括存储资源绑定的Target、LUN、具有资源写权限的initiator等信息)也一起返回给IP编码器。
[0169]IP编码器如果收到新的存储资源的iSCSI挂载信息,则对存储资源执行本地iSCSI挂载,生成本地逻辑盘符。
[0170]步骤613, IP编码器在本地缓存中记录下一 slice的起始地址、空间大小、slice所属存储资源标识等信息,继续在当前slice中进行录像存储。
[0171]步骤614, IP编码器在当前slice的全部空间写满之后,将该slice的录像开始时间、录像结束时间、摄像机标识等信息通知到Master管理节点。
[0172]步骤615, Master管理节点将slice的录像开始时间、录像结束时间、摄像机标识等信息记录到数据库中,从而支持VM服务器通过数据库实现对录像的快速检索。
[0173]步骤616,IP编码器从本地缓存中取得下一 slice信息、及其存储资源标识,取得该存储资源对应的本地逻辑盘符,在下一 slice中继续新录像存储。
[0174]还需要说明的是,本发明实施例中的DataNode宕机或者断网,造成IP编码器的录像存储、或者信令交互失败时,IP编码器可即时向Master管理节点请求分配DataNode,同时携带通讯失败的DataNode标识;Master管理节点将分配新的DataNode给IP编码器,保证IP编码器的录像存储不中断。
[0175]此时,Master管理节点触发到DataNode的主动探测机制,判断DataNode是否正常工作。同时,累计DataNode与不同IP编码器的通讯失败计数;
[0176]当DataNode探测失败时,Master管理节点将其置为下线状态,不再向IP编码器分配该DataNode。后续只有DataNode重新向Master管理节点注册成功,Master管理节点才会修改相应的DataNode状态为在线,并重新向IP编码器分配该DataNode ;
[0177]当DataNode探测成功、但是与不同IP编码器的通讯失败计数达到一定阈值时(比如=DataNode与Master管理节点之间的网络通讯正常,但是与IP编码器的网络断开),Master管理节点将其置为失效状态,不再向IP编码器分配该DataNode,并向系统管理员触发设备与IP编码器的通讯失败告警。这种情况下,只有管理员人工干预之后,通过管理界面将DataNode更新为在线状态,Master管理节点才会向IP编码器重新分配该DataNode。
[0178]另外,在本发明实施例中增加IPSAN存储设备、或者IPSAN存储设备增加硬盘等情况下,只需要对新的IPSAN存储设备、新的硬盘空间创建新的存储资源,并加入DataNode的slice分配管理。由于新的存储资源空间是对所有摄像机共享使用,因此在无任何开销的情况下,自动支持了对所有摄像机的存储空间扩容。
[0179]综上所述,本发明实施例提出的Master与DataNode两级管理、空间弹性分配的分布式iSCSI块直存集群方案,支持摄像机存储空间在存储设备集群中任意一到多台设备上的分配。同时,本发明实施例实现了 iSCSI存储空间的slice单元切分管理、动态弹性分配机制,满足告警联动存储、变码率存储等无法预估摄像机存储空间的场景需求,达到最大程度上提高存储空间利用率的效果。
[0180]在Master管理节点故障时,系统自动切换为单存储设备节点存储模式,保障IP编码器的录像存储不停止。同时,通过DataNode对slice录像信息的本地缓存机制,保障slice录像信息不丢失。
[0181]在任意IPSAN存储设备故障时,通过Master管理节点即时向IP编码器分配新的存储设备,保障IP编码器的录像存储不停止。同时,实现对DataNode不同故障的错误恢复处理。
[0182]在本发明所提供的几个实施例中,应该理解到,所揭露的方法、装置和电子设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
[0183]上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
[0184]另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0185]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM, Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0186]或者,本发明实施例上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0187]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【权利要求】
1.一种存储资源的管理和分配方法,其特征在于,该方法包括: 数据管理节点DataNode接收IP编码器的分配存储空间请求; 所述DataNode按照第一策略为所述IP编码器选择存储资源,并根据第二策略为所述IP编码器分配所选存储资源中的存储空间片slice,以供所述IP编码器根据所选存储资源的iSCSI挂载信息,通过iSCSI挂载存储资源,根据所分配的存储空间slice的起始地址、空间大小进行iSCSI数据写入。
2.根据权利要求1所述存储资源的管理和分配方法,其特征在于,所述第一策略包括: 如果当前正在分配slice的存储资源上仍有空闲状态的slice,则继续选择当前存储资源;且, 如果当前正在分配slice的存储资源的占用slice达到所述存储资源总slice的第一预设比例以上,则选择下一剩余存储空间最大的存储资源。
3.根据权利要求1所述存储资源的管理和分配方法,其特征在于,该方法进一步包括:所述DataNode对存储资源以slice为单位进行切分,并通过空闲slice队列和占用slice队列对存储资源中的slice进行管理; 所述第二策略包括:在所述IP编码器请求的存储资源中选择空闲slice队列中的slice分配给所 述IP编码器,且在应答成功后,将本次分配的slice更新为占用状态并调度到占用队列中。
4.根据权利要求1所述存储资源的管理和分配方法,其特征在于,该方法进一步包括:在收到所述IP编码器发送的分配新slice的请求时,所述DataNode根据所述IP编码器分配新slice的请求,判断所述原slice所属的存储资源中slice的占用率是否达到第三预设比例,如果未达到第三预设比例,则继续为所述IP编码器分配相同存储资源中的空闲slice,如果达到第三预设比例,则为所述IP编码器选择所述DataNode的其他存储资源; 如果所述DataNode的所有存储资源的slice占用率都达到所述第三预设比例,则删除所述DataNode中的老化数据并将所删数据对应的slice挂回到空闲slice队列,为所述IP编码器选择剩余slice空间最大的存储资源,并分配所选存储资源的空闲slice给所述IP编码器; 其中,所述分配新slice的请求,是由所述IP编码器在所分配slice的空间被写入比例达到第二预设比例时,向所述DataNode发送的。
5.根据权利要求1至4任一项所述存储资源的管理和分配方法,其特征在于,该方法进一步包括: 在所述IP编码器向DataNode发送分配存储空间请求之前,所述IP编码器向Master管理节点请求分配DataNode ; 所述Master管理节点根据第三策略为所述IP编码器分配所述DataNode。
6.根据权利要求5所述存储资源的管理和分配方法,其特征在于,所述第三策略包括: 根据各DataNode的剩余存储空间、剩余输入输出IO处理能力,并基于负载均衡、网络直连因素,为所述IP编码器分配DataNode。
7.根据权利要求5所述存储资源的管理和分配方法,其特征在于,所述Master管理节点包括主Master管理节点和辅Master管理节点,该方法进一步包括: 所述辅Master管理节点用于对所述主Master管理节点进行冗余保护,在所述主Master管理节点故障时,所述辅Master管理节点切换为主Master管理节点。
8.根据权利要求5所述存储资源的管理和分配方法,其特征在于,该方法进一步包括:所述Master管理节点在所述DataNode故障或断网时,为所述故障或断网的DataNode所对应的IP编码器分配新的可用DataNode。
9.一种存储资源的管理和分配系统,其特征在于,该系统包括:IP编码器和数据管理节点DataNode,其中, 所述IP编码器用于,向所述DataNode发送分配存储空间请求; 所述DataNode用于,按照第一策略为所述IP编码器选择存储资源,并根据第二策略为所述IP编码器分配所选存储资源中的存储空间片slice ; 所述IP编码器还用于,根据所选存储资源的iSCSI挂载信息,通过iSCSI挂载存储资源,根据所分配的存储空间slice的起始地址、空间大小进行iSCSI数据写入。
10.根据权利要求9所述存储资源的管理和分配系统,其特征在于,所述DataNode进一步用于,按照以下第一策略为所述IP编码器选择存储资源: 如果当前正在分配slice的存储资源上仍有空闲状态的slice,则继续选择当前存储资源;且, 如果当前正在分配slice的存储资源的占用slice达到所述存储资源总slice的第一预设比例以上,则选择下一剩余存储空间最大的存储资源。
11.根据权利要求9所述存储资源的管理和分配系统,其特征在于,所述DataNode进一步用于,对存储资源以slice为单位进行切分,并通过空闲slice队列和占用slice队列对存储资源中的slice进行管理; 所述DataNode根据以下第二策略分配slice:在所述IP编码器请求的存储资源中选择空闲slice队列中的slice分配给所述IP编码器,且在应答成功后,将本次分配的slice更新为占用状态并调度到占用队列中。
12.根据权利要求9所述存储资源的管理和分配系统,其特征在于,所述IP编码器进一步用于,在所分配slice的空间被写入比例达到第二预设比例时,向所述DataNode请求分配新的slice ; 所述DataNode进一步用于,根据所述IP编码器分配新slice的请求,判断所述原slice所属的存储资源中slice的占用率是否达到第三预设比例,如果未达到第三预设比例,则继续为所述IP编码器分配相同存储资源中的空闲slice,如果达到第三预设比例,则为所述IP编码器选择所述DataNode的其他存储资源; 如果所述DataNode的所有存储资源的slice占用率都达到所述第三预设比例,则删除所述DataNode中的老化数据并将所删数据对应的slice挂回到空闲slice队列,为所述IP编码器选择剩余slice空间最大的存储资源,并分配所选存储资源的空闲slice给所述IP编码器。
13.根据权利要求9至12任一项所述存储资源的管理和分配系统,其特征在于,该系统还包括:Master管理节点; 所述IP编码器进一步用于,在向所述DataNode发送分配存储空间请求之前,向所述Master管理节点请求分配DataNode ; 所述Master管理节点用于,在收到所述IP编码器分配DataNode的请求后,根据第三策略为所述IP编码器分配所述DataNode。
14.根据权利要求13所述存储资源的管理和分配系统,其特征在于,所述Master管理节点进一步用于,根据以下第三策略为IP编码器分配DataNode: 根据各DataNode的剩余存储空间、剩余输入输出IO处理能力,并基于负载均衡、网络直连因素,为所述IP编码器分配DataNode。
15.根据权利要求13所述存储资源的管理和分配系统,其特征在于,所述Master管理节点包括主Master管理节点和辅Master管理节点; 所述辅Master管理节点用于对所述主Master管理节点进行冗余保护,在所述主Master管理节点故障时,所述辅Master管理节点切换为主Master管理节点。
16.根据权利要求13所述存储资源的管理和分配系统,其特征在于,所述Master管理节点进一步用于,在所述DataNode故障或断网时,为所述故障或断网的DataNode所对应的IP编码器分配新的可用 DataNode。
【文档编号】H04L29/06GK104023058SQ201410245074
【公开日】2014年9月3日 申请日期:2014年6月3日 优先权日:2014年6月3日
【发明者】成浩 申请人:浙江宇视科技有限公司