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

文档序号:9349696阅读:来源:国知局
优化:
[0034]步骤(I):当写操作发生时,数据采集程序首先通过客户端向元数据服务器发起创建文件的请求,待元数据服务器为此文件新建元数据信息后,客户端在它所在的物理节点中寻找一个数据服务器;然后,数据服务器在存储介质,即磁盘阵列中新建一个文件,并将文件句柄返回给数据采集程序,由数据采集程序向磁盘阵列中写入内容;在数据采集程序写入文件内容的同时,数据服务器对写入的内容进行检测,并适时地产生相应的元数据信息,并发送给元数据服务器;当数据采集程序写完所有内容后,由客户端向元数据服务器发起关闭文件的请求,元数据服务器接收到该请求后通知数据服务器停止检测,至此,一次写操作完成,具体流程如图2所示;
[0035]步骤(2)当读操作发生时,客户端向元数据服务器发起读请求,然后再根据所返回的元数据信息,去相应的数据服务器中读取内容,并利用元数据里所包含的哈希值,对读取出来的内容进行完整性校验,并将校验后的数据内容返回给上层应用;读操作的具体流程如图3所不;
[0036]步骤(3)系统管理程序在后台检测所有文件的副本情况,当有文件的副本数量小于预设值时,管理程序则向元数据服务器发起备份请求,在得到元数据服务器的同意后,再在活跃的数据服务器列表中,根据特定的算法综合考虑系统负载、各副本之间的距离和网络带宽等因素,找出适合备份的数据服务器,并在找到的数据服务器中进行备份;本操作的具体流程如图4所示。
[0037]本发明的面向并行数据采集的分布式文件系统数据I/O优化方法更加具体的步骤如下:
[0038]S1:配置数据采集设备、数据采集程序、分布式文件系统客户端程序、分布式文件系统数据服务器程序和分布式文件系统的元数据服务器程序的物理位置;
[0039]SlOl:配置数据采集设备的物理位置:数据采集设备用来并行采集来自外部数据采集设备所产生的数据,它们以一个或几个为一组的方式,连接到多个不同的物理节点(具有网络访问权限的物理计算机)上;
[0040]S102:配置数据采集程序的物理位置:数据采集程序首先接收数据采集设备所采集的数据,然后调用分布式文件系统的客户端程序,将采集到的数据存放至分布式文件系统中;数据采集程序部署在上述物理节点中,每个物理节点均需部署此程序;
[0041]S103:配置分布式文件系统客户端程序(以下简称客户端)的物理位置:客户端是分布式文件系统面向应用程序的接口模块,所有部署有数据采集程序的物理节点均需部署客户端;
[0042]S104:配置分布式文件系统数据服务器的物理位置(以下简称数据服务器):数据服务器用来存储应用的数据,它与数据采集程序、客户端集成部署,所有部署数据采集程序和客户端的物理节点同时也部署数据服务器;
[0043]S105:配置分布式文件系统元数据服务器的物理位置:元数据服务器负责分布式文件系统中所有元数据操作,是分布式文件系统的控制中心;元数据服务器可部署于集群中任意物理节点(具有网络访问权限的计算机),不要求必须与其它模块集成部署,其它模块可通过网络访问元数据服务器;
[0044]S2:系统初始化,步骤如下:
[0045]S201:数据采集程序初始化:开始接收来自数据采集设备的数据;数据采集设备可能是高清摄像头等,它们具有实时数据采集、数据量较大和数据必须持久化等特点;
[0046]S202:客户端初始化:客户端启动时,获取所在物理节点的唯一标识NodelD,同时与元数据服务器建立通信,获取必要的文件系统元数据信息,依据这些信息将分布式文件系统挂载至某个本地目录;所有由数据采集程序发起的数据读写将通过该本地目录进行,操作方式与节点的本地文件系统方式一致;
[0047]S203:数据服务器初始化:数据服务器启动时,首先获取所在物理节点的唯一标识NodelD,同时初始化所有自身所管理的存储资源:磁盘,计算磁盘的总容量和可用容量,并进行汇总;随后建立与元数据服务器之间的通信,将存储资源信息连同NodeID报告给元数据服务器,随后进入服务状态,等待来自客户端和元数据服务器的数据访问请求;在之后的运行过程中,数据服务器会周期性汇总本节点存储资源信息,并上报给元数据服务器;
[0048]S204:元数据服务器初始化:元数据服务器启动后,从本地存储设备上加载必要的元数据信息,随后等待来自客户端和数据服务器的状态初始化请求,当获取到来自不同数据服务器的状态报告请求后,建立数据服务器列表,该列表记录所有数据服务器的信息,包括:所在物理节点标识(NodeID),总容量,可用容量,状态等;随后客户端会在数据读写时请求该数据服务器列表;
[0049]S3:数据采集程序通过分布式文件系统客户端写入文件数据,其步骤如下:
[0050]S301:完成初始化操作以后,数据采集程序开始从外部设备上采集数据,所采集到的数据以文件的形式写入分布式文件系统,即,数据采集程序向分布式文件系统客户端发起写数据的请求;
[0051]S302:客户端程序接收到写请求后,首先将用户的写操作包装成一个面向元数据服务器的创建文件请求,并通过网络发送该请求;在发送请求前,客户端需要检查自身是否拥有一个当前有效的数据服务器列表,若没有,则向服务器请求获取最新的数据服务器列表;
[0052]S303:元数据服务器接收到来自客户端的创建文件的请求后,首先在系统后台为客户端所请求的文件增加一份元数据信息,其中包括客户端ID、文件的绝对路径、文件包含的数据块个数、各个文件块的唯一标识ObjectID、哈希值、容量和物理位置,以及整个文件的访问权限列表;在初始状态时,客户端ID设置成当前客户端,文件版本号设置为1,其余各项暂时为空,此后,再将文件创建成功的消息返回客户端,然后再根据客户端所发送的数据服务器列表更新标记,选择是否在响应中附加所有活动的数据服务器列表;
[0053]S304:客户端接收到元数据服务器的响应后,首先更新本地的数据服务器列表,然后再将数据采集程序所请求的写操作包装成一个新的写请求,在数据服务器列表中根据本节点NodeID查询具有相同NodeID的数据服务器,如果存在NodeID相同的数据服务器,且该服务器的状态为“可写”,则将该写请求发送至该数据服务器,否则在当前列表中随机选择一个可写的数据服务器,然后向选中的数据服务器中发送创建新文件的请求;
[0054]S305:数据服务器接收到来自客户端的创建文件请求后,按照如下步骤进行处理:
[0055]S3051:数据服务器向元数据服务器发起验证请求,确认当前客户端已将当前新建文件的请求发送至元数据服务器端,并得到了元数据服务器的许可;
[0056]S3052:验证成功后,数据服务器在所管理的存储资源中选择一组具有RAID机制的磁盘阵列,然后在该磁盘阵列中创建新文件,并将此文件的句柄返回给客户端;
[0057]S306:客户端在接收到文件的句柄后,将该句柄返回给数据采集程序,然后再按照以下步骤处理:
[0058]S3061:数据采集程序直接通过SCSI总线向存储设备,即磁盘阵列中写入数据;
[0059]S3062:数据服务器在后台检测步骤(3.6.2)中所写入的数据量,待写入的数据量达到一个预设值,或检测到本次写操作完成后,数据服务器向元数据服务器发起更新元数据的请求,将已写入的数据看成一个数据块,并赋予唯一的对象标识Ob jectID,并计算该数据块的哈希值,最后将数据块的ObjectID、物理位置,以及数据块大小和哈希值发送给元数据服务器;
[0060]S3063:元数据服务器更新元数据中的文件块数量、各文件块的ObjectID、物理位置和哈希值等信息,更新完毕后向数据服务器返回元数据信息更新成功的响应;
[0061]S3064:数据服务器向数据采集程序返回写操作成功的响应;
[0062]S307:数据采集程序的本次写操作完成如果数据采集程序还有后续面向该文件的写操作,则重复步骤(3.5)到步骤(3.6);
[0063]S308:数据采集程序完成所有文件的数据写操作后
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1