[发明专利]一种固态盘阵列的重建方法有效
申请号: | 201110350044.3 | 申请日: | 2011-11-08 |
公开(公告)号: | CN102521068A | 公开(公告)日: | 2012-06-27 |
发明(设计)人: | 陈俭喜;刘景宁;冯丹;刘芳;戚世贵;杨宗 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F11/14 | 分类号: | G06F11/14 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 李佑宏 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 固态 阵列 重建 方法 | ||
1.一种固态盘阵列的重建方法,其特征在于,包括如下步骤:
(1)构建存储系统
首先,在固态盘阵列外添加一个附加的磁盘,该附加盘用来存储重建过程中重定向的写数据;
其次,在内存中设置位图日志表和写重定向元数据Hash表,位图日志表用来记录跟随读负载优先重建的条带,元数据Hash表用来记录重定向写请求的关键信息,包括请求所在条带的起始逻辑地址、请求写入的固态盘号、条带的校验盘号和重定向到附加盘上的逻辑块地址;
(2)固态盘阵列的重建进程
当系统中有成员固态盘发生故障时,取出故障盘,插入新的替换盘,启动固态盘阵列开始进行重建,具体过程如下:
(2.1)初始化位图日志表,日志表的每一位对应固态盘阵列的一个条带,将位图日志表的每一位都初始化为0,继续步骤(2.2);
(2.2)重建进程根据当前需要重建的条带的起始逻辑地址判断位图日志表相应的位是否为1,如果是则继续步骤(2.3),否则转入步骤(2.4);
(2.3)该条带已经被重建过,跳过该条带的重建,获取下一个重建条带的起始逻辑地址,转入步骤(2.5);
(2.4)该条带没有重建过,获取一个空闲条带,读出所有幸存盘上该条带位置处的数据,将这些数据进行异或XOR运算,将计算的结果写入到替换固态盘对应的位置上,置位图日志表中相应的位为1,继续步骤(2.5);
(2.5)重复上述步骤(2.2)--(2.4),直至所有的条带都重建完毕,释放位图日志表占用的资源;
(3)数据写回
(3.1)判断写重定向元数据Hash表是否为空,如果不为空则继续步骤(3.2),否则转入步骤(3.4);
(3.2)从写重定向元数据Hash表中取出条带起始逻辑地址相同但逻辑盘号不同的记录,从附加盘中读出这些记录对应的数据,并将它们写回到重建完成的固态盘阵列中,更新校验块,继续步骤(3.3);
(3.3)将所述这些记录从Hash表中删除,转入步骤(3.1);
(3.4)完成了所有重定向数据的写回过程,释放Hash表占用的资源。
2.根据权利要求1所述的一种固态盘阵列的重建方法,其特征在于,所述重建阶段中进行数据读写的过程为:
(4.1)判断阵列的状态,如果处于重建状态则继续步骤(4.2);
(4.2)判断上层下发的读写请求的类型,如果是读请求,则继续步骤(4.3),否则转入步骤(4.8);
(4.3)处理用户读请求,根据RAID的数据组织方式获取读请求对应的条带S,根据条带S的起始逻辑地址C和该请求在条带S中的逻辑盘号N查询写重定向元数据Hash表,如果命中则继续步骤(4.4),否则转入步骤(4.5);
(4.4)要读的最新数据在附加盘中,根据命中的元数据表项中附加盘上的逻辑块地址,读取附加盘中的最新数据返回给用户,结束;
(4.5)要读的数据在重建固态盘阵列中,查询起始逻辑地址C对应的位图日志表相应的位,如果为0则转入步骤(4.6),否则转入步骤(4.7);
(4.6)读请求所在的条带S没有被重建,将所有幸存盘上位于条带S的数据块从底层固态盘中读取出来,分别记为D(i),其中i=1,2,3...n-1,n为阵列中成员固态盘的个数,利用异或运算XOR将替换盘上的数据D(n)计算出来,即将用户读请求需要读取的数据块D={D(i)|i=1,2,3...n}返回给用户,同时将D(n)写入到替换固态盘中,置位图日志表中相应的位为1,结束;
(4.7)按照正常的数据读流程进行处理,结束;
(4.8)处理用户写请求,对于待写数据D’,根据RAID的数据组织方式获取写请求对应的条带S’,计算出条带S’的起始逻辑地址C’,写请求在条带S’中的逻辑盘号N’,条带的校验盘号P’,若该条带为满带写,则进入步骤(4.9),否则转入步骤(4.10);
(4.9)写数据块覆盖了整个条带缓冲区,将待写数据D’填充到条带缓冲区C’(N)中,转入步骤(4.12);
(4.10)写数据块没有覆盖整个条带缓冲区,根据条带起始逻辑地址查看位图日志表相应的位,如果为0则继续步骤(4.11),否则转入步骤(4.12);
(4.11)该条带还没有被重建,将所有幸存盘上位于条带S’的数据块从固态盘阵列中读取出来,分别记为D’(i),其中i=1,2,3...n-1,n为阵列中成员固态盘的个数,利用异或运算XOR将替换盘上的数据D’(n)计算出来,即将写数据D’填充到条带缓冲区C’(N),同时将D’(n)写入到替换固态盘中,置位图日志表中相应的位为1,转入步骤(4.12);
(4.12)将条带缓冲区C’(N)中的数据重定向到附加盘中,附加盘采用顺序追加的方式,根据条带S’起始逻辑地址C’和逻辑盘号N’查找写重定向元数据Hash表,如果命中则转入(4.13),否则转入(4.14);
(4.13)更新命中的元数据表,修改命中表项中附加盘的逻辑块地址,将附加盘中该数据块对应的老数据块标识为无效,结束;
(4.14)将该重定向写请求的元数据表项添加到Hash表中,结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110350044.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种空气带状线宽带低互调一分四功分器
- 下一篇:微同轴混合编织射频电缆