基于连续存储模型的多视频流数据并发调制及缓冲的存储方法技术

技术编号:11787944 阅读:107 留言:0更新日期:2015-07-29 12:04
本发明专利技术公开了基于连续存储模型的多视频流数据并发调制及缓冲的存储方法。包括步骤:A、在数据存储节点初始化时,预先在每块刚进行过格式化的磁盘上建立固定大小的块文件,再将每个块文件划分成若干个连续固定大小的文件片;B、当多路视频流网络I/O到来时,每一路视频流的数据按照文件片的大小,在内存缓存中合并成一个或多个完整的片数据;C、调度器将片数据批量写入磁盘中的文件片中。本发明专利技术针对海量高清视频流数据的存储,提出了一种自定义的连续存储模型,有效解决了文件频繁创建和删除导致的磁盘分区空间碎片化,避免了磁盘磁头在视频流文件并发写入过程中的来回移动,高效利用了磁盘I/O吞吐率,同时提升了磁盘的写入速率。

【技术实现步骤摘要】

本专利技术涉及,属于计算机软件领域,涉及文件系统。
技术介绍
视频监控技术在智慧交通领域的发展中一直占据着重要地位。近年来视频监控数据的存储技术随着前端摄像头分布的密集化,采集数据的高清化而受到越来越严峻的考验。现有的视频监控存储主要采用NVR存储方案:通过中心业务平台进行集中管理和控制,以网络视频服务器和IP摄像机为前端,以IPSAN/NAS网络存储为后端进行部署。作为NVR存储的前端,IP摄像头的高清化对后台存储所带来的压力是显而易见的。以一路1080P (1920x1080)解析度,30帧/秒的视频流为例,其所产生的原始视频数据码率为750Mbit/s。即使使用目前具有较高压缩比的H.264视频流压缩编码算法进行编码后,所产生的视频流数据码率也在4Mbit/s ~ 8Mbit/s之间。传统的NVR存储中基于NAS的存储方式对存储阵列中磁盘I/O的利用率不高,并且随着前端接入摄像头数目的增加,NVR存储系统中磁盘的聚合I/O吞吐率急剧下降,其原因在于传统NVR存储系统针对多路视频流的并发写入未进行调控,仅依靠存储服务器上操作系统的并发写入机制。此外,在视频监控数据存储场景中,通常要求监控7*24小时不间断,长时间的磁盘I/o将极大地减少磁盘的使用寿命。传统的NVR存储系统和现有的云存储方案中通常缺乏有效的磁盘调度和视频流负载均衡策略,所有磁盘一直保持在工作状态,浪费能源的同时也降低了系统可靠性。
技术实现思路
本专利技术的目的在于提供,主要解决传统海量高清视频监控数据存储中遇到的磁盘I/o吞吐率的瓶颈问题和巨大的能源开销和磁盘损耗问题。为了实现上述目的,本专利技术采用的技术方案如下: ,包括步骤: A、格式化磁盘,在数据存储节点初始化时,预先在每块刚进行过格式化的磁盘上建立固定大小的块文件,再将每个块文件划分成若干个连续固定大小的文件片; B、当多路视频流网络I/O到来时,每一路视频流的数据按照文件片的大小,在内存缓存中合并成一个或多个完整的片数据; C、调度器将片数据批量写入磁盘中的文件片中。具体地,所述每个块文件具有全局唯一的标识符blk id。所述文件片在所属的块文件中有一个唯一的标识符fragment id。块文件的创建过程为:在全新的文件系统分区上,连续创建并写入大小固定的普通文件,这些文件称为块文件,并对每个块文件进行命名和编号。重要地,在块文件内部,划分为多个大小固定的文件片。这样多路视频流的数据各自按照固定长度,随机地存储在一起。所述步骤B中,有网络I/O到来的每一路视频流的数据在内存中,都对应一个文件片大小的缓冲区域。优选地,所述步骤C中,每块磁盘有一个调度器。优选地,所述步骤C中,调度器从内存缓存中调度多视频流的片数据,形成一个队列。优选地,调度器按照FIFO算法,每次调度队列中的一个片数据,一次只写入磁盘的一个文件片。因此,一个文件片就只包含一个视频流的数据。在本专利技术中,文件系统的分区上,视频流网络输入和分区写入之间,由分区流缓冲区和调度器将并发随机写转换为顺序写。每一路视频流文件拥有一个文件片大小的内存缓存,多路视频流的数据分别以固定的文件片大小的片在内存缓存中合并成一个或多个完整的片数据。当每一路视频流的数据合并完成后,将数据交给调度器统一管理。接下来到来的每路视频流的数据,继续按照文件片大小在内存缓存中进行合并。调度器收到每一路视频流的数据的文件片大小的缓存数据后,将其按照FIFO算法,形成一个调度队列。调度器每次选取调度队列中的一个节点的数据,按照fragment id递增的顺序,写入磁盘中的文件片,保证在一个文件片内,只包含一个视频流的数据。写完一个块文件,接着写下一个块文件,写完最后一个块文件后,重新返回至第一个块文件继续写入。与现有技术相比,本专利技术具有以下有益效果: 本专利技术提出了一种。在本专利技术的细粒度的连续存储模型下,避免了文件频繁创建和删除导致磁盘分区的空间碎片化,提高了磁盘I/o吞吐率,避免了磁盘磁头在视频流文件的并发写入过程中的来回移动,提高了磁盘的写入吞吐率。【附图说明】图1为视频流文件基于块文件下的文件片粒度的数据连续存储模型。图2为多流并发随机写入调制和分块内存缓冲方法的示意图。【具体实施方式】下面结合附图和实施例对本专利技术作进一步说明,本专利技术的实施方式包括但不限于下列实施例。实施例如图1和图2所示,如下: 在数据存储节点初始化时,预先在每块刚进行过格式化的磁盘上建立固定大小的块文件,具体大小可由配置文件指定,之后将多路视频流的数据按顺序依次写入这些块文件,当所有块文件写满后自动回到首个块文件开始覆盖写入。本实施例可实现多路视频流的数据随机并发写入,并经过调制,转换成顺序写入。在多个视频流同时对一块磁盘写入的情况下,一个块文件内可能包含多个视频流的数据,如果将所有视频流的数据段的详细位置作为元数据保存,则元数据信息会耗费大量存储空间。为了缩小元数据规模,再将一个块文件划成若干个连续固定大小的文件片,文件片大小可通过配置文件修改。这样每一文件片在该文件块中都有一个对应的序号,当每次向块文件写入视频流的数据时,在一文件片内只能包含一个视频流的数据。如此一来,该视频流写入的文件对应的元数据,就只有其写入的块文件号和此块文件内属于该视频流的数据片序号。之后可通过提取这些序号对应的数据,将其组合还原为原始的视频流的数据。由于视频流的写入频率远远大于读取频率,采用此种方案可以在尽可能高效连续地将视频流写入磁盘的情况下,同时具备将视频流数据读出的能力。例如,上述附图1,BLK1、BLK2、BLK5中为块文件,包含了视频流A的数据。其中对于BLK5,可以由图1中看出,其中第O号和第2号文件片中,包含着视频流A的数据。本实施例的存储方法如下: 在文件系统的一个分区内,可能同时存在多个写入请求,为每个正在写入数据的客户端维护一个线程来处理其请求。在每个分区的视频流网络数据和分区之间,设置面向多流并发写入的分区流缓冲区和一个调度器。每一路视频流文件拥有一个文件片大小的内存缓存,多路视频流的数据分别以固定的文件片大小的片在内存缓存中合并成一个或多个片数据。当每一路视频流的数据合并完成后,将数据交给调度器统一管理。接下来到来的每路视频流的数据,继续按照文件片大小在内存缓存中进行合并。调度器收到每一路视频流的数据的文件片大小的缓存后,即片数据,将其按照FIFO算法,形成一个调度队列。调度器每次选取调度队列中的一个节点的数据(即片数据),按照fragment id递增的顺序,写入磁盘中的文件片,保证在一个文件片内,只包含一个视频流的数据。写完一个块文件,接着写下一个块文件,写完最后一个块文件后,重新返回至第一个块文件继续写入。本专利技术提出了一种。在本专利技术的细粒度的连续存储模型下,避免了文件频繁创建和删除导致磁盘分区的空间碎片化,提高了磁盘I/o吞吐率,避免了磁盘磁头在视频流文件的并发写入过程中的来回移动,提高了磁盘的写入吞吐率。按照上述实施例,便可很好地实现本专利技术。【主权项】1.,其特征在于,包括步骤: A、格式化磁盘,在数据存储节点初始化时,预先在每块刚进行过格式化的磁盘上建立固定大小的块文件,再将每个块文件划分成若干个连续固定大小的文件片; B、当多本文档来自技高网...

【技术保护点】
基于连续存储模型的多视频流数据并发调制及缓冲的存储方法,其特征在于,包括步骤:A、格式化磁盘,在数据存储节点初始化时,预先在每块刚进行过格式化的磁盘上建立固定大小的块文件,再将每个块文件划分成若干个连续固定大小的文件片; B、当多路视频流网络I/O到来时,每一路视频流的数据按照文件片的大小,在内存缓存中合并成一个或多个完整的片数据;C、调度器将片数据批量写入磁盘中的文件片中。

【技术特征摘要】

【专利技术属性】
技术研发人员:段翰聪闵革勇詹文翰郭辉程文静张宇露李巧梅
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1