CN109815048B - 数据读取方法、装置及设备 - Google Patents

数据读取方法、装置及设备 Download PDF

Info

Publication number
CN109815048B
CN109815048B CN201910106492.5A CN201910106492A CN109815048B CN 109815048 B CN109815048 B CN 109815048B CN 201910106492 A CN201910106492 A CN 201910106492A CN 109815048 B CN109815048 B CN 109815048B
Authority
CN
China
Prior art keywords
time delay
disks
disk
data
reading time
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
CN201910106492.5A
Other languages
English (en)
Other versions
CN109815048A (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.)
New H3C Technologies Co Ltd Chengdu Branch
Original Assignee
New H3C Technologies Co Ltd Chengdu Branch
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 New H3C Technologies Co Ltd Chengdu Branch filed Critical New H3C Technologies Co Ltd Chengdu Branch
Priority to CN201910106492.5A priority Critical patent/CN109815048B/zh
Publication of CN109815048A publication Critical patent/CN109815048A/zh
Application granted granted Critical
Publication of CN109815048B publication Critical patent/CN109815048B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

数据读取方法、装置及设备
技术领域
本公开涉及通信技术领域,尤其是涉及一种数据读取方法、装置及设备。
背景技术
纠删码技术是一种存储系统为保证数据持久性而经常采用的技术。其主要是将数据分割成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在存储集群内部同步所有可用磁盘的时延数据外,各存储节点也可自行将本地的磁盘的读取时延数据发送给其他的存储节点。
这样,各个存储节点的全局磁盘读取时延数据包括磁盘a1~a9、磁盘b1~b9、磁盘c1~c9、磁盘d1~d9共36块磁盘的读取时延。
存储节点a生成存储集群的全局磁盘读取时延数据,然后存储节点a从全局磁盘读取时延数据中获取待读取数据关联的多个目标磁盘的读取时延。假设待读取数据基于(4,2)的纠删码机制存储于存储集群,也即,待读取数据分割为4+2个数据分片,也即,待读取数据对应4个原始数据分片和2个冗余数据分片。数据分片分别存储于4+2个目标磁盘中。假设待读取数据的4个原始数据分片分别存储于磁盘a5、b1、c5、d2中,2个冗余数据分片分别存储于磁盘a3和d9中。磁盘a5、b1、c5、d2、a3和d9均为与待读取数据关联的目标磁盘。
存储节点a可从全局磁盘读取时延数据中获取磁盘a5、b1、c5、d2、a3和d9的读取时延,按照原始数据分片的数目找出读取时延最小的4个磁盘。如果读取时延最小的4个磁盘均为存储原始数据分片的磁盘,诸如为磁盘a5、b1、c5、d2,则向磁盘a5、b1、c5、d2分别发送读取命令。如果读取时延最小的4个磁盘为存储原始数据分片的两个磁盘a5和b1,以及存储冗余数据分片的两个磁盘a3和d9,则向磁盘a5、b1、a3和d9分别发送读取命令。这种方式,即便目标磁盘中出现一个或两个无法读取数据或读取数据时延较长的问题盘(故障盘或老化盘),无论问题盘是存储原始数据分片的磁盘还是存储冗余数据分片的磁盘,由于其读取时延长于其它磁盘,存储节点a仅从读取时延最小的4个磁盘中读取数据分片即可,不会再受到问题盘的延误。如果确定本设备为存储集群的主用设备,主用设备可以根据全局磁盘读取时延数据筛选出异常磁盘或异常节点,以便对筛选出的异常磁盘或异常节点做进一步处理,诸如将异常磁盘/异常节点采取隔离操作或者降级使用。本申请对存储节点a以及其他存储节点b-d按照原始数据分片数目选择读取时延最短的硬盘的方法不做限定。
图2中,作为主用设备的存储节点c还进一步根据全局磁盘读取时延数据找出存储集群中的异常磁盘,并同步到其他存储节点。作为主用设备的存储节点c确定异常磁盘的方法如图3所示,主要包括如下步骤:
步骤S301,从存储集群上一周期的所有可用磁盘中,按照预设可靠磁盘个数选择读取时延最小的磁盘为可靠磁盘。
步骤S302,计算这些可靠磁盘的读取时延平均值作为可疑磁盘阈值;
步骤S303,从上一周期内集群的可靠磁盘之外的磁盘中,选择可疑磁盘阈值的第一设定倍数以上的各读取时延对应的磁盘为可疑磁盘;
步骤S304,将连续预设个数的周期被标识为可疑磁盘的磁盘确定为异常磁盘;
步骤S305,向存储集群的其他存储节点通知异常磁盘。
存储节点c可采用上述存储节点的方法,按照预设可靠磁盘个数选择多个读取时延最小的磁盘。当存储节点c对磁盘的读取时延进行排序时,既可按照上一周期的读取时延对存储集群中的可用的磁盘排序。排序方式可以为由小到大排序,也可以为由大到小排序,在此不进行限制。
存储节点c从最小读取时延的磁盘开始选取预设数量的磁盘,将选取的磁盘确定为可靠磁盘。在一种具体的实施方式中,预设数量可以是存储集群中的磁盘总量与预设第一占比的乘积。预设第一占比可灵活设置,诸如设置为90%。以所有磁盘按照时延从小到大进行排序为例,可以选取排在前90%的磁盘作为可靠磁盘。
存储节点c对于除可靠磁盘之外的其它磁盘,将读取时延大于或等于(可疑磁盘筛选阈值以上)可疑磁盘筛选阈值的第一设定倍数的磁盘标识为可疑磁盘。标识的形式可以根据需求而灵活设置,诸如设置“1”为磁盘可疑标识,“0”为磁盘正常标识。其中,第一设定倍数可以为1倍、1.5倍、2倍等,可以根据实际需求而设定,在此不进行限定。
存储节点c可从上一周期开始之前的连续10个周期中,某个磁盘被连续标记为可疑盘,则确定该磁盘为异常磁盘。
在确定出异常磁盘之后,向其他存储节点通知异常磁盘。此外,还可以向指定终端发送异常磁盘告警,诸如向存储集群中预设的管理节点发送告警信息,该告警信息可以包含有异常磁盘的标识以及异常磁盘的读取时延等,还可以包含异常磁盘的位置等具体信息,以便对该异常磁盘做进一步处理,诸如将异常磁盘采取隔离操作或者降级使用。此外,还可以通过诸如邮箱/短信等通信方式将告警信息发送给管理员。
为便于理解,以下结合图4给出筛选异常磁盘的具体示例:
步骤S401:将存储集群中的36块磁盘a1~d9按照上一周期检测得到的读取时延由小到大排序。
步骤S402:选取排序的前90%的磁盘,也即选取前32块磁盘作为可靠磁盘。假设排在最后的4块磁盘分别为a1、b6、c5和d3。
步骤S403:求取32块可靠磁盘的读取时延的平均值,得到平均值为15ms,令可疑磁盘阈值为15ms。
步骤S404,判断最后的4块磁盘a1、b6、c5和d3的读取时延是否大于30ms(也即,是否大于可疑磁盘阈值的二倍),将大于30ms的磁盘标识为可疑磁盘。假设磁盘a1、b6、c5和d3的读取时延分别为19ms、21ms、35ms、32ms,则将磁盘c5和d3标识为可疑磁盘。
步骤S405,判断磁盘c5和d3是否在前10个周期均连续被标识为可疑磁盘,假设磁盘c5是前10个周期均连续被标识为可疑磁盘,而磁盘d3只有在上一周期标识为可疑磁盘,其余周期均为可靠磁盘,则将连续被标识为可疑磁盘的c5确定为异常磁盘。
步骤S406,将磁盘c5为异常磁盘的消息通知给其他存储节点。如,作为主用设备的存储节点c可以将磁盘c5为异常磁盘的消息通知给存储节点a、b、d等,之后可对磁盘c5执行隔离或降级等操作。
此外,本实施例还提供了一种异常节点的筛选方式,具体可参照如下:
步骤一:筛选存储集群在上一周期是否有可疑节点。在一些实施方式中,可以将存储节点包含的磁盘的读取时延的平均值大于预设阈值的节点直接确定为可疑节点。在另一些实施方式中,可疑节点的筛选方式可参照如下步骤:
(1)计算上一周期的每个存储节点包含的硬盘的读取时延的平均值,作为上一周期的每个存储节点的节点读取时延;(2)将上一周期的节点读取时延按照从高到低进行排序;(3)从上一周期的最高节点读取时延开始,每次选择一个节点读取时延,根据被选的节点读取时延以外的其他节点读取时延计算平均值作为被选的节点的筛选阈值;(4)被选的节点读取时延大于或等于被选的节点的筛选阈值的第二设定倍数时,将被选的节点读取时延对应的存储节点筛选为可疑节点;当被选的节点读取时延小于被选的节点的筛选阈值时,停止筛选存储集群在上一周期的可疑节点。其中,第二设定倍数可以为1倍、1.5倍、2倍等,可以根据实际需求而设定,在此不进行限定。
步骤二:筛选出上一周期的一个以上可疑节点时,统计上一周期的每个可疑节点被连续筛选为可疑节点的次数。
步骤三:将上一周期内,被连续筛选为可疑节点的次数超出异常节点阈值的可疑节点标识为异常节点。
在筛选得到异常节点之后,主用设备可以向其他每个存储节点通知每个异常节点。
为便于理解,以下给出筛选异常节点的具体示例:
步骤一:基于上一周期的节点存储时延,从存储节点a~d中筛选可疑节点。
诸如,统计上一周期的每个存储节点包含的硬盘的读取时延的平均值,假设:存储节点a中硬盘a1~a9的读取时延的平均值为12ms,则将12ms作为存储节点a的节点读取时延;存储节点b中硬盘b1~b9的读取时延的平均值为14ms,则将14ms作为存储节点b的节点读取时延;存储节点c中硬盘c1~c9的读取时延的平均值为25ms,则将25ms作为存储节点c的节点读取时延;存储节点d中硬盘d1~d9的读取时延的平均值为10ms,则将10ms作为存储节点d的节点读取时延。
然后,将存储节点a~d的节点读取时延按照由高到低进行排序,排序结果为:存储节点c的读取时延25ms>存储节点b的读取时延14ms>存储节点a的读取时延12ms>存储节点d的读取时延10ms。
之后,从存储节点c开始,计算存储节点b的读取时延14ms、存储节点a的读取时延12ms和存储节点d的读取时延10ms的平均值,得到平均值为12ms,将12ms作为存储节点c的筛选阈值。
假设前述第二设定倍数为2倍,由于存储节点c的读取时延25ms大于24ms(12ms的2倍),因此将存储节点c筛选为可疑节点。
筛选出存储节点c后,再从存储节点b开始,计算存储节点a的读取时延12ms和存储节点d的读取时延10ms的平均值,得到平均值为11ms,将11ms作为存储节点b的筛选阈值。由于存储节点b的读取时延14ms小于22ms(11ms的2倍),因此将存储节点b并非可疑节点,此时停止筛选存储集群在上一周期的可疑节点,也即不再判断存储节点a和d,认为存储节点a和d并非可疑节点。
步骤二:在筛选出存储节点c在上一周期为可疑节点之后,统计上一周期的存储节点c被连续筛选为可疑节点的次数。
步骤三:假设存储节点c被连续筛选为可疑节点的次数为11次,超出了异常节点阈值10次,则将存储节点c标识为异常节点。
以主用设备对应存储节点a为例,存储节点a可以向存储节点b、c、d发布存储节点c为异常节点的消息。综上所述,本实施例提供的数据读取方法,可以有效降低纠删码配置下的数据读取时延,而且也有助于提升带宽利用率。此外,采用上述异常磁盘/节点的筛选方式,能够较为可靠地发现异常磁盘/异常节点,有助于及时采取相应的管理措施,提升存储集群的性能。
对应于于本公开实施例提供的前述数据读取方法,本实施例还提供了一种存储集群中的数据读取设备,参见图5所示的一种数据读取设备的结构示意图,包括:处理器50、存储器51、总线52和通信接口53,处理器50、通信接口53和存储器51通过总线52连接;处理器50用于执行存储器31中存储的可执行模块,例如计算机程序。如图5所示,存储器51中具体示意出如下可执行模块:
全局时延获取模块510,用于生成存储集群的全局磁盘读取时延数据;
磁盘时延获取模块512,用于从全局磁盘读取时延数据中获取待读取数据关联的多个目标磁盘的读取时延;待读取数据基于纠删码机制存储于存储集群;
磁盘选取模块514,用于从多个目标磁盘中选取N个最小读取时延的目标磁盘;其中,N等于待读取数据的原始数据分片的总数;
读取命令发送模块516,用于向被选取的每个目标磁盘发送读取命令。
处理器50通过执行存储器51中存储的可执行模块,无需读取全部的目标磁盘,而是根据读取时延选取与待读取数据的原始数据分片的总数等同的目标磁盘,并仅从选取的目标磁盘中读取数据分片。这种方式可使数据读取设备有效降低纠删码配置下的数据读取时延。
在一些实施方式中,全局时延获取模块510进一步用于:周期性监测本地磁盘的读取时延数据;接收其它存储节点的磁盘的读取时延数据;将本地磁盘的读取时延数据和其它存储节点的磁盘的读取时延数据组合形成存储集群的全局磁盘读取时延数据。
参见图6所示的一种数据读取设备的结构示意图,该设备可以作为存储集群中的主用设备,包括:处理器60、存储器61、总线62和通信接口63,处理器60、通信接口63和存储器61通过总线62连接;处理器60用于执行存储器61中存储的可执行模块,例如计算机程序。如图6所示,存储器61中除了示意出全局时延获取模块610、磁盘时延获取模块612、磁盘选取模块614、读取命令发送模块616之外,还示意出异常磁盘确定模块618和异常节点确定模块620。其中,
异常磁盘确定模块618用于:
确定本设备为存储集群的主用设备;
从存储集群上一周期的所有可用磁盘中,按照预设可靠磁盘个数选择读取时延最小的磁盘为可靠磁盘;
计算这些可靠磁盘的读取时延平均值作为可疑磁盘阈值;
从上一周期内集群的可靠磁盘之外的磁盘中,选择可疑磁盘阈值以上的各读取时延对应的磁盘为可疑磁盘;
将连续预设个数的周期被标识为可疑磁盘的磁盘确定为异常磁盘;
向存储集群的其他存储节点通知异常磁盘。
异常节点确定模块620用于:
筛选存储集群在上一周期是否有可疑节点;
筛选出上一周期的一个以上可疑节点时,统计上一周期的每个可疑节点被连续筛选为可疑节点的次数;
将上一周期内,被连续筛选为可疑节点的次数超出异常节点阈值的可疑节点标识为异常节点;
向其他每个存储节点通知每个异常节点。
异常节点确定模块620进一步用于:计算上一周期的每个存储节点包含的硬盘的读取时延的平均值,作为上一周期的每个存储节点的节点读取时延;
将上一周期的节点读取时延按照从高到低进行排序;
从上一周期的最高节点读取时延开始,每次选择一个节点读取时延,根据被选的节点读取时延以外的其他节点读取时延计算平均值作为被选的节点的筛选阈值;被选的节点读取时延大于或等于被选的节点的筛选阈值的第二设定倍数时,将被选的节点读取时延对应的存储节点筛选为可疑节点;当被选的节点读取时延小于被选的节点的筛选阈值的第二设定倍数时,停止筛选存储集群在上一周期的可疑节点。
通过上述方式,可以根据全局磁盘读取时延数据筛选出异常磁盘或异常节点,以便对筛选出的异常磁盘或异常节点做进一步处理,诸如将异常磁盘/异常节点采取隔离操作或者降级使用。
本实施例所提供的设备,其实现原理及产生的技术效果和前述实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
在具体实施时,图5与图6中的存储器可能包含磁盘存储器。通过至少一个通信接口(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3与图4中均仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器用于存储程序,所述处理器在接收到执行指令后,执行所述程序,前述本申请任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器中,或者由处理器实现。
处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
本公开实施方式还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现本公开实施例提供的上述数据读取方法。
另外,在本公开各个实施方式中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施方式所述方法的全部或部分步骤。最后应说明的是:以上所述实施方式,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施方式对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施方式所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施方式技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (9)

1.一种数据读取方法,其特征在于,所述方法包括:
生成存储集群的全局磁盘读取时延数据;
从所述全局磁盘读取时延数据中获取待读取数据关联的多个目标磁盘的读取时延;所述待读取数据基于纠删码机制存储于所述存储集群;
从多个所述目标磁盘中选取N个最小读取时延的目标磁盘;其中,N等于所述待读取数据的原始数据分片的总数;
向被选取的每个所述目标磁盘发送读取命令;
所述方法还包括:
确定本设备为所述存储集群的主用设备;
从所述存储集群上一周期的所有可用磁盘中,按照预设可靠磁盘个数选择读取时延最小的磁盘为可靠磁盘;
计算这些所述可靠磁盘的读取时延的平均值作为可疑磁盘阈值;
从所述上一周期内所述集群的可靠磁盘之外的磁盘中,选择所述可疑磁盘阈值的第一设定倍数以上的各读取时延对应的磁盘为可疑磁盘;
将连续预设个数的周期被标识为可疑磁盘的磁盘确定为异常磁盘;
向所述存储集群的其他存储节点通知所述异常磁盘。
2.根据权利要求1所述的方法,其特征在于,生成存储集群的全局磁盘读取时延数据的步骤,包括:
周期性监测本地磁盘的读取时延数据;
接收其它存储节点的磁盘的读取时延数据;
将所述本地磁盘的读取时延数据和其它存储节点的磁盘的读取时延数据组合形成存储集群的全局磁盘读取时延数据。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
筛选所述存储集群在上一周期是否有可疑节点;
筛选出所述上一周期的一个以上可疑节点时,统计所述上一周期的每个可疑节点被连续筛选为可疑节点的次数;
将所述上一周期内,被连续筛选为可疑节点的次数超出异常节点阈值的可疑节点标识为异常节点;
向其他每个所述存储节点通知每个所述异常节点。
4.根据权利要求3所述的方法,其特征在于,筛选所述存储集群在上一周期是否有可疑节点包括:计算所述上一周期的每个所述存储节点包含的硬盘的读取时延的平均值,作为所述上一周期的每个所述存储节点的节点读取时延;
将所述上一周期的节点读取时延按照从高到低进行排序;
从所述上一周期的最高节点读取时延开始,每次选择一个节点读取时延,根据被选的节点读取时延以外的其他节点读取时延计算平均值作为被选的节点的筛选阈值;被选的节点读取时延大于或等于被选的节点的筛选阈值的第二设定倍数时,将被选的节点读取时延对应的存储节点筛选为可疑节点;
当被选的节点读取时延小于被选的节点的筛选阈值的第二设定倍数时,停止筛选所述存储集群在上一周期的可疑节点。
5.一种数据读取装置,其特征在于,所述装置包括:
全局时延获取模块,用于生成存储集群的全局磁盘读取时延数据;
磁盘时延获取模块,用于从所述全局磁盘读取时延数据中获取待读取数据关联的多个目标磁盘的读取时延;所述待读取数据基于纠删码机制存储于所述存储集群;
磁盘选取模块,用于从多个所述目标磁盘中选取N个最小读取时延的目标磁盘;其中,N等于所述待读取数据的原始数据分片的总数;
读取命令发送模块,用于向被选取的每个所述目标磁盘发送读取命令;
所述装置还包括异常磁盘确定模块,用于:
确定本设备为所述存储集群的主用设备;
从所述存储集群上一周期的所有可用磁盘中,按照预设可靠磁盘个数选择读取时延最小的磁盘为可靠磁盘;
计算这些所述可靠磁盘的读取时延的平均值作为可疑磁盘阈值;
从所述上一周期内所述集群的可靠磁盘之外的磁盘中,选择所述可疑磁盘阈值以上的各读取时延对应的磁盘为可疑磁盘;
将连续预设个数的周期被标识为可疑磁盘的磁盘确定为异常磁盘;
向所述存储集群的其他存储节点通知所述异常磁盘。
6.根据权利要求5所述的装置,其特征在于,所述全局时延获取模块用于:
周期性监测本地磁盘的读取时延数据;
接收其它存储节点的磁盘的读取时延数据;
将所述本地磁盘的读取时延数据和其它存储节点的磁盘的读取时延数据组合形成存储集群的全局磁盘读取时延数据。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括异常节点确定模块,用于:
筛选所述存储集群在上一周期是否有可疑节点;
筛选出所述上一周期的一个以上可疑节点时,统计所述上一周期的每个可疑节点被连续筛选为可疑节点的次数;
将所述上一周期内,被连续筛选为可疑节点的次数超出异常节点阈值的可疑节点标识为异常节点;
向其他每个所述存储节点通知每个所述异常节点。
8.一种数据读取设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1至4任一项所述的方法。
9.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1至4任一项所述的方法。
CN201910106492.5A 2019-01-31 2019-01-31 数据读取方法、装置及设备 Active CN109815048B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910106492.5A CN109815048B (zh) 2019-01-31 2019-01-31 数据读取方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910106492.5A CN109815048B (zh) 2019-01-31 2019-01-31 数据读取方法、装置及设备

Publications (2)

Publication Number Publication Date
CN109815048A CN109815048A (zh) 2019-05-28
CN109815048B true CN109815048B (zh) 2022-11-08

Family

ID=66605231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910106492.5A Active CN109815048B (zh) 2019-01-31 2019-01-31 数据读取方法、装置及设备

Country Status (1)

Country Link
CN (1) CN109815048B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760172A (zh) * 2020-06-04 2021-12-07 杭州海康威视数字技术股份有限公司 一种分片分配方法、装置及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407051A (zh) * 2015-07-31 2017-02-15 华为技术有限公司 一种检测慢盘的方法及装置
CN107608821A (zh) * 2017-09-29 2018-01-19 郑州云海信息技术有限公司 一种基于纠删码的数据读取方法、装置、设备
CN108664346A (zh) * 2017-03-27 2018-10-16 中国移动通信集团福建有限公司 分布式存储系统的节点异常的定位方法、装置和系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102681791B (zh) * 2012-04-13 2015-04-15 华中科技大学 一种集群存储系统的节能存储方法
CN103176865B (zh) * 2013-03-12 2015-05-20 华中科技大学 一种纠删码存储中负载感知的读优化方法
US9021297B1 (en) * 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
CN106502576B (zh) * 2015-09-06 2020-06-23 中兴通讯股份有限公司 迁移策略调整方法及装置
US10409672B2 (en) * 2016-11-16 2019-09-10 SK Hynix Inc. Media quality aware ECC decoding method selection to reduce data access latency
US10416897B2 (en) * 2017-03-27 2019-09-17 SK Hynix Inc. Memory system with latency distribution optimization and an operating method thereof
CN109271360A (zh) * 2018-08-03 2019-01-25 北京城市网邻信息技术有限公司 分布式对象存储数据冗余方法、装置、设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407051A (zh) * 2015-07-31 2017-02-15 华为技术有限公司 一种检测慢盘的方法及装置
CN108664346A (zh) * 2017-03-27 2018-10-16 中国移动通信集团福建有限公司 分布式存储系统的节点异常的定位方法、装置和系统
CN107608821A (zh) * 2017-09-29 2018-01-19 郑州云海信息技术有限公司 一种基于纠删码的数据读取方法、装置、设备

Also Published As

Publication number Publication date
CN109815048A (zh) 2019-05-28

Similar Documents

Publication Publication Date Title
CN109976935B (zh) 微服务架构、微服务节点及其熔断恢复方法、装置
JP4054616B2 (ja) 論理計算機システム、論理計算機システムの構成制御方法および論理計算機システムの構成制御プログラム
CN106230997B (zh) 一种资源调度方法和装置
CN108737132B (zh) 一种告警信息处理方法及装置
CN104753994A (zh) 基于集群服务器系统的数据同步方法及其装置
US11822437B2 (en) Dynamic hardware resource shadowing and memory error protection
US10432455B2 (en) Distributed processing system, data processing method, and control node device
CN107204875B (zh) 数据上报链路监测方法、装置、电子设备及存储介质
US7444450B2 (en) Method and system for detecting excessive interrupt processing for a processor
US9323596B2 (en) Network apparatus and method of monitoring processor
CN107508694B (zh) 一种集群内的节点管理方法及节点设备
CN110601945A (zh) 一种双冗余can总线通信系统和通信方法
CN109766198B (zh) 流式处理方法、装置、设备及计算机可读存储介质
CN111124829A (zh) 一种kubernetes计算节点状态监测方法
CN109815048B (zh) 数据读取方法、装置及设备
US8010834B2 (en) Failure information monitoring apparatus and failure information monitoring method
US11537432B2 (en) Dynamic data-plane resource shadowing
CN111385359A (zh) 对象网关的负载处理方法及装置
US10282245B1 (en) Root cause detection and monitoring for storage systems
US8976803B2 (en) Monitoring resource congestion in a network processor
JP7147635B2 (ja) 不正送信データ検知装置
US10223189B1 (en) Root cause detection and monitoring for storage systems
CN108964992B (zh) 一种节点故障检测方法、装置和计算机可读存储介质
CN107025148B (zh) 一种海量数据的处理方法和装置
CN108781170B (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