一种云存储方法及其云控制服务器、云存储服务器和系统的制作方法

文档序号:7555074阅读:143来源:国知局
专利名称:一种云存储方法及其云控制服务器、云存储服务器和系统的制作方法
技术领域
本发明涉及计算机及网络信息技术领域,尤其涉及一种云存储方法及其云控制服务器、云存储服务器和系统。
背景技术
随着计算机和网路的不断发展及高清视频的普及,存储多媒体所需的空间不断的增长,传统的存储架构已经很难满足需求。云存储以其海量的存储空间、高可靠性、高并发、高可扩展性及高性价比等特性逐渐展露头角。为了实现云存储的高可靠性,主流云存储系统一般是以副本的方式实现容错的。数据或者文件被分割成一定大小的数据块,而每个数据复制至少两个副本保存到不同的云存储服务器上。采样副本无疑是最简单、最可靠、最有效而且实现难度最小的一种方式,但显然空间利用率并不理想。

发明内容
有鉴于此,本发明要解决的技术问题是提供一种云存储方法及其云控制服务器、云存储服务器和系统,用以提高容错能力的同时,提高存储空间的利用率。本发明解决上述技术问题所采用的技术方案如下:根据本发明的一个方面,提供的一种云存储方法,用于存取监控视频数据,其特征在于,该方法包括:
接收客户端上传监控视频文件的请求,其中,监控视频文件为预先按相同的采样时间长度分割成的能独立播放的至少两个数据块;将同一时间段内采集的不同监控视频文件的数据块按η个一组进行分组,其中,η为大于I的整数;将每组的η个数据块以及根据η个数据块产生的一个校验块分别存储到不同的云存储服务器中。优选地,上述将每组的η个数据块以及根据η个数据块产生的一个校验块分别存储到不同的云存储服务器中的步骤包括:选择当前负荷较轻的η+1台云存储服务器分别存储每组的η个数据块和一个校验块;存储数据块的云存储服务器接收并保存客户端上传的数据块,并将数据块转发给存储校验块的云存储服务器进行缓存;存储校验块的云存储服务器缓存完该组的η个数据块后,根据缓存的该组的η个数据块产生一个校验块并保存。优选地,上述根据缓存的该组的η个数据块产生一个校验块是对该组的η个数据块进行异或操作产生一个校验块。优选地,上述根据缓存的该组的η个数据块产生一个校验块之前还包括:当缓存的η个数据块长度不一致时,将长度短的数据块的数据尾部用O补足为一致;优选地,上述根据缓存的该组的η个数据块产生一个校验块之后还包括:清除缓存的η个数据块。优选地,上述方法之后还包括:当获知有数据块丢失时,云控制服务器选择一云存储服务器根据该组校验块和其他数据块恢复并保存丢失的数据块;或云控制服务器自身根据该组校验块和其他数据块恢复丢失的数据块,并存储到一云存储服务器中。根据本发明的另一个方面,提供的一种云控制服务器包括请求接收模块、分组模块和控制模块,其中:请求接收模块,用于接收客户端上传监控视频文件的请求,监控视频文件为预先按相同的采样时间长度分割成的能独立播放的至少两个数据块;分组模块,用于将同一时间段内采集的不同监控视频文件的数据块按η个一组进行分组,其中η为大于I的整数;控制模块,用于将每组的η个数据块以及根据η个数据块产生的一个校验块分别存储到不同的云存储服务器中。优选地,控制模块具体用于:选择当前负荷较轻的一云存储服务器根据该组的η个数据块产生一个校验块并保存,负荷较轻的η台云存储服务器分别存储该组的η个数据块。优选地,上述云控制服务器还包括恢复模块,用于获知有数据块丢失时,选择一云存储服务器根据该组校验块和其他数据块恢复并保存丢失的数据块;或自身根据该组校验块和其他数据块恢复丢失的数据块,并存储到一云存储服务器中。根据本发明的又一个方面,提供的一种云存储服务器包括存储模块、转发模块和校验块生成模块,其中:存储模块,用于保存接收到的数据块;转发模块,用于存储数据块时,将接收到的数据块转发给存储校验块的云存储服务器进行缓存;校验块生成模块,用于缓存完每组的η个数据块后,对缓存的η个数据块进行异或操作产生校验块并保存。优选地,云存储服务器还包括:补足模块,用于当缓存的η个数据块长度不一致时,将长度短的数据块的数据尾部用O补足为一致;清除模块,用于当该组的η个数据块产生校验块之后清除缓存的η个数据块;根据本发明的再一个方面,提供的一种监控视频数据的云存储系统用于存取监控视频数据,该云存储系统包括通过网络连接的上述云控制服务器和至少三台上述云存储服务器。优选地,上述云存储系统还包括与云控制服务器和云存储服务器通过网络连接的客户端,其中:客户端,用于向云控制服务器发送上传监控视频文件的请求,并向云控制服务器反馈的云存储服务器发送将监控视频文件预先按相同的采样时间长度分割成的能独立播放的数据块。根据本发明 实施例的云存储方法及其云控制服务器、云存储服务器和系统,将同一时间段内采集的不同监控视频文件的数据块进行分组,每组产生一个校验块,将数据块和校验块分存到不同的存储服务器,能够实时并发写入监控视频数据流,增强了系统的容错能力,并提高了存储空间的利用率。


图1为本发明实施例提供的一种监控视频数据的云存储方法流程图;图2为本发明优选实施例提供的一种监控视频数据的上传方法流程图;图3为本发明优选实施例提供的一种监控视频数据的下载方法流程图;图4为本发明优选实施例提供的一种云控制服务器的模块结构示意图;图5为本发明优选实施例提供的一种云存储服务器的模块结构示意
图6为本发明优选实施例提供的一种云存储系统结构示意图。
具体实施例方式为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。为了便于描述,下面将来自于同一视频源的监控视频数据称为一个监控视频文件。如图1所示为本发明实施例提供的一种云存储方法流程图,图中:SlOl、接收客户端上传监控视频文件的请求,其中,监控视频文件为预先按相同的采样时间长度分割成的能独立播放的至少两个数据块;具体地,客户端向云控制服务器发送上传监控视频文件的请求,监控视频文件为预先根据采样时间按相同的时间段分割成可以独立播放的数据块。例如,对每个监控视频文件,可以按O点到I点、I点到2点…等相同的采样时间段分割成数据块。S102、将同一时间段内采集的不同监控视频文件的数据块按η个一组进行分组,其中,η为大于I的整数;本步骤中,不同监控视频文件为不同视频源的监控视频数据。η的大小可以根据硬件系统的可靠性、期望的文件可靠性、磁盘空间利用率等因数来选择。S103、将每组的η个数据块以及根据η个数据块产生的一个校验块分别存储到不同的云存储服务器中。优选地,云控制服务选择当前负荷较轻的η+1台云存储服务器分别存储每组的η个数据块和一个校验块,其中,存储校验块的云存储服务器的负荷小于等于存储数据块的云存储服务器的负荷。存储数据块的云存储服务器接收并保存客户端上传的数据块,并将数据块转发给存储校验块的云存储服务器进行缓存;存储校验块的云存储服务器缓存完该组的η个数据块后,根据缓存的该组的η个数据块产生一个校验块并保存。进一步地,根据缓存的该组的η个数据块产生一个校验块是对该组的η个数据块进行异或操作产生一个校验块。优选地,为了提高可靠性,根据缓存的该组的η个数据块产生一个校验块之前还包括:当缓存的η个数据块长度不一致时,将长度短的数据块的数据尾部用O补足为一致;由于所存的是视频数据,会有一定的格式,容易去除补足的O。优选地,为了节省存储空间,根据缓存的该组的η个数据块产生一个校验块之后还包括:清除缓存的η个数据块。作为本实施例的另一个优选实例:该方法之后还包括:当获知有数据块丢失时,云控制服务器选择一云存储服务器根据该组校验块和其他数据块恢复并保存丢失的数据块;或云控制服务器自身根据该组校验块和其他数据块恢复丢失的数据块,并存储到一云存储服务器中。根据本发明实施例的方法,将同一时间段内采集的不同监控视频文件的数据块进行分组,每组产生一个校验块,将数据块和校验块分存到不同的存储服务器,在云存储高容量、高可靠性、高可扩展性的基础上,能够实时并发写入监控视频数据流,增强了系统的容错能力,同时相对于副本方式的容错实现方案,提高了存储空间的利用率。如图2所示为本发明优选实施例提供的一种监控视频数据的上传方法流程图,图中:S201、客户端I向云控制服务器请求上传视频监控文件;S202、云控制服务器选择一个负荷较轻的云存储服务器即云存储服务器η+1生成和存放校验块,通知云存储服务器η+1准备接收并缓存来自客户端I的数据流;需要说明地是,云存储服务器η+1不是固定的,对于不同的数据块组,云存储服务器η+1是不一样的。缓存数据块用于生产校验块,且在校验块生产后就会清除。S203、云控制服务器选择一个负荷较轻的云存储服务器即云存储服务器1,通知其准备接收存储来自客户端I的数据块,并转发给云存储服务器η+1 ;S204、云控制服务器将云存储服务器I的信息反馈给客户端I ;S205、客户端I发送数据流给云存储服务器I ;S206、云存储服务器I存储接收到的数据流并将其转发给云存储服务器η+1,其转发速率可能小于接收速率;S207、客户端2向云控制服务器请求上传视频数据;S208、云控制服务器通知云存储服务器η+1准备接收并缓存来自客户端2的数据流;S209、云控制服务器选择一个负荷较轻的云存储服务器,即云存储服务器2,通知其准备接收存储来自客户端2的数据块,并转发给云存储服务器η+1 ;S210、云控制服务器将云存储服务器2的信息反馈给客户端2 ;S211、客户端2发送数据流给云存储服务器2 ;S212、云存储服务器2存储接收到的数据流并将其转发给云存储服务器η+1,转发速率可能小于接收速率;...
S213、客户端η向云控制服务器请求上传视频数据;S214、云控制服务器通知云存储服务器η+1准备接收并缓存来自客户端η的数据流;

S215、云控制服务器选择一个负荷较轻的云存储服务器,即云存储服务器η,通知其准备接收存储来自客户端η的数据块,并转发给云存储服务器η+1 ;
S216、云控制服务器通知云存储服务器η+1生成η路数据流的校验块;云存储服务器η+1开始将缓存的数据进行异或操作,生产校验块。具体地,一开始只可能设置最大值,后续并发写入的数据块数目可能达不到这个数值。生产校验块按照客户端上传数据块请求顺序决定的,根据同一时间段内的请求顺序,每η (事先选定的最大值)生产一个校验块。分组之间互相独立。多组产生的至少两个校验块有可能放置在同一个云存储服务器中。S217、云控制服务器将云存储服务器η的信息反馈给客户端η ;S218、客户端η发送数据流给云存储服务器η ;需要说明地是,上述S216和S217-S218是不分先后的,收到“云控制服务器通知云存储服务器η+1生成η路数据流的校验块”是开始生产校验块的必要非充分条件,另一个必要条件是η路数据流均开始缓存。S219、云存储服务器η+1存储接收到的数据流并将其转发给云存储服务器,转发速率可能小于接收速率;S220、云存储服务器η+1待所有数据流转发结束后,完成校验块的生产,并持久化(持久化是缓存的反义词),清除缓存的η个数据块。通过本实施例的方法,能够实时并发写入多路视频数据流,将同一时间段内采集的不同监控视频文件的数据块进行分组,每组产生一个校验块以备数据块丢失时的恢复,增强了系统的容错能力,同时相对于副本方式的容错实现方案,提高了存储空间的利用率。如图3所示为本优选实施例提供的一种下载监控视频数据的方法流程图,图中:
S301、播放端向云控制服务器发出下载请求;S302、云控制服务器判断是否有数据块丢失,若是,则执行步骤S303,若否,则执行S304 ;S303、根据校验块和其它数据块信息恢复并保存丢失的数据块;本步骤可以通过以下方式实现:云控制服务器选择一云存储服务器令其根据校验块及其它数据块恢复丢失的数据块并存储;作为另一种替换方案,本步骤还也可以:云控制服务器自己根据校验块及其它数据块恢复丢失的数据块,将存储到一云存储服务器。S304、云控制服务器将存储服务器的信息反馈给播放端;S305、播放端从相应的存储服务器下载视频数据。通过本实施例的方法,通过校验块和其它数据块信息恢复丢失的数据块,使得播放端可以下载丢失的数据块,提高了系统的可靠性。如图4所示为本发明优选实施例提供的一种云控制服务器的模块结构示意图,云控制服务器20包括请求接收模块201、分组模块202和控制模块203,其中:请求接收模块201,用于接收客户端上传监控视频文件的请求,监控视频文件为预先按相同的采样时间长度分割成的能独立播放的至少两个数据块;分组模块202,用于,用于将同一时间段内采集的不同监控视频文件的数据块按η个一组进行分组,其中η为大于I的整数;控制模块203,用于将每组的η个数据块以及根据η个数据块产生的一个校验块分别存储到不同的云存储服务器中。
优选地,控制模块203具体用于:选择当前负荷较轻的一云存储服务器根据该组的η个数据块产生一个校验块并保存,负荷较轻的η台云存储服务器分别存储该组的η个数据块。优选地,云控制服务器20还包括恢复模块204,用于获知有数据块丢失时,选择一云存储服务器根据该组校验块和其他数据块恢复并保存丢失的数据块;或自身根据该组校验块和其他数据块恢复丢失的数据块,并存储到一云存储服务器中。本发明实施例的云控制服务器,将同一时间段内采集的不同监控视频文件的数据块进行分组,控制每组产生一个校验块,将数据块和校验块分存到不同的存储服务器,能够实时并发写入监控视频数据流,增强了系统的容错能力,同时相对于副本方式的容错实现方案,提高了存储空间的利用率。图5为本发明优选实施例提供的一种云存储服务器的模块结构示意图,云存储服务器30包括存储模块301、转发模块302和校验块生成模块304,作为优选的方式,还可以包括补足模块303和清除模块305,其中:存储模块301,用于保存接收到的数据块;转发模块302,用于存储数据块时,将接收到的数据块转发给存储校验块的云存储服务器进行缓存;补足模块303,用于当缓存的η个数据块长度不一致时,将长度短的数据块的数据尾部用O补足为一致;校验块生成模块304 ,用于缓存完每组的η个数据块后,对缓存的η个数据块进行异或操作产生校验块并保存。清除模块305,用于对该组的η个数据块产生校验块之后清除缓存的η个数据块;需要说明的是,云存储服务器根据功能可以分为两种角色,即存储校验块和存储数据块。当作为存储数据块的云存储服务器时,补足模块303、校验块生成模块304、清除模块305可以不工作或省略,当作为存储校验块的云存储服务器时,转发模块302可以不工作或省略。本发明实施例的云存储服务器,分别存储每组的η个数据块以及根据该组的η个数据块产生的一个检验块并保存,增强了系统的容错能力,同时相对于副本方式的容错实现方案,提闻了存储空间的利用率。如图6所示为本发明优选实施例提供的一种云存储系统结构示意图,该云存储系统用于存取监控视频数据,包括:通过网络连接的客户端10、云控制服务器20和至少三台云存储服务器30,其中:客户端10,用于向云控制服务器20发送上传传监控视频文件的请求,并向云控制服务器20反馈的云存储服务器30发送将监控视频文件预先按相同的采样时间长度分割成的能独立播放的数据块。云控制服务器20,用于接收客户端10上传监控视频文件的请求,将同一时间段内采集的不同监控视频文件的数据块按η个一组进行分组,并控制将每组的η个数据块以及根据η个数据块产生的一个校验块分别存储到不同的云存储服务器中。其中,η为大于I的整数,监控视频文件为预先按相同的采样时间长度分割成的能独立播放的至少两个数据块。云控制服务器20为云存储系统的管理节点,逻辑上只有一个。用于维护云存储服务器30的状态信息、利用数据库保存和查询数据块信息,其中数据块信息包括数据块标识、视频源标识、开始时间、结束时间以及存储该数据块的云存储服务器标识等。云存储服务器30,用于分别存储每组的η个视频数据块以及根据η个数据块产生的一个校验块。其中,云存储服务器30的数目决定了云存储的规模,还用于根据接收到的下载请求发送指定的数据块。需要说明地是,上述图4和图5的技术方案在本实施例中同样适用,当然,云控制服务器20和云存储服务器30还包括一些其他公知的模块,这里不重述。根据本 发明实施例的系统,将同一时间段内采集的不同监控视频文件的数据块进行分组,每组产生一个校验块,将数据块和校验块分存到不同的存储服务器,在云存储高容量、高可靠性、高可扩展性的基础上,能够实时并发写入监控视频数据流,增强了系统的容错能力,同时相对于副本方式的容错实现方案,提高了存储空间的利用率。以上参照

了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质,可以有多种变型方案实现本发明,比如作为一个实施例的特征可用于另一实施例而得到又一实施例。凡在运用本发明的技术构思之内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。
权利要求
1.一种云存储方法,用于存取监控视频数据,其特征在于,所述方法包括: 接收客户端上传监控视频文件的请求,其中,所述监控视频文件为预先按相同的采样时间长度分割成的能独立播放的至少两个数据块; 将同一时间段内采集的不同监控视频文件的数据块按η个一组进行分组,其中,η为大于I的整数; 将每组的η个数据块以及根据所述η个数据块产生的一个校验块分别存储到不同的云存储服务器中。
2.根据权利要求1所述的云存储方法,其特征在于,所述将每组的η个数据块以及根据所述η个数据块产生的一个校验块分别存储到不同的云存储服务器中的步骤包括: 选择当前负荷较轻的η+1台云存储服务器分别存储每组的η个数据块和一个校验块;存储数据块的云存储服务器接收并保存客户端上传的数据块,并将所述数据块转发给所述存储校验块的云存储服务器进行缓存; 所述存储校验块的云存储服务器缓存完该组的η个数据块后,根据缓存的该组的η个数据块产生一个校验块并保存。
3.根据权利要求2所述的云存储方法,其特征在于,所述根据缓存的该组的η个数据块产生一个校验块是对该组的η个数据块进行异或操作产生一个校验块。
4.根据权利要求2所述的云存储方法,其特征在于, 所述根据缓存的该组的η个数据块产生一个校验块之前还包括:当所述缓存的η个数据块长度不一致时,将长度短的数据块的数据尾部用O补足为一致; 所述根据缓存的该组的η个数据块产生一个校验块之后还包括:清除缓存的η个数据块。
5.根据权利要求1-4任意一项权利要求所述的云存储方法,其特征在于,所述方法之后还包括: 当获知有数据块丢失时,云控制服务器选择一云存储服务器根据该组校验块和其他数据块恢复并保存丢失的数据块;或云控制服务器自身根据该组校验块和其他数据块恢复丢失的数据块,并存储到一云存储服务器中。
6.一种云控制服务器,其特征在于,包括请求接收模块、分组模块和控制模块,其中: 所述请求接收模块,用于接收客户端上传监控视频文件的请求,所述监控视频文件为预先按相同的采样时间长度分割成的能独立播放的至少两个数据块; 所述分组模块,用于将同一时间段内采集的不同监控视频文件的数据块按η个一组进行分组,其中η为大于I的整数; 所述控制模块,用于将每组的η个数据块以及根据所述η个数据块产生的一个校验块分别存储到不同的云存储服务器中。
7.根据权利要求6所述的云控制服务器,其特征在于,所述控制模块具体用于:选择当前负荷较轻的一云存储服务器根据该组的η个数据块产生一个校验块并保存,负荷较轻的η台云存储服务器分别存储该组的η个数据块。
8.根据权利要求6所述的云控制服务器,其特征在于,还包括恢复模块,用于获知有数据块丢失时,选择一云存储服务器根据该组校验块和其他数据块恢复并保存丢失的数据块;或自身根据该组校验 块和其他数据块恢复丢失的数据块,并存储到一云存储服务器中。
9.一种云存储服务器,其特征在于,包括存储模块、转发模块和校验块生成模块,其中: 所述存储模块,用于保存接收到的数据块; 所述转发模块,用于存储数据块时,将接收到的数据块转发给存储校验块的云存储服务器进行缓存 ; 所述校验块生成模块,用于缓存完每组的η个数据块后,对缓存的所述η个数据块进行异或操作产生校验块并保存。
10.根据权利要求9所述的云存储服务器,其特征在于,还包括: 补足模块,用于当所述缓存的η个数据块长度不一致时,将长度短的数据块的数据尾部用O补足为一致; 清除模块,用于当该组的η个数据块产生校验块之后清除缓存的η个数据块。
11.一种云存储系统,用于存取监控视频数据,其特征在于,所述系统包括通过网络连接的如权利要求6-8任意一项权利要求所述的云控制服务器和至少三台如权利要求9或10所述的云存储服务器。
12.根据权利要求11所述的云存储系统,其特征在于,所述系统还包括与所述云控制服务器和云存储服务器通过网络连接的客户端,其中: 所述客户端,用于向所述云控制服务器发送上传监控视频文件的请求,并向所述云控制服务器反馈的云存储服务器发送将监控视频文件预先按相同的采样时间长度分割成的能独立播放的数据块。
全文摘要
本发明公开了一种云存储方法及其云控制服务器、云存储服务器和系统,该方法用于存取监控视频数据,包括接收客户端上传监控视频文件的请求,其中,监控视频文件为预先按相同的采样时间长度分割成的能独立播放的至少两个数据块;将同一时间段内采集的不同监控视频文件的数据块按n个一组进行分组,其中,n为大于1的整数;将每组的n个数据块以及根据n个数据块产生的一个校验块分别存储到不同的云存储服务器中。采用本发明的实施例,能够实时并发写入监控视频数据流,增强了系统的容错能力,并提高了存储空间的利用率。
文档编号H04L29/08GK103237063SQ20131012544
公开日2013年8月7日 申请日期2013年4月11日 优先权日2013年4月11日
发明者李磊磊 申请人:安科智慧城市技术(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1