阵列重建技术总结Word格式文档下载.docx
- 文档编号:6189308
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:11
- 大小:62.82KB
阵列重建技术总结Word格式文档下载.docx
《阵列重建技术总结Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《阵列重建技术总结Word格式文档下载.docx(11页珍藏版)》请在冰点文库上搜索。
2.传统重建
2.1传统重建的概念
传统重建是通过读其他数据盘计算校验值来写重建盘,重建完成后阵列重新具备冗余性。
重建是以条带为单位进行的,比如A盘和B盘是数据盘,D盘是重建盘。
阵列的条块是64k,重建时每次从A盘和B盘读取64k的数据,进行异或运算后写D盘。
数据盘A
110100*********0
数据盘B
0111011100110010
重建盘D
1010011001101000
2.2传统重建的触发条件
1)冗余阵列中的一个数据盘拔盘后,踢盘时间内没有回来,会踢掉源盘,如果存在合适的热备启动传统重建。
2)拷贝重建中,源盘本来就有读写错误记录或者遇到读错误,该错误所在条带按传统重建方式处理。
3)拷贝重建的源盘达到512个读错误,踢源盘转化为传统重建。
4)拷贝重建的源盘达到512个写错误,踢源盘转化为传统重建。
5)拷贝重建的源盘missing后,踢盘时间内未回来,踢掉源盘转化为传统重建。
注:
踢盘时间默认为10分钟,可用命令进行更改,例如更改为5分钟的命令如下:
echo5>
/sys/module/raid/parameters/lun_disk_missing_time
更改后,只存于当前内存中,重启后无效。
2.3传统重建的读写错误处理
传统重建读写错误处理要区分CP点之前和之后,CP点之前就是已经重建过的条带,条带具有冗余性;
CP点之后就是没有重建过的条带。
业务在CP点之前,可能会读重建盘,业务在CP点之后,肯定不会读重建盘。
下面分情况对数据盘(重建盘)的业务读写和重建读写分别进行讨论。
2.3.1对数据盘的读写
若数据盘的业务读遇到读错误,区分CP点之前和之后。
CP点之前,比如A盘遇到读错误,再下发一次读,如果没读成功,会去读B盘和D盘进行异或后写A盘,整个修复过程成功,命令返回成功,不记录任何错误;
如果过程中读B盘失败,则命令返回失败,A盘B盘记录读错误;
如果过程中写A盘失败或者再回读A盘失败,命令返回成功,A盘记录写错误。
CP点之后,遇到读错误会记录,业务会报错,记录到512个不再记录;
LUN变failed,遇到读错误记录或者写错误记录,业务会报错。
若数据盘的重建读遇到读错误,重建跳过继续重建,数据盘和重建盘都记录读错误;
重建读遇到读错误记录或者写错误记录,重建跳过继续重建,重建盘记录读错误。
数据盘读错误达到512个,LUN变faield。
若数据盘遇到业务写错误,记录写错误,LUN状态变failed,可resume恢复。
2.3.2对重建盘的读写
若重建盘的业务读遇到读错误,区分CP点之前和之后。
CP点之前,比如A盘遇到读错误,会去读B盘和D盘进行异或后写A盘,整个修复过程成功,命令返回成功,不记录任何错误;
CP点之后,读命令不会下发到重建盘。
重建盘不论是遇到重建写错误或是业务写错误都会踢盘。
2.4传统重建的磁盘上下电处理
不同情况的上下电处理如下表所示:
RAIDLUN状态
业务流量
是否需要局部重建
数据盘b类错误下电
重建暂停,保持原来的降级状态,磁盘上电后,接着原来的进度重建。
不会报错,向上层返回busy,磁盘上电后流量可正常下发。
不需要
数据盘非b类错误下电
重建暂停,变failed状态,磁盘上电后,接着原来的进度重建。
会报错,磁盘上电后流量可正常下发
重建盘b类错误下电
重建暂停,保持降级状态,磁盘上电后,局部重建完成后可接着原来的进度重建。
流量正常
如果下电期间有写业务需要进行局部重建
重建盘非b类错误下电
3.拷贝重建
3.1拷贝重建的概念
原normal状态的RAIDLUN,由于读写错误导致RAIDLUN变为degraded状态,无missing盘且存在热备盘时会加盘进行重建,即拷贝重建。
重建过程中,直接从源盘(故障数据盘)拷贝数据到重建盘。
当源盘数据无法读取时,该条带按传统重建方式重建。
在重建完成后踢掉源盘,RAIDLUN变为normal状态。
一般情况下拷贝重建比传统重建快一点,但如果源盘读很慢的时候,拷贝重建方式可能比传统重建还慢;
从下图可以看出,拷贝重建会比传统重建少很多次的读和异或计算;
在RAIDLUN盘数越多的情况下,拷贝重建效率越明显。
3.2拷贝重建的触发条件
1)NormalRAIDLUN(已同步、同步中和未同步)中成员磁盘遇到写错误会加盘拷贝重建。
2)传统重建中的RAIDLUN,在数据盘遇到写错误后会failed,resume起来传统重建完成后加盘拷贝重建。
3)拷贝重建中的RAIDLUN数据盘在冗余条带遇到写错误,待拷贝重建完成后加盘继续拷贝重建;
在非冗余条带遇到写错误,resume起来拷贝重建完成后加盘拷贝重建。
4)局部重建、写异常恢复中的RAIDLUN,在数据盘遇到写错误会failed,resume起来清除局部重建记录和写异常记录后加盘拷贝重建。
5)超级块错误或smart检测故障时会触发拷贝重建,故障盘记录写错误,重建完成后踢出故障磁盘并标记failed。
6)在进行坏块替换时,替换失败会触发拷贝重建。
7)开启坏块替换,DDF区写错误会触发拷贝重建。
8)开启坏块替换,在替换记录达到8190后会触发拷贝重建。
3.3拷贝重建中磁盘的读写错误处理
拷贝重建过程遵循双写双不写原则,即在有业务或局部重建写流量时,源盘与重建盘均在位,会对两块盘都进行写入。
若有一块盘missing,会停止对两块磁盘的写入,防止数据不一致。
3.3.1重建读写错误处理
重建读时源盘遇到读错误,读错误会增加,该条带用传统重建方式写重建盘;
当读错误增加至512个时,踢掉源盘,从0开始传统重建。
当用传统重建方式写重建盘时,读数据盘失败,数据盘和重建盘均记录读错误。
重建写时重建盘遇到写错误,会踢掉重建盘,寻找合适的空白盘加入重新开始拷贝重建。
3.3.2业务读写错误处理
业务读时只会读数据盘和源盘,不会读重建盘。
若是在冗余条带,遇到读错误时会进行写修复。
若是在非冗余条带,遇到读错误不影响RAIDLUN状态,读错误记录增加。
业务写时遵循双写双不写原则,业务写错误有以下情况:
1)当源盘发生写错误,写错误记录增加,RAIDLUN状态不变,磁盘列表不变。
2)当重建盘发生写错误,RAIDLUN会踢掉重建盘,加入空白盘重新拷贝重建。
3)当数据盘在冗余条带发生写错误,RAIDLUN状态不变,继续拷贝重建,在拷贝重建完成后再加盘拷贝重建;
如在非冗余条带发生写错误,RAIDLUN会failed。
拷贝重建前RAIDLUN如未同步,在拷贝重建过程中查询NV-RAM是不会有写异常记录的;
如拷贝重建前RAIDLUN有同步过,在拷贝重建过程中,落在已同步过的条带上的写流量会产生写异常记录;
即写异常记录跟拷贝重建的CP点无关,只跟同步和传统重建的CP点有关。
以上提到的读写错误数如无说明均指少于512个错误,拷贝重建过程中关于512读写错误情况如下:
1)源盘有512个读错误或写错误会踢盘从0开始传统重建
2)重建盘有512个读错误会踢盘重新加盘拷贝重建
3)数据盘有512个读错误或写错误RAIDLUN变failed
3.4拷贝重建中的拔盘处理
1)数据盘数达到数据冗余性的拷贝重建RAIDLUN拔一块盘的处理情况:
a)源盘:
超过踢盘时间后,踢盘变为传统重建,原拷贝重建盘变为传统重建盘,重建CP保持继续。
b)重建盘:
超过踢盘时间后,先踢盘加新盘拷贝重建。
c)其它数据盘:
RAIDLUNfailed,十分钟内自动resume为degraded,先踢盘继续拷贝重建,拷贝重建完成后加新盘进行传统重建。
2)数据盘达到数据完整性的拷贝重建RAIDLUN拔一块盘的处理情况:
a)源盘:
RAIDLUNfailed,不能自动resume。
超过踢盘时间后,先踢missing盘加新盘拷贝重建。
RAIDLUNfailed,不能自动resume。
4.局部重建
4.1局部重建的概念
局部重建指的是一块磁盘离线(包括手动拔插、SAS拔插、B类错误上下电、链路不稳等各种情况导致的离线),且该RAIDLUN上存在业务写流量,此时系统会记录写入数据涉及的条带,并标记该RAIDLUN中离线磁盘为Missing状态,等磁盘重新上线后且能回到RAIDLUN中,则重建这段时间内写入的条带,达到重新利用该硬盘的目的。
避免采用全盘重建,缩短重建时间。
局部重建完成后或者硬盘无法回到RAIDLUN中,将清除记录的条带信息。
局部重建只针对具有冗余性的RAIDLUN。
包括normal状态的阵列各个数据盘、重构重建的重键盘、拷贝重建的重键盘和被重建盘都会发生局部重建。
4.2局部重建的触发条件
1)Normal状态下RAIDLUN的磁盘离线(包括手动拔插磁盘、SAS拔插、B类错误上下电、链路不稳情况导致的磁盘离线),而此时RAIDLUN有上层业务写入(包括业务数据写入,逻辑资源LV创建)。
磁盘在磁盘丢失踢盘时间之内上线,此时RAIDLUN会对磁盘进行局部重建。
2)RAIDLUN处于传统重建过程中重建盘发生磁盘离线,而此时RAIDLUN有上层业务写入,并且磁盘丢失踢盘时间之内上线,会对重建盘进行局部重建。
3)RAIDLUN处于拷贝重建过程中重建盘或被重建盘发生磁盘离线,而此时RAIDLUN有上层业务写入,并且磁盘丢失踢盘时间之内上线,会对重建盘和被重建盘进行局部重建。
4.3局部重建的读写错误处理
4.3.1重建盘读错误
局部重建过程中,重建盘不会有读命令。
采用读其他数据盘数据进行异或运算得出。
4.3.2重建盘写错误
1)normal态下RAIDLUN发生局部重建遇到重建盘写错误,先完成局部重建,后触发拷贝重建。
达到512个写错误,直接踢盘进行传统重建。
2)传统重建下发生局部重建,遇到重建盘写错误,直接踢掉重建盘,重新加盘进行传统重建。
3)拷贝重建下发生的局部重建,遇到重建盘写错误。
踢掉重建盘,加盘先进行局部重建,重建完成之后拷贝重建。
4.3.3数据盘读错误
1)normal状态下RAIDLUN发生局部重建,数据盘达到512个读错误,LUN变failed,会自动resume清除局部重建记录,加盘传统重建,但是此时会发现原局部重建盘也有512个读错误,无法传统重建,RAIDLUN变failed,resume会失败。
2)拷贝重建状态发生局部重建,数据盘达到512个读错误,RAIDLUN变failed,resume会失败。
(数据盘,重建盘,源盘都会有512个读错误)
3)传统重建状态发生局部重建,数据盘512个读错误,RAIDLUN变failed,遇到resume失败。
(未达到512个之前的读错误,记录DDF)。
4.3.4数据盘写错误
1)normal态下RAIDLUN发生的局部重建,数据盘遇到写错误,RAIDLUN变failed,遇到resume后,删除局部重建记录,局部重建盘恢复为normal,加盘对数据盘进行拷贝重建。
(数据盘的写错误可能发生在冗余条带,也可能发生在还未完成重建的不冗余条带,我司软件不判断是否为冗余条带写错误,直接failed)
2)拷贝重建下发生局部重建,数据盘遇到写错误,记录错误,局部重建完之后,继续原来拷贝重建,完成后再加盘对数据盘进行拷贝重建;
如果遇到512个写错误,RAIDLUN会failed。
遇到resume后,删除局部重建记录,踢掉有512个错误的数据盘和重建盘,加盘进行传统重建,完成后再加盘进行拷贝重建。
3)传统重建下发生的局部重建,遇到数据盘写错误,RAIDLUN变failed,遇到resume删除局部重建记录,继续从原进度开始传统重建。
重建完成后再加盘对出现写错误的数据盘拷贝重建。
(此局部重建过程有数据盘写错误RAIDLUN就会变failed,即局部重建过程不会出现数据盘512个写错误。
)
4)拷贝重建下发生局部重建,重建过程中源盘发生写错误,错误记录,局部重建完成之后,继续拷贝重建。
写错误达到512个,踢盘,继续局部重建,重建完成之后,对重建盘从0开始传统重建。
4.4局部重建的磁盘离线处理
4.4.1重建盘离线
1)normal态下RAIDLUN发生磁盘离线导致的局部重建,重建过程中遇到局部重建盘离线,若有业务写入,则继续写入其他数据盘,记录写入条带。
看是否在磁盘丢失踢盘时间之内磁盘是否上线,上线则进行局部重建,离线则重新加盘传统重建(系统有热备盘的时候)。
2)传统重建下发生的局部重建,局部重建过程中遇到重建盘离线,若有业务写入,则继续写入其他数据盘,记录写入条带。
看是否在磁盘丢失踢盘时间之内磁盘是否上线,上线则进行局部重建,离线则删除局部重建记录,重新加盘传统重建。
3)拷贝重建下发生的局部重建,遇到重建盘离线,有业务写入时,写入数据盘,不写入源盘(拷贝重建双写双不写原则)。
磁盘丢失踢盘时间之内磁盘是否上线则继续局部重建,离线则继续完成源盘的局部重建,完成后加盘从0开始拷贝重建。
4.4.2数据盘离线(特指非重建盘)
1)normal态RAIDLUN发生局部重建,遇到数据盘(非重建盘)离线(目前磁盘下电后90s内RAIDLUN状态不变),RAIDLUN变failed状态,向上返回错误,不进行业务写入。
如果在磁盘丢失踢盘时间之内磁盘上线:
继续原有的局部重建。
如果中途遇到resume命令,踢掉离线的数据盘,删除局部重建记录。
加盘进行传统重建。
2)传统重建下发生局部重建过程中,遇到数据盘离线,RAIDLUN变failed,无法resume。
磁盘回来之后完成局部重建后继续传统重建。
3)拷贝重建下发生的局部重建,遇到数据盘离线,RAIDLUN变failed状态,如果遇到resume则踢数据盘,删除局部重建记录,进行传统重建,传统重建完之后再加盘进行拷贝重建。
如果十分钟之内磁盘上线则继续局部重建(磁盘上线前未遇到resume命令),完成后加盘拷贝重建。
(因DDF区错误或smart告警导致的拷贝重建发生局部重建过程中,数据盘missing,RAIDLUN依然是degraded,但是实际是假降级真failed情况,且无法resume,磁盘丢失踢盘时间之后也不会踢除missing盘)。
4)拷贝重建过程中发生的局部重建,过程中遇到源盘missing,RAIDLUN依然是degraded,局部重建停止,如果在磁盘丢失踢盘时间之后,源盘还没回来,则踢掉源盘,继续重建盘的局部重建,重建完成之后对原重建盘从0开始传统重建。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 阵列 重建 技术 总结
![提示](https://static.bingdoc.com/images/bang_tan.gif)