掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请涉及数据存储技术领域,特别是涉及一种数据存储系统及其数据存储方法。

背景技术

随着科学技术的进步,数字化处理已经深入到人们生活的方方面面,给人们生产、生活带来便利。因此,如何实现数据的高速存储已经成为需要解决的难题。

数字化的推广应用,必然带来大量数据产生(采集)和存储。以应用于记录仪为例。目前记录仪广泛应用与多种图像监控的应用场景,随着图像采集技术的发展,记录仪记录图像清晰度以及帧数也越来越大,记录仪需要在短时间内记录大量的高速数据,随着高速数据采集速率增加,以及对这些数据有实时存储进行事后分析的需求,对实时数据记录仪的实时性和记录带宽提出了更高性能的要求。

因此,如何提供一种适用于高速数据的数据存储方案已经成为目前需要解决的技术难题。

发明内容

基于此,有必要针对上述技术问题,提供一种数据存储系统及其数据存储方法。

一种数据存储系统,包括依次连接的操作系统模块、实时处理模块以及文件管理模块;

所述实时处理模块接收数据流,所述操作系统模块接收控制流,并将所述控制流转发至所述实时处理模块,所述实时处理模块根据所述文件管理模块反馈的存储地址,将所述数据流以及所述控制流异步存储至所述存储地址对应的磁盘空间。

在其中一个实施例中,所述文件管理模块划设预设初始磁盘空间,将所述预设初始磁盘空间对应的存储地址发送至所述实时处理模块;所述实时处理模块检测所述预设初始磁盘空间内存储的数据量,当存储的数据量大于预设存储阈值时,发送磁盘重新分配请求至所述文件管理模块,所述文件管理模块将新分配的所述预设初始磁盘空间对应的存储地址反馈至所述实时处理模块。

在其中一个实施例中,所述文件管理模块以消息队列的形式与所述实时处理模块交互;

当所述操作系统模块接收到控制流时,发送文件创建请求至所述实时处理模块,所述实时处理模块发送文件接口调用请求至所述文件管理模块,所述文件管理模块调用文件接口,分配连续的预设初始磁盘空间,反馈所述预设初始磁盘空间对应的存储地址所述实时处理模块,所述实时处理模块将接收到的数据流和控制流异步存储至所述预设初始磁盘空间,检测所述预设初始磁盘空间内存储的数据量,当存储的数据量大于预设存储阈值时,发送磁盘重新分配请求至所述文件管理模块,所述文件管理模块将新分配的所述预设初始磁盘空间对应的存储地址反馈至所述实时处理模块。

在其中一个实施例中,所述实时处理模块包括用于搬运数据的数据流控制核、用于管理磁盘阵列的磁盘管理核以及用于根据管理所述数据流控制核与所述磁盘管理核工作的转发与控制核;

所述数据流控制核、所述转发与控制核以及所述磁盘管理核依次连接,所述数据流控制核接收数据流,所述转发与控制核分别与所述操作系统模块以及所述文件管理模块连接,所述磁盘管理核与外部磁盘连接。

在其中一个实施例中,所述数据流控制核、所述转发与控制核以及所述磁盘管理核以软核形式设置于同一块FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)上,所述数据流控制核、所述转发与控制核以及所述磁盘管理核通过共享内存以消息队列的形式进行交互。

在其中一个实施例中,所述文件管理模块与所述操作系统模块集成于相同的硬件架构。

在其中一个实施例中,所述磁盘管理核用于采用RAID0算法管理磁盘阵列。

在其中一个实施例中,上述数据存储系统还包括高速接口,所述实时处理模块通过所述高速接口接收所述数据流。

在其中一个实施例中,所述操作系统模块还用于运行内置预加载操作系统,对控制对象进行监控和管理,并同时映射存储盘对外提供NAS(Network Attached Storage,网络附属存储)服务。

上述数据存储系统包括依次连接的操作系统模块、实时处理模块以及文件管理模块;所述实时处理模块接收数据流,所述操作系统模块接收控制流,并将所述控制流转发至所述实时处理模块,所述实时处理模块根据所述文件管理模块反馈的存储地址,将所述数据流以及所述控制流异步存储至所述存储地址对应的磁盘空间。整个过程中,采用三个独立的模块独立进行处理,针对数据流和控制流分别采用操作系统模块、实时处理模块对接,并且在进行存储时采用异步的方式将数据流以及所述控制流存储至磁盘空间,避免传统存储方式中同步处理中需要排队等待的缺陷,可以实现数据的高效接收与存储。

另外,本申请还提供一种上述数据存储系统的数据存储方法,包括:

接收待存储数据;

提取所述待存储数据中的控制流和数据流;

异步将所述控制流和所述数据流存储至磁盘空间。

本申请数据存储方法,针对接收到待存储数据划分为控制流和数据流,针对控制流和数据流单独、异步存储至磁盘空间,执行这些动作时,分别采用三个独立的模块独立进行处理,采用异步方式避免传统存储方式中同步处理中需要排队等待的缺陷,可以实现数据的高效接收与存储。

附图说明

图1为一个实施例中数据存储系统的结构示意图;

图2为一个实施例中操作系统模块与实时处理模块的交互示意图;

图3为一个实施例中操作系统模块、实时处理模块以及文件管理模块的交互示意图;

图4为另一个实施例中数据存储系统的结构示意图;

图5为又一个实施例中数据存储系统的结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

如图1所示,本申请数据存储系统包括依次连接的操作系统模块100、实时处理模块200以及文件管理模块300;

实时处理模块200接收数据流,操作系统模块100接收控制流,并将控制流转发至实时处理模块200,实时处理模块200根据文件管理模块300反馈的存储地址,将数据流以及控制流异步存储至存储地址对应的磁盘空间。

操作系统模块100用于接收外部控制软件发送的控制流,在控制流中主要包括控制指令数据,这些控制指令主要是针对当前处理对象进行监控和管理的指令。以本申请数据存储系统应用于记录仪为例,操作系统模块100接收外部控制软件发送的控制流,控制流中包含有对记录仪进行监控和管理的控制指令,以对记录仪进行监控和管理。具体来说,操作系统是指对当前处理对象的操作系统,例如上述的针对记录仪时,该操作系统是指记录仪的操作系统,记录仪在上电开机时即运行该操作系统。操作系统模块100具体可以是记录仪的核心中央处理器,包含有高性能的多核CPU,在记录仪上电开机之后,操作系统模块100即运行预加载(出厂加载或后期更新)的操作系统,记录仪正常上电之后,操作系统模块100接收外部控制软件发送的控制流。

实时处理模块200用于接收数据流,这些数据流具体是由外部高速数据源输入的高速数据流。另外实时处理模块200还会接收由操作系统模块100转发的控制流,数据流和控制流到达实时处理模块200之后,实时处理模块200还接收来自文件管理模块300反馈的存储地址,采用异步的方式将数据流和控制流存储至存储地址对应的磁盘空间。具体来说,实时处理模块200是整个数据存储系统的核心部分,其操作系统模块100和文件管理模块300连接,另外还与外部磁盘连接,接收外部输入的数据流,其实现整个数据存储系统的核心功能——异步存储数据流和控制流。在实际应用中,由于实时处理模块200需要实现上述丰富的功能,因此其可以采用多个CPU核组成,不同的CPU核实现单独、独立的功能,以进一步提升模块的处理效率和处理能力。

在实际应用中,操作系统模块100与实时处理模块200之间数据交互如图2所示,整个数据存储系统启动,操作系统模块100和实时处理模块200完成自身初始化动作,外部控制软件发送开始记录消息至操作系统模块100,操作系统模块100发送开始记录消息至实时处理模块200,实时处理模块200反馈开启外部数据接收消息至操作系统模块100,操作系统模块100反馈告知外部控制软件可以发送数据,操作系统模块100接收外部控制软件发送的控制流,并且将控制流发送实时处理模块200,实时处理模块200在文件管理模块300的支持下完成数据记录与存储;在某个时刻,外部控制软件发送停止记录消息至操作系统模块100,操作系统模块100发送停止记录消息至实时处理模块200,实时处理模块200已停止记录消息至操作系统模块100,操作系统模块100反馈已停止记录消息至外部控制软件。

文件管理模块300用于分配一定的磁盘空间,并且将分配磁盘的存储地址反馈实时处理模块200,以使实时处理模块200采用异步方式将控制流和数据流缓存至该存储地址对应的存储空间(外部磁盘)。具体来说,文件管理模块300负责文件系统实现,使用自行改写的FAT32文件系统,提供标准的文件IO接口提供给实时处理模块200,实现数据以文件形式存在,为了实现控制流和数据流的分离,文件管理核的底层没有块设备驱动,需要以消息的形式传递给实时处理模块200进行通信。

上述数据存储系统包括依次连接的操作系统模块100、实时处理模块200以及文件管理模块300;实时处理模块200接收数据流,操作系统模块100接收控制流,并将控制流转发至实时处理模块200,实时处理模块200根据文件管理模块300反馈的存储地址,将数据流以及控制流异步存储至存储地址对应的磁盘空间。整个过程中,采用三个独立的模块独立进行处理,针对数据流和控制流分别采用操作系统模块100、实时处理模块200对接,并且在进行存储时采用异步的方式将数据流以及控制流存储至磁盘空间,避免传统存储方式中同步处理中需要排队等待的缺陷,可以实现数据的高效接收与存储。

在其中一个实施例中,文件管理模块300划设预设初始磁盘空间,将预设初始磁盘空间对应的存储地址发送至实时处理模块200;实时处理模块200检测预设初始磁盘空间内存储的数据量,当存储的数据量大于预设存储阈值时,发送磁盘重新分配请求至文件管理模块300,文件管理模块300将新分配的预设初始磁盘空间对应的存储地址反馈至实时处理模块200。

文件管理模块300协助实时处理模块200实现控制流和数据流的异步存储。具体来说,传统设备存储数据采用即时将数据写入的方式,这个方式需要等待文件系统处理完成,采用的是同步方式,在本申请采用异步的方式,在记录开始前对创建文件,文件管理模块300先分配一定的磁盘空间,记录开始之后,数据直接写到的该空间,当数据量达到一定阈值之后,实时处理模块200发送磁盘重新分配请求至文件管理模块300,以使文件管理模块300继续动态预分配新的磁盘空间,反馈新的磁盘空间对应的存储地址给实时处理模块200,这样可以使文件操作和数据记录(存储)完全解耦。预设存储阈值是预先设定的阈值,其可以是具体的数据量,或者是对应初始磁盘空间固定百分比对应的数据量,具体可以为初始磁盘空间的一半,例如设定初始磁盘空间为X,则预设存储阈值为X/2。

在其中一个实施例中,文件管理模块300以消息队列的形式与实时处理模块200交互;

当操作系统模块100接收到控制流时,发送文件创建请求至实时处理模块200,实时处理模块200发送文件接口调用请求至文件管理模块300,文件管理模块300调用文件接口,分配连续的预设初始磁盘空间,反馈预设初始磁盘空间对应的存储地址实时处理模块200,实时处理模块200将接收到的数据流和控制流异步存储至预设初始磁盘空间,检测预设初始磁盘空间内存储的数据量,当存储的数据量大于预设存储阈值时,发送磁盘重新分配请求至文件管理模块300,文件管理模块300将新分配的预设初始磁盘空间对应的存储地址反馈至实时处理模块200。

在本实施例中,实时处理模块200通过发送文件接口调用请求至文件管理模块300,文件管理模块300调用文件接口,分配连续的预设初始磁盘空间,反馈预设初始磁盘空间对应的存储地址实时处理模块200,并且实时处理模块200检测初始磁盘空间内存储的数据量,当存储的数据量大于预设存储阈值时,发送磁盘重新分配请求至文件管理模块300,以使文件管理模块300继续分配新的初始磁盘空间,并反馈新分配磁盘空间对应的存储地址至实时处理模块200。具体来说,文件管理模块300先行通过文件预分配接口分配一段连续磁盘空间,由控制与转发核获取该段空间,记录开始后,数据直接从内存写入到该空间,当达到文件大小一定阈值后(例如预分配空间的一半),继续动态预分配新的磁盘空间,这样做可以使文件操作与数据记录的完全解耦。

在实际应用中,操作系统模块100、实时处理模块200以及文件管理模块300的数据交互流程如图3所示。具体的,整个数据存储系统启动,操作系统模块100、实时处理模块200以及文件管理模块300均完成自身初始化动作,操作系统模块100发送创建文件、预分配空间的请求至实时处理模块200,实时处理模块200发送文件接口调用请求至文件管理模块300,文件管理模块300调用文件接口,分配一段连续磁盘空间,并且将该连续磁盘空间的磁盘地址反馈至实时处理模块200,实时处理模块200反馈至操作系统模块100告知磁盘空间已划设,可以开始记录数据,操作系统模块100发送控制流数据,实时处理模块200接收控制流和数据流,根据分配的磁盘地址,将数据写到的外部磁盘阵列,当文件写入量达到一定阈值(一半)时,请求分配新的磁盘空间,文件管理模块300继续分配新空间至实时处理模块200,循环这个过程;当操作系统模块100接收到外部控制软件的停止记录消息时,操作系统模块100转发停止记录消息至实时处理模块200,实时处理模块200停止记录数据。

如图4所示,在其中一个实施例中,实时处理模块200包括用于搬运数据的数据流控制核210、用于管理磁盘阵列的磁盘管理核220以及用于根据管理数据流控制核210与磁盘管理核220工作的转发与控制核230;数据流控制核210、转发与控制核230以及磁盘管理核220依次连接,数据流控制核210接收数据流,转发与控制核230分别与操作系统模块100以及文件管理模块300连接,磁盘管理核220与外部磁盘连接。

实时处理模块200需要实现丰富的功能,其需要具备较强的处理能力,因此其包含的这些核可以分别采用单个CPU组成。具体来说,实时处理模块200包含多个独立运行的实时操作系统和裸机程序的CPU,这些CPU运行在FPGA上以软核形式存在,好处是可以作为FPGA逻辑的一部分,最快地和FPGA其他逻辑单元进行交互。这些核通过共享内存以消息队列的形式进行互相通信,主要对存储流程进行控制,对数据进行存储,运行驱动程序对磁盘阵列进行管理,和外部软件系统进行通信。实时处理模块200的CPU组包含数据流控制核210、磁盘管理核220以及转发与控制核230三个CPU。其中,数据流控制核210用于负责控制数据搬运器(data-mover)将数据及时搬运到DDR上,由于该模块对实时性的要求最高,需要尽快将数据取到DDR,所以使用单独的CPU进行该功能操作;磁盘管理核220管理整个磁盘阵列,实现RAID0算法,确保阵列中所有盘进行并发操作,获得RAID0理论上的最高存储速率,接收来自转发与控制核230的存储消息;转发与控制核230运行实时操作系统,负责管理另外两个核的生命周期,作为消息转发的核心,负责和数据流控制核210和磁盘管理核220以及文件管理CPU的通信,且负责对DDR内存的缓存管理,与文件管理CPU通信采用单独任务进行通信,保证不会因为文件管理的处理时间导致来不及处理数据流的存储。

如图4所示,在其中一个实施例中,上述数据存储系统还包括高速接口400,实时处理模块200通过高速接口400接收数据流。

高速接口400用于与外部高速数据源连接,接收外部高速数据源导入的高速数据流。

在其中一个实施例中,操作系统模块100还用于运行内置预加载操作系统,对控制对象进行监控和管理,并同时映射存储盘对外提供NAS服务。

操作系统模块100代表高性能多核CPU,运行操作系统,作为服务端接收来自外部控制软件的指令对记录仪进行监控和管理,同时映射存储盘对外提供NAS服务,对记录进行管理,包括打开关闭记录,以及记录模式的配置,但是存储盘驱动层的实现不在操作系统,即数据不会在记录过程中进入系统。

如图5所示,在其中一个实施例中,文件管理模块300与操作系统模块100集成于相同的硬件架构。

文件管理模块300与操作系统模块100集成于相同的硬件架构上是指文件管理模块300与操作系统模块100可以共用相同的硬件架构。具体来说,操作系统模块100包含有多个CPU,其硬件资源丰富,可以将文件管理模块100作为软件模块加载至这些多个CPU中,操作系统模块100包含的多个CPU具备强大的硬件处理能力,并且操作系统模块100中加载的操作系统支持多线程处理,这样使得文件管理模块300能够更好、更高效实现文件管理。

另外,本申请还提供一种上述数据存储系统的数据存储方法,包括:

接收待存储数据;

提取待存储数据中的控制流和数据流;

异步将控制流和数据流存储至磁盘空间。

本申请数据存储方法,针对接收到待存储数据划分为控制流和数据流,针对控制流和数据流单独、异步存储至磁盘空间,执行这些动作时,分别采用三个独立的模块独立进行处理,采用异步方式避免传统存储方式中同步处理中需要排队等待的缺陷,可以实现数据的高效接收与存储。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 车辆数据存储系统、车辆数据存储设备、车辆数据存储服务器和车辆数据存储方法
  • 数据存储系统、数据恢复系统、数据存储方法和数据恢复方法
技术分类

06120112624434