CN105224244A - 一种文件存储的方法和装置 - Google Patents
一种文件存储的方法和装置 Download PDFInfo
- Publication number
- CN105224244A CN105224244A CN201510562721.6A CN201510562721A CN105224244A CN 105224244 A CN105224244 A CN 105224244A CN 201510562721 A CN201510562721 A CN 201510562721A CN 105224244 A CN105224244 A CN 105224244A
- Authority
- CN
- China
- Prior art keywords
- cdv
- node
- dog
- watch
- file
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种文件存储的方法和装置,该方法包括:针对监控设备的每轮文件存储过程,CDM服务器收到来自监控设备的存储请求时,判断本轮文件存储过程中是否存在未选择过的CDV节点;若是,则所述CDM服务器从未选择过的CDV节点中选择一个CDV节点,将当前选择的CDV节点标记为已经选择过,并将当前选择的CDV节点上为所述监控设备分配的目录空间的信息发送给所述监控设备,以使所述监控设备利用所述目录空间的信息在当前选择的CDV节点的所述目录空间中存储指定大小的一个文件,并重新向所述CDM服务器发送存储请求;通过本发明的技术方案,可以将文件平均存储到每个CDV节点上,负载均衡效果比较理想。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种文件存储的方法和装置。
背景技术
在视频监控系统与云存储系统结合时,视频监控系统中的监控设备(如前端摄像机和后端硬盘录像机等)会将生成的文件(如录像文件等),存储到云存储系统中的CDV(CloudDirectVirtual,云直存虚拟)节点上。
云存储系统中通常包括多个CDV节点,监控设备需要将生成的多个文件,均衡存储到多个CDV节点上。为了实现文件存储的负载均衡,监控设备采用哈希算法确定存储文件的CDV节点,并将文件存储到该CDV节点上。
监控设备在采用哈希算法确定存储文件的CDV节点时,无法将文件平均存储到多个CDV节点中的每个CDV节点上,负载均衡效果不理想。
发明内容
本发明提供一种文件存储的方法,应用于包括监控设备、云直存管理CDM服务器和多个云直存虚拟CDV节点的系统中,所述方法包括:
所述CDM服务器获得所述监控设备需要的存储空间大小以及所述多个CDV节点的数量,并在所述多个CDV节点中的每个CDV节点上,为所述监控设备分配大小为所述存储空间大小除以所述数量的目录空间;
针对所述监控设备的每轮文件存储过程,则执行如下步骤:
A、所述CDM服务器收到来自所述监控设备的存储请求时,判断本轮文件存储过程中是否存在未选择过的CDV节点;若是,执行B;否则执行C;
B、所述CDM服务器从未选择过的CDV节点中选择一个CDV节点,将当前选择的CDV节点标记为已经选择过,并将当前选择的CDV节点上为所述监控设备分配的目录空间的信息发送给所述监控设备,以使所述监控设备利用所述目录空间的信息在当前选择的CDV节点的所述目录空间中存储指定大小的一个文件,并重新向所述CDM服务器发送存储请求,执行A;
C、所述CDM服务器将所述多个CDV节点中的每个CDV节点均标记为未选择过,执行所述监控设备的下一轮文件存储过程,并执行A。
所述CDM服务器从未选择过的CDV节点中选择一个CDV节点的过程,具体包括:所述CDM服务器获得未选择过的各CDV节点的任务执行数量,并从未选择过的各CDV节点中选择一个任务执行数量最少的CDV节点。
所述CDM服务器在执行所述监控设备的每轮文件存储过程之前,所述方法进一步包括:所述CDM服务器判断所述多个CDV节点中是否有CDV节点,在所述目录空间的文件存储容量已经达到所述目录空间的预设数值;
如果是,则所述CDM服务器从所述多个CDV节点中的每个CDV节点的所述目录空间中删除一个文件,并执行所述监控设备的文件存储过程;
如果否,则所述CDM服务器直接执行所述监控设备的文件存储过程。
当新增加一个为所述监控设备分配目录空间的CDV节点时,所述方法进一步包括:所述CDM服务器获得已经存在的CDV节点上为所述监控设备分配的目录空间的大小,在新增加的CDV节点上为所述监控设备分配与该大小相同的目录空间,并将所述多个CDV节点和新增加的CDV节点添加到一个组中;针对所述监控设备的每轮文件存储过程,所述CDM服务器基于所述组中的所有CDV节点,执行A-C,一直到新增加的CDV节点的所述目录空间的文件存储容量已经达到所述目录空间的预设数值,则:
所述CDM服务器获得调整后的目录空间大小为所述存储空间大小除以所述组中的CDV节点的数量,并利用所述调整后的目录空间大小,在所述组中的每个CDV节点上,调整为所述监控设备分配的目录空间的大小。
在所述CDM服务器在新增加的CDV节点上为所述监控设备分配与该大小相同的目录空间之后,在所述CDM服务器基于所述组中的所有CDV节点执行A-C之前,还包括:
所述CDM服务器将所述多个CDV节点中的任意一个CDV节点的文件索引信息复制到新增加的CDV节点,并标记所述文件索引信息为不可访问。
本发明提供一种文件存储的装置,应用于包括监控设备、云直存管理CDM服务器和多个云直存虚拟CDV节点的系统中,所述文件存储的装置应用在所述CDM服务器上,且所述文件存储的装置具体包括:
分配模块,用于获得所述监控设备需要的存储空间大小以及所述多个CDV节点的数量,并在所述多个CDV节点中的每个CDV节点上,为所述监控设备分配大小为所述存储空间大小除以所述数量的目录空间;
处理模块,用于针对所述监控设备的每轮文件存储过程,在接收到来自所述监控设备的存储请求时,判断本轮文件存储过程中是否存在未选择过的CDV节点;如果是,则从未选择过的CDV节点中选择一个CDV节点,将当前选择的CDV节点标记为已经选择过,并将当前选择的CDV节点上为所述监控设备分配的目录空间的信息发送给所述监控设备,以使所述监控设备利用所述目录空间的信息在当前选择的CDV节点的所述目录空间中存储指定大小的一个文件,并重新向所述CDM服务器发送存储请求;
如果否,则将所述多个CDV节点中的每个CDV节点均标记为未选择过,由所述处理模块执行所述监控设备的下一轮文件存储过程。
所述处理模块,具体用于在从未选择过的CDV节点中选择一个CDV节点的过程中,获得未选择过的各CDV节点的任务执行数量,并从未选择过的各CDV节点中选择一个任务执行数量最少的CDV节点。
所述处理模块,进一步用于在执行所述监控设备的每轮文件存储过程之前,判断所述多个CDV节点中是否有CDV节点,在所述目录空间的文件存储容量已经达到所述目录空间的预设数值;如果是,则从所述多个CDV节点中的每个CDV节点的所述目录空间中删除一个文件,并执行所述监控设备的文件存储过程;如果否,则直接执行所述监控设备的文件存储过程。
所述处理模块,进一步用于当新增加一个为所述监控设备分配目录空间的CDV节点时,获得已经存在的CDV节点上为所述监控设备分配的目录空间的大小,在新增加的CDV节点上为所述监控设备分配与该大小相同的目录空间,并将所述多个CDV节点和新增加的CDV节点添加到一个组中;
针对所述监控设备的每轮文件存储过程,基于所述组中的所有CDV节点,在接收到来自所述监控设备的存储请求时,判断本轮文件存储过程中是否存在未选择过的CDV节点;如果是,则从未选择过的CDV节点中选择一个CDV节点,将当前选择的CDV节点标记为已经选择过,并将当前选择的CDV节点上为所述监控设备分配的目录空间的信息发送给所述监控设备,以使所述监控设备利用所述目录空间的信息在当前选择的CDV节点的所述目录空间中存储指定大小的一个文件,并重新向所述CDM服务器发送存储请求;如果否,则将所述多个CDV节点中的每个CDV节点均标记为未选择过,由所述处理模块执行所述监控设备的下一轮文件存储过程;
当新增加的CDV节点的所述目录空间的文件存储容量已经达到所述目录空间的预设数值,则:获得调整后的目录空间大小为所述存储空间大小除以所述组中的CDV节点的数量,并利用所述调整后的目录空间大小,在所述组中的每个CDV节点上,调整为所述监控设备分配的目录空间的大小。
所述处理模块,还用于将多个CDV节点中的任意一个CDV节点的文件索引信息复制到新增加的CDV节点,并标记所述文件索引信息为不可访问。
基于上述技术方案,本发明实施例中,CDM(CloudDirectManagement,云直存管理)服务器可以在每个CDV节点上为监控设备分配大小相同的目录空间,针对监控设备的每轮文件存储过程,在每个CDV节点上存储大小相同的一个文件,且每轮文件存储过程是在每个CDV节点上均进行存储,从而可以将文件平均存储到每个CDV节点上,负载均衡效果比较理想。
附图说明
图1是本发明一种实施方式中的应用场景示意图;
图2是本发明一种实施方式中为监控设备分配目录空间的示意图之一;
图3是本发明一种实施方式中的文件存储的方法的流程图;
图4是本发明一种实施方式中为监控设备分配目录空间的示意图之二;
图5是本发明一种实施方式中为监控设备分配目录空间的示意图之三;
图6是本发明一种实施方式中的CDM服务器的硬件结构图;
图7是本发明一种实施方式中的文件存储的装置的结构图。
具体实施方式
针对现有技术中存在的问题,本发明实施例中提出一种文件(如录像文件等)存储的方法。以图1为本发明实施例的应用场景示意图,该方法可以应用于包括监控设备、CDM服务器和多个CDV节点的系统中。其中,该系统是指视频监控系统与云存储系统结合的系统,上述监控设备位于视频监控系统中,上述CDM服务器和多个CDV节点均位于云存储系统中。
其中,监控设备可以为前端摄像机和后端硬盘录像机等,在实际应用中,监控设备的数量为多个,图1中以一个监控设备为例进行说明。CDV节点可以是实际的物理设备,也可以是在物理设备上配置的虚拟机,用于存储监控设备生成的文件。CDM服务器是CDS(CloudDirectStorage,云直存系统)管理解决方案中的存储管理节点,提供存储虚拟化管理功能,将所有CDV节点空间合并成一个存储虚拟池,对外提供海量存储空间。在实际应用中,可以配置两个CDM服务器,一个是主CDM服务器,用于对CDV节点进行管理,一个是备CDM服务器,用于在主CDM服务器发生故障时对CDV节点进行管理,本实施例中以一个CDM服务器为例。
当云存储系统中存在大量CDV节点时,可以先将大量CDV节点划分到多个组中,每组中包括多个CDV节点,且每组中包括的CDV节点的数量可以根据实际需要任意配置。在图1中,将CDV节点1、CDV节点2和CDV节点3划分到组1中,将CDV节点4、CDV节点5和CDV节点6划分到组2中。基于此,可以在CDM服务器上指定将监控设备的文件存储到一个组中,如图1中是指定将监控设备的文件存储到组1中。进一步的,通过将大量CDV节点划分到多个组中,可以均衡各组之间的性能压力,将一个大量CDV节点之间的负载均衡方案转换为组内的多个CDV节点的负载均衡方案。
在后续过程中,所指的多个CDV节点是指一个组内的多个CDV节点。
本发明实施例中,CDM服务器在多个CDV节点中的每个CDV节点上为监控设备分配大小相同的目录空间。具体的,CDM服务器获得监控设备需要的存储空间大小和多个CDV节点的数量,在多个CDV节点中的每个CDV节点上,为监控设备分配大小为该存储空间大小除以该数量的目录空间。
其中,监控设备可以通过消息将本监控设备需要的存储空间大小发送给CDM服务器,由CDM服务器从该消息中获得监控设备需要的存储空间大小。
如图2所示,为CDM服务器为监控设备分配目录空间的示意图。在CDM服务器为监控设备分配目录空间时,规定均摊到各个CDV节点上。假设监控设备1需要的存储空间大小为30G,则CDM服务器在CDV节点1上为监控设备1分配大小为10G(30G/3)的目录空间1,在CDV节点2上为监控设备1分配大小为10G的目录空间1,在CDV节点3上为监控设备1分配大小为10G的目录空间1,形成目录空间1(目录空间和监控设备一一对应)条带。同理,假设监控设备2需要的存储空间大小为90G,则CDM服务器在CDV节点1上为监控设备2分配大小为30G的目录空间2,在CDV节点2上为监控设备2分配大小为30G的目录空间2,在CDV节点3上为监控设备2分配大小为30G的目录空间2。假设监控设备3需要的存储空间大小为45G,则CDM服务器在CDV节点1上为监控设备3分配大小为15G的目录空间3,在CDV节点2上为监控设备3分配大小为15G的目录空间3,在CDV节点3上为监控设备1分配大小为15G的目录空间3。
在上述应用场景下,如图3所示,针对监控设备的每轮文件存储过程,则本发明实施例中提出的文件存储的方法,具体可以包括以下步骤:
步骤301,CDM服务器在接收到来自监控设备的存储请求时,判断本轮文件存储过程中是否存在未选择过的CDV节点。如果是,CDM服务器执行步骤302,如果否,CDM服务器执行步骤303。其中,未选择过的CDV节点是指为监控设备分配目录空间的多个CDV节点中的CDV节点。
步骤302,CDM服务器从未选择过的CDV节点中选择一个CDV节点,将当前选择的CDV节点标记为已经选择过,并将当前选择的CDV节点上为监控设备分配的目录空间的信息发送给监控设备。以使监控设备利用该目录空间的信息在当前选择的CDV节点的目录空间中存储指定大小的一个文件,并重新向CDM服务器发送存储请求,之后执行步骤301。
步骤303,CDM服务器将多个CDV节点中的每个CDV节点均标记为未选择过,执行监控设备的下一轮文件存储过程,并执行步骤301。
本发明实施例中,CDM服务器从未选择过的CDV节点中选择一个CDV节点的过程,具体可以包括但不限于如下方式:CDM服务器从未选择过的CDV节点中,随机选择一个CDV节点。或者,CDM服务器从未选择过的CDV节点中,选择一个CDV节点标识最小的CDV节点。或者,CDM服务器从未选择过的CDV节点中,选择一个CDV节点标识最大的CDV节点。或者,CDM服务器获得未选择过的各CDV节点的任务执行数量,并从未选择过的各CDV节点中,选择一个任务执行数量最少的CDV节点。
其中,当包括多个CDV节点时,为了区分各CDV节点,通常会为不同的CDV节点设置不同的CDV节点标识,如图1中的6个CDV节点的CDV节点标识分别为CDV节点1、2、3、4、5、6。基于此,针对组1,则CDV节点标识最小的CDV节点为CDV节点1,CDV节点标识最大的CDV节点为CDV节点3。针对组2,则CDV节点标识最小的CDV节点为CDV节点4,CDV节点标识最大的CDV节点为CDV节点6。
其中,针对监控设备的每轮文件存储过程,多个CDV节点中的每个CDV节点都被CDM服务器选择过一次时,则称为一轮文件存储过程。
例如,针对监控设备1的第一轮文件存储过程,CDM服务器接收来自监控设备1的存储请求,从未选择过的CDV节点中选择一个CDV节点1(如任务执行数量最少的CDV节点),将CDV节点1标记为已经选择过,并将CDV节点1上的目录空间1的信息发送给监控设备1。监控设备1挂载CDV节点1的资源,在CDV节点1的目录空间1中存储一个文件,当文件大小写到指定大小(指定大小可以配置,但配置完成后不能变更,保证所有CDV节点上写入的所有文件的大小一致,例如2GB)时,停止向CDV节点1写入文件的过程,并重新向CDM服务器发送存储请求。之后,CDM服务器接收来自监控设备1的存储请求,从未选择过的CDV节点中选择一个CDV节点2,将CDV节点2标记为已经选择过,并将CDV节点2上的目录空间1的信息发送给监控设备1。监控设备1在CDV节点2的目录空间1中存储一个指定大小的文件,并重新向CDM服务器发送存储请求。之后,CDM服务器接收来自监控设备1的存储请求,从未选择过的CDV节点中选择一个CDV节点3,将CDV节点3标记为已经选择过,并将CDV节点3上的目录空间1的信息发送给监控设备1。监控设备1在CDV节点3的目录空间1中存储一个指定大小的文件,并重新向CDM服务器发送存储请求。
CDM服务器接收来自监控设备1的存储请求,由于第一轮文件存储过程中,所有CDV节点均已经被选择过,因此,CDM服务器将CDV节点1、CDV节点2和CDV节点3均标记为未选择过,执行监控设备1的第二轮文件存储过程。第二轮文件存储过程与第一轮文件存储过程类似,只是CDM服务器选择的未选择过的CDV节点的顺序可能会发生变化,在此不再赘述。而且,CDM服务器会依次执行监控设备1的第三轮文件存储过程、第四轮文件存储过程、第五轮文件存储过程,以此类推,在此不再赘述。
本发明实施例中,CDM服务器在执行监控设备的每轮文件存储过程之前,还可以判断多个CDV节点中是否有CDV节点,在目录空间的文件存储容量已经达到该目录空间的预设数值。如果是,则CDM服务器从多个CDV节点中的每个CDV节点的目录空间中删除一个文件,并执行监控设备的文件存储过程。如果否,则CDM服务器直接执行监控设备的文件存储过程。
其中,CDV节点在目录空间的文件存储容量已经达到该目录空间的预设数值是指:CDV节点的目录空间已经被写满。或者,CDV节点的目录空间已经无法写入一个文件,例如,当指定大小为2G时,如果CDV节点的目录空间的剩余空间大小已经小于2G,则该目录空间已经无法写入一个文件。
其中,CDM服务器从多个CDV节点中的每个CDV节点的目录空间中删除一个文件的过程,具体包括但不限于:CDM服务器按照文件写入的时间先后次序,从CDV节点的目录空间中删除一个写入时间最早的文件。
针对监控设备1的第一轮文件存储过程,由于各CDV节点(即CDV节点1、CDV节点2和CDV节点3)的目录空间1的剩余空间大小为10G,因此直接执行监控设备1的第一轮文件存储过程。针对监控设备1的第二轮文件存储过程,由于各CDV节点的目录空间1的剩余空间大小为8G,因此直接执行监控设备1的第二轮文件存储过程。针对监控设备1的第三轮文件存储过程,由于各CDV节点的目录空间1的剩余空间大小为6G,因此直接执行监控设备1的第三轮文件存储过程。针对监控设备1的第四轮文件存储过程,由于各CDV节点的目录空间1的剩余空间大小为4G,因此直接执行监控设备1的第四轮文件存储过程。针对监控设备1的第五轮文件存储过程,由于各CDV节点的目录空间1的剩余空间大小为2G,因此直接执行监控设备1的第五轮文件存储过程。针对监控设备1的第六轮文件存储过程,由于各CDV节点的目录空间1的剩余空间大小为0G,即已经被写满,因此删除第一轮文件存储过程中在各CDV节点存储的文件,并执行监控设备1的第六轮文件存储过程。针对监控设备1的第七轮文件存储过程,由于各CDV节点的目录空间1的剩余空间大小为0G,即已经被写满,因此删除第二轮文件存储过程中在各CDV节点存储的文件,并执行监控设备1的第七轮文件存储过程。以此类推,监控设备1的后续的文件存储过程不再赘述。
基于上述技术方案,本发明实施例中,CDM服务器可以在每个CDV节点上为监控设备分配大小相同的目录空间,针对监控设备的每轮文件存储过程,在每个CDV节点上存储大小相同的一个文件,且每轮文件存储过程是在每个CDV节点上均进行存储,从而可以将文件平均存储到每个CDV节点上,负载均衡效果比较理想。而且,当CDV节点的目录空间已经被写满时,通过在每个CDV节点上删除一个文件,从而可以在一轮文件存储过程中,仍然可以在每个CDV节点上存储大小相同的一个文件,即在每个CDV节点上均进行存储,解决在满覆盖情况下的各CDV节点的负载均衡问题。
本发明实施例中,当新增加一个为监控设备分配目录空间的CDV节点时,则CDM服务器获得已经存在的CDV节点上为该监控设备分配的目录空间的大小,并在新增加的CDV节点上为该监控设备分配与该大小相同的目录空间,并将多个CDV节点和新增加的CDV节点添加到一个组中。进一步的,针对该监控设备的每轮文件存储过程,CDM服务器基于该组中的所有CDV节点,执行步骤301-步骤303,一直到新增加的CDV节点的目录空间的文件存储容量已经达到该目录空间的预设数值,则:CDM服务器获得调整后的目录空间大小为存储空间大小(即该监控设备需要的存储空间大小)除以该组中的CDV节点的数量,并利用调整后的目录空间大小,在该组中的每个CDV节点上,调整为该监控设备分配的目录空间的大小。
其中,在视频监控系统中,经常会遇到扩展监控设备的留存期的情况,如将监控设备的文件从保留1个月变更为保留2个月,因此需要扩容监控设备的存储空间。基于此,可以横向扩展一个CDV节点,且新增加的CDV节点可以为监控设备分配目录空间,假设新增加一个CDV节点7。
如图2所示,CDM服务器获得已经存在的CDV节点(CDV节点1、CDV节点2和CDV节点3)上为监控设备1分配的目录空间的大小为10G,因此在CDV节点7上为监控设备1分配10G的目录空间1。同理,在CDV节点7上为监控设备2分配30G的目录空间2,在CDV节点7上为监控设备3分配15G的目录空间3。为监控设备分配目录空间的示意图可以如图4所示。
CDM服务器将CDV节点1、CDV节点2、CDV节点3、CDV节点7添加到一个组中,如将CDV节点7添加到组1中。针对监控设备1的每轮文件存储过程,CDM服务器将基于CDV节点1、CDV节点2、CDV节点3、CDV节点7,执行步骤301-步骤303,即每轮文件存储过程中,会依次选择出CDV节点1、CDV节点2、CDV节点3、CDV节点7中的一个CDV节点。
假设增加CDV节点7时,针对监控设备1已经执行了十五轮文件存储过程,则针对监控设备1的第十六、十七、十八、十九、二十轮文件存储过程,CDV节点7的目录空间1的文件存储容量未达到目录空间1的预设数值。针对监控设备1的第二十一轮文件存储过程,CDV节点7的目录空间1已经被写满,因此,针对监控设备1,CDM服务器获得调整后的目录空间大小为7.5G(30G除以4),因此在CDV节点1、CDV节点2、CDV节点3、CDV节点7上,将为监控设备1分配的目录空间1的大小由10G调整为7.5G。同理,CDM服务器将为监控设备2分配的目录空间2的大小由30G调整为22.5G,CDM服务器将为监控设备3分配的目录空间3的大小由15G调整为11.25G,CDM服务器为监控设备分配目录空间的示意图可以如图5所示。
其中,CDM服务器将为监控设备1分配的目录空间1的大小由10G调整为7.5G的过程中,分别从CDV节点1、CDV节点2、CDV节点3、CDV节点7的目录空间1中,删除2.5G大小的文件。在后续过程中,监控设备1可以在各CDV节点的目录空间1的7.5G空间中存储文件。
经过上述扩容处理,各CDV节点上均会腾出部分存储空间,如各CDV节点上腾出的存储空间大小为(10G+30G+15G)-(7.5G+22.5G+11.25G),即13.75G。假设需要扩容监控设备1的存储空间,则可以在每个CDV节点上为监控设备1分配大小为21.25G(13.75G+7.5G)的目录空间1,此时监控设备1一共分配到85G的目录空间,显著提升了监控设备1的目录空间。
本发明实施例中,在CDM服务器在新增加的CDV节点上为监控设备分配与该大小相同的目录空间之后,在基于组中的所有CDV节点执行步骤301-步骤303之前,还可以将多个CDV节点中的任意一个CDV节点的文件索引信息复制到新增加的CDV节点,并标记文件索引信息为不可访问。
其中,考虑到在增加CDV节点7时,针对监控设备1已经执行了多轮文件存储过程,即CDV节点1、CDV节点2、CDV节点3的目录空间1均已经被写满,此时每轮的文件存储过程是先从每个CDV节点的目录空间1中删除一个文件,然后执行监控设备1的文件存储过程。在此情况下,由于CDV节点7还没有存储文件,因此将CDV节点7加入到组1之后,无法先从CDV节点1、CDV节点2、CDV节点3、CDV节点7的目录空间1中删除一个文件。基于此,本发明实施例中,CDM服务器会将多个CDV节点中的任意一个CDV节点1的文件索引信息复制到CDV节点7,由于CDV节点1的目录空间1已经被写满,基于CDV节点1的文件索引信息,CDM服务器会认为CDV节点7的目录空间1已经被写满,从而可以从CDV节点1、CDV节点2、CDV节点3、CDV节点7的目录空间1中删除一个文件。
其中,文件索引信息包括文件标识和文件位置(CDV节点上存储文件的位置),在将CDV节点1的文件索引信息(如文件标识1和文件位置1)复制到CDV节点7后,如果有访问文件标识1对应文件的需求,由于CDV节点7的文件索引信息包括文件标识1,因此会在CDV节点7中检索相应的文件,实际上CDV节点7中并未存储任何文件,导致文件检索失败。基于此,本发明实施例中,标记复制到CDV节点7的文件索引信息为不可访问,针对访问文件标识1对应文件的需求,不会在CDV节点7中检索相应的文件。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种文件存储的装置,应用于包括监控设备、CDM服务器和多个CDV节点的系统中,该文件存储的装置应用在CDM服务器上。其中,该文件存储的装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过文件存储的装置所在的CDM服务器的处理器,将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本发明提出的文件存储的装置所在的CDM服务器的一种硬件结构图,除了图6所示的处理器、网络接口、内存以及非易失性存储器外,CDM服务器还可以包括其他硬件,如负责处理报文的转发芯片等;从硬件结构上来讲,该CDM服务器还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。
如图7所示,为本发明提出的文件存储的装置的结构图,所述文件存储的装置应用在CDM服务器上,且所述文件存储的装置具体包括:
分配模块11,用于获得所述监控设备需要的存储空间大小以及所述多个CDV节点的数量,并在所述多个CDV节点中的每个CDV节点上,为所述监控设备分配大小为所述存储空间大小除以所述数量的目录空间;
处理模块12,用于针对所述监控设备的每轮文件存储过程,在接收到来自所述监控设备的存储请求时,判断本轮文件存储过程中是否存在未选择过的CDV节点;如果是,则从未选择过的CDV节点中选择一个CDV节点,将当前选择的CDV节点标记为已经选择过,并将当前选择的CDV节点上为所述监控设备分配的目录空间的信息发送给所述监控设备,以使所述监控设备利用所述目录空间的信息在当前选择的CDV节点的所述目录空间中存储指定大小的一个文件,并重新向所述CDM服务器发送存储请求;
如果否,则将所述多个CDV节点中的每个CDV节点均标记为未选择过,由所述处理模块12执行所述监控设备的下一轮文件存储过程。
所述处理模块12,具体用于在从未选择过的CDV节点中选择一个CDV节点的过程中,获得未选择过的各CDV节点的任务执行数量,并从未选择过的各CDV节点中选择一个任务执行数量最少的CDV节点。
所述处理模块12,进一步用于在执行所述监控设备的每轮文件存储过程之前,判断所述多个CDV节点中是否有CDV节点,在所述目录空间的文件存储容量已经达到所述目录空间的预设数值;如果是,则从所述多个CDV节点中的每个CDV节点的所述目录空间中删除一个文件,并执行所述监控设备的文件存储过程;如果否,则直接执行所述监控设备的文件存储过程。
所述处理模块12,进一步用于当新增加一个为所述监控设备分配目录空间的CDV节点时,获得已经存在的CDV节点上为所述监控设备分配的目录空间的大小,在新增加的CDV节点上为所述监控设备分配与该大小相同的目录空间,并将所述多个CDV节点和新增加的CDV节点添加到一个组中;
针对所述监控设备的每轮文件存储过程,基于所述组中的所有CDV节点,在接收到来自所述监控设备的存储请求时,判断本轮文件存储过程中是否存在未选择过的CDV节点;如果是,则从未选择过的CDV节点中选择一个CDV节点,将当前选择的CDV节点标记为已经选择过,并将当前选择的CDV节点上为所述监控设备分配的目录空间的信息发送给所述监控设备,以使所述监控设备利用所述目录空间的信息在当前选择的CDV节点的所述目录空间中存储指定大小的一个文件,并重新向所述CDM服务器发送存储请求;如果否,则将所述多个CDV节点中的每个CDV节点均标记为未选择过,由所述处理模块12执行所述监控设备的下一轮文件存储过程;
当新增加的CDV节点的所述目录空间的文件存储容量已经达到所述目录空间的预设数值,则:获得调整后的目录空间大小为所述存储空间大小除以所述组中的CDV节点的数量,并利用所述调整后的目录空间大小,在所述组中的每个CDV节点上,调整为所述监控设备分配的目录空间的大小。
所述处理模块12,还用于将多个CDV节点中的任意一个CDV节点的文件索引信息复制到新增加的CDV节点,标记所述文件索引信息为不可访问。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (10)
1.一种文件存储的方法,其特征在于,应用于包括监控设备、云直存管理CDM服务器和多个云直存虚拟CDV节点的系统中,所述方法包括:
所述CDM服务器获得所述监控设备需要的存储空间大小以及所述多个CDV节点的数量,并在所述多个CDV节点中的每个CDV节点上,为所述监控设备分配大小为所述存储空间大小除以所述数量的目录空间;
针对所述监控设备的每轮文件存储过程,则执行如下步骤:
A、所述CDM服务器收到来自所述监控设备的存储请求时,判断本轮文件存储过程中是否存在未选择过的CDV节点;若是,执行B;否则执行C;
B、所述CDM服务器从未选择过的CDV节点中选择一个CDV节点,将当前选择的CDV节点标记为已经选择过,并将当前选择的CDV节点上为所述监控设备分配的目录空间的信息发送给所述监控设备,以使所述监控设备利用所述目录空间的信息在当前选择的CDV节点的所述目录空间中存储指定大小的一个文件,并重新向所述CDM服务器发送存储请求,执行A;
C、所述CDM服务器将所述多个CDV节点中的每个CDV节点均标记为未选择过,执行所述监控设备的下一轮文件存储过程,并执行A。
2.根据权利要求1所述的方法,其特征在于,所述CDM服务器从未选择过的CDV节点中选择一个CDV节点的过程,具体包括:
所述CDM服务器获得未选择过的各CDV节点的任务执行数量,并从未选择过的各CDV节点中选择一个任务执行数量最少的CDV节点。
3.根据权利要求1所述的方法,其特征在于,所述CDM服务器在执行所述监控设备的每轮文件存储过程之前,所述方法进一步包括:
所述CDM服务器判断所述多个CDV节点中是否有CDV节点,在所述目录空间的文件存储容量已经达到所述目录空间的预设数值;
如果是,则所述CDM服务器从所述多个CDV节点中的每个CDV节点的所述目录空间中删除一个文件,并执行所述监控设备的文件存储过程;
如果否,则所述CDM服务器直接执行所述监控设备的文件存储过程。
4.根据权利要求1-3任一项所述的方法,其特征在于,当新增加一个为所述监控设备分配目录空间的CDV节点时,所述方法进一步包括:
所述CDM服务器获得已经存在的CDV节点上为所述监控设备分配的目录空间的大小,在新增加的CDV节点上为所述监控设备分配与该大小相同的目录空间,并将所述多个CDV节点和新增加的CDV节点添加到一个组中;
针对所述监控设备的每轮文件存储过程,所述CDM服务器基于所述组中的所有CDV节点,执行A-C,一直到新增加的CDV节点的所述目录空间的文件存储容量已经达到所述目录空间的预设数值,则:
所述CDM服务器获得调整后的目录空间大小为所述存储空间大小除以所述组中的CDV节点的数量,并利用所述调整后的目录空间大小,在所述组中的每个CDV节点上,调整为所述监控设备分配的目录空间的大小。
5.根据权利要求4所述的方法,其特征在于,在所述CDM服务器在新增加的CDV节点上为所述监控设备分配与该大小相同的目录空间之后,在所述CDM服务器基于所述组中的所有CDV节点执行A-C之前,还包括:
所述CDM服务器将所述多个CDV节点中的任意一个CDV节点的文件索引信息复制到新增加的CDV节点,并标记所述文件索引信息为不可访问。
6.一种文件存储的装置,其特征在于,应用于包括监控设备、云直存管理CDM服务器和多个云直存虚拟CDV节点的系统中,所述文件存储的装置应用在所述CDM服务器上,且所述文件存储的装置具体包括:
分配模块,用于获得所述监控设备需要的存储空间大小以及所述多个CDV节点的数量,并在所述多个CDV节点中的每个CDV节点上,为所述监控设备分配大小为所述存储空间大小除以所述数量的目录空间;
处理模块,用于针对所述监控设备的每轮文件存储过程,在接收到来自所述监控设备的存储请求时,判断本轮文件存储过程中是否存在未选择过的CDV节点;如果是,则从未选择过的CDV节点中选择一个CDV节点,将当前选择的CDV节点标记为已经选择过,并将当前选择的CDV节点上为所述监控设备分配的目录空间的信息发送给所述监控设备,以使所述监控设备利用所述目录空间的信息在当前选择的CDV节点的所述目录空间中存储指定大小的一个文件,并重新向所述CDM服务器发送存储请求;
如果否,则将所述多个CDV节点中的每个CDV节点均标记为未选择过,由所述处理模块执行所述监控设备的下一轮文件存储过程。
7.根据权利要求6所述的装置,其特征在于,
所述处理模块,具体用于在从未选择过的CDV节点中选择一个CDV节点的过程中,获得未选择过的各CDV节点的任务执行数量,并从未选择过的各CDV节点中选择一个任务执行数量最少的CDV节点。
8.根据权利要求6所述的装置,其特征在于,
所述处理模块,进一步用于在执行所述监控设备的每轮文件存储过程之前,判断所述多个CDV节点中是否有CDV节点,在所述目录空间的文件存储容量已经达到所述目录空间的预设数值;如果是,则从所述多个CDV节点中的每个CDV节点的所述目录空间中删除一个文件,并执行所述监控设备的文件存储过程;如果否,则直接执行所述监控设备的文件存储过程。
9.根据权利要求6-8任一项所述的装置,其特征在于,
所述处理模块,进一步用于当新增加一个为所述监控设备分配目录空间的CDV节点时,获得已经存在的CDV节点上为所述监控设备分配的目录空间的大小,在新增加的CDV节点上为所述监控设备分配与该大小相同的目录空间,并将所述多个CDV节点和新增加的CDV节点添加到一个组中;
针对所述监控设备的每轮文件存储过程,基于所述组中的所有CDV节点,在接收到来自所述监控设备的存储请求时,判断本轮文件存储过程中是否存在未选择过的CDV节点;如果是,则从未选择过的CDV节点中选择一个CDV节点,将当前选择的CDV节点标记为已经选择过,并将当前选择的CDV节点上为所述监控设备分配的目录空间的信息发送给所述监控设备,以使所述监控设备利用所述目录空间的信息在当前选择的CDV节点的所述目录空间中存储指定大小的一个文件,并重新向所述CDM服务器发送存储请求;如果否,则将所述多个CDV节点中的每个CDV节点均标记为未选择过,由所述处理模块执行所述监控设备的下一轮文件存储过程;
当新增加的CDV节点的所述目录空间的文件存储容量已经达到所述目录空间的预设数值,则:获得调整后的目录空间大小为所述存储空间大小除以所述组中的CDV节点的数量,并利用所述调整后的目录空间大小,在所述组中的每个CDV节点上,调整为所述监控设备分配的目录空间的大小。
10.根据权利要求9所述的装置,其特征在于,
所述处理模块,还用于将多个CDV节点中的任意一个CDV节点的文件索引信息复制到新增加的CDV节点,并标记所述文件索引信息为不可访问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510562721.6A CN105224244B (zh) | 2015-09-07 | 2015-09-07 | 一种文件存储的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510562721.6A CN105224244B (zh) | 2015-09-07 | 2015-09-07 | 一种文件存储的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105224244A true CN105224244A (zh) | 2016-01-06 |
CN105224244B CN105224244B (zh) | 2018-09-18 |
Family
ID=54993250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510562721.6A Active CN105224244B (zh) | 2015-09-07 | 2015-09-07 | 一种文件存储的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105224244B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107154966A (zh) * | 2017-04-24 | 2017-09-12 | 浙江宇视科技有限公司 | 一种视频数据写入方法以及装置 |
CN108763589A (zh) * | 2018-06-20 | 2018-11-06 | 程慧泉 | 一种分布式文件系统的目录系统及其实现方法 |
CN110874300A (zh) * | 2018-08-29 | 2020-03-10 | 北京京东尚科信息技术有限公司 | 一种监控设备的方法和装置 |
CN112241239A (zh) * | 2019-07-18 | 2021-01-19 | 浙江宇视科技有限公司 | 存储任务管控方法、存储任务管控装置和存储设备 |
CN112291292A (zh) * | 2019-07-26 | 2021-01-29 | 浙江宇视科技有限公司 | 数据存储方法、装置、设备和介质 |
CN113132743A (zh) * | 2019-12-30 | 2021-07-16 | 浙江宇视科技有限公司 | 直播存储播放方法和系统 |
CN116107760A (zh) * | 2023-04-07 | 2023-05-12 | 浪潮电子信息产业股份有限公司 | 一种负载均衡方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023968A (zh) * | 2012-11-15 | 2013-04-03 | 中科院成都信息技术有限公司 | 一种网络分布式文件存储与读取方法 |
CN103647797A (zh) * | 2013-11-15 | 2014-03-19 | 北京邮电大学 | 一种分布式文件系统及其数据访问方法 |
CN104202428A (zh) * | 2014-09-25 | 2014-12-10 | 北京网秦天下科技有限公司 | 分布式文件存储系统及文件存储方法 |
CN104580439A (zh) * | 2014-12-30 | 2015-04-29 | 创新科存储技术(深圳)有限公司 | 一种云存储系统中使数据均匀分布的方法 |
US20150156172A1 (en) * | 2012-06-15 | 2015-06-04 | Alcatel Lucent | Architecture of privacy protection system for recommendation services |
-
2015
- 2015-09-07 CN CN201510562721.6A patent/CN105224244B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150156172A1 (en) * | 2012-06-15 | 2015-06-04 | Alcatel Lucent | Architecture of privacy protection system for recommendation services |
CN103023968A (zh) * | 2012-11-15 | 2013-04-03 | 中科院成都信息技术有限公司 | 一种网络分布式文件存储与读取方法 |
CN103647797A (zh) * | 2013-11-15 | 2014-03-19 | 北京邮电大学 | 一种分布式文件系统及其数据访问方法 |
CN104202428A (zh) * | 2014-09-25 | 2014-12-10 | 北京网秦天下科技有限公司 | 分布式文件存储系统及文件存储方法 |
CN104580439A (zh) * | 2014-12-30 | 2015-04-29 | 创新科存储技术(深圳)有限公司 | 一种云存储系统中使数据均匀分布的方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107154966A (zh) * | 2017-04-24 | 2017-09-12 | 浙江宇视科技有限公司 | 一种视频数据写入方法以及装置 |
CN108763589A (zh) * | 2018-06-20 | 2018-11-06 | 程慧泉 | 一种分布式文件系统的目录系统及其实现方法 |
CN108763589B (zh) * | 2018-06-20 | 2021-12-07 | 程慧泉 | 一种分布式文件系统的目录系统及其实现方法 |
CN110874300A (zh) * | 2018-08-29 | 2020-03-10 | 北京京东尚科信息技术有限公司 | 一种监控设备的方法和装置 |
CN112241239A (zh) * | 2019-07-18 | 2021-01-19 | 浙江宇视科技有限公司 | 存储任务管控方法、存储任务管控装置和存储设备 |
CN112241239B (zh) * | 2019-07-18 | 2023-03-14 | 浙江宇视科技有限公司 | 存储任务管控方法、存储任务管控装置和存储设备 |
CN112291292A (zh) * | 2019-07-26 | 2021-01-29 | 浙江宇视科技有限公司 | 数据存储方法、装置、设备和介质 |
CN112291292B (zh) * | 2019-07-26 | 2023-04-07 | 浙江宇视科技有限公司 | 数据存储方法、装置、设备和介质 |
CN113132743A (zh) * | 2019-12-30 | 2021-07-16 | 浙江宇视科技有限公司 | 直播存储播放方法和系统 |
CN116107760A (zh) * | 2023-04-07 | 2023-05-12 | 浪潮电子信息产业股份有限公司 | 一种负载均衡方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105224244B (zh) | 2018-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105224244A (zh) | 一种文件存储的方法和装置 | |
US20190166192A1 (en) | Method and Device for Storage Resource Allocation for Video Cloud Storage | |
US10356150B1 (en) | Automated repartitioning of streaming data | |
CN104052770A (zh) | 存储空间扩展系统及方法 | |
US20130031221A1 (en) | Distributed data storage system and method | |
CN103229173A (zh) | 元数据管理方法及系统 | |
CN103095687A (zh) | 元数据处理方法及装置 | |
CN110213326B (zh) | 元数据节点集群的扩容方法、系统、设备和存储介质 | |
WO2017050064A1 (zh) | 共享内存数据库的内存管理方法及装置 | |
CN104469392A (zh) | 一种视频文件存储方法及装置 | |
CN107087031A (zh) | 一种存储资源负载均衡方法及装置 | |
CN102508902A (zh) | 云存储系统中可变分块大小的块数据分块方法 | |
WO2019170011A1 (zh) | 任务分配方法及装置、分布式存储系统 | |
CN104348793A (zh) | 存储服务器系统及数据信息的存储方法 | |
CN105183585A (zh) | 一种数据备份方法及装置 | |
CN103365740B (zh) | 一种数据冷备方法及装置 | |
CN115756955A (zh) | 一种数据备份、数据恢复的方法、装置及计算机设备 | |
CN110515728B (zh) | 服务器调度方法、装置、电子设备及机器可读存储介质 | |
US10430400B1 (en) | User controlled file synchronization limits | |
CN105450679A (zh) | 进行数据云存储的方法及系统 | |
CN112799588A (zh) | 使用外部存储加载容器集群应用数据时的数据存储方法 | |
CN116719646A (zh) | 热点数据处理方法、装置、电子装置和存储介质 | |
KR20180050180A (ko) | 데이터 분산 처리를 수행하는 데이터 관리 시스템 및 데이터 관리 방법 | |
CN116204311A (zh) | Pod集群扩缩容方法、装置、计算机设备和存储介质 | |
US10803109B2 (en) | Method and device for reading and writing video data in NAS device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |