面向并行数据采集的分布式文件系统数据i/o优化方法

文档序号:9349696阅读:524来源:国知局
面向并行数据采集的分布式文件系统数据i/o优化方法
【技术领域】
[0001]本发明涉及其中的文件管理领域,具体涉及一种面向并行数据采集的分布式文件系统数据I/o优化方法。
【背景技术】
[0002]随着云计算的迅速发展,云存储也受到了非常广泛的关注。作为云存储的基石一一并行分布式文件系统,近年来已经被广泛地应用在各类存储系统中。并行分布式文件系统通常包含客户端、数据服务器和元数据服务器三部分,其中客户端部署在文件系统应用程序所在的计算机上,应用可通过客户端调用相应的文件接口访问系统中的文件;数据服务器通常用来存储文件数据,它通常放置在数据中心的机架上;元数据服务器是分布式文件系统中最核心的组件,通常放置在一个数据中心中安全可靠的位置。客户端、数据服务器和元数据服务器之间通过Internet网络或本地局域网连接。
[0003]另一方面,并行数据采集设备与程序在近年来也得到了非常广泛的应用,其中,并行数据采集设备是一种实时的数据采集设备,例如交通网络中的摄像头等。随着各种视频设备的清晰度越来越高,其每秒钟产生的数据量已变得非常之大,而传统的分布式文件系统的传输带宽已经难以满足如此大的数据量,因而使得文件系统的长期处于一个阻塞状态,难以发挥其分布式的优势。

【发明内容】

[0004]本发明旨在至少解决上述技术问题之一。
[0005]为此,本发明的一个目的在于提出一种面向并行数据采集的分布式文件系统数据I/O优化方法。
[0006]为了实现上述目的,本发明的第一方面的实施例公开了一种面向并行数据采集的分布式文件系统数据I/O优化方法,由客户端、数据服务器程序、元数据服务器程序组成的分布式文件系统与数据采集设备、数据采集程序集成部署于同一套硬件系统之上,所述方法包括以下步骤:S1:配置所述数据采集设备、述数据采集程序、所述客户端、所述数据服务器程序和所述元数据服务器程序的物理位置;S2:对所述数据采集程序、所述客户端、所述数据服务器和所述元数据服务器进行初始化;S3:所述数据采集程序向所述客户端直接发起请求,并写入数据;以及S4:通过所述分布式系统中的任一客户端访问所述数据,其中,所述客户端提供获取所述数据存储位置的接口,在所述数据存储的节点上部署用户程序实现文件读操作的优化。
[0007]根据本发明实施例的面向并行数据采集的分布式文件系统数据I/O优化方法,在现有分布式文件系统的基础上,提出一种新的硬件拓扑结构,并辅以特殊的算法和数据结构,对并行数据采集的I/O性能进行了一系列的优化,并提供了良好的可拓展性。
[0008]另外,根据本发明上述实施例的面向并行数据采集的分布式文件系统数据I/O优化方法,还可以具有如下附加的技术特征:
[0009]进一步地,所述步骤SI进一步包括:配置所述数据采集设备的物理位置:所述数据采集设备用来并行采集来自外部数据采集设备所产生的数据,所述数据采集设备按组连接到所述分布式文件系统的多个不同的物理节点上,所述每组数据采集设备至少包括一台所述数据采集设备;配置所述数据采集程序的物理位置:所述数据采集程序首先接收所述数据采集设备所采集的数据,然后调用所述客户端,将所述采集的数据存储于所述分布式文件系统中;所述数据采集程序部署在所述分布式文件系统中每个物理节点上;配置所述客户端的物理位置:所述客户端是所述分布式文件系统面向应用程序的接口模块,所有部署有所述数据采集程序的物理节点均设置所述客户端;配置所述数据服务器程序的物理位置:所述数据服务器用来存储应用的数据,所述数据服务器与所述数据采集程序、所述客户端集成设置,所有设置所述数据采集程序和所述客户端的物理节点均设置所述数据服务器;配置所述元数据服务器的物理位置:所述元数据服务器负责所述分布式文件系统中所有元数据操作,所述元数据服务器可设置于所述分布式文件系统中任意物理节点上。
[0010]进一步地,所述步骤S2进一步包括:对所述数据采集程序进行初始化:实时接收来自所述数据采集设备的数据;对所述客户端进行初始化:所述客户端启动时,获取所述客户端所在物理节点的唯一标识,同时与所述元数据服务器建立通信,获取必要的文件系统元数据信息,依据所述元数据信息将所述分布式文件系统挂载至本地目录;所有由所述数据采集程序发起的数据读写将通过所述本地目录进行;对所述数据服务器进行初始化:所述数据服务器启动时,首先获取所述数据服务器所在物理节点的唯一标识,同时初始化所有所述数据服务器所管理的存储资源并进行汇总;随后建立与所述元数据服务器之间的通信,将存储资源信息和所述唯一标识报告给所述元数据服务器进入服务状态,等待来自所述客户端和所述元数据服务器的数据访问请求;在所述数据服务器运行过程中,所述数据服务器周期性汇总所述数据服务器所在节点的存储资源信息,并上报给所述元数据服务器;对所述元数据服务器进行初始化:所述元数据服务器启动后,从本地存储设备上加载必要的元数据信息,等待来自所述客户端和所述数据服务器的状态初始化请求,当获取到来自不同的所述数据服务器的状态报告请求后,建立数据服务器列表,所述数据服务器列表记录所有所述数据服务器的信息。
[0011]进一步地,所述步骤S3进一步包括:S301:所述数据采集程序向所述分布式文件系统客户端发起写数据的请求;S302:所述客户端接收到写请求后,将所述写操作包装成一个面向所述元数据服务器的创建文件请求并发送;在发送请求前,所述客户端检查自身是否拥有一个当前有效的数据服务器列表,如果没有,则向所述数据服务器请求获取最新的数据服务器列表;S303:所述元数据服务器接收到来自所述客户端的创建文件的请求后,在所述分布式文件系统后台为所述客户端所请求的文件增加一份元数据信息,其中所述元数据信息包括客户端ID、文件的绝对路径、文件包含的数据块个数、各个文件块的唯一标识、哈希值、容量、物理位置,以及整个文件的访问权限列表;在初始状态时,所述客户端ID设置成当前客户端,文件版本号设置为1,其余项为空;将文件创建成功的消息返回所述客户端,根据所述客户端所发送的所述数据服务器列表更新标记,选择是否在响应中附加所有活动的数据服务器列表;S304:所述客户端接收到所述元数据服务器的响应后,首先更新本地的数据服务器列表,然后再将所述数据采集程序所请求的写操作包装成一个新的写请求,在所述本地的数据服务器列表中根据所述唯一标识查询具有相同唯一标识的数据服务器,如果存在相同的唯一标识的数据服务器,且所述数据服务器的状态为可写,则将所述写请求发送至所述数据服务器,否则在当前所述数据服务器列表中随机选择一个可写的数据服务器,向选中的数据服务器中发送创建新文件的请求;S305:所述数据服务器接收到来自客户端的创建文件请求后,所述数据服务器向所述元数据服务器发起验证请求,确认当前客户端已将当前新建文件的请求发送至元数据服务器端,并得到了所述元数据服务器的许可;验证成功后,所述数据服务器在所管理的存储资源中选择一组具有RAID机制的磁盘阵列,然后在所述磁盘阵列中创建新文件,并将所述新文件的句柄返回给所述客户端;S306:所述客户端在接收到所述句柄后,将所述句柄返回给所述数据采集程序,所述数据采集程序直接通过SCSI总线向所述磁盘阵列中写入数据;所述数据服务器在后台检测步骤S302中所写入的数据量,待写入的所述数据量达到一个预设值,或检测到本次写操作完成后,所述数据服务器向所述元数据服务器发起更新元数据的请求,将已写入的数据看成一个数据块,并赋予唯一的对象标识,并计算所述数据块的哈希值,最后将数据块的对象标识、物理位置、所述数据块大小和哈希值发送给所述元数据服务器;所述元数据服务器更新元数据中的文件块数量、各文件块的对象标识、物理位置和哈希值,更新完毕后向所述数据服务器返回元数据信息更新成功的响应;所述数据服务器向所述数据采集程序返回写操作成功的响应;S307:所述数据采集程序的本次写操作完成,如果数据采集程序还有后续面向该文件的写操作,则重复步骤S305到步骤S306 ;S308:所述数据采集程序完成所有文件的数据写操作后,调用所述客户端的文件关闭操作接口关闭文件,所述客户端检查所述文件的元数据一致性,确认无误后
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1