CN115237665A - 一种面向高密度存储服务器的快速磁盘修复方法和系统 - Google Patents

一种面向高密度存储服务器的快速磁盘修复方法和系统 Download PDF

Info

Publication number
CN115237665A
CN115237665A CN202210893252.6A CN202210893252A CN115237665A CN 115237665 A CN115237665 A CN 115237665A CN 202210893252 A CN202210893252 A CN 202210893252A CN 115237665 A CN115237665 A CN 115237665A
Authority
CN
China
Prior art keywords
disk
memory
stripe
survivor
repair
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.)
Pending
Application number
CN202210893252.6A
Other languages
English (en)
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.)
Inspur Jinan data Technology Co ltd
Huazhong University of Science and Technology
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Jinan data Technology Co ltd
Huazhong University of Science and Technology
Inspur Electronic Information Industry Co Ltd
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 Inspur Jinan data Technology Co ltd, Huazhong University of Science and Technology, Inspur Electronic Information Industry Co Ltd filed Critical Inspur Jinan data Technology Co ltd
Priority to CN202210893252.6A priority Critical patent/CN115237665A/zh
Publication of CN115237665A publication Critical patent/CN115237665A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开一种面向高密度存储服务器的快速磁盘修复方法和系统,属于计算机存储领域。包括:根据故障磁盘确定需要修复的所有条带;从正常磁盘中读取需要修复条带的所有幸存块;计算各幸存块从磁盘被读入内存所需要的时间;构建所有可能的[a,b]组合;根据各幸存块从磁盘被读入内存所需要的时间,计算各个[a,b]组合下磁盘修复时间T;采用磁盘修复时间最小对应的[a,b]组合,进行故障磁盘的修复;a表示条带内并行度,b表示条带间并行度,且a*b=内存中可容纳数据块的数量。本发明根据当前的服务器内所有磁盘的传输速度状况,选择合理的条带内并行度和条带间并行度,使得磁盘修复时间得以最小化,从而尽可能快地修复出丢失数据,提升修复性能与系统的可靠性。

Description

一种面向高密度存储服务器的快速磁盘修复方法和系统
技术领域
本发明属于计算机存储领域,更具体地,涉及一种面向高密度存储服务器的快速磁盘修复方法和系统。
背景技术
高密度存储服务器(一个服务器中有数量较多的磁盘)目前被应用于数据中心以降低数据中心的成本(物理空间、电费、维护成本等)。在存储系统中,纠删码是一种应用广泛的高效存储方法,其可以对数据的可靠性提供保证。纠删码的种类有很多,Reed-Solomon(RS)码最受欢迎并已被广泛引用到工业生产中。具体来讲,RS码会将k个原始数据块编码为n个块(其中包括k个原始数据块和m个编码校验块),并将这n个块分别存储在n个不同的存储节点上(例如磁盘、服务器等)。根据RS码的性质,这n个块中的任何k个块都可以重建出所有的n个块。但是RS码有着经典的修复开销较大的问题,即RS码需要读取k个数据块才能修复出一个数据块,这带来了大量的传输开销(网络传输、磁盘IO等)。
目前有很多针对纠删码的修复问题的研究,但是这些研究绝大部分都是针对分布式存储系统中有限的网络资源进行优化。这些研究利用分布式存储系统存储节点较多,内存数量较多,计算资源较为丰富的特点,将修复过程分解为子修复过程,并将这些子修复过程分散到各个子节点上并行进行。但是与分布式存储系统不同的是,高密度存储系统服务器的传输利用的是总线,总线往往不是传输的瓶颈。高密度存储服务器的瓶颈在于其只有一个内存,因此内存资源相当有限。且高密度存储服务器往往拥有数量较大的磁盘,当内存并行读取众多磁盘中的数据时,内存容量不足(内存竞争问题)将会限制高密度存储服务器中纠删码修复的性能。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种面向高密度存储服务器的快速磁盘修复方法和系统,旨在解决现有修复方法无法解决内存竞争的问题。
为实现上述目的,第一方面,本发明提供了一种面向高密度存储服务器的快速磁盘修复方法,所述高密度存储服务器采用RS纠删码,该方法包括:
根据故障磁盘确定需要修复的所有条带;
从正常磁盘中读取需要修复条带的所有幸存块;
计算各幸存块从磁盘被读入内存所需要的时间;
构建所有可能的[a,b]组合;
根据各幸存块从磁盘被读入内存所需要的时间,计算各个[a,b]组合下磁盘修复时间T;
采用磁盘修复时间最小对应的[a,b]组合,进行故障磁盘的修复;
其中,a表示条带内并行度,b表示条带间并行度,且a*b=内存中可容纳数据块的数量。
优选地,所述计算各个[a,b]组合下磁盘修复时间T,具体如下:
构建二维数组,所述二维数组第i行第j列的元素表示第i个条带第j个幸存块从磁盘被读入内存所需要的时间;
对二维数组的每一行元素进行升序排序;
对二维数组的每一行,每a个为一组并取该组中元素最大值,将所有组的最大值求和,和值代替原来的一行,得到一维数组;
将一维数组中的元素进行升序排序;
采用长度为b的滑动窗口对一维数组进行划窗,每次划窗后选择该滑动窗口内最小值,并将窗口内的所有元素减去该最小值,滑动窗口向后移动一个单位,当滑动窗口移动到末尾时,取滑动窗口内的最大值,将滑动窗口内最小值和最后取出的最大值相加,得到磁盘修复时间T。
需要说明的是,本发明优选上述方式确定磁盘修复时间T,由于磁盘修复时间可以按照上述理论分析过程求出理论上的最优解,因此采用该计算方法可以最小化磁盘修复时间。
优选地,所述计算各幸存块从磁盘被读入内存所需要的时间,具体如下:
(1)获取各正常磁盘当前的传输速度;
(2)将幸存块大小除以对应磁盘传输速度,得到该磁盘传输该幸存块所需要的时间。
优选地,采用主动测试机制,获取各正常磁盘当前的传输速度。
优选地,在确定需要修复的条带后,读取幸存块之前,对不同磁盘上相同的条带进行去重处理。
需要说明的是,本发明对相同条带进行去重,由于读取一个条带的k个幸存块可以同时恢复出该条带的所有损坏块,因此对于不同损坏磁盘上的同一条带可以进行去重处理。若不进行去重,则会进行较多的重复磁盘IO,降低修复性能。
优选地,a的取值范围为[1,k],k表示RS纠删码中每个条带内原始数据块数量。
为实现上述目的,第二方面,本发明提供了一种面向高密度存储服务器的快速磁盘修复系统,包括:处理器和存储器;
所述存储器用于存储计算机程序或指令;
所述处理器用于执行存储器中的所述计算机程序或指令,使得第一方面所述的方法被执行。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
本发明提供一种面向高密度存储服务器的快速磁盘修复方法和系统,根据当前的服务器内所有磁盘的传输速度状况,选择合理的条带内并行度和条带间并行度,从而使得磁盘修复时间得以最小化,从而尽可能快地修复出丢失数据,提升了修复性能与系统的可靠性。
附图说明
图1为本发明提供的一种面向高密度存储服务器的快速磁盘修复方法流程图。
图2为本发明实施例提供的存在故障磁盘的高密度存储服务器示意图。
图3为本发明实施例提供的二维数组示意图。
图4为本发明实施例提供的[4,1]组合和[2,2]组合下修复时间的计算过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
图1为本发明提供的一种面向高密度存储服务器的快速磁盘修复方法流程图。如图1所示,该方法包括:
(S1)采用主动测试的机制,获取所有非损坏磁盘当前的传输速度情况,即先读取磁盘中的一小部分数据,并统计读取的时间,从而计算出磁盘传输的速度;将数据块大小除以磁盘传输速度,即是该磁盘传输一个数据块所需要的时间。
(S2)将所有损坏的磁盘中包含的条带组成一个二维数组,优选地,不同磁盘上相同的条带进行去重处理。二维数组的每一行代表一个条带,每个条带是一个包含k个元素的一维数组,k个元素分别代表着该条带的k个幸存块从磁盘被读入内存所需要的时间。
(S3)将数组中的每一行进行升序排序。
(S4)假设条带内并行度为a,条带间并行度为b(b=内存容量/a)。将上述二维数组的每一行,每a个为一组取最大值,并将这a个最大值相加,得到的和代替原来的一行。这样原二维数组被降维成一个一维数组。
(S5)将该一维数组进行升序排序。
(S6)创建一个大小为b的滑动窗口,该滑动窗口从该一维数组的前b个元素开始,每次选择该滑动窗口内最小值,并将窗口内的所有元素减去该最小值,滑动窗口向后移动一个单位。当滑动窗口移动到末尾时,取滑动窗口内的最大值M。最后将所有的最小值和最后取出的最大值相加,得到的时间T就是磁盘修复时间。
(S7)将条带内并行度从2遍历至k,每次都按照S4-S6的步骤计算磁盘修复时间T,最后选择当T取到最小值时的条带内并行度,即为所求。得到最优条带内并行度后,根据数学计算即可得到最优条带间并行度。
(S8)根据计算出的最优条带内并行度和条带间并行度进行修复即可。
实施例
在基于RS编码(Reed-solomon codes,里所码)的存储系统中,对于每一个条带,将所有k个数据使用RS码进行编码,生成n-k个校验块。这n个块组成了一个条带,且这n个块中的任意k个块可以修复出原始数据。
图2为本发明实施例提供的存在故障磁盘的高密度存储服务器示意图。如图2所示,(n,k)=(5,4)的例子,C0~C9为10个数据块,其中,C0~C4为第一个条带,C5~C9为第二个条带,每个磁盘存储条带中的一个块。当数据块C0和C9丢失时,C1~C4和C5~C8可以修复出原始数据C0和C9
步骤S1、获取C1-C8从磁盘到内存的传输速度v1-v8,经过计算得到传输所需要时间t1-t8
步骤S2.构建2*4二维数组
Figure BDA0003768402320000061
图3为本发明实施例提供的二维数组示意图。如图3所示,二维数组为
Figure BDA0003768402320000062
步骤S3.升序排序
Figure BDA0003768402320000063
步骤S4.假设RS纠删码中每个条带内原始数据块数量=4,可能的[a,b]组合为[1,4]、[2,2]、[4,1]。以[2,2]组合为例,进行下面的说明。
图4为本发明实施例提供的[4,1]组合和[2,2]组合下修复时间的计算过程示意图。如图4所示,二维数组的每一行,每2个为一组取最大值,得到1和3;并将这2个最大值相加,得到的和4代替原来的一行。这样原二维数组被降维成一个一维数组
Figure BDA0003768402320000064
步骤S5.升序排序为
Figure BDA0003768402320000065
步骤S6.创建一个大小为2的滑动窗口,该滑动窗口从该一维数组的前2个元素开始,每次选择该滑动窗口内最小值4,并将窗口内的所有元素减去该最小值4,得到
Figure BDA0003768402320000066
滑动窗口向后移动一个单位。当滑动窗口移动到末尾时,取滑动窗口内的最大值1。最后将所有的最小值4和最后取出的最大值1相加,得到的5就是磁盘修复时间。
步骤S7.同理地,得到[1,4]组合下磁盘修复时间为8,得到[4,1]组合下磁盘修复时间为7。选择选择当T取到最小值时的[2,2]组合。
步骤S8.采用条带内并行度为2,条带间并行度为2,进行修复。
本发明在发生磁盘故障时,根据当前的所有磁盘的传输速度状况合理地选择条带内并行度和条带间并行度,然后按照最优的条带内并行度和条带间并行度进行修复即可最小化磁盘修复时间,提升了修复的性能,增加了系统的可靠性。
在实施方式中,上述面向高密度存储服务器的磁盘快速修复方法,可根据当前的磁盘传输状况来合理地选择条带内并行度和条带间并行度;
该方法可以加快单磁盘的修复,也可以用来加快多磁盘的修复。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种面向高密度存储服务器的快速磁盘修复方法,所述高密度存储服务器采用RS纠删码,其特征在于,该方法包括:
根据故障磁盘确定需要修复的所有条带;
从正常磁盘中读取需要修复条带的所有幸存块;
计算各幸存块从磁盘被读入内存所需要的时间;
构建所有可能的[a,b]组合;
根据各幸存块从磁盘被读入内存所需要的时间,计算各个[a,b]组合下磁盘修复时间T;
采用磁盘修复时间最小对应的[a,b]组合,进行故障磁盘的修复;
其中,a表示条带内并行度,b表示条带间并行度,且a*b=内存中可容纳数据块的数量。
2.如权利要求1所述的方法,其特征在于,所述计算各个[a,b]组合下磁盘修复时间T,具体如下:
构建二维数组,所述二维数组第i行第j列的元素表示第i个条带第j个幸存块从磁盘被读入内存所需要的时间;
对二维数组的每一行元素进行升序排序;
对二维数组的每一行,每a个为一组并取该组中元素最大值,将所有组的最大值求和,和值代替原来的一行,得到一维数组;
将一维数组中的元素进行升序排序;
采用长度为b的滑动窗口对一维数组进行划窗,每次划窗后选择该滑动窗口内最小值,并将窗口内的所有元素减去该最小值,滑动窗口向后移动一个单位,当滑动窗口移动到末尾时,取滑动窗口内的最大值,将滑动窗口内最小值和最后取出的最大值相加,得到磁盘修复时间T。
3.如权利要求1所述的方法,其特征在于,所述计算各幸存块从磁盘被读入内存所需要的时间,具体如下:
(1)获取各正常磁盘当前的传输速度;
(2)将幸存块大小除以对应磁盘传输速度,得到该磁盘传输该幸存块所需要的时间。
4.如权利要求3所述的方法,其特征在于,采用主动测试机制,获取各正常磁盘当前的传输速度。
5.如权利要求1所述的方法,其特征在于,在确定需要修复的条带后,读取幸存块之前,对不同磁盘上相同的条带进行去重处理。
6.如权利要求1至5任一项所述的方法,其特征在于,a的取值范围为[1,k],k表示RS纠删码中每个条带内原始数据块数量。
7.一种面向高密度存储服务器的快速磁盘修复系统,其特征在于,包括:处理器和存储器;
所述存储器用于存储计算机程序或指令;
所述处理器用于执行存储器中的所述计算机程序或指令,使得权利要求1至6中任一项所述的方法被执行。
CN202210893252.6A 2022-07-27 2022-07-27 一种面向高密度存储服务器的快速磁盘修复方法和系统 Pending CN115237665A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210893252.6A CN115237665A (zh) 2022-07-27 2022-07-27 一种面向高密度存储服务器的快速磁盘修复方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210893252.6A CN115237665A (zh) 2022-07-27 2022-07-27 一种面向高密度存储服务器的快速磁盘修复方法和系统

Publications (1)

Publication Number Publication Date
CN115237665A true CN115237665A (zh) 2022-10-25

Family

ID=83676694

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210893252.6A Pending CN115237665A (zh) 2022-07-27 2022-07-27 一种面向高密度存储服务器的快速磁盘修复方法和系统

Country Status (1)

Country Link
CN (1) CN115237665A (zh)

Similar Documents

Publication Publication Date Title
Silberstein et al. Lazy means smart: Reducing repair bandwidth costs in erasure-coded distributed storage
CN110442535B (zh) 提高分布式固态盘键值缓存系统可靠性的方法及系统
US8788913B1 (en) Selection of erasure code parameters for no data repair
CN101868785B (zh) 生成数据存储系统的并行恢复策略
CN110750382B (zh) 用于提高数据修复性能的最小存储再生码编码方法及系统
CN110212923B (zh) 一种基于模拟退火的分布式纠删码存储系统数据修复方法
US20140310571A1 (en) Local Erasure Codes for Data Storage
US20160285476A1 (en) Method for encoding and decoding of data based on binary reed-solomon codes
WO2018072294A1 (zh) 一种校验矩阵的构造方法及水平阵列纠删码的构造方法
CN107003933B (zh) 部分复制码的构建方法、装置及其数据修复的方法
CN110597655B (zh) 迁移和基于纠删码的重构相耦合快速预知修复方法及装置
CN116501553B (zh) 数据恢复方法、装置、系统、电子设备及存储介质
CN103559102A (zh) 数据冗余处理方法、装置和分布式存储系统
WO2023151290A1 (zh) 一种数据编码方法、装置、设备及介质
CN103838649B (zh) 一种降低二进制编码存储系统中计算量的方法
CN113687975A (zh) 数据处理方法、装置、设备及存储介质
CN113821373A (zh) 提高磁盘地址转换速度的方法、系统、设备和存储介质
CN114116297B (zh) 一种数据编码方法、装置、设备及介质
CN110895497A (zh) 一种分布式存储中降低纠删码修复的方法及装置
CN116192154B (zh) 数据压缩及数据解压方法、装置、电子设备、芯片
CN115237665A (zh) 一种面向高密度存储服务器的快速磁盘修复方法和系统
CN106911793B (zh) I/o优化的分布式存储数据修复方法
CN111224747A (zh) 可降低修复带宽和磁盘读取开销的编码方法及其修复方法
Yongmei et al. Large LDPC codes for big data storage
CN113504875B (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