一种数据存储方法及系统
技术领域
本发明属于数据存储领域,尤其涉及监控领域的数据存储方法及系统。
背景技术
随着视频监控的逐渐普及,特别是伴随着高清监控系统的发展,视频数据正变得越来越庞大。尤其是部分高敏感性区域,往往需要60天的数据存储时间,这样就需要TB级以上的硬盘来存储数据。随着新技术的发展,老式的标清监控设备,通过软件系统升级即可以实现混合视频输入;或者通过前端改造成高清摄像头,来满足监控清晰度的要求。而监控系统中的老旧设备往往只有160GB,甚至只有80GB存储空间。显然老旧设备的有限容量无法完全满足现在的监控数据存储需求。
一种解决方法是,升级监控系统,将老旧设备全部更换掉。但是这将会增加监控系统的维护开支,给客户带来极大的成本。并且,由于更新的设备或者系统,其存储空间都是TB数量级,该存储空间在满足自身设备的存储需求以外,还存在着很大一部分空闲的存储空间,造成了一定的浪费。
同时由于受制于成本,一些监控系统并不采取整体系统升级的方式来解决存储空间不足的问题,而只增加部分新设备。现在亟需一种数据存储方法,以利用新增加的设备的存储空间,解决老旧设备的数据存储问题。
发明内容
本发明实施例的目的在于提供一种数据存储的方法及系统,充分利用网络中设备的存储空间,尤其是利用其它设备的存储空间,解决容量不足的存储空间设备的数据存储问题。
本发明的实施例是这样实现的,一种数据存储的方法,包括:
步骤S100:根据配置要求,计算设备所需的存储空间;
步骤S200:根据设备实际的存储空间与所需的存储空间,判断设备是存储需求设备还是存储提供设备,当判断为存储需要设备时计算存储需求设备的存储需求值,当判断为存储提供设备时计算存储提供设备的存储提供值;
步骤S300:获取网络中存储需求设备的存储需求信息和存储提供设备的存储提供信息;
步骤S400:根据存储需求设备的存储需求信息与存储提供设备的存储提供信息进行存储空间匹配;
步骤S500:存储空间匹配成功的存储提供设备分配存储空间给存储需求设备使用。
本发明的一个实施例中,步骤S400具体包括:
步骤S410:存储提供设备生成存储需求设备序列,根据存储需求设备序列的顺序,向存储需求设备发出匹配请求;
步骤S420:存储需求设备生成接收到的匹配请求序列,根据匹配请求序列的顺序,向匹配请求发出匹配确认信息,确认存储空间匹配成功;
步骤S430:存储提供设备发出匹配请求后,如没有收到匹配确认信息,则重新执行步骤S300。
本发明的一个实施例中,步骤S400具体包括:
步骤S401:根据存储需求信息与存储提供信息,生成存储需求设备序列和存储提供设备序列;
步骤S402:根据存储需求设备序列,在存储提供设备序列中寻找满足存储需求设备的存储需求值的存储提供设备;当找到存储提供设备时,进入步骤S403;否则进入步骤S300;
步骤S403:向存储需求设备和找到的存储提供设备发送匹配信息,确认存储空间匹配成功。
本发明的一个实施例中,步骤S300还包括:
步骤S301:判断是否存在存储提供设备的存储提供值大于存储需求设备的存储需求值,如果是,则进入步骤S400;如果否,则进入步骤S302;
步骤S302:判断获取的存储提供设备的存储提供值之和是否小于存储需求设备的存储需求值,如果是,则方法结束;如果否,进入步骤S303;
步骤S303:根据获取的存储提供设备的存储提供值,将存储需求设备分解为至少两个虚拟的存储需求设备,虚拟的存储需求设备的存储需求值小于或等于获取的存储提供设备之一的存储提供值,进入步骤S300。
本发明的一个实施例中,步骤S200具体包括:
步骤S210:判断设备的实际的存储空间是否小于所需的存储空间,如果是,进入步骤S220;如果否,进入步骤S230;
步骤S220:判断该设备为存储需求设备,该存储需求设备的存储需求值为所需的存储空间与实际的存储空间的差值;
步骤S230:计算该设备的实际的存储空间与所需的存储空间之间的存储差值,判断存储差值是否大于设定的阈值,如果是,进入步骤S240;如果否,判断该设备为正常设备;
步骤S240:判断该设备为存储提供设备,该存储提供设备的存储提供值为存储差值与设定的阈值的差值。
本发明还提供了一种数据存储系统,包括:
计算模块,用于根据配置要求,计算设备所需的存储空间;
判断模块,用于根据设备实际的存储空间与所需的存储空间,判断设备是存储需求设备还是存储提供设备,当判断为存储需要设备时计算存储需求设备的存储需求值,当判断为存储提供设备时计算存储提供设备的存储提供值;
网络模块,用于获取网络中存储需求设备的存储需求信息和存储提供设备的存储提供信息;
匹配模块,用于根据存储需求设备的存储需求信息与存储提供设备的存储提供信息进行存储空间匹配;
分配模块,用于存储空间匹配成功的存储提供设备分配存储空间给存储需求设备使用。
本发明的一个实施例中,该匹配模块具体包括:
匹配请求单元,用于存储提供设备生成存储需求设备序列,根据存储需求设备序列的顺序,向存储需求设备发出匹配请求;
匹配确认单元,用于存储需求设备生成接收到的匹配请求序列,根据匹配请求序列的顺序,向匹配请求发出匹配确认信息,确认存储空间匹配成功;
匹配判断单元,用于判断存储提供设备发出匹配请求后是否有收到匹配确认信息,如没有收到匹配确认信息则发送重新执行请求给网络模块。
本发明的一个实施例中,该匹配模块具体包括:
序列生成单元,用于根据存储需求信息与存储提供信息,生成存储需求设备序列和存储提供设备序列;
查询单元,用于根据存储需求设备序列,在存储提供设备序列中寻找满足存储需求设备的存储需求值的存储提供设备;当找到存储提供设备时,发送请求给匹配单元;否则发送重新执行请求给网络模块;
匹配单元,用于向存储需求设备和找到的存储提供设备发送匹配信息,确认存储空间匹配成功。
本发明的一个实施例中,网络模块还包括:
单值判断单元,用于判断是否存在存储提供设备的存储提供值大于存储需求设备的存储需求值,如果是,发送信息给匹配模块;如果否,发送信息给总和判断单元;
总和判断单元,用于判断获取的存储提供设备的存储提供值之和是否小于存储需求设备的存储需求值,如果是,则方法结束;如果否,发送信息给虚拟单元;
虚拟单元,用于根据获取的存储提供设备的存储提供值,将存储需求设备分解为至少两个虚拟的存储需求设备,虚拟的存储需求设备的存储需求值小于或等于获取的存储提供设备之一的存储提供值,发送信息给网络模块。
本发明的一个实施例中,判断模块具体包括:
初步判断单元,用于判断该设备的实际的存储空间是否小于所需的存储空间,如果是,发送信息给需求认定单元;如果否,发送信息给冗余判断单元;
需求认定单元,用于判断该设备为存储需求设备,该存储需求设备的存储需求值为所需的存储空间与实际的存储空间的差值;
冗余判断单元,用于计算该设备的实际的存储空间与所需的存储空间之间的存储差值,判断存储差值是否大于设定的阈值,如果是,发送信息给提供认定单元;如果否,判断该设备为正常设备;
提供认定单元,用于判断该设备为存储提供设备,该存储提供设备的存储提供值为存储差值与设定的阈值的差值。
本发明实施例通过计算系统网络中设备存储空间的差值以及存储空间富裕值,对网络中的存储需求设备和存储提供设备进行存储空间匹配,实现网络中存储设备的综合利用。本发明充分利用了网络中其它设备的存储空间,来实现数据的有效存储,不需要增加额外的成本,即可解决存在新老设备共存系统中的数据存储问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例一提供的数据存储方法的流程图;
图2是本发明实施例一中存储空间匹配的一种流程图;
图3是本发明实施例一中存储空间匹配的另一种流程图;
图4是本发明实施例一中从网络中获取信息的流程图;
图5是本发明实施例一中判断设备类别的流程图;
图6是本发明提供的数据存储系统的结构框架图;
图7是本发明的匹配模块的一种实施例的结构框架图;
图8是本发明的匹配模块的另一种实施例的结构框架图;
图9是本发明的网络模块的结构框架图;
图10是本发明的判断模块的结构框架图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一
如图1所示,本发明一实施例提供了一种数据存储方法,包括:
步骤S100:根据配置要求,计算设备所需的存储空间。
监控系统中,各设备通过网络连接在一起,设备上有自己的存储空间。为了满足实际需要,监控系统的设备会根据需求设置一定的配置,包括分辨率、编码格式、码率、数据路数、数据存储时间等。数据存储时间等根据设备所处位置等实际因素来确定,一般场所的监控设备可能需要30天的数据存储时间,而车载、商场等人群密集场所可能就需要60天的数据存储时间。
根据设备配置的码率、数据路数和数据存储时间等,即可计算得到该设备存储监控数据所需的存储空间。较优的,计算所需的存储空间时,使用设置的最大码率较好,这样可以预留一定的冗余空间。只要不修改配置或者配置要求,尤其是最大码率,对存储数据的自动删除或者手动删除并不影响设备已经计算得到的所需的存储空间。
本实施例中,设备所需的存储空间的计算,既可以在初始的时候进行,也可以在更改了配置要求后进行。本实施例中,设备所需的存储空间可以根据配置要求的改变而进行定期或者实时的更新,比如更改了存储时间、编码格式或者码率、存储空间匹配成功并分配了存储空间等,就可以重新计算设备所需的存储空间,即需要重新进行步骤S100。
步骤S200:根据设备实际的存储空间与所需的存储空间,判断设备是存储需求设备还是存储提供设备,当判断为存储需要设备时计算存储需求设备的存储需求值,当判断为存储提供设备时计算存储提供设备的存储提供值。
通过比较设备实际的存储空间和计算得到的所需的存储空间,可以判断该设备的实际的存储空间能否满足所需的存储空间的需要,并可以根据实际的存储空间和所需的存储空间的差值,计算出存储需求值或者存储提供值。
具体的,如图5所示,步骤S200具体包括:
步骤S210:判断设备的实际的存储空间是否小于所需的存储空间,如果是,进入步骤S220;如果否,进入步骤S230。
步骤S220:设备为存储需求设备,存储需求设备的存储需求值为所需的存储空间与实际的存储空间的差值。
如果设备实际的存储空间小于所需的存储空间,则认定设备为存储需求设备,存储需求值为所需的存储空间与实际的存储空间之间的差值。
步骤S230:计算设备的实际的存储空间与所需的存储空间之间的存储差值,判断存储差值是否大于设定的阈值;
如果是,进入步骤S240;如果否,判断设备为正常设备。
实际情况中,存在设备的实际的存储空间与所需的存储空间之间的存储差值极小的情形。如果该设备也被认定为存储提供设备,则其可以提供的存储空间较小。为了满足一般的存储需求设备的存储需求,可能需要多个这类存储提供设备。这会造成本数据存储方法的复杂化,并导致存储空间碎片化。步骤S210判定设备的实际的存储空间大于或等于所需的存储空间时,进入本步骤S230。
在步骤S230中,计算设备的实际的存储空间与所需的存储空间之间的存储差值,并将计算的存储差值与设定的阈值进行比较。设定的阈值,可以是一个经验值,也可以是根据存储空间总量的百分比进行计算得到,或者由用户手动设置。阈值的作用在于,避免设备提供的存储空间容量过小,造成系统中存在过多的小容量存储空间的存储提供设备,导致系统的数据存储复杂化。
如果计算的存储差值小于或等于设定的阈值,则判断设备为正常设备。正常设备的存储空间可以满足数据存储需求,不提供存储空间,也不需要存储空间,不需要进行存储空间匹配。
步骤S240:设备为存储提供设备,存储提供设备的存储提供值为存储差值与设定的阈值的差值。
如果计算的存储差值大于设定的阈值,则进入步骤S240,判断该设备属于存储提供设备,该设备的存储提供值为存储差值与设定的阈值的差值。
通过比较设定的阈值,并在计算存储提供值时减去阈值,给提供的存储空间引入了一个冗余容量,防止出现存储空间差错,并且可以有效避免出现存储空间的碎片化,减小数据存储的复杂性。
步骤S300:获取网络中存储需求设备的存储需求信息和存储提供设备的存储提供信息。
一般的,存储需求设备的存储需求信息主要包括存储需求设备的存储需求值和设备标识,存储提供设备的存储提供信息主要包括存储提供设备的存储提供值和设备标识,用于得到存储空间的需求与供给的匹配所需的指标或者参数。只要有存储需求值、存储提供值和设备标识,即可进行存储空间的需求方和提供方之间的匹配。本步骤既可以由各个存储需求设备以及存储提供设备分别执行;也可以由某个设备或者模块集中执行。
较优的,存储需求设备的存储需求信息还可以包括存储需求设备的传输速率要求,存储提供设备的存储提供信息还可以包括存储提供设备的传输速率。由于存在设备需要数据高速存储的情形,因此,传输速率也可以是匹配传输空间的一项指标参数,可以适用于传输速度存在一定差异或者对传输速度有特定要求的系统。
较优的,存储需求设备的存储需求信息还可以包括存储需求设备的存储需求所需时间,存储提供设备的存储提供信息还可以包括存储提供设备的可以提供存储空间的时间。因为设备可能产生临时的存储需求,也可能需要长期的存储空间;或者产生临时的存储供给,也可能提供长期的存储空间。此时,在存储空间匹配时,增加考虑存储时间的因素,可以在时间维度上综合利用存储提供设备提供的存储空间,减少存储空间的浪费。
此外,存储需求设备的存储需求信息还可以包括存储需求设备的存储需求有效时间,存储提供设备的存储提供信息还可以包括存储提供设备的存储提供有效时间。通过设置存储需求有效时间或者存储提供有效时间,可以保证存储需求和存储提供信息的时效性,以便对存储需求进行进一步的处理,比如拆分存储需求等,以便于筛选无效的存储需求和提供信息,提高数据存储方法的时效性。
步骤S100、S200和S300既可以在网络中的各个设备上分别进行,也可以在一个设备或者模块上执行。
步骤S400:根据存储需求设备的存储需求信息与存储提供设备的存储提供信息进行存储空间匹配。
本发明的一个实施例中,步骤S100、S200以及S300是在每个存储需求设备和存储提供设备上分别执行的,本步骤的存储空间匹配也在每个存储需求设备和存储提供设备上执行。如图2所示,步骤S400具体包括:
步骤S410:存储提供设备生成存储需求设备序列,根据存储需求设备序列的顺序,向存储需求设备发出匹配请求。
在本实施例中,存储提供设备首先比对本设备的存储提供值与获取的存储需求设备的存储需求值。只有存储需求值小于本设备的存储提供值的存储需求设备是有效的存储需求设备,才能用于生产存储需求设备序列。
存储提供设备根据从网络中获取的有效存储需求设备的存储需求值的时间先后顺序,生成存储需求设备序列。当然,存储提供设备也可以采用其它原则来生成存储需求设备序列,比如获取的存储需求设备的存储需求值的大小,或者获取的存储需求值与自身的存储提供值的比值等。
为了保障存储需求设备序列的时效性,在生成存储需求设备序列时,还可以核对存储需求有效时间,剔除已经超过存储需求有效时间的存储需求设备。
存储提供设备生成存储需求设备序列之后,向序列第一位的存储需求设备发出匹配请求,匹配请求包括设备标识等信息。为了保证匹配请求的时效性,匹配请求中可以包括匹配请求有效时间。
为了更合理的进行存储空间匹配,匹配请求可以包括更多的信息以实现存储空间匹配的综合考量,比如存储提供设备的存储提供值、存储时间、传输速率等信息。
步骤S420:存储需求设备生成接收到的匹配请求序列,根据匹配请求序列的顺序,向匹配请求发出匹配确认信息,确认存储空间匹配成功。
因为步骤S410是在每个存储提供设备上执行,存储需求设备可能会接收到多个存储提供设备发出的匹配请求。本实施例中,存储需求设备根据接收到的匹配请求的时间先后顺序,生成匹配请求序列。当然,存储需求设备还可以根据其它信息或者原则生成匹配请求序列,比如匹配请求中的存储提供值的大小,或者匹配请求中的存储提供值与本设备的存储需求值的比值等。
为了保障匹配请求的有效性,存储需求设备也可以在生成匹配请求序列之前,比较本设备的存储需求值与匹配请求中存储提供值的大小,只有存储提供值大于本设备的存储需求值的匹配请求是有效的匹配请求,可以用于生成匹配请求序列。为了保证匹配请求序列的时效性,存储需求设备在生成匹配请求序列时,还可以核对匹配请求中的有效时间,剔除已经超过有效时间的匹配请求。
存储需求设备生成匹配请求序列之后,向序列第一位的匹配请求发出匹配确认信息,确认存储空间匹配成功。匹配确认信息包括设备标识、存储需求值和存储提供值等信息。
步骤S430:存储提供设备发出匹配请求后,如没有收到匹配确认信息,则重新执行步骤S300。
如果存储提供设备发出匹配请求后,在设定时间段内,可能因为多种原因没有收到存储需求设备发出的匹配确认信息,比如存储需求设备已经与其他存储提供设备匹配成功、匹配请求丢失或者失效等;存储提供设备就需要重新执行步骤S300,重新获取网络中的存储需求设备的存储需求信息,以继续进行存储空间的匹配。
通过在每个设备上进行步骤S300和步骤S400,不需要增加额外的设备,即可进行存储空间的匹配。并且,各个设备自行进行存储空间匹配,可以实现分布式的运用,保证匹配的及时性,降低对硬件的要求。
本发明的另一个实施例中,步骤S100、S200以及S300在一个设备或者模块上集中进行。存储空间匹配也可以在一个设备或模块上集中进行,以实现存储空间匹配的集中、有序。如图3所示,步骤S400具体包括:
步骤S401:根据存储需求信息与存储提供信息,生成存储需求设备序列和存储提供设备序列。
根据获取的存储需求值、存储提供值的大小或者时间,生成存储需求设备序列和存储提供设备序列。为了保证序列的时效性,存储需求信息和存储提供信息可以包括有效时间,在生成设备序列时,可以剔除已经超过有效时间的存储需求设备或者存储提供设备。
步骤S402:根据存储需求设备序列,在存储提供设备序列中寻找满足存储需求设备的存储需求值的存储提供设备;
当找到存储提供设备时,进入步骤S403;否则进入步骤S300。
根据存储需求设备序列的顺序,依次给序列中的存储需求设备,在存储提供设备序列中寻找满足需求的存储提供设备。满足需求的第一原则是,存储提供值大于该存储需求设备的存储需求值。
由于满足第一原则的存储提供设备可能很多,为了进一步筛选存储提供设备,综合利用存储提供设备提供的存储空间,减小存储空间的碎片化,本实施例中,可以根据存储需求值与存储提供值的接近程度来选择。具体的,计算存储提供值与该存储需求设备的存储需求值的比值。如果该比值处在设定的范围(该范围为1~NA,NA为设定值,可以根据实际进行改变,比如NA的值在1~1.2之间的某个值)之内,则选择落在设定范围内的最小比值对应的存储提供设备。如果在设定范围内没有比值存在,则选择存储提供值最大的存储提供设备。当然,在进一步的选择中,也可以根据获取存储提供值的时间来进行选择。
如果找到满足要求的存储提供设备,则进入步骤S403,完成存储空间匹配。如果本步骤中,没有找到满足要求的存储提供设备,则返回步骤S300,重新获取存储需求信息和存储提供信息。当然,也可以剔除该存储需求设备,在存储需求设备序列中,继续给序列中的存储需求设备寻找满足要求的存储提供设备。
步骤S403:向存储需求设备和找到的存储提供设备发送匹配信息,确认存储空间匹配成功。
步骤S500:存储空间匹配成功的存储提供设备分配存储空间给存储需求设备使用。
存储空间匹配成功后,存储提供设备需要分配存储空间给匹配的存储需求设备使用。存储提供设备可以通过attach动作,也可以通过增加虚拟设备或者其它方式,完成存储空间的分配。存储提供设备需要将分配的存储空间记入到该存储提供设备的所需的存储空间,重新计算其所需的存储空间,进行步骤S100。这样,分配的存储空间就不会被本地或者其它设备使用,剩余的存储空间还可以继续进行分配。
存储需求设备接收到存储提供设备分配的存储空间之后,可以对该存储空间进行读写操作。存储需求设备可以通过网络将数据存储到该存储空间。根据需要,存储需求设备也可以读取、删除分配的存储空间上的数据。
当存储提供设备的配置要求改变,比如提高了码率,或者更改了编码格式,或者改变了存储类型等,可能导致所需的存储空间增加。此时,存储提供设备可以解除存储空间匹配,收回分配的存储空间;也可以将该存储提供设备变为存储需求设备,在网络中进行存储空间匹配。
当存储提供设备选择解除存储空间匹配时,存储提供设备可以发出解除请求,存储需求设备根据解除请求,重新计算所需的存储空间,重新执行步骤S100及后续步骤,在网络中重新进行存储空间的匹配。当该存储需求设备重新完成存储空间的匹配后,将存储在原存储提供设备中的数据转移到新存储提供设备,并解除与原存储提供设备的存储空间匹配。原存储提供设备可以自由使用该分配的存储空间。
本发明通过计算存储需求值和存储提供值,对网络中的存储需求设备和存储提供设备进行存储空间匹配,实现网络中存储设备的综合利用。本发明充分利用了网络中其它设备的存储空间,来实现数据的存储,不需要增加额外的成本,即可解决存在新老设备共存系统中的数据存储问题。
实施例二
在实施例一中,总是存在有一个或多个存储提供设备的存储提供值大于存储需求设备的存储需求值,存储需求设备与一个存储提供设备进行存储空间匹配,即可满足其存储需求。但是,在实际情况中,也存在存储需求设备的存储需求值很大,以至于网络中没有单个的存储提供设备的存储提供值可以满足其存储需求的情形。为了能够适用于网络中不存在一个存储提供设备的存储提供值大于存储需求设备的存储需求值的情形,本发明还提供了实施例二。
如图4所示,与实施例一相比,实施例二中,步骤S300还包括:
步骤S301:判断是否存在存储提供设备的存储提供值大于存储需求设备的存储需求值;
如果是,则进入步骤S400;如果否,则进入步骤S302。
在本实施例中,在获取网络中存储需求设备的存储需求信息和存储提供设备的存储提供信息,应当判断网络中是否存储提供设备的存储提供值大于存储需求设备的存储需求值。如果是,则按照实施例一的方案进行存储空间匹配。如果否,则需要进行本实施例中的后续步骤。
步骤S302:判断获取的存储提供设备的存储提供值之和是否小于存储需求设备的存储需求值;
如果是,则方法结束;如果否,进入步骤S303。
当网络中不存在单一的存储提供设备的存储提供值大于或等于某个存储需求设备的存储需求值时,本实施例还需要进一步判断网络中所有的存储提供值之和是否大于或等该存储需求设备的存储需求值。也就是判断整个网络中的存储提供值能否满足该存储需求值。如果整个网络的存储提供值都不能满足该存储需求值时,本方法结束。只有网络中的存储提供值能够满足该存储需求值时,本方法才进入到步骤S303,进行存储需求的拆分,以进行后续的存储空间匹配。
步骤S303:根据获取的存储提供设备的存储提供值,将存储需求设备分解为至少两个虚拟的存储需求设备,虚拟的存储需求设备的存储需求值小于或等于获取的存储提供设备之一的存储提供值,进入步骤S300。
本步骤是对存储需求进行拆分。具体的,首先对网络中存储提供设备的存储提供值按照大小顺序进行排序;然后按照存储提供值序列,将存储需求设备的存储需求值拆分为至少两个虚拟的存储需求设备的存储需求值。拆分的标准是,首先拆分为与最大的存储提供值相等的值,然后是序列中逐步变小的值,直到存储需求值的余值小于存储提供值序列中剩余的存储提供值。
本发明实施例二,通过对存储需求设备的存储需求值进行拆分,使得本方法能够适用于网络中不存在一个存储提供设备的存储提供值大于存储需求设备的存储需求值的情形,提高了本方法的适用性。
实施例三
本发明还提供了一种数据存储系统。如图6所示,本实施例的数据存储系统包括:计算模块100、判断模块200、网络模块300、匹配模块400和分配模块500。
计算模块100,用于根据配置要求,计算设备所需的存储空间。
监控网络中,各设备通过网络连接在一起,设备上有自己的存储空间。监控网络中的设备会设置一定的配置要求,包括分辨率、编码格式、码率、数据路数、数据存储时间等。根据设备配置的码率、数据路数和数据存储时间等,即可计算得到该设备存储监控数据所需的存储空间。
较优的,计算所需的存储空间时,使用设置的最大码率较好,这样可以预留一定的冗余空间。
设备所需的存储空间的计算,既可以在初始的时候进行,也可以在更改了配置要求后进行。本实施例中,设备所需的存储空间可以根据配置要求的改变而进行定期或者实时的更新,比如更改了存储时间、编码格式或者码率等,就需要重新计算设备所需的存储空间。
判断模块200,用于根据设备实际的存储空间与所需的存储空间,判断设备是存储需求设备还是存储提供设备,当判断为存储需要设备时计算存储需求设备的存储需求值,当判断为存储提供设备时计算存储提供设备的存储提供值。
具体的,如图10所示,判断模块200具体包括:初步判断单元210、需求认定单元220、冗余判断单元230和提供认定单元240。
初步判断单元210,用于判断设备的实际的存储空间是否小于所需的存储空间,如果是,发送信息给需求认定单元;如果否,发送信息给冗余判断单元230。
需求认定单元220,用于判断该设备为存储需求设备,该存储需求设备的存储需求值为所需的存储空间与实际的存储空间的差值。
如果设备实际的存储空间小于所需的存储空间,则认定设备为存储需求设备,存储需求值为所需的存储空间与实际的存储空间之间的差值。
冗余判断单元230,用于计算该设备的实际的存储空间与所需的存储空间之间的存储差值,判断存储差值是否大于设定的阈值,如果是,发送信息给提供认定单元;如果否,判断该设备为正常设备。
提供认定单元240,用于判断该设备为存储提供设备,该存储提供设备的存储提供值为存储差值与设定的阈值的差值。
实际情况中,存在设备的实际的存储空间与所需的存储空间之间的存储差值极小的情形。如果将之认定为存储提供设备,可能导致存储空间碎片化,并导致整体数据存储系统和方法复杂化。通过比较设定的阈值,并在计算存储提供值时减去阈值,给提供的存储空间引入了一个冗余容量,防止出现存储空间差错,有效避免出现存储空间的碎片化,减小数据存储的复杂性。阈值可以是经验值,也可以根据存储空间的百分比计算得到,或者由用户自行设定,以满足实际存储需要。
如果计算的存储差值小于或等于设定的阈值,则判断设备为正常设备。正常设备不提供存储空间,也不需要存储空间,不需要进行存储空间匹配。如果计算的存储差值大于设定的阈值,则判断该设备属于存储提供设备,该设备的存储提供值为存储差值与设定的阈值的差值。
网络模块300,用于获取网络中存储需求设备的存储需求信息和存储提供设备的存储提供信息。
一般的,存储需求设备的存储需求信息主要包括存储需求设备的存储需求值和设备标识,存储提供设备的存储提供信息主要包括存储提供设备的存储提供值和设备标识,用于得到存储空间的需求与供给的匹配所需的指标或者参数。本模块既可以设置在各个设备上;也可以仅设置在某个设备上或者单独设置。
较优的,网络模块300还可以获取存储需求设备的传输速率要求、存储提供设备的传输速率,以适用于传输速度存在一定差异或者对传输速度有特点要求的系统。
较优的,网络模块300还可以获取存储需求设备的存储需求所需时间、存储提供设备的可以提供存储空间的时间。此时,在存储空间匹配时,增加考虑存储时间的因素,可以在时间维度上综合利用存储提供设备提供的存储空间,减少存储空间的浪费。
较优的,网络模块300还可以获取存储需求设备的存储需求有效时间、存储提供设备的存储提供有效时间。可以保证存储需求和存储提供信息的时效性,以便对存储需求进行进一步的处理,比如拆分存储需求等,以便于筛选无效的存储需求和提供信息,提高数据存储方法的时效性。
计算模块100、判断模块200和网络模块300可以设置在各个设备上,也可以集中设置在一个设备上。
匹配模块400,用于根据存储需求设备的存储需求信息与存储提供设备的存储提供信息进行存储空间匹配。
本发明的一个实施例中,网络模块300设置在每个设备上,匹配模块400也设置在每个设备上。如图6所示,匹配模块400具体包括匹配请求单元410、匹配确认单元420和匹配判断单元430。
匹配请求单元410,用于存储提供设备生成存储需求设备序列,根据存储需求设备序列的顺序,向存储需求设备发出匹配请求。
匹配请求单元410首先比对本设备的存储提供值与获取的存储需求设备的存储需求值;然后,根据从网络中获取的有效存储需求设备的存储需求值的时间先后顺序,生成存储需求设备序列。当然,匹配请求单元410也可以采用其它原则来生成存储需求设备序列,比如获取的存储需求设备的存储需求值的大小,或者获取的存储需求值与自身的存储提供值的比值等。
较优的,匹配请求单元410在生成存储需求设备序列时,还可以核对存储需求有效时间,剔除已经超过存储需求有效时间的存储需求设备,以保障存储需求设备序列的时效性。
匹配请求单元410生成存储需求设备序列之后,向序列第一位的存储需求设备发出匹配请求,匹配请求包括设备标识等信息。为了保证匹配请求的时效性,匹配请求中可以包括匹配请求有效时间。为了更合理的进行存储空间匹配,匹配请求可以包括更多的信息以实现存储空间匹配的综合考量,比如存储提供设备的存储提供值、存储时间、传输速率等信息。
匹配确认单元420,用于存储需求设备生成接收到的匹配请求序列,根据匹配请求序列的顺序,向匹配请求发出匹配确认信息,确认存储空间匹配成功。
本实施例中,存储需求设备上的匹配确认单元420可能会接收到多个存储提供设备发出的匹配请求。匹配确认单元420,根据接收到的匹配请求的时间先后顺序,生成匹配请求序列。当然,存储需求设备上的匹配确认单元420还可以根据其它信息或者原则生成匹配请求序列,比如匹配请求中的存储提供值的大小,或者匹配请求中的存储提供值与本设备的存储需求值的比值等。
较优的,匹配确认单元420也可以在生成匹配请求序列之前,比较本设备的存储需求值与匹配请求中存储提供值的大小,只有存储提供值大于本设备的存储需求值的匹配请求是有效的匹配请求,可以用于生成匹配请求序列。为了保证匹配请求序列的时效性,存储需求设备的匹配确认单元420在生成匹配请求序列时,还可以核对匹配请求中的有效时间,剔除已经超过有效时间的匹配请求。
匹配确认单元420生成匹配请求序列之后,向序列第一位的匹配请求发出匹配确认信息,确认存储空间匹配成功。匹配确认信息包括设备标识、存储需求值和存储提供值等信息。
匹配判断单元430,用于判断存储提供设备发出匹配请求后是否有收到匹配确认信息,如没有收到匹配确认信息则发送重新执行请求给网络模块。
如果存储提供设备发出匹配请求后,在设定时间段内,可能因为多种原因没有收到存储需求设备发出的匹配确认信息,比如存储需求设备已经与其他存储提供设备匹配成功、匹配请求丢失或者失效等。存储提供设备的匹配判断单元430就发送重新执行请求给网络模块300,重新获取网络中的存储需求设备的存储需求信息,以继续进行存储空间的匹配。
通过在每个设备上设置网络模块和匹配模块,不需要增加额外的设备,即可进行存储空间匹配。并且,各个设备自行进行存储空间匹配,可以实现分布式的运用,保证匹配的及时性,降低对硬件的要求。
本发明的另一个实施例中,网络模块300设置在一个设备上或者集中设置,存储空间匹配也可以在一个设备或模块上集中进行,以实现存储空间匹配的集中、有序。如图8所示,匹配模块400具体包括:序列生成单元401、查询单元402和匹配单元403。
序列生成单元401,用于根据存储需求信息与存储提供信息,生成存储需求设备序列和存储提供设备序列。
序列生成单元401根据获取的存储需求值、存储提供值的大小或者时间,生成存储需求设备序列和存储提供设备序列。为了保证序列的时效性,存储需求信息和存储提供信息可以包括有效时间,在生成设备序列时,可以剔除已经超过有效时间的存储需求设备或者存储提供设备。
查询单元402,用于根据存储需求设备序列,在存储提供设备序列中寻找满足存储需求设备的存储需求值的存储提供设备;当找到存储提供设备时,发送请求给匹配单元;否则发送重新执行请求给网络模块。
查询单元402,根据存储需求设备序列的顺序,依次给序列中的存储需求设备,在存储提供设备序列中寻找满足需求的存储提供设备。满足需求的第一原则是,存储提供值大于该存储需求设备的存储需求值。
由于满足第一原则的存储提供设备可能很多,为了进一步筛选存储提供设备,综合利用存储提供设备提供的存储空间,减小存储空间的碎片化,本实施例中,可以根据存储需求值与存储提供值的接近程度来选择。当然,在进一步的选择中,也可以根据获取存储提供值的时间来进行选择。
如果找到满足要求的存储提供设备,则进入发送信息给匹配单元403,完成存储空间匹配。如果没有找到满足要求的存储提供设备,则发送信息给网络模块300,重新获取存储需求信息和存储提供信息。当然,也可以剔除该存储需求设备,在存储需求设备序列中,继续给序列中的存储需求设备寻找满足要求的存储提供设备。
匹配单元403,用于向存储需求设备和找到的存储提供设备发送匹配信息,确认存储空间匹配成功。
分配模块500,用于存储空间匹配成功的存储提供设备分配存储空间给存储需求设备使用。
存储空间匹配成功后,存储提供设备需要分配存储空间给匹配的存储需求设备使用。存储提供设备可以通过attach动作,也可以通过增加虚拟设备或者其他方式,完成存储空间的分配。存储提供设备需要将分配的存储空间记入到该存储提供设备的所需的存储空间,重新计算其所需的存储空间。
存储需求设备接收到存储提供设备分配的存储空间之后,通过分配模块可以对该存储空间进行读写操作,也可以包含数据控制模块,进行该存储空间上的数据读写操作。存储需求设备可以通过网络将数据存储到该存储空间。根据需要,存储需求设备也可以读取、删除分配的存储空间上的数据。
当存储提供设备的配置要求改变,比如提高了码率,或者更改了编码格式,或者改变了存储类型等,可能导致所需的存储空间增加。此时,存储提供设备可以解除存储空间匹配,收回分配的存储空间;也可以将该存储提供设备变为存储需求设备,在网络中进行存储空间匹配。
当存储提供设备选择解除存储空间匹配时,存储提供设备可以发出解除请求,存储需求设备根据解除请求,重新计算所需的存储空间,在网络中重新进行存储空间的匹配。当该存储需求设备重新完成存储空间的匹配后,将存储在原存储提供设备中的数据转移到新存储提供设备,并解除与原存储提供设备的存储空间匹配。原存储提供设备可以自由使用该分配的存储空间。
本发明通过设置计算模块和匹配模块,对网络中的存储需求设备和存储提供设备进行存储空间匹配,实现网络中存储设备的综合利用。本发明充分利用了网络中其它设备的存储空间,来实现数据的存储,不需要增加额外的成本,即可解决存在新老设备共存系统中的数据存储问题。
实施例四
在实施例三中,总是存在有一个或多个存储提供设备的存储提供值大于存储需求设备的存储需求值,存储需求设备与一个存储提供设备进行存储空间匹配,即可满足其存储需求。但是,在实际情况中,也存在存储需求设备的存储需求值很大,以至于网络中没有单个的存储提供设备的存储提供值可以满足其存储需求的情形。为了能够适用于网络中不存在一个存储提供设备的存储提供值大于存储需求设备的存储需求值的情形,本发明还提供了实施例四。
如图9所示,与实施例三相比,实施例四中,网络模块300还包括单值判断单元301、总和判断单元302和虚拟单元303。
单值判断单元301,用于判断是否存在存储提供设备的存储提供值大于存储需求设备的存储需求值,如果是,发送信息给匹配模块;如果否,发送信息给总和判断单元302。
总和判断单元302,用于判断获取的存储提供设备的存储提供值之和是否小于存储需求设备的存储需求值,如果是,则方法结束;如果否,发送信息给虚拟单元303。
当网络中不存在单一的存储提供设备的存储提供值大于或等于某个存储需求设备的存储需求值时,本实施例还需要进一步判断网络中所有的存储提供值之和是否大于或等该存储需求设备的存储需求值。也就是判断整个网络中的存储提供值能否满足该存储需求值。如果整个网络的存储提供值都不能满足该存储需求值时,本方法结束。只有网络中的存储提供值能够满足该存储需求值时,才发送信息给虚拟单元303,进行存储需求的拆分,以进行后续的存储空间匹配。
虚拟单元303,用于根据获取的存储提供设备的存储提供值,将存储需求设备分解为至少两个虚拟的存储需求设备,虚拟的存储需求设备的存储需求值小于或等于获取的存储提供设备之一的存储提供值,发送信息给网络模块。
虚拟单元303是对存储需求进行拆分。具体的,首先对网络中存储提供设备的存储提供值按照大小顺序进行排序;然后按照存储提供值序列,将存储需求设备的存储需求值拆分为至少两个虚拟的存储需求设备的存储需求值。拆分的标准是,首先拆分为与最大的存储提供值相等的值,然后是序列中逐步变小的值,直到存储需求值的余值小于存储提供值序列中剩余的存储提供值。
本发明实施例四,通过对存储需求设备的存储需求值进行拆分,使得本方法能够适用于网络中不存在一个存储提供设备的存储提供值大于存储需求设备的存储需求值的情形,提高了本方法的适用性。
应当理解,此处描述的具体实施例仅用以解释本发明,并不用于限定本发明。