[发明专利]一种共享文件系统中实现快速接收和储存数据的方法有效
| 申请号: | 201711095379.9 | 申请日: | 2017-11-09 |
| 公开(公告)号: | CN107749893B | 公开(公告)日: | 2021-03-30 |
| 发明(设计)人: | 徐荣波;黄贤强;许珊珊;张广东;赵子兰;张跃 | 申请(专利权)人: | 北京精一强远科技有限公司 |
| 主分类号: | H04L29/08 | 分类号: | H04L29/08;G06F16/176;G06F16/13 |
| 代理公司: | 北京国林贸知识产权代理有限公司 11001 | 代理人: | 李富华;李桂玲 |
| 地址: | 100193 北京市海*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 共享 文件系统 实现 快速 接收 储存 数据 方法 | ||
1.一种共享文件系统中实现快速接收和存储数据的方法,所述方法所使用的硬件系统包括:多个客户端通过LAN网络与基于Linux的NAS子系统连接,所述的NAS子系统包括存储服务器和存储盘阵,各个客户端通过LAN网络分别与多个IP摄像机连接,其特征在于,所述方法的步骤如下:
步骤1,视音频获取的步骤:用于多个客户端通过各自连接的多个IP摄像机采集视音频数据;
步骤2,视音频处理的步骤:用于各个客户端分别对各个IP摄像机所采集到的视音频数据进行处理,转码、打包;
步骤3,发送视音频数据的步骤:用于请求发送数据的客户端向存储服务器提出发送请求,与存储服务器建立连接,开辟本地缓存空间,在待发送包中填写私有协议包头,向存储服务器发送视音频数据;本步骤具体包括如下子步骤:
(1)建立连接的子步骤:客户端向存储服务器发送连接请求,等待存储服务器应答,如果连接成功,则进入下述子步骤,否则退出;
(2)发送打开文件命令的子步骤:客户端指定待写入文件的信息,并根据预设的私有传输协议组包,发送给存储服务器,等待应答,如果打开文件成功,则进入下述子步骤,否则退出;
(3)开辟缓存空间的子步骤:如果成功打开文件,在客户端本地开辟缓存空间,用于存储待发送数据;
(4)发送待写入数据的子步骤:客户端从缓存空间每次取固定大小的数据,然后根据预设的私有传输协议组包,填充包头以及实际待写入数据,发送给存储服务器,循环发送,直至待写入数据发送完毕;
(5)发送关闭文件命令的子步骤:用于客户端向存储服务器发出请求,关闭已打开的文件句柄,完成本次文件写入;
步骤4,接收视音频数据的步骤:用于存储服务器设置大页内存并将大页内存申请为内存池,将用来接收视音频数据的网卡注册为UIO设备,初始化一至两个元数据队列和多个内容数据队列,并创建与注册为UIO设备的网卡相对应的接收数据线程,并将各个接收数据线程与CPU绑定,以接收客户端发来的视音频数据;本步骤具体包括如下子步骤:
1)设置大页内存的子步骤:用于存储服务器设置系统,以支持大页内存;
2)PCI设备初始化的子步骤:用于存储服务器扫描PCI设备,注册PCI驱动,并利用LinuxUIO技术,把用来接收数据的网卡注册为UIO设备,这样客户端应用程序直接使用网卡发送或者接收数据;
3)开辟内存池的子步骤:用于存储服务器在大页内存中申请若干个固定大小的内存块,组成内存池,用于缓存网络报文;
4)初始化数据队列的子步骤:用于存储服务器初始化2个元数据队列和8个内容数据队列,接收数据线程收到视音频数据后,会对视音频数据进行分类,并把相应视音频数据放入当前含有最少视音频数据的对应元数据队列和内容数据队列中;
5)创建接收数据线程的子步骤:为每个注册为UIO设备网口创建一个接收数据线程,并将该接收数据线程绑定到CPU核上;
6)数据存储处理的子步骤:用于存储服务器处理接收到的视音频数据;接收数据线程采用定期轮询,每隔一段时间查询网口是否有新视音频数据到达,如果接收到视音频数据,会存到之前开辟的内存池中,然后转入数据存储处理的子步骤,如果没有接收到视频数据则继续轮询;本子步骤具体包括如下分步骤:
a.解析私有协议数据包的分步骤:用于存储服务器按照预设的私有协议解析数据包;
b.选择处理的分步骤:如果数据包中的数据为打开文件、关闭文件以及设置文件属性的相关元数据操作任务命令,则把这些任务命令加入元数据队列中;如果为待写入的内容数据包,则把待写入的内容数据拷贝到内容数据队列中;
步骤5,写入文件的步骤:用于存储服务器分别通过元数据操作线程和内容数据操作线程将视音频数据写入文件;本步骤具体包括如下子步骤:
①创建写文件线程的子步骤:用于存储服务器分别创建2个元数据操作线程和8个内容数据操作线程,用于处理后续的写文件任务;元数据操作线程执行元数据操作的子步骤,内容数据操作线程执行写入文件的子步骤;
②元数据操作的子步骤:从元数据队列中获取信息,执行相应的元数据操作;
③写入文件的子步骤:存储服务器从内容数据队列中,获取待写入内容数据,然后根据待写入文件的内容,获取元数据段,并根据所获得的元数据段,对磁盘发起写入文件的块数据请求,以完成该元数据段对应块数据写入,循环的申请元数据段和写入元数据段对应的块数据,直至完成整个文件的写入。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京精一强远科技有限公司,未经北京精一强远科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711095379.9/1.html,转载请声明来源钻瓜专利网。





