一种ssd复位方法及装置的制造方法
【技术领域】
[0001] 本发明涉及存储技术领域,特别涉及一种SSD复位方法及装置。
【背景技术】
[0002] RAID (Redundant Array of Independent Disks,独立硬盘冗余阵列)是一种数据 分布技术,该技术将业务数据分布到不同的硬盘驱动器上,同时在这些分布存储的业务数 据中加入冗余数据,使得当一定数量的硬盘驱动器出现故障时,仍然可以通过剩余硬盘驱 动器上的数据,将丢失的数据通过数学计算恢复回来。
[0003] 假设单块硬盘驱动器的年均失效率为AFR,这是一个介于0和1之间的小数,那么 两块硬盘驱动器同时出现故障的概率是AFR X AFR,三块硬盘驱动器同时出现故障的概率是 AFRXAFRXAFR,以此类推。可见,硬盘驱动器的数量越多,那么这些硬盘驱动器同时出现故 障的概率就越低。
[0004] RAID正是利用了"多块硬盘驱动器同时出现故障的概率极低"的特点,将数据分散 部署到多块不同的硬盘驱动器上,从而避免单块或者少数几块硬盘驱动器失效导致数据丢 失。由此可以看出,避免"同时失效",是RAID能够提升可靠性的关键之一。
[0005] -般情况下,构成RAID的硬盘驱动器自身就是一个嵌入式系统,例如SSD (Solid State Device/Solid State Drive,固态硬盘),每个SSD中植入的代码量都较大,而当软件 规模达到一定程度以后,软件系统一般会用到定时器、计数器之类的手段,来处理一些较为 复杂的、持续周期较长的业务逻辑。基于这种机制的业务逻辑,如果代码中隐含了与计数器 溢出、除零等相关的缺陷,那么这种缺陷,因为需要等到较长的运行时间才会出现,所以较 难在开发阶段被发现,同时,这样的缺陷,一般到了某个固定的时间点,出现的概率较大。
[0006] 那么,根据以上的描述想象一个场景:
[0007] 构成RAID的各SSD内的代码,存在某个计数器缺陷,该缺陷在开发测试阶段并未 被发现。
[0008] 各SSD内的这个计数器缺陷,会在SSD上电运行了 100天后,导致除零异常。
[0009] 组成一个RAID的各SSD -般是同时开始运行的,那么该RAID在运行了 100天后, 所有的SSD由于计数器缺陷导致除零异常,可能会因为同一个RAID组内的多块SSD同时失 效而导致存储业务中断,甚至可能会导致数据丢失。
[0010] 通过对这个场景进行简单分析可以发现,导致存储业务中断的根因是:RAID机制 所基于的硬盘驱动器"同时失效概率极低"的这个前提条件,被SSD内在的计数器相关的软 件缺陷所打破。基于SSD的RAID组,多块SSD "同时失效概率极低"的前提条件,在某些情 况下并不存在,这进一步导致在这些场景下,RAID的可靠性并不高。
【发明内容】
[0011] 本发明实施例提供一种SSD复位方法及装置,用于解决RAID的可靠性不高的技术 问题。
[0012] 本发明的第一方面,提供一种SSD复位方法,包括:
[0013] 将RAID中包括的第i个SSD作为基准SSD,按照对应的复位时刻从前到后的顺序, 比较所述第i个SSD的复位时刻与第i+Ι个SSD的复位时刻之间的时间差是否大于等于预 设时差阈值;
[0014] 若小于,则将所述第i+Ι个SSD标记为需要复位的SSD,并继续按照复位时刻从前 到后的顺序,依次比较所述第i个SSD的复位时刻与复位时刻位于所述第i+Ι个SSD之后 的其他SSD的复位时刻之间的时间差是否大于等于所述预设时差阈值;
[0015] 若所述第i个SSD的复位时刻与所述第i+Ι个SSD的复位时刻之间的时间差大于 等于所述预设时差阈值,则令所述第i+Ι个SSD替换所述第i个SSD作为新的基准SSD,并 继续比较所述第i+Ι个SSD的复位时刻与复位时刻位于所述第i+Ι个SSD之后的其他SSD 的复位时刻之间的时间差是否大于等于所述预设时差阈值;
[0016] 在将所述RAID中包括的复位时刻位于所述第i个SSD之后的各SSD均比较完毕 后,控制其中标记为需要复位的SSD分别进行复位。
[0017] 结合第一方面,在第一方面的第一种可能的实现方式中,在将所述RAID中包括的 复位时刻位于所述第i个SSD之后的各SSD均比较完毕后,控制其中标记为需要复位的SSD 分别进行复位,包括:
[0018] 在将所述RAID中包括的复位时刻位于所述第i个SSD之后的各SSD均比较完毕 后,判断当前时刻与参与比较的SSD中的特定SSD的复位时刻之间的时间差是否大于等于 所述预设时差阈值;其中,所述特定SSD为:按照复位时刻从前到后的顺序,参与比较的SSD 中的最后一个未被标记为需要复位的SSD ;
[0019] 若大于等于,则控制其中标记为需要复位的SSD分别进行复位。
[0020] 结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的 实现方式中,控制其中标记为需要复位的SSD分别进行复位,包括:
[0021] 在对标记为需要复位的SSD中的任一个SSD进行复位后,每隔预设时间间隔对需 要复位的SSD中的剩余的任一个SSD进行复位,直到将需要复位的SSD均进行复位;其中, 所述预设时间间隔大于等于所述预设时差阈值。
[0022] 结合第一方面或第一方面的第一种可能的实现方式或第二种可能的实现方式,在 第一方面的第三种可能的实现方式中,控制其中标记为需要复位的SSD分别进行复位,包 括:
[0023] 利用SSD自带的状态复位功能,控制需要复位的SSD分别进行自我复位;或
[0024] 通过所述RAID控制需要复位的SSD分别进行复位。
[0025] 结合第一方面或第一方面的第一种可能的实现方式或第二种可能的实现方式或 第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述方法还包括:实时、 定时或周期性检测所述RAID中包括的各SSD的复位时刻,并进行记录。
[0026] 本发明的第二方面,提供一种SSD复位装置,包括:
[0027] 第一比较模块,用于将RAID中包括的第i个SSD作为基准SSD,按照对应的复位时 刻从前到后的顺序,比较所述第i个SSD的复位时刻与第i+Ι个SSD的复位时刻之间的时 间差是否大于等于预设时差阈值;
[0028] 第二比较模块,用于若小于,则将所述第i+Ι个SSD标记为需要复位的SSD,并继续 按照复位时刻从前到后的顺序,依次比较所述第i个SSD的复位时刻与复位时刻位于所述 第i+Ι个SSD之后的其他SSD的复位时刻之间的时间差是否大于等于所述预设时差阈值;
[0029] 第三比较模块,用于若所述第i个SSD的复位时刻与所述第i+Ι个SSD的复位时 刻之间的时间差大于等于所述预设时差阈值,则令所述第i+Ι个SSD替换所述第i个SSD 作为新的基准SSD,并继续比较所述第i+Ι个SSD的复位时刻与复位时刻位于所述第i+Ι个 SSD之后的其他SSD的复位时刻之间的时间差是否大于等于所述预设时差阈值;
[0030] 控制模块,用于在将所述RAID中包括的复位时刻位于所述第i个SSD之后的各 SSD均比较完毕后,控制其中标记为需要复位的SSD分别进行复位。
[0031] 结合第二方面,在第二方面的第一种可能的实现方式中,所述控制模块具体用 于:
[0032] 在将所述RAID中包括的复位时刻位于所述第i个SSD之后的各SSD均比较完毕 后,判断当前时刻与参与比较的SSD中的特定SSD的复位时刻之间的时间差是否大于等于 所述预设时差阈值;其中,所述特定SSD为:按照复位时刻从前到后的顺序,参与比较的SSD 中的最后一个未被标记为需要复位的SSD ;
[0033] 若大于等于,则控制其中标记为需要复位的SSD分别进行复位。
[0034] 结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的 实现方式中,所述控制模块用于控制其中标记为需要复位的SSD分别进行复位,具体为:
[0035] 在对标记为需要复位的SSD中的任一个SSD进行复位后,每隔预设时间间隔对需 要复位的SSD中的剩余的任一个SSD进行复位,直到将需要复位的SSD均进行复位;其中, 所述预设时间间隔大于等于所述预设时差阈值。
[0036] 结合第二方面或第二方面的第一种可能的实现方式或第二种可能的实现方式,在 第二方面的第三种可能的实现方式中,所述控制模块用于控制其中标记为需要复位的SSD 分别进行复位,包括:
[0037] 利用SSD自带的状态复位功能,控制需要复位的SSD分别进行自我复位;或
[0038] 通过所述RAID控制需要复位的SSD分别进行复位。
[0039] 结合第二方面或第二方面的第一种可能的实现方式或第二种可能的实现方式或 第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述装置还包括检测模 块,用于:实时、定时或周期性检测所述RAID中包括的各SSD的复位时刻,并进行记录。
[0040] 本发明的第三方面,提供一种SSD复位装置,包括连接到同一总线的存储器和处 理器;
[0041] 所述存储器,用于存储指令;
[0042] 所述处理器,用于执行所述指令,将独立磁盘冗余阵列RAID中包括的第i个SSD 作为基准SSD,按照对应的复位时刻从前到后的顺序,比较所述第i个SSD的复位时刻与第 i+Ι个SSD的复位时刻之间的时间差是否大于等于预设时差阈值;若小于,则将所述第i+1 个SSD标记为需要复位的SSD,并继续按照复位时刻从前到后的顺序,依次比较所述第i个 SSD的复位时刻与复位时刻位于所述第i+Ι个SSD之后的其他SSD的复位时刻之间的时间 差是否大于等于所述预设时差阈值;若所述第i个SSD的复位时刻与所述第i+Ι个SSD的 复位时刻之间的时间差大于等于所述预设时差阈值,则令所述第i+Ι个SSD替换所述第i