1.本发明属于硬盘管理技术领域,涉及一种实现磨损逆均衡的方法。
背景技术:2.现有的实现磨损逆均衡的方法为,当组成raid5的硬盘或数据块单元所属的硬盘中有多个硬盘处于寿命即将消耗完毕的老年期时(此时可能发生raid5中一个以上硬盘寿命短时间内耗尽导致数据丢失),从存储资源池中选取剩余寿命较多的硬盘或数据单元重组此raid5。此方法需重构整个raid5,过程中会消耗大量的时间,并产生大量额外读写消耗硬盘寿命;另外,重构过程需引入适量的非老年盘,存储资源池中大部分硬盘处于老年期时,此方法无法维持raid5磨损逆均衡。
3.现有技术至少存在以下缺点:
4.1)通常需等raid5中的多个硬盘处于老年期时才运行逆磨损机制。
5.2)磨损逆均衡机制生效时需重构整个raid5以保障raid5中不发生多个硬盘寿命短时间内耗尽的情况,此重构过程消耗大量时间,且因大量无意义的硬盘读写损耗硬盘寿命。
6.3)重构raid5时必须有处于非老年期的硬盘作为替代,条件严苛;且替换下的老年硬盘剩余寿命不易被合理使用,造成浪费。
技术实现要素:7.为解决上述问题,本发明提出了一种实现磨损逆均衡的方法,包括以下步骤:
8.s1,创建raid5;
9.s2,判断raid5的成员盘是否全为固态硬盘,否,则结束磨损逆均衡步骤;
10.s3,是,则获取成员盘寿命;
11.s4,延时,并对延时前后硬盘寿命的消耗程度计算硬盘寿命消耗速率;
12.s5,判断raid5是否降级,即判断raid5中是否有盘寿命耗尽;是,则进行s9 raid5重构;
13.s6,否,则计算成员盘寿命消耗速率,成员盘寿命消耗速率由两次获取的硬盘寿命和间隔时间计算得到,作为下次延时时长的调整依据,并作为磨损逆均衡的输入,据此制定磨损逆均衡策略;
14.s7,判断磨损逆均衡启动条件,此时已获知各成员盘当前剩余寿命状况和寿命消耗速率,若此时有成员盘的寿命与其他硬盘寿命差值小于设定的风险阈值且该硬盘已接近老年期,即高于预设寿命阈值,则认为raid5的安全性降低,需要启动磨损逆均衡以加大硬盘间的寿命差值,保证raid5中只有不超过一块硬盘处于老年期;否,则无需启动磨损逆均衡,返回s3;
15.s8,磨损逆均衡,包括磨损逆均衡中的数据迁移;
16.s9,raid5重构,当raid5中有成员盘寿命耗尽,raid5进入降级状态并提醒系统管
理员更换硬盘,此时如需读取掉线的成员盘数据则通过读取同一条带内的其他数据块并计算得到目标数据;替换成员盘后,进入raid5重构过程,经计算得数据并存入新成员盘,重构完成后,恢复磨损逆均衡机制过程中产生的数据迁移。
17.优选地,所述创建raid5包括对校验块p的读写计数功能,作为数据迁移时选择迁移目标数据块的依据。
18.优选地,所述获取成员盘寿命,具体为在固态硬盘主控芯片中记录固态硬盘的全盘写次数,linux系统下通过smartctl工具查看。
19.优选地,所述延时设置一个初始值,后续步骤中根据寿命消耗速率动态调整延时时间。
20.优选地,所述判断raid5是否降级中,不触发磨损逆均衡,提醒系统管理员替换寿命耗尽的硬盘。
21.优选地,所述磨损逆均衡,具体为选择寿命最高的硬盘中的数据块d,与处于同一条带且属于寿命次高的硬盘中的校验块p交换数据。
22.优选地,所述磨损逆均衡包括将数据块d的数据拷贝至校验块p所属存储空间,修改本条带位表,即将原指向数据块d和校验块p的地址交换,最后计算生成校验块p信息并保存在对应存储地址。
23.优选地,所述磨损逆均衡包括将整个数据条带复制到其他未存储数据的空闲条带,复制过程中改变数据分布。
24.优选地,所述s8和s9步骤后均返回s3步骤。
25.优选地,所述方法对应的raid5的成员盘划分成多个数据块,从每个成员盘各取一个数据块构成一个数据条带,一个条带由n
‑
1个数据块d和1个校验块p组成,所述数据块d用于存放实际数据,校验块p用于存放n
‑
1个数据块经异或运算后得到的校验码数据。
26.本发明有益效果至少包括:
27.1)运行机制采用预防raid5进入不安全状态的策略,而非等raid5进入不安全状态时采取措施使raid5恢复安全,进一步提高raid5安全性。
28.2)磨损逆均衡机制运行过程中不引入额外的非老年期硬盘,运行条件宽松;不采用替换老年期硬盘策略,而是提前规划硬盘寿命,合理利用每个硬盘处于老年期的寿命资源,不造成硬盘寿命浪费。
29.3)本方法利用部分数据的读写特点调节raid5中硬盘的寿命消耗速率,无需对raid5进行整体重构,整个过程中raid5保持在线可用,且过程中产生的额外读写量较少。
附图说明
30.图1为本发明实施例的实现磨损逆均衡的方法的对应raid5硬盘结构图;
31.图2为本发明实施例的实现磨损逆均衡的方法的状态转换图;
32.图3为本发明实施例的实现磨损逆均衡的方法的步骤流程图;
33.图4为本发明实施例的实现磨损逆均衡的方法的数据迁移示意图;
34.图5为本发明实施例的实现磨损逆均衡的方法的数据块交换示意图。
具体实施方式
35.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
36.相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。
37.参见图1,为磨损逆均衡raid5结构图。本方法的基本结构基于raid5的实现原理,由于磨损逆均衡功能是为解决raid5中固态硬盘寿命有限的特点而产生的风险问题,所以在本方法实现过程中组成raid5的成员盘必须全部采用相同容量大小的固态硬盘,否则磨损逆均衡机制将失去原有意义。
38.将组成raid5的成员盘划分成多个数据块,从每个成员盘各取一个数据块构成一个数据条带,一个条带由n
‑
1个数据块d(用于存放实际数据)和1个校验块p(用于存放n
‑
1个数据块经异或运算后得到的校验码数据)组成。为了最大化利用每个成员盘的对外接口带宽,将逻辑上连续的存储空间如d1、d2、d3
……
均匀分布在每个成员盘上,校验块p1、p2、p3
……
也采用这种分布方式。因大部分的连续数据均匀存储在不同成员盘中,只有少量较小的数据无法均匀分布(占用空间小于一个条带大小),这使得各成员盘达到一定的负载均衡和磨损均衡效果。
39.为防止磨损均衡造成同一raid5中可能出现的一个以上硬盘寿命耗尽情况,需要引入一定的磨损逆均衡机制,以提高整体raid5的安全性,避免数据无法通过校验恢复的数据丢失情况,磨损逆均衡机制实现在传统raid管理模块中。
40.参见图2,为状态转换图。
41.一、传统raid5,无磨损逆均衡机制,此状态的raid5与传统raid5数据分布相同。
42.1.当磨损逆均衡程序检测到该raid5全部由固态硬盘组成时,运行磨损逆均衡程序,进入磨损逆均衡监测状态。
43.2.某一硬盘寿命耗尽,与传统raid5机制相同,raid5进入降级状态。
44.二、磨损逆均衡监测,此状态中磨损逆均衡程序处于“获取硬盘寿命——延时——获取硬盘寿命”的循环,计算可得到硬盘寿命消耗速率。
45.3.磨损逆均衡程序结合硬盘当前寿命与硬盘寿命消耗速率综合判断raid5达到磨损逆均衡生效条件,磨损逆均衡程序将对raid5中数据进行迁移操作,之后进入磨损逆均衡生效状态。
46.4.raid5中有一块硬盘寿命耗尽,进入raid5降级状态。
47.三、磨损逆均衡生效,此时磨损逆均衡程序通过数据迁移改变raid5数据分布,达到调整硬盘寿命消耗速率的目的。
48.5.经磨损逆均衡机制调整,程序判断raid5未达到磨损逆均衡条件,raid5恢复初始数据分布状态,磨损逆均衡程序重新进入监测状态。
49.6.此时raid5中有硬盘寿命耗尽,进入raid5降级状态。
50.四、raid5降级,此时raid5中一块硬盘寿命耗尽处于失效状态,需对失效硬盘进行
替换。若raid5此前处于磨损逆均衡生效状态,即raid5数据分布被改变,则在硬盘替换后需恢复数据分布。
51.7.替换硬盘为固态硬盘,磨损逆均衡程序进入监测状态。
52.8.替换硬盘为非固态硬盘,此时磨损逆均衡机制失去原有意义,raid5处于无磨损均衡的传统raid5状态。
53.参见图3,为本发明实施例的本发明的技术方案为实现磨损逆均衡的方法的流程图,包括以下步骤:
54.s1,创建raid5;
55.s2,判断raid5的成员盘是否全为固态硬盘,否,则结束磨损逆均衡步骤;
56.s3,是,则获取成员盘寿命;
57.s4,延时,并对延时前后硬盘寿命的消耗程度计算硬盘寿命消耗速率;
58.s5,判断raid5是否降级,即判断raid5中是否有盘寿命耗尽;是,则进行s9 raid5重构;
59.s6,否,则计算成员盘寿命消耗速率,成员盘寿命消耗速率由两次获取的硬盘寿命和间隔时间计算得到,作为下次延时时长的调整依据,并作为磨损逆均衡的输入,据此制定磨损逆均衡策略;
60.s7,判断磨损逆均衡启动条件,此时已获知各成员盘当前剩余寿命状况和寿命消耗速率,若此时有成员盘的寿命与其他硬盘寿命差值小于设定的风险阈值且该硬盘已接近老年期,即高于预设寿命阈值,则认为raid5的安全性降低,需要启动磨损逆均衡以加大硬盘间的寿命差值,保证raid5中只有不超过一块硬盘处于老年期;否,则无需启动磨损逆均衡,返回s3;
61.s8,磨损逆均衡,包括磨损逆均衡中的数据迁移;
62.s9,raid5重构,当raid5中有成员盘寿命耗尽,raid5进入降级状态并提醒系统管理员更换硬盘,此时如需读取掉线的成员盘数据则通过读取同一条带内的其他数据块并计算得到目标数据;替换成员盘后,进入raid5重构过程,经计算得数据并存入新成员盘,重构完成后,恢复磨损逆均衡机制过程中产生的数据迁移,即恢复到传统raid5的数据排布状态,如没有受磨损逆均衡机制影响,则省略此过程。
63.s1创建raid5包括对校验块p的读写计数功能,作为数据迁移时选择迁移目标数据块的依据。
64.s3获取成员盘寿命,具体为在固态硬盘主控芯片中记录固态硬盘的全盘写次数,linux系统下通过smartctl工具查看。
65.s4延时设置一个初始值,后续步骤中根据寿命消耗速率动态调整延时时间。
66.s5判断raid5是否降级中,不触发磨损逆均衡,提醒系统管理员替换寿命耗尽的硬盘。
67.s8磨损逆均衡,具体为选择寿命最高的硬盘中的数据块d,与处于同一条带且属于寿命次高的硬盘中的校验块p交换数据。
68.s8磨损逆均衡包括将数据块d的数据拷贝至校验块p所属存储空间,修改本条带位表,即将原指向数据块d和校验块p的地址交换,最后计算生成校验块p信息并保存在对应存储地址。
69.s8磨损逆均衡包括将整个数据条带复制到其他未存储数据的空闲条带,复制过程中改变数据分布。
70.s8和s9步骤后均返回s3步骤。
71.数据迁移过程参见图4,即选择寿命最高的硬盘中的数据块d,与处于同一条带且属于寿命次高的硬盘中的校验块p交换数据。条带1的数据交换主要过程如图5所示,将数据块d的数据拷贝至校验块p所属存储空间,修改本条带位表(用于保存各数据块地址信息),即将原指向数据块d和校验块p的地址交换,最后计算生成校验块p信息并保存在对应存储地址。
72.此交换过程对达成磨损逆均衡效果的解释如下:
73.1.在同一条带中,校验块p在任意数据块d更新时都需要被重新计算并写入,在图4的条带1中,校验块p的写入次数为数据块d1、d2、d3的写入次数之和。因此校验块p的写请求次数远高于条带中其他数据块d的写请求次数。
74.2.因固态硬盘中存储介质闪存的使用特性,固态硬盘寿命随数据写入次数增加而增加,读请求并不影响固态硬盘寿命,所以提高某硬盘请求中写请求的比例会加快硬盘寿命消耗速率。
75.3.在同一条带中,当条块中某数据块d的读取失败时,会通过读取其他数据块d和校验块p的信息计算得到目标数据。当raid5处于降级状态,或某硬盘数据丢失时才会对校验块p产生读请求,在整个raid5使用过程中只有极少时间段处于此类非正常状态。因此,在正常使用情况下,校验块p的读请求次数远少于其他数据块d的读请求次数。
76.基于以上原理,交换数据块操作后将增加寿命最高的硬盘的写请求比例,提高此硬盘的寿命消耗速率;减少寿命次高的硬盘的写请求比例,降低此硬盘的寿命消耗速率。达到加大硬盘间寿命差值的目标,实现磨损逆均衡。同时交换操作将减少寿命最高的硬盘的读请求比例,增加寿命次高的硬盘的读请求比例,使两个硬盘的读写请求总量保持相近,维持raid5中硬盘间的负载均衡效果。
77.具体实施例中,s8磨损逆均衡程序也可通过修改硬raid卡固件代码,以实现带磨损逆均衡的硬raid卡。
78.部分硬盘厂家支持直接从固态硬盘读取硬盘寿命百分比,此数据同样可用作磨损逆均衡机制判断生效的条件。
79.磨损逆均衡生效过程中进行的数据交换操作还可以将整个数据条带复制到其他未存储数据的空闲条带,复制过程中改变数据分布。
80.本方法将硬盘寿命按时间段划分并进行动态的规划,磨损逆均衡机制的具体动作为迁移raid5中具有不同读写特点的数据块,此过程既能调整raid5中硬盘寿命消耗速率,又维持了raid5的硬盘间负载均衡。
81.磨损逆均衡过程中,raid5全程处于可读写状态,不影响raid5在线使用状态。
82.本发明将硬盘寿命划分为多个片段,在硬盘进入老年期之前对硬盘寿命消耗速率进行监测统计,并采取措施改变硬盘寿命消耗速率,以预防为主要策略实现磨损逆均衡,保证raid5不会进入多个硬盘同时处于老年期的不安全状态。
83.磨损逆均衡机制的运行过程中只对raid5中部分数据块进行复制迁移操作,通过将更多接受写请求的数据块迁移至某硬盘可少量加速此硬盘的寿命消耗速率而不影响整
体raid5的读写性能,少量的数据迁移并不影响raid5使用性能。且此操作过程可以保持raid5处于在线使用状态,而无需将raid5下线重构。
84.本方法的运行机制可持续监测raid5中硬盘的当前寿命和寿命消耗速率,规划raid5中各个硬盘进入老年期的时间段,并通过动态的“监测——迁移”机制调节硬盘寿命消耗速率,最终使硬盘在预计时间达到老年期并保证raid5中至多只有一个硬盘处于老年期。
85.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。