CN111614720B - 针对集群存储系统单点失效修复的跨集群流量优化方法 - Google Patents
针对集群存储系统单点失效修复的跨集群流量优化方法 Download PDFInfo
- Publication number
- CN111614720B CN111614720B CN202010286282.1A CN202010286282A CN111614720B CN 111614720 B CN111614720 B CN 111614720B CN 202010286282 A CN202010286282 A CN 202010286282A CN 111614720 B CN111614720 B CN 111614720B
- Authority
- CN
- China
- Prior art keywords
- repair
- cluster
- strip
- scheme
- stripe
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
针对集群存储系统单点失效修复的跨集群流量优化方法,涉及集群存储系统。1:将原始数据划分为固定大小的数据块,对数据块编码生成对应校验块,再按照约束条件分发到不同节点中存储;2:针对每个条带找到最小化该条带跨集群修复流量的修复方案;3:初始化未修复条带集合,进行若干轮修复,每轮从未修复条带集合中随机选取多个条带构成当前轮修复条带集合,根据步骤2获得单条带修复方案组合得到初始的多条带修复组合方案,利用贪心算法调度多条带的修复,通过替代步骤和交换步骤得每轮的多条带修复组合方案;4:完成若干轮修复,每轮根据修复方案和编码规则进行对应失效条带恢复。最小化并平衡跨集群修复流量,适用于任何纠删码,适用范围广。
Description
技术领域
本发明涉及集群存储系统,尤其是涉及一种针对集群存储系统单点失效修复的跨集群流量优化方法。
背景技术
大规模集群存储系统通常由成百上千个存储服务器(也称节点)构成,大量的节点使得系统必须解决普遍发生的意外故障。为了保证数据的可靠性,现有系统主要采用预先存储冗余数据的方法,其中最具代表性的两种方案是“备份”和“纠删码”。备份是将数据复制成n份分别存放于n个不同的设备,出现设备故障时,选择剩余未故障的设备中的备份数据进行修复。备份的方式简单有效但容易造成极大的存储开销,它的存储开销是原始数据的n倍。纠删码以固定大小的数据信息(称为数据块)作为输入,根据预先选择的编码方式计算生成少量的同等大小的冗余块(称为校验块)。纠删码的编码方式主要由参数k和m进行设置,在编码操作中,k个数据块编码生成m个校验块,从而任意k个数据块和校验块的组合可以恢复出原始数据。在纠删码中,k个数据块以及对应生成的m个校验块,一共(k+m)个块的集合称作一个“条带”,纠删码存储系统逻辑上可以看做多个条带的组合。与备份相比,纠删码具备较高的存储效率,因此现今存储系统多采用纠删码来保证数据可靠性。
纠删码具备较高的存储效率,但同时编码操作可能产生大量的修复流量。例如数据修复过程,经典的RS码([1]I.Reed and G.Solomon.Polynomial Codes over CertainFinite Fields.Journal of the society for industrial and applied mathematics,8(2):300–304,1960.)需要取回k个块来恢复一个丢失块,这使得大规模集群存储系统中的数据修复变得更加复杂。集群存储系统通常按照层次结构组织节点,首先将节点分配到各个通过公共交换机连接的集群中,然后交换机通过网络核心互联([2]M.Chowdhury,S.Kandula,and I.Stoica.Leveraging Endpoint Flexibility in Data-IntensiveClusters.In Proc.of ACM SIGCOMM,2013.;[3]D.Ford,F.Labelle,F.Popovici,M.Stokely,V.Truong,L.Barroso,C.Grimes,and S.Quinlan.Availability in GloballyDistributed Storage Systems.In Proc.of USENIX OSDI,2010.)。在这样的网络结构中,同个集群内部的节点为了各种操作(例如复制写入)竞争跨集群带宽,跨集群带宽通常被超额预定,因此跨集群带宽比集群内带宽更稀缺。需要大量跨集群恢复流量的恢复操作有较大的延迟且花费较多时间。为了减轻跨集群修复流量带来的影响,现有工作主要着重于设计新型集群感知纠删码([4]H.Hou,P.Lee,K.W.Shum,and Y.Hu.Rack-aware RegeneratingCodes for Data Centers.IEEE Transactions on Information Theory,65(8):4730–4745,2019;[5]Y.Hu,X.Li,M.Zhang,P.Lee,X.Zhang,P.Zhou,and D.Feng.Optimal RepairLayering for Erasure-Coded Data Centers:From Theory to Practice.ACMTransactions on Storage,13(4):33,2017.),以较少的跨集群维修流量维持相同的容错度,或者提出新的修复顺序调度方法来减少跨集群修复流量([6]Z.Shen,J.Shu,andP.Lee.Reconsidering Single Failure Recovery in Clustered File Systems.InProc.of IEEE/IFIP DSN,2016.),但这些工作都选定一个专用节点来修复所有丢失块,这样的修复方案容易导致专用节点的带宽成为修复性能的瓶颈。
发明内容
本发明的目的在于针对现有技术存在的上述缺点,提供在分散修复场景下考虑具有集群级别容错能力的多条带失效修复优化问题,不仅考虑单条带修复流量最小化,还考虑多条带组合修复情况下整体修复流量的优化,平衡了恢复过程中集群存储系统的上传和下载流量的一种针对集群存储系统单点失效修复的跨集群流量优化方法。
本发明包括以下步骤:
步骤1:在数据编码和分发存储阶段,基于纠删码方案将原始数据划分为固定大小的数据块,对数据块进行编码生成对应校验块,将生成的数据块和校验块按照约束条件分发到不同的节点中进行存储;
步骤2:在单条带失效修复阶段,针对每个条带找到最小化该条带跨集群修复流量的修复方案,修复方案包括指定读取数据、执行修复的节点等;
步骤3:在多条带失效修复阶段,初始化未修复条带集合,进行若干轮修复,每轮从未修复条带集合中随机选取多个条带构成当前轮修复条带集合,根据步骤2获得单条带修复方案组合得到初始的多条带修复组合方案,利用贪心算法调度多条带的修复,通过替代步骤和交换步骤平衡跨集群上传、下载流量,得到每轮的多条带修复组合方案;
步骤4:根据获得的多轮的多条带修复组合方案,完成若干轮修复,每轮根据修复方案和编码规则进行对应失效条带恢复。
在步骤1中,所述基于纠删码方案将原始数据划分为固定大小的数据块,对数据块进行编码生成对应校验块,将生成的数据块和校验块按照约束条件分发到不同的节点中进行存储的具体步骤可为:
1.1根据系统的可靠性需求和存储开销需求,选择满足系统容错能力和编码效率的纠删码;
1.2根据纠删码方案的参数设定将原始数据划分为固定大小的数据块;
1.3根据纠删码的编码规则对数据块进行编码生成对应校验块;
1.4将生成的数据块和校验块按照约束条件分发到不同的节点中进行存储,约束条件为满足集群级别的容错,即每个集群至多存储单条带中(n-k)个块。
在步骤2中,所述针对每个条带找到最小化该条带跨集群修复流量的修复方案的具体方法可为:
2.1对于每个待修复条带,根据集群中存储该待修复条带幸存数据块的数量对集群进行降序排序,得到排序后的集群;
2.2遍历排序后的集群得到最小的获取数据的集群集合,即找到最少数量的集群满足集群集合共存储至少k个待修复条带的幸存块;
2.3遍历排序后的集群寻找目标集群,目标集群需满足存储少于(n-k)个幸存块的约束条件,以保证修复完成后存储系统依然具有集群级别的容错能力;
2.4在目标集群中指定一个未存储任何待修复条带数据块的节点作为目标节点,从选取数据的集群集合和目标集群中选出k个用于修复的幸存块,集群内部聚合幸存块后发送给目标集群,在目标节点执行修复。
在步骤3中,所述得到每轮的多条带修复组合方案的具体方法可为:
3.1初始化未修复条带集合,进行若干轮修复;
3.2每轮修复中,从未修复条带集合中随机选取多个条带构成当前轮修复条带集合,根据步骤2获得单条带修复方案,组合得到初始的多条带修复组合方案;以初始的多条带修复组合方案为输入,执行若干次优化迭代,每次迭代通过替代步骤和交换步骤平衡跨集群上传、下载流量;
3.3每轮修复得到优化后的当前轮修复条带的修复组合方案,更新未修复条带集合,返回当前步修复条带集合和对应修复方案组合;
3.4当未修复条带集合为空时,所有未修复条带的修复方案已经确定,返回多轮修复得到的修复条带集合和对应修复方案的结果;
在步骤3.2中,所述以初始的多条带修复组合方案为输入,执行若干次优化迭代,每次迭代通过替代步骤和交换步骤平衡跨集群上传、下载流量的具体步骤可为:
3.2.1所述替代步骤:分析比较修复瓶颈为上传流量还是下载流量;若修复瓶颈为下载流量,找到需要最大下载流量的集群,对于组合方案中每一个选取需要最大下载流量的集群作为目标集群的单条带修复方案,尝试用另一个有效的单条带修复方案替换,另一个有效的单条带修复方案不选取需要最大下载流量的集群作为目标集群,用这样的替换方式降低集群的最大下载流量,对每个目标集群的单条带修复方案尝试替换,选取替换后获得最小跨集群下载流量的方案,更新组合优化方案;若修复瓶颈为上传流量,采取类似替换方法,找到需要最大上传流量的集群,对于组合方案中每一个从需要最大上传流量的集群获取数据的单条带修复方案,尝试用不从需要最大上传流量的集群获取数据的方案进行替换;
3.2.2所述交换步骤:每次迭代中,无法通过替代步骤进行优化时采用交换步骤,分析比较修复瓶颈,若修复瓶颈为下载流量,找到需要最大下载流量的集群,随机选取当前修复条带集合中一个对应修复方案选取需要最大下载流量的集群作为目标集群的待修复条带,考虑将目标集群的待修复条带与未修复条带集合中每一个未修复条带进行交换,选取交换后获得最小跨集群下载流量的方案更新组合优化方案。若修复瓶颈为上传流量,找到需要最大上传流量的集群,随机选取当前修复条带集合中一个对应修复方案从需要最大上传流量的集群获取数据的待修复条带,采取类似交换方法进行优化;
3.2.3每轮的每次迭代中采取替代方法和交换方法进行优化,替代方法保持当前修复条带集合不变,考虑选取可替代的单条带修复方案来降低性能瓶颈节点的上传/下载流量,当无法替代时则采用交换方法考虑交换一个当前步修复条带。
与现有技术相比,本发明具有以下突出的优点:
1、本发明主要关注分散的修复场景,即将修复得到的块分散存储在所有现存节点中。为了便于表示,本发明使用RS码作为说明。RS(n,k)以k个数据块作为输入,计算得到(n-k)个校验块,从而得到包含n个块的条带。通过将每个条带的n个块分布到n个不同的节点,RS(n,k)可以容忍任意(n-k)个节点发生故障。如果每个集群最多存储每个条带的(n-k)个块,那么可以实现集群级别的容错(即容忍任意单个集群发生故障)。本发明主要基于两方面的观察:一方面,跨集群带宽对修复过程影响极大,考虑最大限度减少跨集群修复流量;另一方面,由于现今网络物理技术的支持,可以以相同的速率发送(上传)和接收(下载)数据,上传和下载可以看作相互独立的操作,因此可以考虑通过平衡跨集群的上传和下载流量来缩短修复时间。
2、本发明提出的一种针对集群存储系统单点失效修复的跨集群流量优化方法,旨在最小化并平衡跨集群修复流量。该方法适用于任何纠删码,在分散修复场景下能够快速寻找到接近最优解的多条带修复组合方案。该方法在满足单条带修复流量最优的条件下,利用一种贪心算法,以求解的单条带方案为基础构建多条带修复组合方案的初始解,通过迭代优化获得最终的上传、下载流量更为平衡的多条带修复组合方案。本发明规避了其他具有高复杂度的搜索算法,用贪心思想找到一种近似最优解。该方法容易通过简单修改拓展到其他纠删码中,适用范围广。
附图说明
图1为集群存储系统中RS(9,6)纠删码存储分布示例图。
图2为部署RS(9,6)的集群存储系统中单条带失效修复方案示例图。该修复方案跨集群传输2个块。
图3为两种具有不同修复流量的多条带修复组合方案示意图。
图4为本发明实现的系统结构原型示意图。
图5为大规模模拟实验中负载均衡测试实验结果图。
图6为大规模模拟实验中敏感性测试实验结果图。
图7为阿里云服务器真实云环境下测试结果图。
具体实施方式
以下实施例将结合附图对本发明作进一步的说明。
本发明实施例的目的在于提出一种针对集群存储系统单点失效修复的跨集群流量优化方法,该方法主要由两部分组成。第一部分是单条带级别的优化方法,针对每个条带指定修复该条带失效数据的方案(包括指定读取数据、执行修复的节点),做到单条带级别最小化跨集群修复流量。第二部分主体是一个贪心算法,该贪心算法在保证单条带修复最优的情况下寻找多条带修复组合方案使得跨集群上传、下载流量更加平衡。
本发明实施例包括以下步骤:
假设集群存储系统由l个集群组成{C1,C2,...,Cl},本发明提出的方法通常包含以下步骤:
步骤1:数据编码和分发存储阶段,具体步骤如下:
1.1根据系统的可靠性需求和存储开销需求,选择满足系统容错能力和编码效率的纠删码;
1.2根据纠删码方案的参数设定将原始数据划分为固定大小的数据块;
1.3根据纠删码的编码规则对数据块进行编码生成对应校验块;
1.4将生成的数据块和校验块按照约束条件分发到不同的节点中进行存储,约束条件为满足集群级别的容错,即每个集群至多存储每个条带中(n-k)个块。
步骤2:单条带失效修复最优化方案求解,具体步骤如下:
2.1对于每个待修复条带,统计每个集群中存储该待修复条带幸存块的数量,根据集群中幸存块的数量对集群进行降序排序,得到排序后的集群{C1',C'2,...,Cl'};
2.2遍历排序后的集群得到获取数据的集群集合{C1',C'2,...,Cv'},找到最小的v满足前v个集群共存储至少k个待修复条带的幸存块;
2.3遍历排序后的集群找到第一个存储少于(n-k)个该待修复条带幸存块的集群作为目标集群,保证修复完成后系统依然具有集群级别的容错能力;
2.4在目标集群中指定一个未存储任何待修复条带的块的节点作为目标节点,前v个集群各自聚合集群内部幸存块后发送给目标集群,在目标节点执行修复。
步骤3:多条带失效修复组合方案优化阶段,具体步骤如下:
3.1将所有需要修复的条带放入未修复条带集合U,进行若干轮修复,每轮修复γ(常量)个条带(除最后一轮外);
3.2在每轮修复中,从未修复条带集合U中随机选取γ个条带构成当前轮修复条带集合R(|R|=γ,最后一轮除外),根据步骤2获得每个条带的修复方案,组成初始的多条带修复组合方案S。以初始的多条带修复组合方案S作为输入,进行若干次优化迭代,每次迭代通过替代步骤和交换步骤进一步平衡跨集群上传、下载流量。
3.2.1替代步骤:从修复组合方案S计算每个集群的跨集群上传流量和跨集群下载流量,找到其中最大跨集群上传流量和下载流量。分析比较修复瓶颈为上传流量还是下载流量,若修复瓶颈为下载流量,需要降低最大跨集群下载流量来平衡各集群的下载流量。集群的跨集群下载流量由集群内目标节点(即执行修复的节点)个数决定,因此将集群内的某些条带的目标节点换到其他集群可以减少集群的下载流量。首先找到最大跨集群下载流量对应的集群Cx,尝试修改当前轮修复条带集合R中某个条带的修复方案来降低最大跨集群下载流量。对于R中每一个选取集群Cx为目标集群的条带,尝试将该条带修复方案的目标集群替换为另一个可行的目标集群。每个条带的每次尝试都会产生一个新的单条带修复方案进而产生新的候选多条带修复组合方案S',记录候选多条带修复组合方案S'所需的最大跨集群下载流量。所有条带尝试完成后,选取所有候选多条带组合方案中所需最大跨集群流量最小的方案来更新多条带修复组合方案S,更新本质上为修改S中一个条带的修复方案。如果所有候选多条带修复组合方案都无法进一步平衡跨集群下载流量(即无法降低最大跨集群下载流量),就执行交换步骤。
当修复瓶颈为上传流量,采取类似替代方法。因为集群的上传流量由从该集群获取数据的条带决定,所以减少从集群获取数据的条带数量可以降低集群的上传流量。找到最大跨集群上传流量对应的集群Cy,对于每一个从集群Cy获取数据的条带,尝试采用从其他集群获取数据的方式来获得最少的最大跨集群上传流量。最终能得到上传流量更为平衡的多条带修复组合方案。
3.2.2交换步骤:每次迭代中,无法通过替代步骤进行优化时采用交换步骤。从修复组合方案S计算每个集群的跨集群上传流量和跨集群下载流量,找到其中最大跨集群上传流量和下载流量。分析比较修复瓶颈,若修复瓶颈为下载流量,找到最大跨集群下载流量对应的集群Cx,随机选取当前步修复条带集合R中一个选取Cx作为目标集群的待修复条带Hi,考虑将待修复条带Hi与未修复条带集合U中每一个未修复条带进行交换,交换生成新的候选多条带修复组合方案并记录最大跨集群下载流量。选取交换后获得最少的最大跨集群下载流量的候选多条带修复组合方案,该方案将Hi换成U中的条带Hj,更新当前步修复条带集合R=R-Hi∪Hj以及更新多条带修复组合方案S。若修复瓶颈为上传流量,找到最大跨集群上传流量对应的集群Cy,随机选取R中一个从集群Cy获取数据的待修复条带Ht,采取类似交换方法进行优化;
3.2.3每轮的每次迭代中采取替代方法和交换方法进行优化,替代方法保持当前步修复条带集合R不变,考虑选取可替代的单条带修复方案来降低性能瓶颈节点的上传/下载流量,当无法替代时交换方法考虑交换一个当前步修复条带;
3.2.4每轮得到γ个未修复条带的修复方案,更新未修复条带集合U=U-R,返回当前步修复条带集合和对应修复方案组合(R,S);
3.3当未修复条带集合U为空时,迭代完成,所有未修复条带的修复方案已经确定,返回多轮结果;
步骤4:根据获得的多轮多条带修复组合方案,完成多轮修复,每轮根据修复方案(R,S)和编码规则进行对应失效条带恢复。
本发明的核心是在集群存储系统中实现了保证单条带修复流量最优化的前提下优化多条带修复流量,从而加速失效修复过程。具体实现主要由下列几个模块组成:
1、纠删码方案选择模块:该模块根据系统的可靠性需求和存储开销需求,选择满足系统容错能力和编码效率的纠删码。
2、编码模块:该模块根据纠删码方案的参数设定对存储数据进行编码。将原始数据划分为固定大小的数据块,按照选取的纠删码的编码规则,以相应的数据块为输入生成校验块。数据块和对应生成的校验块组成一个条带,存储系统在逻辑上可以看作多个条带的组合。条带按照编码设定存放,同时还要考虑保证集群级别的容错能力。图1给出了集群存储系统中RS(9,6)纠删码存储分布的示意图,数据块和校验块共9个块存储在4个通过网络核心互联的集群中,为了保证集群级别的容错能力,每个集群至多存储(9-6=3)个块,其中每个集群内部将块存储在不同节点上(即每个节点至多存储每个条带的一个块)。
3、失效修复决策模块:当出现故障时,失效修复决策模块将被启动。首先确定失效块编号,然后利用贪心算法得到优化的多条带修复组合方案,该方案不仅保证单条带修复流量最小化,还平衡了整体的上传、下载流量。图2展示了部署RS(9,6)纠删码的集群存储系统中一个单条带失效修复过程,其中参与修复的块用虚线标记。图中三种标记的节点分别表示失效节点、存储该条带幸存块的节点以及执行修复的目标节点。该修复过程从集群1、集群2和集群4取回共6个块并将修复得到的块存储在集群4。由于修复(解码)操作的线性化的特点,每个集群可以将集群内部参与修复的块部分聚合为一个聚合块(其大小与一个数据块的大小相同),因此集群1和集群2都只需跨集群传输一个块给集群4。集群1、2、4内部的数据传输消耗集群内部带宽,而跨集群数据传输消耗跨集群带宽,两者独立存在,跨集群带宽比集群内带宽更稀缺,因此优化方法着重考虑平衡跨集群带宽。图3所示为具有不同跨集群修复流量的两种多条带修复组合方案。图3(a)所示为一种跨集群上传、下载流量不平衡的修复方案,条带1中集群1、2各自发送(上传)一个块,集群4接收(下载)两个块,条带2中集群2、3各自发送(上传)一个块,集群4接收(下载)两个块,总体来看,集群4需要跨集群下载4个块,性能瓶颈为下载流量。图3(b)所示为修复流量比较平衡的方案,每个集群只需上传或下载两个块。由于上传、下载流量可以独立看待,修复流量平衡的多条带修复组合方案耗费更少的修复时间。该模块的贪心算法迭代多轮完成修复,每轮根据贪心思想进行替换、交换操作得到优化的多条带修复组合方案,系统根据修复方案和纠删码解码规则执行数据修复。
本发明实现的系统结构原型如图4所示,系统原型包括一个全局协调器,每个集群配有一个代理,集群内每个节点配有一个节点代理(代理服务器)。全局协调器存储元数据信息,包括每个块所在的存储节点标识和条带标识。当检测到节点发生故障时,协调器首先识别出故障节点引发的失效条带并根据本发明提出的修复方法构造修复方案,其次协调器向集群代理和节点代理发出指导修复过程的命令(图4中的步骤①)。收到指示命令后,节点代理读取节点内存储的请求块发送给相应的集群代理(图4中的步骤②),集群代理为每个条带聚合请求块后发送给该条带修复方案指定的目标节点(图4中的步骤③)。成功修复所有块后,节点代理向协调器返回确认信息。
以下给出本发明的性能测试:
本发明的性能测试主要包括两个部分。第一部分为大规模的模拟测试,模拟测试中删除了存储操作和网络输入、输出操作,该部分测试展示本发明提出的算法在集群存储系统中的表现,测试指标为负载均衡率和跨集群修复流量。第二部分在阿里云服务器上进行测试以研究其在真实云环境中的性能,实验指标为修复吞吐量。测试采用对比实验方式,参与比较的另外两种算法为随机修复算法(RR)和跨机架修复算法(CAR)[6],随机修复算法从每个条带的(n-1)个幸存块中随机选取k个块用于修复,跨机架修复算法致力于减少专用修复场景(即修复后的所有块存储在专用节点中)中的跨集群修复流量。随机修复算法既不考虑减少跨集群修复流量也不考虑流量平衡优化,因此选取随机优化算法结果为基准来展示优化效果。
A.大规模模拟实验
第一部分测试的块大小设置为64MB,纠删码方案为RS(9,6),生成10000个条带,这些条带分散存储在5个集群的100个节点中(即每个集群20个节点),存储保证满足集群级别的容错能力。
A.1负载均衡测试实验:
负载均衡率计算方式为其中m为集群上传、下载流量中的最大值,a为集群上传流量的平均值(由于上传流量的和等于下载流量的和,a也为集群下载流量的平均值),负载均衡率越小越好,最优情况下负载均衡率为1。图5所示为设置不同节点数、不同集群数情况下三种修复算法的负载均衡率变化情况,图5中可以看出,本发明提出的算法具有最小的负载均衡率且在不同配置条件下比较稳定。
A.2敏感性测试实验:
在测试中,使用单一变量变化的方法,测试了节点数变化、集群数变化、纠删码方案变化和每轮修复块数量变化四种情况下三种修复方法修复单条带失效所需的平均跨集群修复流量。图6展示了敏感性测试的结果,与随机修复算法和跨机架修复算法相比,本发明提出的方法分别减少28.0%~52.7%和6.7%~12.8%的跨集群修复流量。
B.阿里云环境实验
第二部分测试的实验环境包括华东地区(杭州H区)的21台ecs.g6.large类型的虚拟服务器,每个虚拟服务器配有2个虚拟CPU(2.5GHz Intel Xeon Platinum),8GB内存和40GB超磁盘空间,服务器上运行的操作系统是Ubuntu 14.04,服务器能达到的网络带宽约为3Gb/s(iperf测量获得)。在21个服务器中选取一个服务器作为全局协调器,剩余的20个服务器组成4个集群(每个集群5个节点),每个集群内4个服务器运行节点代理,剩余的1个服务器运行集群代理。该部分实验中参数默认设置如下,纠删码方案为RS(9,6),块大小和包大小分别为64MB和4MB,跨集群带宽为0.15Gb/s。执行5轮修复,总共修复100个条带(即每轮修复20个条带)。在测试中,测量从全局协调器检测到节点故障开始到所有丢失的块都被修复为止的整个持续时间,记为修复时间。测试指标为修复吞吐量,计算方式为修复的数据量与所耗费的修复时间的比值,修复吞吐量越大越好。考虑跨集群带宽、纠删码方案、块大小和修复块总量四个因素对修复性能的影响。
B.1跨集群带宽的影响:
图7(a)所示为跨集群带宽分别设置为0.1Gb/s、0.15Gb/s和0.3Gb/s时的修复吞吐量结果。与随机修复算法(RR)和跨机架修复算法(CAR)相比,本发明提出的算法将修复吞吐量分别提高了35.4%~48.6%和15.2%~34.3%。
B.2不同纠删码方案的影响:
图7(b)所示为纠删码方案分别为RS(6,4),RS(9,6),RS(11,8)时的修复吞吐量结果。整体来看,随着条带中块数量的增加,三种方法的修复吞吐量都减少。与随机修复算法(RR)和跨机架修复算法(CAR)相比,本发明提出的算法将修复吞吐量分别提高了47.8%~68.8%和26.6%~42.1%。
B.3块大小的影响:
该测试评估不同块大小对修复吞吐量的影响,测试中块大小分别设置为32MB、64MB和128MB,测试结果如图7(c)所示。从图中可以观察到,随着块大小的变化修复吞吐量保持稳定。与随机修复算法(RR)和跨机架修复算法(CAR)相比,本发明提出的算法将修复吞吐量分别提高了31.8%~47.9%和14.4%~18.7%。
B.4耗费计算时间测试:
该测试评估了计算不同数量修复块的修复方案所需的时间。从图7(d)中可以看出,本发明提出的方法能非常有效地获取修复大量失效块的修复方案,例如仅需要0.65秒就可得到修复5000个故障块的修复方案。
本发明针对集群存储系统单点失效修复的跨集群流量优化方法属于存储可靠性领域,尤其涉及其中的失效修复和跨集群流量优化等技术领域。针对传统集群存储系统单点失效修复优化方法只考虑优化单条带修复流量,缺乏整体优化的考虑,本发明提出了一种新的分散修复场景下的单点失效修复优化方法,该方法以贪心算法为基础,规避了其他具有高复杂度的搜索算法,用贪心思想找到一种满足单条带修复流量最小化条件下的多条带组合修复方案的近似最优解使得跨集群上传、下载流量更加平衡。该方法容易通过简单修改拓展到其他纠删码中,适用范围广。
本发明在分散修复场景下考虑具有集群级别容错能力的多条带失效修复优化问题,不仅考虑单条带修复流量最小化,还考虑多条带组合修复情况下整体修复流量的优化,平衡了恢复过程中集群存储系统的上传和下载流量。提出了一种贪心算法,规避了其他具有高复杂度的搜索算法,用贪心思想找到一种近似最优解。该算法容易通过简单修改拓展到其他纠删码中,适用范围广。
Claims (1)
1.针对集群存储系统单点失效修复的跨集群流量优化方法,其特征在于包括以下步骤:
步骤1:在数据编码和分发存储阶段,基于纠删码方案将原始数据划分为固定大小的数据块,对数据块进行编码生成对应校验块,将生成的数据块和校验块按照约束条件分发到不同的节点中进行存储,具体步骤为:
(1.1)根据系统的可靠性需求和存储开销需求,选择满足系统容错能力和编码效率的纠删码;
(1.2)根据纠删码方案的参数设定将原始数据划分为固定大小的数据块;
(1.3)根据纠删码的编码规则对数据块进行编码生成对应校验块;
(1.4)将生成的数据块和校验块按照约束条件分发到不同的节点中进行存储,约束条件为满足集群级别的容错,即每个集群至多存储单条带中(n-k)个块;
步骤2:在单条带失效修复阶段,针对每个条带找到最小化该条带跨集群修复流量的修复方案,修复方案包括指定读取数据、执行修复的节点;
所述针对每个条带找到最小化该条带跨集群修复流量的修复方案的具体方法为:
(2.1)对于每个待修复条带,根据集群中存储该待修复条带幸存数据块的数量对集群进行降序排序,得到排序后的集群;
(2.2)遍历排序后的集群得到最小的获取数据的集群集合,即找到最少数量的集群满足集群集合共存储至少k个待修复条带的幸存块;
(2.3)遍历排序后的集群寻找目标集群,目标集群需满足存储少于(n-k)个幸存块的约束条件,以保证修复完成后存储系统依然具有集群级别的容错能力;
(2.4)在目标集群中指定一个未存储任何待修复条带数据块的节点作为目标节点,从选取数据的集群集合和目标集群中选出k个用于修复的幸存块,集群内部聚合幸存块后发送给目标集群,在目标节点执行修复;
步骤3:在多条带失效修复阶段,初始化未修复条带集合,进行若干轮修复,每轮从未修复条带集合中随机选取多个条带构成当前轮修复条带集合,根据步骤2获得单条带修复方案组合得到初始的多条带修复组合方案,利用贪心算法调度多条带的修复,通过替代步骤和交换步骤平衡跨集群上传、下载流量,得到每轮的多条带修复组合方案;
所述得到每轮的多条带修复组合方案的具体方法为:
(3.1)初始化未修复条带集合,进行若干轮修复;
(3.2)每轮修复中,从未修复条带集合中随机选取多个条带构成当前轮修复条带集合,根据步骤2获得单条带修复方案,组合得到初始的多条带修复组合方案;以初始的多条带修复组合方案为输入,执行若干次优化迭代,每次迭代通过替代步骤和交换步骤平衡跨集群上传、下载流量,具体步骤为:
(3.2.1)替代步骤:分析比较修复瓶颈为上传流量还是下载流量;若修复瓶颈为下载流量,找到需要最大下载流量的集群,对于组合方案中每一个选取需要最大下载流量的集群作为目标集群的单条带修复方案,尝试用另一个有效的单条带修复方案替换,另一个有效的单条带修复方案不选取需要最大下载流量的集群作为目标集群,用这样的替换方式降低集群的最大下载流量,对每个目标集群的单条带修复方案尝试替换,选取替换后获得最小跨集群下载流量的方案,更新组合优化方案;若修复瓶颈为上传流量,采取与修复瓶颈为下载流量时相同的替换方法,找到需要最大上传流量的集群,对于组合方案中每一个从需要最大上传流量的集群获取数据的单条带修复方案,尝试用不从需要最大上传流量的集群获取数据的方案进行替换;
(3.2.2)交换步骤:每次迭代中,无法通过替代步骤进行优化时采用交换步骤,分析比较修复瓶颈,若修复瓶颈为下载流量,找到需要最大下载流量的集群,随机选取当前修复条带集合中一个对应修复方案选取需要最大下载流量的集群作为目标集群的待修复条带,考虑将目标集群的待修复条带与未修复条带集合中每一个未修复条带进行交换,选取交换后获得最小跨集群下载流量的方案更新组合优化方案;若修复瓶颈为上传流量,找到需要最大上传流量的集群,随机选取当前修复条带集合中一个对应修复方案从需要最大上传流量的集群获取数据的待修复条带,采取与修复瓶颈为下载流量时相同的交换方法进行优化;
(3.2.3)每轮的每次迭代中采取替代方法和交换方法进行优化,替代方法保持当前修复条带集合不变,考虑选取可替代的单条带修复方案来降低性能瓶颈节点的上传/下载流量,当无法替代时则采用交换方法考虑交换一个当前步修复条带;
(3.3)每轮修复得到优化后的当前轮修复条带的修复组合方案,更新未修复条带集合,返回当前步修复条带集合和对应修复方案组合;
(3.4)当未修复条带集合为空时,所有未修复条带的修复方案已经确定,返回多轮修复得到的修复条带集合和对应修复方案的结果;
步骤4:根据获得的多轮的多条带修复组合方案,完成若干轮修复,每轮根据修复方案和编码规则进行对应失效条带恢复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010286282.1A CN111614720B (zh) | 2020-04-13 | 2020-04-13 | 针对集群存储系统单点失效修复的跨集群流量优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010286282.1A CN111614720B (zh) | 2020-04-13 | 2020-04-13 | 针对集群存储系统单点失效修复的跨集群流量优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111614720A CN111614720A (zh) | 2020-09-01 |
CN111614720B true CN111614720B (zh) | 2022-02-18 |
Family
ID=72205576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010286282.1A Active CN111614720B (zh) | 2020-04-13 | 2020-04-13 | 针对集群存储系统单点失效修复的跨集群流量优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111614720B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799605B (zh) * | 2021-03-31 | 2021-06-29 | 中南大学 | 平方部分重复码构造方法、节点修复方法及容量计算方法 |
CN113258938B (zh) * | 2021-06-03 | 2021-10-08 | 成都信息工程大学 | 一种单节点故障快速修复纠删码的构造方法 |
CN113541870A (zh) * | 2021-07-08 | 2021-10-22 | 厦门大学 | 一种纠删码存储单节点失效的修复优化方法 |
CN114143174A (zh) * | 2021-11-30 | 2022-03-04 | 深信服科技股份有限公司 | 一种节点修复方法、装置、设备及可读存储介质 |
CN114301844B (zh) * | 2021-12-30 | 2024-04-19 | 天翼物联科技有限公司 | 物联网能力开放平台流量控制方法、系统及其相关组件 |
CN114564335B (zh) * | 2022-01-14 | 2024-03-29 | 中国科学技术大学 | 基于条带合并的局部可修复码冗余度转换方法及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105159618A (zh) * | 2015-09-25 | 2015-12-16 | 清华大学 | 用于单盘失效修复的优化方法及优化装置 |
CN105760116A (zh) * | 2016-03-10 | 2016-07-13 | 天津科技大学 | 一种多网盘下的增量纠删码存储方法及系统 |
CN106445726A (zh) * | 2016-09-28 | 2017-02-22 | 上海爱数信息技术股份有限公司 | 一种分布式纠删码存储系统的数据修复方法 |
US9626246B1 (en) * | 2015-09-10 | 2017-04-18 | Datadirect Networks, Inc. | System and method for I/O optimized data migration between high performance computing entities and a data storage supported by a de-clustered raid (DCR)architecture with vertical execution of I/O commands |
CN107544862A (zh) * | 2016-06-29 | 2018-01-05 | 中兴通讯股份有限公司 | 一种基于纠删码的存储数据重构方法和装置、存储节点 |
CN109901946A (zh) * | 2019-02-27 | 2019-06-18 | 深信服科技股份有限公司 | 一种纠删码操作方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597655B (zh) * | 2019-06-26 | 2023-04-28 | 云链网科技(广东)有限公司 | 迁移和基于纠删码的重构相耦合快速预知修复方法及装置 |
-
2020
- 2020-04-13 CN CN202010286282.1A patent/CN111614720B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9626246B1 (en) * | 2015-09-10 | 2017-04-18 | Datadirect Networks, Inc. | System and method for I/O optimized data migration between high performance computing entities and a data storage supported by a de-clustered raid (DCR)architecture with vertical execution of I/O commands |
CN105159618A (zh) * | 2015-09-25 | 2015-12-16 | 清华大学 | 用于单盘失效修复的优化方法及优化装置 |
CN105760116A (zh) * | 2016-03-10 | 2016-07-13 | 天津科技大学 | 一种多网盘下的增量纠删码存储方法及系统 |
CN107544862A (zh) * | 2016-06-29 | 2018-01-05 | 中兴通讯股份有限公司 | 一种基于纠删码的存储数据重构方法和装置、存储节点 |
CN106445726A (zh) * | 2016-09-28 | 2017-02-22 | 上海爱数信息技术股份有限公司 | 一种分布式纠删码存储系统的数据修复方法 |
CN109901946A (zh) * | 2019-02-27 | 2019-06-18 | 深信服科技股份有限公司 | 一种纠删码操作方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
Reconsidering Single Failure Recovery in Clustered File Systems;沈志荣等;《2016 46th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN)》;20161003;参见论文第四部分 * |
Also Published As
Publication number | Publication date |
---|---|
CN111614720A (zh) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111614720B (zh) | 针对集群存储系统单点失效修复的跨集群流量优化方法 | |
US10003357B2 (en) | Systems and methods for verification of code resiliency for data storage | |
US8464090B2 (en) | Recovery of failed disks in an array of disks | |
Zhu et al. | On the speedup of single-disk failure recovery in xor-coded storage systems: Theory and practice | |
US20170083603A1 (en) | Co-derived data storage patterns for distributed storage systems | |
CN107003933B (zh) | 部分复制码的构建方法、装置及其数据修复的方法 | |
CN112835738B (zh) | 一种条带数据存储结构的构建方法 | |
CN113541870A (zh) | 一种纠删码存储单节点失效的修复优化方法 | |
CN110597655B (zh) | 迁移和基于纠删码的重构相耦合快速预知修复方法及装置 | |
Lin et al. | Boosting {Full-Node} repair in {Erasure-Coded} storage | |
Xu et al. | PDL: A data layout towards fast failure recovery for erasure-coded distributed storage systems | |
Gong et al. | Optimal node selection for data regeneration in heterogeneous distributed storage systems | |
Yao et al. | Pivotrepair: Fast pipelined repair for erasure-coded hot storage | |
CN108304264B (zh) | 一种基于spark流式计算的纠删码归档方法 | |
Xu et al. | SelectiveEC: Towards balanced recovery load on erasure-coded storage systems | |
CN107026912A (zh) | 嵌入式通信设备数据传输方法 | |
CN114116696B (zh) | 云存储系统中考虑节点选择机制的故障节点数据重构方法 | |
Li et al. | Parallelizing degraded read for erasure coded cloud storage systems using collective communications | |
Shen et al. | Cluster-aware scattered repair in erasure-coded storage: Design and analysis | |
Wu et al. | LFPR: A lazy fast predictive repair strategy for mobile distributed erasure coded cluster | |
CN113504875B (zh) | 一种基于多级调度的纠删码系统恢复方法及系统 | |
CN112000278A (zh) | 一种热数据存储的自适应局部重构码设计方法及云存储系统 | |
WO2018209541A1 (zh) | 基于t-设计的部分重复码的编码结构以及构造方法 | |
Wei et al. | Weak Network Oriented Mobile Distributed Storage: A Hybrid Fault-Tolerance Scheme Based on Potential Replicas | |
Yang et al. | Xhr-code: An efficient wide stripe erasure code to reduce cross-rack overhead in cloud storage systems |
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 |