数据读取方法、装置及设备制造方法及图纸

技术编号:21224448 阅读:45 留言:0更新日期:2019-05-29 05:12
本公开提供了一种数据读取方法、装置及设备,其中,该方法包括:生成存储集群的全局磁盘读取时延数据;从全局磁盘读取时延数据中获取待读取数据关联的多个目标磁盘的读取时延;待读取数据基于纠删码机制存储于存储集群;从多个目标磁盘中选取N个最小读取时延的目标磁盘;其中,N等于待读取数据的原始数据分片的总数;向被选取的每个目标磁盘发送读取命令。本公开能够有效降低纠删码配置下的数据读取时延。

Data Reading Method, Device and Equipment

This disclosure provides a data reading method, device and device, which includes: generating global disk read delay data of storage cluster; obtaining read delay of multiple target disks associated with read data from global disk read delay data; storing data to be read in storage cluster based on erasure code mechanism; selecting N minimum reads from multiple target disks. Target disk with fetch delay; where N equals the total number of raw data fragments to be read; and send read commands to each selected target disk. The present disclosure can effectively reduce the data reading delay under the erasure code configuration.

【技术实现步骤摘要】
数据读取方法、装置及设备
本公开涉及通信
,尤其是涉及一种数据读取方法、装置及设备。
技术介绍
纠删码技术是一种存储系统为保证数据持久性而经常采用的技术。其主要是将数据分割成N个原始数据分片,并按照算法生成M个冗余数据分片,从而形成(N,M)的纠删码配置。当N个原始数据分片的M个以下原始数据分片丢失时,从M个冗余数据分片中,选择丢失的原始数据分片的数量相应数量的冗余数据分片,进行数据重建。在存储集群中,同一个数据的原始数据分片和冗余数据分片存储在不同的磁盘上。但是,这些磁盘分布在不同的存储节点,当被读取的原始数据分片或冗余数据分片被存储于时延较长的磁盘或存储节点,导致纠删码配置下的数据读取时延也相应较长。
技术实现思路
有鉴于此,本公开的目的在于提供一种数据读取方法、装置及设备,能够有效降低纠删码配置下的数据读取时延。为了实现上述目的,本公开实施例采用的技术方案如下:第一方面,本公开实施例提供了一种数据读取方法,所述方法包括:生成存储集群的全局磁盘读取时延数据;从所述全局磁盘读取时延数据中获取待读取数据关联的多个目标磁盘的读取时延;所述待读取数据基于纠删码机制存储于所述存储集群;从多个所述目标磁盘中选取N个最小读取时延的目标磁盘;其中,N等于所述待读取数据的原始数据分片的总数;向被选取的每个所述目标磁盘发送读取命令。第二方面,本公开实施例还提供一种数据读取装置,所述装置包括:全局时延获取模块,用于生成存储集群的全局磁盘读取时延数据;磁盘时延获取模块,用于从所述全局磁盘读取时延数据中获取待读取数据关联的多个目标磁盘的读取时延;所述待读取数据基于纠删码机制存储于所述存储集群;磁盘选取模块,用于从多个所述目标磁盘中选取N个最小读取时延的目标磁盘;其中,N等于所述待读取数据的原始数据分片的总数;读取命令发送模块,用于向被选取的每个所述目标磁盘发送读取命令。第三方面,本公开实施例提供了一种数据读取设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现第一方面任一项所述的方法。第四方面,本公开实施例提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现第一方面任一项所述的方法。本公开实施例提供了一种数据读取方法、装置及设备,能够生成存储集群的全局磁盘读取时延数据,并从中获取待读取数据(基于纠删码机制存储于存储集群)关联的多个目标磁盘的读取时延,然后从多个目标磁盘中选取N个(等于待读取数据的原始数据分片的总数)最小读取时延的目标磁盘,从而向被选取的每个所述目标磁盘发送读取命令。这种数据读取方式无需读取全部的目标磁盘,而是根据读取时延选取与待读取数据的原始数据分片的总数等同的目标磁盘,并仅从选取的目标磁盘中读取数据分片。这种方式可有效降低纠删码配置下的数据读取时延。本公开实施例的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开实施例的上述技术即可得知。为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了本公开实施例所提供的一种数据读取方法流程图;图2示出了本公开实施例所提供的一种存储集群的结构示意图;图3示出了本公开实施例所提供的一种异常磁盘的确定方法流程图;图4示出了本公开实施例所提供的另一种异常磁盘的确定方法流程图;图5示出了本公开实施例所提供的一种数据读取设备的结构示意图;图6示出了本公开实施例所提供的另一种数据读取设备的结构示意图。具体实施方式为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合附图对本公开的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。参见图1所示的一种数据读取方法流程图,该方法可由存储集群中任一存储节点对应的设备执行,该方法包括如下步骤:步骤S102,生成存储集群的全局磁盘读取时延数据;步骤S104,从全局磁盘读取时延数据中获取待读取数据关联的多个目标磁盘的读取时延;其中,待读取数据基于纠删码机制存储于存储集群;步骤S106,从多个目标磁盘中选取N个最小读取时延的目标磁盘;其中,N等于待读取数据的原始数据分片的总数;步骤S108,向被选取的每个目标磁盘发送读取命令。本公开实施例提供的上述数据读取方法,无需读取全部的目标磁盘,而是根据读取时延选取与待读取数据的原始数据分片的总数等同的目标磁盘,并仅从选取的目标磁盘中读取数据分片。这种方式可有效降低纠删码配置下的数据读取时延。参见图2所示的一种存储集群的结构示意图,象征性示意出了4个存储节点,分别为存储节点a、存储节点b、存储节点c和存储节点d;其中存储节点c被选举为存储集群的主用设备。每个存储节点中都包含有多个磁盘,图2象征性示例出每个存储节点包含9个磁盘。应当注意的是,在实际应用中,存储集群的存储节点的数量和每个存储节点中所包含的磁盘的数量可以根据实际需求而灵活设置,不应当将图2视为限制。以存储节点a为例,存储节点a周期性监测本地磁盘的读取时延数据,也即,周期性检测本地磁盘a1~a9的读取时延。存储节点a周期性监测本地磁盘的读取时延数据,向本地磁盘a1~a9发送随机地址的读I/O,并记录这些I/O的时延。可以理解的是,磁盘又可称为块设备,具体可表现为线性地址,诸如,从地址0~65535。采用发送随机地址的方式,可使磁盘随机读取数据,有助于使磁盘的读取时延的监测结果更为准确。存储节点a发送检测到的本地磁盘a1~a9的读取时延到主用设备存储节点c。存储节点b、c、d各自周期性检测本地磁盘的方式与存储节点a相同。存储节点b、d同样发送检测到本地磁盘的读取时延到主用设备存储节点c。存储节点c将检测到的本地磁盘c1~c9读取时延、存储节点b发送的磁盘b1~b9以及存储节点d发送的磁盘d1~d9发送给存储节点a。存储节点a将本地磁盘的读取时延数据和存储节点b~d的磁盘的读取时延数据组合形成存储集群的全局磁盘读取时延数据。同样的,存储节点c将磁盘a1~a9、c1~c9、d1~d9的读取时延发送给存储节点b,存储节点b生成全局磁盘读取时延数据;存储节点c将磁盘a1~a9、b1~b9、c1~c9的读取时延发送给的存储节点d,存储节点d也生成全局磁盘读取时延数据;存储节点c根据收到的磁盘a1~a9、b1~b9、d1~d9生成全局磁盘读取时延数据。本实施例中,除了通过主用设备存储节点c在存储集群内部同步所有可用磁盘的时延数据外,各存储节点也可自行将本地的磁盘的读取时延数据发送给其他的存储节点。这样,各个存储节点的全局磁盘读取本文档来自技高网...

【技术保护点】
1.一种数据读取方法,其特征在于,所述方法包括:生成存储集群的全局磁盘读取时延数据;从所述全局磁盘读取时延数据中获取待读取数据关联的多个目标磁盘的读取时延;所述待读取数据基于纠删码机制存储于所述存储集群;从多个所述目标磁盘中选取N个最小读取时延的目标磁盘;其中,N等于所述待读取数据的原始数据分片的总数;向被选取的每个所述目标磁盘发送读取命令。

【技术特征摘要】
1.一种数据读取方法,其特征在于,所述方法包括:生成存储集群的全局磁盘读取时延数据;从所述全局磁盘读取时延数据中获取待读取数据关联的多个目标磁盘的读取时延;所述待读取数据基于纠删码机制存储于所述存储集群;从多个所述目标磁盘中选取N个最小读取时延的目标磁盘;其中,N等于所述待读取数据的原始数据分片的总数;向被选取的每个所述目标磁盘发送读取命令。2.根据权利要求1所述的方法,其特征在于,生成存储集群的全局磁盘读取时延数据的步骤,包括:周期性监测本地磁盘的读取时延数据;接收其它存储节点的磁盘的读取时延数据;将所述本地磁盘的读取时延数据和其它存储节点的磁盘的读取时延数据组合形成存储集群的全局磁盘读取时延数据。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:确定本设备为所述存储集群的主用设备;从所述存储集群上一周期的所有可用磁盘中,按照预设可靠磁盘个数选择读取时延最小的磁盘为可靠磁盘;计算这些所述可靠磁盘的读取时延的平均值作为可疑磁盘阈值;从所述上一周期内所述集群的可靠磁盘之外的磁盘中,选择所述可疑磁盘阈值的第一设定倍数以上的各读取时延对应的磁盘为可疑磁盘;将连续预设个数的周期被标识为可疑磁盘的磁盘确定为异常磁盘;向所述存储集群的其他存储节点通知所述异常磁盘。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:筛选所述存储集群在上一周期是否有可疑节点;筛选出所述上一周期的一个以上可疑节点时,统计所述上一周期的每个可疑节点被连续筛选为可疑节点的次数;将所述上一周期内,被连续筛选为可疑节点的次数超出异常节点阈值的可疑节点标识为异常节点;向其他每个所述存储节点通知每个所述异常节点。5.根据权利要求4所述的方法,其特征在于,筛选所述存储集群在上一周期是否有可疑节点包括:计算所述上一周期的每个所述存储节点包含的硬盘的读取时延的平均值,作为所述上一周期的每个所述存储节点的节点读取时延;将所述上一周期的节点读取时延按照从高到低进行排序;从所述上一周期的最高节点读取时延开始,每次选择一个节点读取时延,根据被选的节点读取时延以外的其他节点读取时延计算平均值作为被选的节点的筛选阈值;被选的节点读取时延大于或等于被选的节点的筛选阈值的第二设定倍数时,将被选的节点读取时延对应的存储节点筛选为可疑节点;当被选的节点读取时延小于被选的节点的筛...

【专利技术属性】
技术研发人员:张天洁
申请(专利权)人:新华三技术有限公司成都分公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1