CN109815048A - 数据读取方法、装置及设备 - Google Patents
数据读取方法、装置及设备 Download PDFInfo
- Publication number
- CN109815048A CN109815048A CN201910106492.5A CN201910106492A CN109815048A CN 109815048 A CN109815048 A CN 109815048A CN 201910106492 A CN201910106492 A CN 201910106492A CN 109815048 A CN109815048 A CN 109815048A
- Authority
- CN
- China
- Prior art keywords
- disk
- reading
- data
- time delay
- node
- 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.)
- Granted
Links
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 (11)
1.一种数据读取方法,其特征在于,所述方法包括:
生成存储集群的全局磁盘读取时延数据;
从所述全局磁盘读取时延数据中获取待读取数据关联的多个目标磁盘的读取时延;所述待读取数据基于纠删码机制存储于所述存储集群;
从多个所述目标磁盘中选取N个最小读取时延的目标磁盘;其中,N等于所述待读取数据的原始数据分片的总数;
向被选取的每个所述目标磁盘发送读取命令。
2.根据权利要求1所述的方法,其特征在于,生成存储集群的全局磁盘读取时延数据的步骤,包括:
周期性监测本地磁盘的读取时延数据;
接收其它存储节点的磁盘的读取时延数据;
将所述本地磁盘的读取时延数据和其它存储节点的磁盘的读取时延数据组合形成存储集群的全局磁盘读取时延数据。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定本设备为所述存储集群的主用设备;
从所述存储集群上一周期的所有可用磁盘中,按照预设可靠磁盘个数选择读取时延最小的磁盘为可靠磁盘;
计算这些所述可靠磁盘的读取时延的平均值作为可疑磁盘阈值;
从所述上一周期内所述集群的可靠磁盘之外的磁盘中,选择所述可疑磁盘阈值的第一设定倍数以上的各读取时延对应的磁盘为可疑磁盘;
将连续预设个数的周期被标识为可疑磁盘的磁盘确定为异常磁盘;
向所述存储集群的其他存储节点通知所述异常磁盘。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
筛选所述存储集群在上一周期是否有可疑节点;
筛选出所述上一周期的一个以上可疑节点时,统计所述上一周期的每个可疑节点被连续筛选为可疑节点的次数;
将所述上一周期内,被连续筛选为可疑节点的次数超出异常节点阈值的可疑节点标识为异常节点;
向其他每个所述存储节点通知每个所述异常节点。
5.根据权利要求4所述的方法,其特征在于,筛选所述存储集群在上一周期是否有可疑节点包括:计算所述上一周期的每个所述存储节点包含的硬盘的读取时延的平均值,作为所述上一周期的每个所述存储节点的节点读取时延;
将所述上一周期的节点读取时延按照从高到低进行排序;
从所述上一周期的最高节点读取时延开始,每次选择一个节点读取时延,根据被选的节点读取时延以外的其他节点读取时延计算平均值作为被选的节点的筛选阈值;被选的节点读取时延大于或等于被选的节点的筛选阈值的第二设定倍数时,将被选的节点读取时延对应的存储节点筛选为可疑节点;
当被选的节点读取时延小于被选的节点的筛选阈值的第二设定倍数时,停止筛选所述存储集群在上一周期的可疑节点。
6.一种数据读取装置,其特征在于,所述装置包括:
全局时延获取模块,用于生成存储集群的全局磁盘读取时延数据;
磁盘时延获取模块,用于从所述全局磁盘读取时延数据中获取待读取数据关联的多个目标磁盘的读取时延;所述待读取数据基于纠删码机制存储于所述存储集群;
磁盘选取模块,用于从多个所述目标磁盘中选取N个最小读取时延的目标磁盘;其中,N等于所述待读取数据的原始数据分片的总数;
读取命令发送模块,用于向被选取的每个所述目标磁盘发送读取命令。
7.根据权利要求6所述的装置,其特征在于,所述全局时延获取模块用于:
周期性监测本地磁盘的读取时延数据;
接收其它存储节点的磁盘的读取时延数据;
将所述本地磁盘的读取时延数据和其它存储节点的磁盘的读取时延数据组合形成存储集群的全局磁盘读取时延数据。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括异常磁盘确定模块,用于:
确定本设备为所述存储集群的主用设备;
从所述存储集群上一周期的所有可用磁盘中,按照预设可靠磁盘个数选择读取时延最小的磁盘为可靠磁盘;
计算这些所述可靠磁盘的读取时延的平均值作为可疑磁盘阈值;
从所述上一周期内所述集群的可靠磁盘之外的磁盘中,选择所述可疑磁盘阈值以上的各读取时延对应的磁盘为可疑磁盘;
将连续预设个数的周期被标识为可疑磁盘的磁盘确定为异常磁盘;
向所述存储集群的其他存储节点通知所述异常磁盘。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括异常节点确定模块,用于:
筛选所述存储集群在上一周期是否有可疑节点;
筛选出所述上一周期的一个以上可疑节点时,统计所述上一周期的每个可疑节点被连续筛选为可疑节点的次数;
将所述上一周期内,被连续筛选为可疑节点的次数超出异常节点阈值的可疑节点标识为异常节点;
向其他每个所述存储节点通知每个所述异常节点。
10.一种数据读取设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1至5任一项所述的方法。
11.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1至5任一项所述的方法。
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 true CN109815048A (zh) | 2019-05-28 |
CN109815048B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760172A (zh) * | 2020-06-04 | 2021-12-07 | 杭州海康威视数字技术股份有限公司 | 一种分片分配方法、装置及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681791A (zh) * | 2012-04-13 | 2012-09-19 | 华中科技大学 | 一种集群存储***的节能存储方法 |
CN103176865A (zh) * | 2013-03-12 | 2013-06-26 | 华中科技大学 | 一种纠删码存储中负载感知的读优化方法 |
US9021297B1 (en) * | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
CN106407051A (zh) * | 2015-07-31 | 2017-02-15 | 华为技术有限公司 | 一种检测慢盘的方法及装置 |
CN106502576A (zh) * | 2015-09-06 | 2017-03-15 | 中兴通讯股份有限公司 | 迁移策略调整方法、容量变更建议方法及装置 |
CN107608821A (zh) * | 2017-09-29 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种基于纠删码的数据读取方法、装置、设备 |
CN108073466A (zh) * | 2016-11-16 | 2018-05-25 | 爱思开海力士有限公司 | 用于减少数据访问延迟的介质质量感知ecc解码方法选择 |
CN108664346A (zh) * | 2017-03-27 | 2018-10-16 | ***通信集团福建有限公司 | 分布式存储***的节点异常的定位方法、装置和*** |
CN108958924A (zh) * | 2017-03-27 | 2018-12-07 | 爱思开海力士有限公司 | 具有延时分布优化的存储器***及其操作方法 |
CN109271360A (zh) * | 2018-08-03 | 2019-01-25 | 北京城市网邻信息技术有限公司 | 分布式对象存储数据冗余方法、装置、设备及存储介质 |
-
2019
- 2019-01-31 CN CN201910106492.5A patent/CN109815048B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681791A (zh) * | 2012-04-13 | 2012-09-19 | 华中科技大学 | 一种集群存储***的节能存储方法 |
CN103176865A (zh) * | 2013-03-12 | 2013-06-26 | 华中科技大学 | 一种纠删码存储中负载感知的读优化方法 |
US9021297B1 (en) * | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
CN106407051A (zh) * | 2015-07-31 | 2017-02-15 | 华为技术有限公司 | 一种检测慢盘的方法及装置 |
CN106502576A (zh) * | 2015-09-06 | 2017-03-15 | 中兴通讯股份有限公司 | 迁移策略调整方法、容量变更建议方法及装置 |
CN108073466A (zh) * | 2016-11-16 | 2018-05-25 | 爱思开海力士有限公司 | 用于减少数据访问延迟的介质质量感知ecc解码方法选择 |
CN108664346A (zh) * | 2017-03-27 | 2018-10-16 | ***通信集团福建有限公司 | 分布式存储***的节点异常的定位方法、装置和*** |
CN108958924A (zh) * | 2017-03-27 | 2018-12-07 | 爱思开海力士有限公司 | 具有延时分布优化的存储器***及其操作方法 |
CN107608821A (zh) * | 2017-09-29 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种基于纠删码的数据读取方法、装置、设备 |
CN109271360A (zh) * | 2018-08-03 | 2019-01-25 | 北京城市网邻信息技术有限公司 | 分布式对象存储数据冗余方法、装置、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
VANEET AGGARWAL .ETC: "Sprout:A Functional Caching Approach to Minimize Service Latency in Erasure-Coded Storage", 《IEEE/ACM TRANSACTIONS ON NETWORKING》 * |
杨松霖等: "纠删码存储***中数据修复方法综述", 《计算机科学与探索》 * |
蔡杰明等: "多重条带布局的混合RAID***研究", 《小型微型计算机***》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760172A (zh) * | 2020-06-04 | 2021-12-07 | 杭州海康威视数字技术股份有限公司 | 一种分片分配方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109815048B (zh) | 2022-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106301853B (zh) | 集群***中节点的故障检测方法和装置 | |
US8700761B2 (en) | Method and system for detecting and managing a fault alarm storm | |
CN106961352B (zh) | 监控***及监控方法 | |
CA2557461C (en) | Dual use counters for routing loops and spam detection | |
CN101257388B (zh) | 非法外联检测方法、装置及*** | |
CN103401698B (zh) | 用于服务器集群运算中对服务器状况报警的监控*** | |
CN106878064A (zh) | 数据监控方法和装置 | |
US20060236402A1 (en) | Methods, systems, and computer program products for detecting and mitigating denial of service attacks in a telecommunications signaling network | |
CN108259426B (zh) | 一种DDoS攻击检测方法及设备 | |
CN113518057B (zh) | 分布式拒绝服务攻击的检测方法、装置及其计算机设备 | |
CN112636979B (zh) | 一种集群告警方法及相关装置 | |
CN111953564A (zh) | 一种故障检测方法、装置、设备及机器可读存储介质 | |
CN102447707A (zh) | 一种基于映射请求的DDoS检测与响应方法 | |
US8661113B2 (en) | Cross-cutting detection of event patterns | |
CN107231344B (zh) | 流量清洗方法和装置 | |
CN111464359A (zh) | 异常流量告警决策***及方法 | |
CN110417586A (zh) | 服务监控方法、服务节点、服务器及计算机可读存储介质 | |
CN109815048A (zh) | 数据读取方法、装置及设备 | |
WO2011026371A1 (zh) | 历史性能数据的有效性检测方法及装置 | |
CN114615310A (zh) | 一种维护tcp连接的方法、装置及电子设备 | |
JPH07183905A (ja) | 遠隔監視システム | |
CN113965492A (zh) | 一种数据流统计方法及装置 | |
CN111918233B (zh) | 一种适用于无线航空网络的异常检测方法 | |
WO2014040470A1 (zh) | 告警消息的处理方法及装置 | |
CN114884806A (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 |