[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN107749893B - 一种共享文件系统中实现快速接收和储存数据的方法 - Google Patents

一种共享文件系统中实现快速接收和储存数据的方法 Download PDF

Info

Publication number
CN107749893B
CN107749893B CN201711095379.9A CN201711095379A CN107749893B CN 107749893 B CN107749893 B CN 107749893B CN 201711095379 A CN201711095379 A CN 201711095379A CN 107749893 B CN107749893 B CN 107749893B
Authority
CN
China
Prior art keywords
data
video
file
storage server
metadata
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711095379.9A
Other languages
English (en)
Other versions
CN107749893A (zh
Inventor
徐荣波
黄贤强
许珊珊
张广东
赵子兰
张跃
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingyi Qiangyuan Technology Co ltd
Original Assignee
Beijing Jingyi Qiangyuan Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingyi Qiangyuan Technology Co ltd filed Critical Beijing Jingyi Qiangyuan Technology Co ltd
Priority to CN201711095379.9A priority Critical patent/CN107749893B/zh
Publication of CN107749893A publication Critical patent/CN107749893A/zh
Application granted granted Critical
Publication of CN107749893B publication Critical patent/CN107749893B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

本发明涉及一种共享文件系统中实现快速接收和存储数据的方法,包括:视音频获取;视音频处理;发送视音频数据;接收视音频数据;写入文件。本发明利用大页内存、用户态网卡驱动以及数据和元数据分离技术,存储服务器可以快速的接收多个客户端发来的多路数据流,并写入到文件中,从而达到同时存储上百路视频流的目的。本发明有效提高了共享文件系统的并发访问效率,而且同时访问的文件越多,效果越加明显,对于常见的教育录播行业或者视频监控行业,在很大程度上提高了视频存储的效率。

Description

一种共享文件系统中实现快速接收和储存数据的方法
技术领域
本发明涉及一种共享文件系统中实现快速接收和存储数据的方法,是一种应用于共享文件系统存储视频数据的方法,是一种适用于视频存储领域的快速接收和存储数据的方法。
背景技术
目前,通用的NAS共享文件系统由NAS服务器和多客户端通过LAN网络组成。客户端在LAN网络下通过tcp/ip协议与NAS服务器相连并通讯。客户端要进行文件写操作时,需通过LAN网络不断的发送数据给NAS服务器。
NAS存储具有分离服务器和存储,减轻服务器负担,方便数据共享,对现有的网络环境有很好的适应性,高扩展性等优点,已广泛应用于视频存储领域,包括其中的一个重要应用场景:多个客户端同时对NAS共享文件系统中的多个文件进行存取操作,比如教育录播系统、视频监控系统。在教育录播系统或视频监控系统中,往往有数百个甚至更多的IP摄像机,以及数十个客户端需要进行文件的写入和操作,面对这样庞大的视频数据的存储,传统NAS文件系统普遍存在以下明显的不足:因为传统的网卡驱动方式,当多台客户端同时访问NAS文件系统的多个文件时,NAS的性能大大的下降,最终不能满足用户的需求。传统的网卡驱动为内核态网卡驱动,报文需要在用户态和内核态之间多次拷贝,当数据量增加时,开销尤其明显;传统的网卡驱动采用的是中断模式的驱动,大量的中断会耗尽CPU资源,导致性能严重下降;传统的网卡驱动中各个数据线程以及控制线程在各个CPU核之间来回调度,浪费资源。以上不足造成了当多个客户端同时访问NAS文件系统中的多个文件时,速度严重下降,实时性不能保障。
发明内容
为了克服现有技术的问题,本发明提出了一种共享文件系统中实现快速接收和存储数据的方法。所述的方法通过特定的方法快速接收和存储多路数据流,以达到多个客户端同时对多个文件进行存取的目的。
本发明的目的是这样实现的:一种共享文件系统中实现快速接收和存储数据的方法,所述方法所使用的硬件系统包括:多个客户端通过LAN网络与基于Linux的NAS子系统连接,所述的NAS子系统包括存储服务器和存储盘阵,所述的各个客户端通过LAN网络分别与多个IP摄像机连接,所述方法的步骤如下:
视音频获取的步骤:用于多个客户端通过各自连接的多个IP摄像机采集视音频数据;
视音频处理的步骤:用于各个客户端分别对各个IP摄像机所采集到的视音频数据进行处理,转码、打包;
发送视音频数据的步骤:用于请求发送数据的客户端向存储服务器提出发送请求,与存储服务器建立连接,开辟本地缓存空间,在待发送包中填写私有协议包头,向存储服务器发送视音频数据;
接收视音频数据的步骤:用于存储服务器设置大页内存并将大页内存申请为内存池,将接收数据的网卡注册为UIO设备,初始化一至两个元数据队列和多个内容数据队列,并创建与各个队列对应的接收数据线程,将各个接收数据线程与CPU绑定,以接收客户端发来的视音频数据;
写入文件的步骤:用于存储服务器分别通过元数据操作线程和内容数据操作线程将视音频数据写入文件。
进一步的,所述的“发送视音频数据的步骤”包括以下子步骤:
建立连接的子步骤:客户端向存储服务器发送连接请求,等待存储服务器应答,如果连接成功,则进入下述子步骤,否则退出;
发送打开文件命令的子步骤:客户端指定待写入文件的信息,并根据预设的私有传输协议组包,发送给存储服务器,等待应答,如果打开文件成功,则进入下述子步骤,否则退出;
开辟缓存空间的子步骤:如果成功打开文件,在客户端本地开辟缓存空间,用于存储待发送数据;
发送待写入数据的子步骤:客户端从缓存空间每次取固定大小的数据,然后根据预设的私有传输协议组包,填充包头以及实际待写入数据,发送给存储服务器,循环发送,直至待写入数据发送完毕;
发送关闭文件命令的子步骤:用于客户端向存储服务器发出请求,关闭已打开的文件句柄,完成本次文件写入。
进一步的,所述的“接收视音频数据的步骤”包括以下子步骤:
设置大页内存的子步骤:用于存储服务器设置系统,以支持大页内存;
PCI设备初始化的子步骤:用于存储服务器扫描PCI设备,注册PCI驱动,并利用Linux uio技术,把用于接收数据的网卡注册为uio设备,这样便可以在用户态直接使用该网卡进行发送和接收数据;
开辟内存池的子步骤:用于存储服务器在大页内存中申请若干个固定大小的内存块,组成内存池,用于缓存网络报文;
初始化数据队列的子步骤:用于存储服务器初始化2个元数据操作队列和8个数据操作队列,接收数据线程收到视音频数据后,会对视音频数据进行分类,并把相应视音频数据放入当前含有最少视音频数据的对应队列中;
创建接收数据线程的子步骤:为每个注册为UIO设备网口创建一个接收数据线程,并将该接收数据线程绑定到CPU核上;
数据存储处理的子步骤:用于存储服务器处理接收到的视音频数据;接收数据线程采用定期轮询,每隔一段时间查询网口是否有新视音频数据到达,如果接收到视音频数据,会存到之前开辟的内存池中,然后转入数据存储处理的子步骤,如果没有接收到视频数据则继续轮询。
进一步的,所述的“数据存储处理的子步骤”包括以下分步骤:
解析私有协议数据包的分步骤:用于存储服务器按照预设的私有协议解析数据包;
选择处理的分步骤:如果数据包中的数据为打开文件、关闭文件以及设置文件属性等相关元数据操作任务命令,则把这些任务命令加入元数据操作队列中;如果为待写入的内容数据包,则把待写入的内容数据拷贝到内容数据操作队列中。
进一步的,所述的“写入文件的步骤”包括以下子步骤:
创建写文件线程的子步骤:用于存储服务器分别创建2个元数据操作线程和8个内容数据操作线程,用于处理后续的写文件任务;元数据操作线程执行元数据操作的子步骤,内容数据操作线程执行写入文件的子步骤;
元数据操作的子步骤:从元数据操作队列中获取信息,执行相应的元数据操作;
写入文件的子步骤:存储服务器从内容数据队列中,获取待写入内容数据,然后根据待写入文件的内容,获取元数据段,并根据所获得的元数据段,对磁盘发起写入文件的块数据请求,以完成该元数据段对应块数据写入,循环的申请元数据段和写入元数据段对应的块数据,直至完成整个文件的写入。
本发明产生的有益效果是:本发明所述的方法利用大页内存、用户态网卡驱动以及数据和元数据分离技术,存储服务器可以快速的接收多个客户端发来的多路数据流,并写入到文件中,从而达到同时存储上百路视频流的目的。利用大页内存,减少缺页中断,提高内存访问效率;利用用户态网卡驱动技术缩短了网卡处理数据包的时间,并且打破了传统网卡驱动高并发时性能的局限性,同时避免了数据在用户空间和内核空间的来回拷贝,使得数据可以直接在用户空间下直接写到磁盘中去,同时使用数据和元数据分别处理技术,加快了数据存储速度。本发明有效提高了共享文件系统的并发访问效率,而且同时访问的文件越多,效果越加明显,对于常见的教育录播行业或者视频监控行业,在很大程度上提高了视频存储的效率。
附图说明
下面结合附图和实施例对本发明作进一步说明。
图1是本发明的实施例一所述方法所述使用的硬件系统图;
图2是本发明的实施例一所述方法的流程图;
图3是本发明的实施例二所述的发送视音频数据的步骤流程图;
图4是本发明的实施例三所述的控制线程处理流程图;
图5是本发明的实施例三所述的数据线程接收数据的流程图;
图6是本发明的实施例四所述的数据存储处理过程的示意图。
具体实施方式
实施例一:
本实施例是一种共享文件系统中实现快速接收和存储数据的方法,所述方法所使用的硬件系统包括:多个客户端通过LAN网络与基于Linux的NAS子系统连接,所述的NAS子系统包括存储服务器和存储盘阵,所述的各个客户端通过LAN网络分别与多个IP摄像机连接,如图1所示。
多所述的客户端可以是普通的PC机工作站,也可以是服务器,具有连接LAN网络的能力,并可以从视音频源处采集视音频数据。本实施例所述的LAN网络是由以太交换机组成并使用TCP/IP为通讯协议的以太网,是带宽超过1G的宽带网络,可以传输高清晰度的视频文件。视音频源为高清IP 摄像机,能提供大码率高清视频码流。存储系统是基于Linux的NAS,其中存储服务器是NAS服务器,存储盘阵是多个磁盘组成的存储阵列。
本实施例的基本思路是:在进行视音频管理时,多个客户端从IP摄像机处获取实时视频数据,进行视频处理,转码、打包等,之后通过特定的传输以及存储方法将视频数据保存到存储服务器。该传输以及存储方法可以提高存储服务器的并发访问效率,使得多个客户端可以同时对上百路视频流进行存储操作,同时,多个客户端也可以同时对上百路视频流进行回放操作,保证客户端能够实时处理多路视频。本实施例所述方法可表述为:多个客户端在IP摄像机处采集视频数据并经过处理,生成多个视频流,分别为data1, data2,data3, …,dataN,通过共享文件系统使用特定的传输以及存储方法将多个视频流数据data1,data2,data3,…,dataN快速存储到共享存储内,生成多个视频文件file1,file2,file3,…,fileN,使得客户端可以同时对多个IP摄像机进行录像以及录像回放操作,从而提高客户端的视频管理能力。
在通常的NAS服务器中,传统的网卡驱动为内核态网卡驱动,报文需要在用户态和内核态之间多次拷贝,当数据量增加时,开销尤其明显;传统的网卡驱动采用的是中断模式的驱动,大量的中断会耗尽CPU资源,导致性能严重下降;传统的网卡驱动中各个数据线程以及控制线程在各个CPU核之间来回调度,浪费资源。本实施例则采用基于Linux UIO技术的用户态网卡驱动,避免数据在用户空间和内核空间来回拷贝,节省CPU资源。Linux系统中一般的驱动设备都是运行在内核空间,在用户空间用应用程序调用即可,而UIO则是将驱动的很少一部分运行在内核空间,而在用户空间实现驱动的绝大多数功能,本实施例中网卡驱动的数据接收以及发送功能都在用户态实现,因此避免了数据在用户空间和内核空间的多次拷贝操作。
本实施例把各个数据线程以及控制线程绑定到不同的CPU核上,提高了存储服务器的并发访问效率。从而使得客户端可以同时对多路IP摄像机进行录像存储以及录像回放,这在IP摄像机安装密集的项目中意义尤其重大。
本实施例所述共享文件系统中实现快速接收和存储数据的方法的具体过程如图2所示,具体步骤如下:
1、视音频获取的步骤:用于多个客户端通过各自连接的多个IP摄像机采集视音频数据。本步骤中客户端与IP摄像机对接,获取IP摄像机的实时视频数据。
2、视音频处理的步骤:用于各个客户端分别对各个IP摄像机所采集到的视音频数据进行处理,转码、打包等。
3、发送视音频数据的步骤:用于请求发送数据的客户端向存储服务器提出发送请求,与存储服务器建立连接,开辟本地缓存空间,在待发送包中填写私有协议包头,向存储服务器发送视音频数据。本步骤中客户端把从IP摄像机采集到的并经过处理的视频数据发送到存储服务器,进行存储。
4、接收视音频数据的步骤:用于存储服务器设置大页内存并将大页内存申请为内存池,将用来接收视音频数据的网卡注册为UIO设备,初始化一至两个元数据队列和多个内容数据队列,并创建与注册为UIO设备的网卡相对应的接收数据线程,并将各个接收数据线程与CPU绑定,以接收客户端发来的视音频数据,如图4所示。
本步骤与传统NAS存储有以下不同:使用了大页内存,减少缺页中断,提高内存访问效率;使用用户态网卡驱动,避免数据在用户态和内核态之间来回拷贝;采用线程绑定,消除线程在各个CPU核来回调度的开销。
5、写入文件的步骤:用于存储服务器分别通过元数据操作线程和内容数据操作线程将视音频数据写入文件。本步骤首先创建写文件线程,可以在存储服务器创建一到两个元数据操作线程和多个内容数据操作线程,用于处理后续的写文件任务。元数据操作线程执行元数据操作,数据操作线程执行写入文件。写入文件时,存储服务器循环的申请元数据段和写入元数据段对应的块数据,直至完成整个文件的写入。
实施例二:
本实施例是实施例一的改进,是实施例一关于“发送视音频数据的步骤”的细化。本实施例所述的“发送视音频数据的步骤”包括以下子步骤,过程如图3所示:
建立连接的子步骤:客户端向存储服务器发送连接请求,等待存储服务器应答,如果连接成功,则进入下述子步骤,否则退出。
发送打开文件命令的子步骤:客户端指定待写入文件的信息,并根据预设的私有传输协议组包,发送给存储服务器,等待应答,如果打开文件成功,则进入下述子步骤,否则退出。
开辟缓存空间的子步骤:如果成功打开文件,在客户端本地开辟缓存空间,用于存储待发送数据。
发送待写入数据的子步骤:客户端从缓存空间每次取固定大小的数据,然后根据预设的私有传输协议组包,填充包头以及实际待写入数据,发送给存储服务器,循环发送,直至待写入数据发送完毕。
发送关闭文件命令的子步骤:用于客户端向存储服务器发出请求,关闭已打开的文件句柄,完成本次文件写入。
实施例三:
本实施例是上述实施例的改进,是上述实施例关于“接收视音频数据的步骤”的细化。本实施例所述的“接收视音频数据的步骤”包括以下子步骤:
设置大页内存的子步骤:用于存储服务器设置系统,以支持大页内存。
PCI设备初始化的子步骤:用于存储服务器扫描PCI设备,注册PCI驱动,并利用Linux UIO技术,把用来接收数据的网卡注册为UIO设备,这样用户态应用程序直接使用网卡发送或者接受数据。
开辟内存池的子步骤:用于存储服务器在大页内存中申请若干个固定大小的内存块,组成内存池,用于缓存网络报文。
初始化数据队列的子步骤:用于存储服务器初始化2个元数据操作队列和8个内容数据操作队列。后续接收数据线程收到视音频数据后,根据数据包内容进行区分,如果是视音频元数据,会把该视音频元数据放入当前含有最少的元数据操作队列中;同样如果是视音频内容数据,会把该视音频内容数据放入当前含有最少视音频内容数据的队列中。本实施例设置了10个队列,其中2个对应元数据,8个对应内容数据队列。
创建接收数据线程的子步骤:每个网口创建一个接收数据线程,并将该接收数据线程绑定到CPU核上。在CPU主核上绑定控制线程,用于初始化存储服务器的PCI设备,设置大页内存,开辟内存池,并创建多个数据线程,过程如图4所示。创建过程首先,查询存储服务器之前设置为UIO设备的网口数量,这些网口都是用来接收数据的,针对每个网口创建一个接收数据线程,然后查询各个CPU核的占用率,选取一个占用率最小的CPU核,将接收数据线程绑定到该CPU核上,并且每个CPU核只能绑定一个数据接收线程。本实施例中存储服务器中可以采用4口网卡,6核CPU,因此创建4个接收数据线程,然后查询各个CPU核的占用率,选取4个占用率相对较小的CPU核,每个核绑定一个接收数据线程。
数据存储处理的子步骤:用于存储服务器处理接收到的视音频数据,如图5所示,每个接收数据线程采用定期轮询查询跟本接收线程绑定的UIO网口设备是否有新视音频数据到达,如果接收到视音频数据,把接收到的数据暂时存储到之前开辟的内存池中,然后进行数据存储处理过程,如果没有接收到视频数据则继续轮询。图5表示与1~4核绑定的1~4内容数据线程的接收过程。
实施例四:
本实施例是上述实施例的改进,是上述实施例关于“数据存储处理的子步骤”的细化。本实施例所述的“数据存储处理的子步骤”包括以下分步骤,如图6所示:
解析私有协议数据包的分步骤:用于存储服务器按照预设的私有协议解析数据包。首先,根据存储服务器预设的私有协议对数据包进行解析,方便下一步进行判断本次接收到时视音频数据是视音频元数据还是视音频内容数据。如果是视音频元数据使用私有协议进行封装,主要包括是“打开文件”、“关闭文件”和“设置属性”等相关操作。
选择处理的分步骤:如果数据包中的数据为打开文件、关闭文件以及设置文件属性任务命令,则把任务这些任务命令加入元数据操作队列中;如果为待写入的内容数据包,则把待写入的内容数据拷贝到内容数据操作队列中。
实施例五:
本实施例是上述实施例的改进,是上述实施例关于“写入文件的步骤”的细化。本实施例所述的“写入文件的步骤”包括以下子步骤:
创建写文件线程的子步骤:用于存储服务器分别创建2个元数据操作线程和8个内容数据操作线程,用于处理后续的写文件任务。元数据操作线程执行元数据操作的子步骤,内容数据操作线程执行写入文件的子步骤。
元数据操作的子步骤:从元数据操作队列中获取信息,执行相应的元数据操作。
写入文件的子步骤:存储服务器从内容数据队列中,获取待写入内容数据,然后根据待写入文件的内容,获取元数据段,并根据所获得的元数据段,对磁盘发起写入文件的块数据请求,以完成该元数据段对应块数据写入,循环的申请元数据段和写入元数据段对应的块数据,直至完成整个文件的写入。
最后应说明的是,以上仅用以说明本发明的技术方案而非限制,尽管参照较佳布置方案对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案(比如所使用的硬件网络等、网络所使用的各种协议、步骤的先后顺序等)进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。。

Claims (1)

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个内容数据操作线程,用于处理后续的写文件任务;元数据操作线程执行元数据操作的子步骤,内容数据操作线程执行写入文件的子步骤;
②元数据操作的子步骤:从元数据队列中获取信息,执行相应的元数据操作;
③写入文件的子步骤:存储服务器从内容数据队列中,获取待写入内容数据,然后根据待写入文件的内容,获取元数据段,并根据所获得的元数据段,对磁盘发起写入文件的块数据请求,以完成该元数据段对应块数据写入,循环的申请元数据段和写入元数据段对应的块数据,直至完成整个文件的写入。
CN201711095379.9A 2017-11-09 2017-11-09 一种共享文件系统中实现快速接收和储存数据的方法 Active CN107749893B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711095379.9A CN107749893B (zh) 2017-11-09 2017-11-09 一种共享文件系统中实现快速接收和储存数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711095379.9A CN107749893B (zh) 2017-11-09 2017-11-09 一种共享文件系统中实现快速接收和储存数据的方法

Publications (2)

Publication Number Publication Date
CN107749893A CN107749893A (zh) 2018-03-02
CN107749893B true CN107749893B (zh) 2021-03-30

Family

ID=61250967

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711095379.9A Active CN107749893B (zh) 2017-11-09 2017-11-09 一种共享文件系统中实现快速接收和储存数据的方法

Country Status (1)

Country Link
CN (1) CN107749893B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108989432B (zh) * 2018-07-20 2022-01-07 南京中兴新软件有限责任公司 用户态的文件发送方法、文件接收方法和文件收发装置
CN109040645B (zh) * 2018-08-02 2022-06-17 平安科技(深圳)有限公司 音视频文件转录方法、装置及存储介质、服务器
CN110300160A (zh) * 2019-06-14 2019-10-01 杭州爱科科技股份有限公司 用于嵌入式系统的数据共享方法
CN111488219B (zh) * 2020-04-07 2022-08-02 中国科学院自动化研究所 用于高速数据采集系统的以太网数据流记录方法
CN112650597B (zh) * 2020-12-14 2023-11-17 潍柴动力股份有限公司 高并发采集数据的处理系统及方法
CN113031860B (zh) * 2021-02-24 2022-04-05 紫光云技术有限公司 一种nas存储在视频流领域的性能优化方法
CN116136838B (zh) * 2023-04-19 2023-07-25 之江实验室 一种深度学习训练数据集快速载入临时缓存方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102547228A (zh) * 2011-10-10 2012-07-04 南京航空航天大学 基于本地存储和分辨率分级传输的高清网络视频监控系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8667504B2 (en) * 2008-06-20 2014-03-04 Netapp, Inc. System and method for achieving high performance data flow among user space processes in storage system
CN103548020B (zh) * 2011-05-12 2017-06-27 华为技术有限公司 用于由小树进行的大小可变分层名称的最长前缀匹配的方法和系统
CN103414535B (zh) * 2013-07-31 2017-04-19 华为技术有限公司 数据发送方法和数据接收方法及相关装置
US20150244804A1 (en) * 2014-02-21 2015-08-27 Coho Data, Inc. Methods, systems and devices for parallel network interface data structures with differential data storage service capabilities
CN106713462A (zh) * 2016-12-26 2017-05-24 郑州云海信息技术有限公司 一种网络数据包处理方法和装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102547228A (zh) * 2011-10-10 2012-07-04 南京航空航天大学 基于本地存储和分辨率分级传输的高清网络视频监控系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DPDK实践一:技术介绍 + 编译运行;造夢先森;《CSDN blog》;20171001;1-6页 *

Also Published As

Publication number Publication date
CN107749893A (zh) 2018-03-02

Similar Documents

Publication Publication Date Title
CN107749893B (zh) 一种共享文件系统中实现快速接收和储存数据的方法
US11374995B2 (en) Multimedia file processing
EP3396924B1 (en) Real-time processing of iot data
US9154453B2 (en) Methods and systems for providing direct DMA
US8499091B2 (en) Method and an apparatus for data recording and streaming
KR101278632B1 (ko) 인터넷 프로토콜을 사용하여 직렬 버스를 통해 데이터운반을 수행하는 방법 및 그러한 방법에 사용하기 위한장치
JP2009512279A (ja) ストリーミングと制御処理に異なる素子を用いたメディアデータ処理
CN103546424A (zh) 一种tcp数据传输方法、tcp卸载引擎及系统
US9544370B2 (en) Data transferring apparatus, data transmission system and data transmitting method
CN113950814B (zh) 通过端口复用的多点会议会话
US10324980B2 (en) Method and system for caching of video files
CN102413304B (zh) 一种网络视频监控数据流存储系统
CN102611878A (zh) 低带宽占用的高清摄像头映射方法
CN115801770B (zh) 一种基于全用户态quic协议的大文件传输方法
EP3744066B1 (en) Method and device for improving bandwidth utilization in a communication network
CN105915587B (zh) 内容推送方法、系统、以及缓存服务器
EP1694031A1 (en) Method for performing data transport over a serial bus using internet protocol and apparatus for use in the method
Dalessandro et al. iSER storage target for object-based storage devices
CN107465962B (zh) 一种非实时视音频文件传输的方法
KR100611099B1 (ko) 미디어 스트리밍을 위한 스트리머 프로세스 관리 장치 및그 방법
JP6404915B2 (ja) データの自動圧縮
CN116668779B (zh) 虚拟现实视场分发方法、系统、装置、设备及介质
CN117319386A (zh) 一种云电脑的数据传输方法、系统及终端设备
CN117155926A (zh) 融合架构桌面云的oeidp桌面协议部署方法及装置
CN115941672A (zh) 一种分布式文件系统提升上载文件速度的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A method of fast receiving and storing data in shared file system

Effective date of registration: 20230103

Granted publication date: 20210330

Pledgee: Zhongguancun Branch of Bank of Beijing Co.,Ltd.

Pledgor: BEIJING JINGYI QIANGYUAN TECHNOLOGY Co.,Ltd.

Registration number: Y2022990000841