一种数据读取方法及系统与流程

文档序号:23349487发布日期:2020-12-18 16:53阅读:81来源:国知局
一种数据读取方法及系统与流程
本发明属于数据管理领域,尤其涉及一种数据读取方法及系统。
背景技术
:在分布式存储系统中,对所有磁盘进行统一管理,并将每个磁盘按照特定大小划分成若干个数据块,如按照4m的大小将每个磁盘划分成若干个数据块,对每个磁盘划分得到的若干个数据块从0开始编号,以区分各个数据块。将至少两个数据块组合在一起构成条带。在分布式系统中,读取一个条带的数据块中的数据时,根据数据块的健康标志进行读取,在数据块的健康标志为健康时,读取数据块中的数据。这种读取数据的方式存在读取成功率低、读取速度慢的问题。技术实现要素:有鉴于此,本发明的目的在于提供一种数据读取方法及系统,用于解决现有技术的读取数据方法中存在的读取速度慢的问题。技术方案如下:本发明提供一种数据读取方法,包括:生成文件读取请求后,确定该文件对应的条带,并遍历所述条带包括的全部数据块;所述数据块为将磁盘按照特定大小划分后得到的数据块,所述条带包括至少两个数据块;针对每个数据块,基于所述数据块的健康状态以及所述数据块所在磁盘的工作状态,确定所述数据块的有效标志是否为有效;若确定所述数据块的有效标志为有效,则从该数据块中读取数据。优选地,所述数据块所在磁盘的工作状态采用以下方法维护:判断在预设等待时间内是否接收到数据块所在磁盘发送的在线状态信息;若判断在预设等待时间内接收到数据块所在磁盘发送的在线状态信息,则设置所述数据块所在磁盘的工作状态为有效;若判断在预设等待时间内没有接收到数据块所在磁盘发送的在线状态信息,则设置所述数据块所在磁盘的工作状态为无效。优选地,所述接收到文件读取请求后,确定该文件对应的条带,并遍历所述条带包括的全部数据块包括:获取预先建立的文件与条带信息之间的对应关系;所述条带信息至少包括条带标识、对应条带标识的数据块列表,所述数据块列表中包括数据块标识、磁盘标识以及数据块健康状态;所述磁盘标识、数据块健康状态与所述数据块标识之间存在对应关系;根据所述文件,在文件与条带信息之间的对应关系中查找对应的条带信息;根据查找到的所述条带信息中的条带标识,确定与该文件对应的条带以及对应该条带的数据块列表;根据所述数据块列表中包括的数据块标识,确定条带包括的全部数据块。优选地,所述针对每个数据块,基于所述数据块的健康状态以及所述数据块所在磁盘的工作状态,确定所述数据块的有效标志是否为有效包括:针对每个数据块,确定与该数据块对应的数据块健康状态以及磁盘标识;根据所述磁盘标识获取与该磁盘标识对应的磁盘的工作状态;基于所述数据块健康状态以及所述磁盘的工作状态,确定所述数据块的有效标志是否为有效;其中,所述数据块健康状态为健康且所述磁盘的工作状态为有效时,所述数据块的有效标志为有效。优选地,所述若确定所述数据块的有效标志为有效,则从该数据块中读取数据包括:若确定所述数据块的有效标志为有效,根据所述磁盘标识获取与该磁盘标识对应的磁盘链接地址;根据所述磁盘链接地址,链接所述数据块所在的磁盘并读取数据块中的数据。本申请还提供了一种数据读取系统,包括:数据处理模块以及信息管理模块;所述数据处理模块,用于生成文件读取请求后,并从所述信息管理模块中确定该文件对应的条带,并遍历所述条带包括的全部数据块;所述数据块为将磁盘按照特定大小划分后得到的数据块,所述条带包括至少两个数据块;所述数据处理模块,还用于针对每个数据块,基于所述数据块的健康状态以及所述数据块所在磁盘的工作状态,确定所述数据块的有效标志是否为有效;若确定所述数据块的有效标志为有效,则从该数据块中读取数据。优选地,所述信息管理模块,还用于判断在预设等待时间内是否接收到数据块所在磁盘发送的在线状态信息;若判断在预设等待时间内接收到数据块所在磁盘发送的在线状态信息,则设置所述数据块所在磁盘的工作状态为有效;若判断在预设等待时间内没有接收到数据块所在磁盘发送的在线状态信息,则设置所述数据块所在磁盘的工作状态为无效。优选地,所述信息管理模块,还用于预先建立文件与条带信息之间的对应关系;所述条带信息至少包括条带标识、对应条带标识的数据块列表,所述数据块列表中包括数据块标识、磁盘标识以及数据块健康状态;所述磁盘标识、数据块健康状态与所述数据块标识之间存在对应关系;所述数据处理模块,还用于从所述信息管理模块中获取预先建立的文件与条带信息之间的对应关系;所述条带信息至少包括条带标识、对应条带标识的数据块列表,所述数据块列表中包括数据块标识、磁盘标识以及数据块健康状态;所述磁盘标识、数据块健康状态与所述数据块标识之间存在对应关系;根据所述文件,在文件与条带信息之间的对应关系中查找对应的条带信息;根据查找到的所述条带信息中的条带标识,确定与该文件对应的条带以及对应该条带的数据块列表;根据所述数据块列表中包括的数据块标识,确定条带包括的全部数据块。优选地,所述数据处理模块,还用于针对每个数据块,确定与该数据块对应的数据块健康状态以及磁盘标识;根据所述磁盘标识获取与该磁盘标识对应的磁盘的工作状态;基于所述数据块健康状态以及所述磁盘的工作状态,确定所述数据块的有效标志是否为有效;其中,所述数据块健康状态为健康且所述磁盘的工作状态为有效时,所述数据块的有效标志为有效。优选地,还包括磁盘服务模块;所述数据处理模块,还用于在确定所述数据块的有效标志为有效,根据所述磁盘标识获取与该磁盘标识对应的磁盘链接地址;根据所述磁盘链接地址,链接所述数据块所在磁盘的磁盘服务模块并读取数据。与现有技术相比,本发明提供的上述技术方案具有如下优点:从上述技术方案可知,本申请中生成文件读取请求后,确定该文件对应的条带以及条带包括的全部数据块,针对每个数据块,在从该数据块中读取数据前,先基于该数据块的健康状态以及数据块所在磁盘的工作状态,确定该数据块的有效标志是否为有效,只有确定该数据块的有效标志为有效,才说明可能能够从该数据块中成功读取到数据,进而才执行从该数据块中读取数据的操作,否则,说明不可能从该数据块中成功读取到数据,进而不执行从该数据块中读取数据的操作,节省了从不能成功读取到数据的数据块中读取数据的时间,提高了数据的读取效率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明公开的一种数据读取方法的流程图;图2是本发明公开的数据块所在磁盘的工作状态的维护方法的流程图;图3是本发明公开的另一种数据读取方法的流程图;图4是本发明公开的一种数据读取系统的结构示意图;图5是本发明公开的另一种数据读取系统的结构示意图。具体实施方式为了便于对本申请方案的理解,对技术名词进行相应解释:分布式文件系统(distributedfilesystem):文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统的设计基于客户机/服务器模式。一个典型的网络可能包括多个供多用户访问的服务器。磁盘:计算机的外部存储器中也采用了类似磁带的装置,比较常用的一种叫磁盘,将圆形的磁性盘片装在一个方的密封盒子里,这样做的目的是为了防止磁盘表面划伤,导致数据丢失。条带:分布式系统中,对服务器集群中的所有磁盘都进行了统一管理,每一个磁盘使用一个diskid进行标识。然后将这些磁盘进行分组,一般按照4+2/6+3/8+4等模式进行分组,如按照8+4进行分组,即8表示8个磁盘用来保存文件的原始数据,4表示4个磁盘用来存储编码数据。总共12个磁盘。将分布式系统中的所有磁盘都按照这样的方式分组,分成若干个组。然后将每一个组中的磁盘划分成条带。即:将每一磁盘按照一定大小划分为若干个数据块,如按照4m为一个数据块。磁盘中,除了管理信息和其他必要的信息外,剩余的磁盘空间全部划分成数据块。即假设一个磁盘有4t的存储空间,除了管理和其他必要的空间外,还剩余3t空间,那么这3t的空间就全部划分成数据空间。数据空间除以4m,所得到的块的个数就是这个磁盘所有数据块的个数。数据块从0开始编号,最大的编号是数据块的个数减1,每一个数据块编号也称为blockid。从一组磁盘中获取一个数据块组合在一起,就是4个数据块,这组数据块称为条带。一组磁盘中,包含有若干个这样的条带。数据块:数据块是一组按顺序连续排列在一起的几组记录,是主存储器与输入、输出设备或外存储器之间进行传输的一个数据单位。是数据的物理记录,与数据的逻辑记录(逻辑上有联系,在存储器上占有一组邻接单元的数据单位)之间的对应关系有3种方式:①一个块即为一个记录;②一个块包含若干个逻辑记录;③一个逻辑记录占有几个块。数据块的大小可以是固定的或是可变的,数据块与数据块之间有间隙。设计数据块大小,受到多方面因素的影响,包括输入、输出效率,存储空间代价以及计算机应用特点等。每一个数据块都有对应的一个索引节点,索引节点中保存有数据块的索引号,系统根据索引号来读取该数据块的数据。为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。具体地,如图1所示,本发明实施例提供的数据读取方法可以包括:s101、生成文件读取请求后,确定该文件对应的条带,并遍历所述条带包括的全部数据块;所述数据块为将磁盘按照特定大小划分后得到的数据块,所述条带包括至少两个数据块。一个文件存储在至少一个条带上,每个条带包括至少两个数据块,每个数据块存储了该文件的部分数据信息。数据块指的是将磁盘按照特定大小划分后得到的数据块,其中,每个条带包括的数据块所处的磁盘可以不同。生成文件读取请求后,确定该文件对应的条带,以及分别获取每个条带包括的全部数据块。s102、针对每个数据块,基于所述数据块的健康状态以及所述数据块所在磁盘的工作状态,确定所述数据块的有效标志是否为有效;若确定所述数据块的有效标志为有效,则执行步骤s103;若确定所述数据块的有效标志为无效,则退出流程。数据块的健康状态指的是该数据块对应的数据是否可读,若健康状态为1,则表示数据完整有效可以读取数据,若健康状态为0,则表示数据不可读。数据块所在磁盘的工作状态指的是磁盘是否在线,磁盘的工作状态为有效,则表示磁盘在线,磁盘的工作状态为无效,则表示磁盘不在线。针对每个数据块,该数据块的健康状态为1,表示这个数据块的数据有效,然后确定该数据块所在磁盘的工作状态,若该数据块所在磁盘的工作状态为有效,则确定所述数据块的有效标志为有效。若数据块的健康状态为1,但是该数据块所在磁盘的工作状态为无效,那么,确定所述数据块的有效标志为无效。该数据块的健康状态为0,确定该数据块所在磁盘的工作状态为有效,则确定所述数据块的有效标志为无效。该数据块的健康状态为0,确定该数据块所在磁盘的工作状态为无效,则确定所述数据块的有效标志为无效。可以理解的是,为了快速确定所述数据块的有效标志是否为有效,可以先确定该数据块的健康状态是否为1,只有在确定该数据块的健康状态为1的情况下,才执行确定该数据块所在磁盘的工作状态是否为有效的操作,而在确定该数据块的健康状态为0,则可以直接确定该数据块的有效标志为无效。s103、从该数据块中读取数据。只有在数据块的有效标志为有效的情况下,才执行从数据块中读取数据的操作。这样不仅可以避免数据块中的数据本身不可读而导致读取失败的问题产生,而且可以避免由于磁盘不在线导致不能成功链接到磁盘从而导致读取失败的问题产生,提高了读取成功率。而且节省了从不能成功读取到数据的数据块中读取数据的执行时间,缩短了读取到数据的时间,提高了数据的读取效率。通过上述技术方案,本实施例中生成文件读取请求后,确定该文件对应的条带以及条带包括的全部数据块,针对每个数据块,在从该数据块中读取数据前,先基于该数据块的健康状态以及数据块所在磁盘的工作状态,确定该数据块的有效标志是否为有效,只有确定该数据块的有效标志为有效,才说明可能能够从该数据块中成功读取到数据,进而才执行从该数据块中读取数据的操作,否则,说明不可能从该数据块中成功读取到数据,进而不执行从该数据块中读取数据的操作,节省了从不能成功读取到数据的数据块中读取数据的时间,提高了数据的读取效率。在实际应用过程中,本实施例中数据块的有效标志是随着数据块的健康状态以及数据块所在磁盘的工作状态的变化而变化的。数据块的健康状态是在将数据存储在构成该条带的数据块中时,就记录该数据块的健康状态。健康状态为1表示该数据块可以读取,健康状态为0表示该数据块不可以读取。而数据块所在磁盘的工作状态随着系统的运行情况而变化。下面详细介绍数据块所在磁盘的工作状态的维护方法。参见图2所示,可以包括以下步骤:s201、判断在预设等待时间内是否接收到数据块所在磁盘发送的在线状态信息;若判断在预设等待时间内接收到数据块所在磁盘发送的在线状态信息,则执行步骤s202;若判断在预设等待时间内没有接收到数据块所在磁盘发送的在线状态信息,则执行步骤s203。实际应用中,针对每个磁盘而言,该磁盘上线后每间隔一定时间发送一次在线状态信息。如磁盘上线后,每间隔10秒发送一次在线状态信息。判断在预设等待时间内是否接收到该磁盘发送的在线状态信息,其中,预设等待时间设置为大于磁盘发送在线状态信息的时间间隔。如设置预设等待时间为30秒。若在30秒内能接收到该磁盘发送的在线状态信息,则说明该磁盘处于在线状态,则将该磁盘的工作状态设置为有效。若30秒内没有接收到该磁盘发送的在线状态信息,则说明该磁盘已经掉线,则将该磁盘的工作状态设置为无效。s202、设置所述数据块所在磁盘的工作状态为有效;s203、设置所述数据块所在磁盘的工作状态为无效。在其他实施例中,设置磁盘的工作状态管理数据表以便于管理磁盘的工作状态。其中,数据表中至少包括磁盘标识、磁盘链接地址、磁盘工作状态以及更新时间。磁盘标识用于唯一标识磁盘;磁盘链接地址指的是从磁盘中划分的数据块中读取数据时,需要链接该磁盘的链接地址;磁盘工作状态指的是磁盘是否处于在线状态,磁盘处于在线状态则磁盘工作状态设置为1,磁盘处于离线状态则磁盘工作状态设置为0;更新时间指的是最后一次更新磁盘工作状态的时间。针对一个磁盘而言,该磁盘上线后每间隔10秒发送一次在线状态信息,其中,在线状态信息中至少包括该磁盘的磁盘标识。设置定时器,用于检测是否在预设等待时间内接收到该磁盘的在线状态信息。定时器的初始值设置为30秒,定时器的值随着时间持续减小,当定时器的值减小到0时,仍然没有接收到该磁盘发送的在线状态信息则确定超时,确定该磁盘掉线。在30秒内接收到该磁盘的在线状态信息后,在磁盘的工作状态管理数据表中查找是否存在与该在线状态信息中包括的磁盘标识相同的磁盘标识。若管理数据表中存在与该在线状态信息中包括的磁盘标识相同的磁盘标识,则将管理数据表中与该磁盘标识对应的磁盘在线状态设置为1,并将与该磁盘标识对应的更新时间设置为当前系统时间。并初始化定时器,即将定时器的值设置为初始值30秒。若管理数据表中不存在与该在线状态信息中包括的磁盘标识相同的磁盘标识,则将该在线状态信息中包括的磁盘标识添加至管理数据表中,并获取该磁盘标识对应磁盘的磁盘链接地址,将磁盘链接地址添加至管理数据表中对应的磁盘链接地址中,并将管理数据表中与该磁盘标识对应的磁盘在线状态设置为1,并将与该磁盘标识对应的更新时间设置为当前系统时间。并初始化定时器,即将定时器的值设置为初始值30秒。且针对管理数据表中每个磁盘标识对应的磁盘,若在30秒内没有接收到磁盘发送的在线状态信息,则确定该磁盘掉线,将标识该磁盘的磁盘标识对应的磁盘工作状态设置为0,并将与该磁盘标识对应的更新时间设置为当前系统时间。并初始化定时器,即将定时器的值设置为初始值30秒。磁盘掉线的原因包括交换机出现故障、磁盘所在的服务器出现宕机,磁盘对应的磁盘服务程序出现故障。本申请还公开了数据读取方法的又一实施例,参见图3所示,可以包括以下步骤:s301、生成文件读取请求后,获取预先建立的文件与条带信息之间的对应关系;所述条带信息至少包括条带标识、对应条带标识的数据块列表,所述数据块列表中包括数据块标识、磁盘标识以及数据块健康状态;所述磁盘标识、数据块健康状态与所述数据块标识之间存在对应关系。本实施例中,存储文件时建立文件与条带信息之间的对应关系。条带信息至少包括:条带标识、数据块列表。条带标识用于唯一确定条带,即一个条带对应一个条带标识。数据块列表中存储有与该条带标识对应的条带内包括的全部数据块的信息。数据块列表至少包括数据块标识、健康状态、所在磁盘的磁盘标识。数据块列表还可以包括数据块在磁盘中的块编号。以一个条带包括4个数据块为例,如表1所示,为该条带对应的数据块列表。表1数据块磁盘id数据块编号健康状态0id0块编号001id1块编号112id2块编号213id3块编号31表1中,第一列为数据块标识,第二列为数据块所在磁盘的磁盘标识,第三列为数据块在磁盘中的块编号,第四列为数据块的健康状态。其中,数据块0到数据块3是不同磁盘上的数据块,将组成一个条带的每个数据块分别取自不同的磁盘,保证了数据的安全性。每一个数据块对应一个磁盘标识。每一个数据块都对应自身所在磁盘上的块编号,块编号指的是数据块在其所处磁盘中全部数据块中的编号,用于区分一个磁盘中不同的数据块,并可以通过块编号以及数据块的大小确定该数据块在磁盘中存储数据的位置。每一个数据块在自身所在磁盘上存储的位置不一定是相同的,从而不同数据块的块编号可能不同。健康状态标识这个数据块存储的数据是否是可读的,若是可读的,该状态标识为1,否则为0。在生成文件读取请求后,获取预先建立的文件与条带信息之间的对应关系,以根据待读取文件查找存储该文件的条带,以及组成条带的全部数据块。s302、根据所述文件,在文件与条带信息之间的对应关系中查找对应的条带信息。在文件与条带信息之间的对应关系中,查找与该待读取文件对应的条带信息。条带信息包括条带标识以及数据块列表。s303、根据查找到的所述条带信息中的条带标识,确定与该文件对应的条带以及对应该条带的数据块列表。根据查找到的条带信息中包括的条带标识,可以确定分别与每个条带标识对应的条带,进而可以确定存储该文件的条带。且基于确定出的条带,可以确定分别与每个条带对应的数据块列表,针对每个条带确定出的数据块列表如表1所示,数据块列表中包括该条带包括的全部数据块的信息。其中,在实际应用中,需要读取一个文件时,可能需要分别从多个不同的条带中分别读取数据,在本实施例中根据条带索引依次实现从多个不同条带中读取数据。例如一个条带的存储空间是4m,能够存储4m的数据量,读取数据时设定的偏移量是0m,需要读取数据的大小为4m,通过0m除以条带的存储空间4m,确定出条带的索引值为0,即从索引值为0的条带中读取数据。而条带的索引值可以设置为与条带标识相同,即索引值为0的条带对应的就是条带标识为0的条带。条带的索引值还可以设置为与条带标识不同,即索引值为0的条带对应的可以是条带标识为a的条带。本实施例中对索引值与对应的条带标识的具体形式并不限定,只要能够根据索引值唯一确定出条带标识进而确定出对应的条带即可。s304、根据所述数据块列表中包括的数据块标识,确定条带包括的全部数据块。以一个条带为例,确定出该条带对应表1所示的数据块列表。数据块列表中包括的数据块标识为0、1、2、3,确定数据块标识0对应的数据块0,数据块标识1对应的数据块1,数据块标识2对应的数据块2,数据块标识3对应的数据块3。从而可以确定该条带包括数据块0、数据块1、数据块2、数据块3这四个数据块。s305、针对每个数据块,确定与该数据块对应的数据块健康状态以及磁盘标识。在表1中,数据块0对应的数据块健康状态为0,即数据块0中的数据不可读,数据块0对应的磁盘标识为id0,即对应磁盘0。数据块1对应的数据块健康状态为1,即数据块1中的数据可读,数据块1对应的磁盘标识为id1,即对应磁盘1。数据块2对应的数据块健康状态为1,即数据块2中的数据可读,数据块2对应的磁盘标识为id2,即对应磁盘2。数据块3对应的数据块健康状态为1,即数据块3中的数据可读,数据块3对应的磁盘标识为id3,即对应磁盘3。s306、根据所述磁盘标识获取与该磁盘标识对应的磁盘的工作状态。本实施例中,磁盘的工作状态可以采用图2所示的方法进行维护。根据磁盘标识获取与该磁盘标识对应的磁盘的工作状态的一种实现方式为:在预先设置的磁盘的工作状态管理数据表中,查找与该磁盘标识对应的磁盘标识。查找到管理数据表中存在与该磁盘标识对应的磁盘标识后,确定管理数据表中与该磁盘标识对应的磁盘工作状态。s307、基于所述数据块健康状态以及所述磁盘的工作状态,确定所述数据块的有效标志是否为有效;其中,所述数据块健康状态为健康且所述磁盘的工作状态为有效时,所述数据块的有效标志为有效。若确定所述数据块的有效标志为有效,则执行步骤s308,以实现数据读取;若确定所述数据块的有效标志为无效,则退出流程,并从该条带的其他数据块中进行数据恢复读取,其中,其他数据块可以是数据块的有效标志为有效的数据块或者是数据块的健康状态为1的数据块。实际应用中,将磁盘的工作状态为有效设置为逻辑1,将磁盘的工作状态为无效设置为逻辑0。数据块的健康状态为1表示该数据块可以读取,数据块的健康状态为0表示该数据块不可以读取。确定数据块的健康状态以及数据块所在磁盘的工作状态后,进行数据块的健康状态和数据块所在磁盘的工作状态之间的“与”计算,计算结果为数据块的有效标志。在数据块的健康状态为1,且数据块所在磁盘的工作状态为1的情况下,进行“与”计算,得到的数据块的有效标志为1,表征数据块的有效标志为有效。数据块的有效标志为0,表征数据块的有效标志为无效,包括三种情况,第一种情况是数据块的健康状态为0,而数据块所在磁盘的工作状态为1;第二种情况是数据块的健康状态为1,而数据块所在磁盘的工作状态为0;第三种情况是数据块的健康状态为0,且数据块所在磁盘的工作状态为0。数据块的健康状态为0,表示数据块本身存储的数据不完整或者无效,不可读,因此即使执行从该数据块读取数据也一定会读取数据失败,从而避免在数据块的健康状态为0的情况下执行从该数据块中读取数据的操作。数据块所在磁盘的工作状态为0,表示该数据块所在磁盘不在线,但在从数据块中读取时要根据磁盘链接地址成功链接该磁盘后,才能实现从磁盘划分到的数据块中读取数据,而在磁盘不在线的情况下即使根据磁盘链接地址链接磁盘也不会成功,从而不能成功链接到磁盘,导致不能从磁盘划分到的数据块中成功读取到数据,因此避免在数据块所在磁盘不在线的情况下执行从该数据块中读取数据的操作。s308、根据所述磁盘标识获取与该磁盘标识对应的磁盘链接地址。一种实现方式为,根据磁盘的工作状态管理数据表中存储的磁盘标识、磁盘链接地址之间的对应关系,根据磁盘标识确定与该磁盘标识对应的磁盘链接地址。s309、根据所述磁盘链接地址,链接所述数据块所在的磁盘并读取数据块中的数据。通过上述技术方案,本实施例中生成文件读取请求后,确定该文件对应的条带以及条带包括的全部数据块,针对每个数据块,在从该数据块中读取数据前,先基于该数据块的健康状态以及数据块所在磁盘的工作状态,确定该数据块的有效标志是否为有效,只有确定该数据块的有效标志为有效,才说明可能能够从该数据块中成功读取到数据,进而才执行从该数据块中读取数据的操作。否则,说明数据块本身存储的数据就不可读,或者说明数据块所在磁盘的工作状态为无效,而针对磁盘的工作状态为无效的情况,即使通过磁盘链接地址执行链接磁盘的操作,也不会链接成功,若链接失败还需要执行一定时间的等待以确定是否真的链接失败,从而读取数据的过程中浪费了大量时间。而本实施例中在磁盘的工作状态为无效的情况下,根本不执行从该磁盘的数据块中读取数据的操作,因此避免了链接失败导致的时间浪费的问题,减少了不必要的链接操作。对应上述实施例公开的数据读取方法,本实施例提供了一种数据读取系统,参见图4所示,该系统可以包括:数据处理模块401以及信息管理模块402。数据处理模块401,用于生成文件读取请求后,从信息管理模块402中确定该文件对应的条带,并遍历所述条带包括的全部数据块;所述数据块为将磁盘按照特定大小划分后得到的数据块,所述条带包括至少两个数据块;数据处理模块401,还用于针对每个数据块,基于所述数据块的健康状态以及所述数据块所在磁盘的工作状态,确定所述数据块的有效标志是否为有效;若确定所述数据块的有效标志为有效,则从该数据块中读取数据。通过上述技术方案,本实施例中生成文件读取请求后,确定该文件对应的条带以及条带包括的全部数据块,针对每个数据块,在从该数据块中读取数据前,先基于该数据块的健康状态以及数据块所在磁盘的工作状态,确定该数据块的有效标志是否为有效,只有确定该数据块的有效标志为有效,才说明可能能够从该数据块中成功读取到数据,进而才执行从该数据块中读取数据的操作,否则,说明不可能从该数据块中成功读取到数据,进而不执行从该数据块中读取数据的操作,节省了从不能成功读取到数据的数据块中读取数据的时间,提高了数据的读取效率。在图4所示系统的基础上,本实施例公开了另一种数据读取系统,参见图5所示,还包括:磁盘服务模块501。可选地,在信息管理模块402中建立了文件与条带信息之间的对应关系,所述条带信息至少包括条带标识、对应条带标识的数据块列表,所述数据块列表中包括数据块标识、磁盘标识以及数据块健康状态;所述磁盘标识、数据块健康状态与所述数据块标识之间存在对应关系。当然,在数据块列表中还可以包括数据块在磁盘上的块编号。可选地,信息管理模块402中还建立有磁盘的工作状态管理数据表。其中,工作状态管理数据表中至少包括磁盘标识、磁盘链接地址、磁盘工作状态以及更新时间。磁盘标识用于唯一标识磁盘;磁盘链接地址指的是其他模块需要连接该磁盘对应的磁盘服务模块501的链接地址,该磁盘链接地址为磁盘服务模块501上线后汇报给信息管理模块402的。磁盘工作状态的设置过程为:磁盘上线后,每间隔一定时间如10秒,向信息管理模块402汇报一次自身的在线状态信息;信息管理模块402判断在预设等待时间内是否接收到数据块所在磁盘发送的在线状态信息;若判断在预设等待时间内接收到数据块所在磁盘发送的在线状态信息,则设置所述数据块所在磁盘的工作状态为有效;若判断在预设等待时间内没有接收到数据块所在磁盘发送的在线状态信息,则设置所述数据块所在磁盘的工作状态为无效,实现对磁盘的工作状态的维护。更新时间指的是最后一次更新磁盘工作状态的时间。其中,信息管理模块402中设定一个定时器,用于检测在预设等待时间内是否接收到该磁盘的在线状态信息。定时器的初始值设置为30秒,定时器的值随着时间持续减小,当定时器的值减小到0时,仍然没有接收到该磁盘发送的在线状态信息则确定超时,确定该磁盘掉线。在30秒内接收到该磁盘的在线状态信息后,在磁盘的工作状态管理数据表中查找是否存在与该在线状态信息中包括的磁盘标识相同的磁盘标识。若管理数据表中存在与该在线状态信息中包括的磁盘标识相同的磁盘标识,则将管理数据表中与该磁盘标识对应的磁盘在线状态设置为1,并将与该磁盘标识对应的更新时间设置为当前系统时间。并初始化定时器,即将定时器的值设置为初始值30秒。若管理数据表中不存在与该在线状态信息中包括的磁盘标识相同的磁盘标识,则将该在线状态信息中包括的磁盘标识添加至管理数据表中,并获取该磁盘标识对应磁盘的磁盘链接地址,将磁盘链接地址添加至管理数据表中对应的磁盘链接地址中,并将管理数据表中与该磁盘标识对应的磁盘在线状态设置为1,并将与该磁盘标识对应的更新时间设置为当前系统时间。并初始化定时器,即将定时器的值设置为初始值30秒。当数据处理模块401需要读取一个文件时,从信息管理模块402中获取预先建立的文件与条带信息之间的对应关系;所述条带信息至少包括条带标识、对应条带标识的数据块列表,所述数据块列表中包括数据块标识、磁盘标识以及数据块健康状态;所述磁盘标识、数据块健康状态与所述数据块标识之间存在对应关系;根据所述文件,在文件与条带信息之间的对应关系中查找对应的条带信息;根据查找到的所述条带信息中的条带标识,确定与该文件对应的条带以及对应该条带的数据块列表;根据所述数据块列表中包括的数据块标识,确定条带包括的全部数据块。数据处理模块401,还用于针对每个数据块,确定与该数据块对应的数据块健康状态以及磁盘标识;根据所述磁盘标识获取与该磁盘标识对应的磁盘的工作状态;基于所述数据块健康状态以及所述磁盘的工作状态,确定所述数据块的有效标志是否为有效;其中,所述数据块健康状态为健康且所述磁盘的工作状态为有效时,所述数据块的有效标志为有效。并在确定所述数据块的有效标志为有效,根据所述磁盘标识获取与该磁盘标识对应的磁盘链接地址;根据所述磁盘链接地址,链接所述数据块所在磁盘的磁盘服务模块501并读取数据。对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1