《宏杉科技IDDC与CRAID技术.doc》由会员分享,可在线阅读,更多相关《宏杉科技IDDC与CRAID技术.doc(13页珍藏版)》请在金锄头文库上搜索。
1、MacroSAN IDDC与CRAID技术杭州宏杉科技有限公司1. 典型案例某用户配置了16块1TB磁盘做RAID5,承载其在线关键业务。运行3年后,磁盘开始陆续损坏,发现其重建过程漫长。在其业务未中断的情况下,完成一次重建所需时间长达5天,这种情况还不是最糟的。更糟的是,在某次重建过程中,重建进程完成到60%时,重建过程被异常中止,RAID组fail,整个数据卷损坏,数据丢失。经检查发现,在重建过程中,该 RAID组中的另一块磁盘发生了读错误,导致磁盘failed,被RAID组踢出。通过这个案例我们可以看出几个问题:1、磁盘属于消耗品,发生老化后,会产生潜在故障盘或假象故障盘;2、故障盘或假
2、象故障盘都将导致RAID组重建; 3、大容量磁盘RAID重建时间过长,重建过程风险巨大;4、潜在故障盘将导致RAID重建失败;什么是假象故障磁盘简单的说,假象故障磁盘就是在使用中发生错误告警,但返厂后经检查发现该磁盘没有任何物理损坏,检测为正常的磁盘。为什么会有假象故障磁盘通常是与设备运行环境有关的,比如磁盘受到外力导致的振动达到一定程度,就会造成磁盘工作失灵,这种失灵往往在消除振动后可以恢复。 l 磁头在盘面的水平方面振动,会导致磁头与磁道偏离,磁头与目标磁道位置偏离过大,超过了伺服机构能响应的允许值,此时磁头根本无法定位,造成工作失灵; l 磁头在与盘面垂直方向的振动,导致磁盘盘面与磁头距
3、离的变化,磁头和盘片的间隙过大,造成磁头感应到的信号电压不足,磁盘无法读写; 什么是潜在故障磁盘 简单的说,潜在故障磁盘就是已经存在损坏扇区,但在设备运行状态中却显示为正常的磁盘。 为什么会有潜在故障磁盘由于磁盘本身属于易耗品,存储设备长期在线运行后,根据业务类型及机房环境不同,磁盘会出现不同程度的老化。这些老化磁盘中可能会存在不同程度的损坏扇区,而损坏扇区在没有IO读写触发的条件下,通常不会被存储设备感知。这种未被感知,但又存在一定损坏扇区的磁盘,就是潜在故障磁盘。一般情况下,潜在故障磁盘在非RAID环境中可能会导致磁盘中的部份文件埙坏或丢失。若存在于配置了RAID组的存储环境中,其危险性将
4、及有可能会乘以N倍的数量放大。故障磁盘的危害 l 冗余RAID组重建频繁 :存储设备长期在网运行后,由于机械设备老化,磁盘假象故障发生的机率增加,并且会有越来越多的潜在故障磁盘转化为故障磁盘,这些磁盘的陆续损坏导致了频繁的RAID组重建。传统存储设备的RAID组重建过程中,会大量消耗读写性能,尤其对于大容量磁盘,重建时间过长。因而往往会影响到用户业务的正常访问,且易出现冗余RAID组重建失败,发生数据丢失的事故。 l 冗余RAID组重建失败 :根据冗余RAID组原理,特别是采用积偶效验算法的RAID组,如RAID5、RAID6,在进行RAID组重建时,需要读取该RAID组中其它成员成盘上的所有
5、数据,来计算被替换故障磁盘的数据。对于长期在网运行,磁盘老化较严重的设备,往往会隐藏着一定的潜在故障磁盘,一旦这些磁盘在重建过程中转化为故障磁盘,该RAID组会立刻失效,重建失败,导致该RAID组所有数据丢失。 2. 问题与挑战随着云时代的到来,数据量越来越多,磁盘容量越来越大,发生磁盘损坏的比率也越来越大,如何解决磁盘故障对存储带来的危害成为重要课题目。问题: 1、 磁盘属于消耗品,一般3年左右,发生机械老化;2、 发生老化后,会产生潜在故障盘或假象故障盘;3、故障盘或假象故障盘都将导致RAID组重建; 4、大容量磁盘RAID重建时间过长,重建过程风险巨大;5、潜在故障盘易导致RAID重建失
6、败;挑战:1、变被动重建为主动检测;2、提高RAID容错度;3、降低磁盘误判;4、提高错误修复效率;5、减少数据丢失风险;3. 磁盘维护新方式IDDC主动式磁盘诊断中心基于多年存储维护经验的深刻理解,MacroSAN开发了一套可以在不增加任何附加投资的条件下,最大化提高磁盘及RAID组安全性的,智能存储磁盘维护检测修复工具。 IDDC:Initiative Disk Diagnosis Center,主动式磁盘诊断中心 该诊断中心包含了4个模块(磁盘检测、快速修复、坏块复位、磁盘诊断),它可以通过预先设置的策略定期对磁盘进行错误检测,用于发现磁盘中是否存在错误码。再根据错误码叛断磁盘错误类型,
7、并进行相应的坏块修复、磁盘迁移或磁盘修复等操作,以提早处理磁盘潜在故障隐患,降低RAID组重建损坏机率,提高设备稳定性。 l 磁盘检测: 对所有磁盘进行周期性全盘检测,提前发现故障; 支持磁盘检测速率动态调整,不影响应用性能; 发现问题的磁盘交由诊断中心统一处理; l 快速复位:结合CRAID的局部重建机制,可快速修复磁盘逻辑错误,降低全盘重建机率。l 坏块修复:经过检测的磁盘发现存在坏块(扇区)后,会触发磁盘自身的remap机制,将坏块的指针重定向到好的保留扇区中。然后调用RAID组的校验功能,重建该数据块,确保数据一致性。l 磁盘诊断:所有告警磁盘、故障磁盘会在诊断中心进行复诊并尝试修复,
8、减少磁盘故障误判。修复后的磁盘自动转为全局热备磁盘。3.1. 磁盘检测 对所有磁盘进行周期性全盘检测,提前发现错误并交由磁盘诊断中心统一处理。该功能可以通过以下几个模块实现: 3.2. 快速复位磁盘子系统的核心功能之一就是磁盘错误处理,在收到磁盘返回的磁盘错误之后,根据不同的错误,可以采取不同的错误处理方案,包括: 重试,即针对磁盘可恢复的临时性故障(磁盘的假故障,比如震动引起的读/写错误),磁盘子系统对命令进行重试; 对磁盘下电再上电,即从硬件上复位磁盘,尝试修复磁盘错误,结合上面提到的RAID基于Cell的局部重建机制,复位磁盘过程中新写入的数据可快速完成重建,恢复RAID的数据冗余性;
9、磁盘错误透传,由RAID进行处理。3.3. 坏块修复发现磁盘坏块(扇区),根据RAID信息重建数据,触发磁盘自身的remap机制,实现坏块替换磁盘在出厂前会留有一部份备用扇区,当正常使用的扇区出现损坏的情况下,磁盘会启用remap自动修复机制,将损坏扇区重定位到备用扇区,这样磁盘的整体容量和功能就不会受到影响,对于用户来讲,这个磁盘还是一个完整的好盘。采用remap机制把备用扇区替换到原始扇区后,虽然磁盘的功能得到恢复,但是原始扇区中的数据是已经丢失的,IDDC的坏块修复功能可以根据RAID组校验信息,计算出损坏扇区中的数据,并进行恢复,这个过程只是针对产生坏扇区的部份,而不需要对整个RAID
10、进行重建,重建过程所耗性能几乎可以忽略不计。3.4. 磁盘诊断所有告警磁盘、故障磁盘会在诊断中心进行复诊并尝试修复,减少磁盘故障误判。修复后的磁盘自动转为全局热备磁盘。磁盘检测中心对磁盘进行扫描后,会根据发现的磁盘错误类型进行标记,如warning盘、fail盘等,并通过相应的功能模块将这部分磁盘替换出来,转移到磁盘诊断中心由于磁盘检测时只能对磁盘进行全读操作,对于一些逻辑错误无法进行准确的判断。所以磁盘诊断中心会对磁盘进行全写操作,并对逻辑错误尝试进行修复。可以通过磁盘诊断中心修复的磁盘会被设置为热备磁盘。不能通过的会被设为fail磁盘,并会通过通知模块提醒用户更换。4. RAID维护新方式
11、CRAID根据前面的统计分析,存储系统的硬件故障90%以上是磁盘故障,而故障磁盘中,只有12%是完全的物理损坏,88%属于部分/完全可用。如果磁盘发生错误后立即被踢出阵列,一方面客户需要为100%的故障磁盘买单,另外一方面客户还需要承担故障磁盘被踢出阵列到被更换过程中其他磁盘再次故障所导致的数据丢失风险。ODSP存储软件平台在分层次、模块化设计的基础上,对多个层次上进行了磁盘错误处理,其目标是:“尽量尝试修复,尽可能减少踢盘”,以提高用户的投资回报率,提出基于Cell 的RAID同步和重建技术。Cell,形象称之为“细胞”,指带“活性”的数据单元,是存储资源管理的基本单位。引入Cell的概念后
12、,资源管理层次如下图所示,在具体的实现上,首先用物理磁盘创建RAID,然后把RAID的可用空间根据指定长度(默认1GB)划分为多个Cell,创建LUN时,系统自动分配空闲Cell,破除了LUN与RAID、Disk之间的捆绑关系,使RAID的最小维护单位由原来的磁盘变成了更小更灵活的Cell,实现了完全的虚拟化存储架构。4.1. CRAID基于Cell的重建功能按照Cell维护健康状态,突破了传统RAID对可容忍的磁盘数目的限制。比如,传统的RAID5支持1块磁盘故障,第2块磁盘故障时,RAID失效,不能继续使用。在ODSP存储软件平台的实现中,只要磁盘出错区域不在同一个Cell内,RAID中的
13、数据仍然可以访问,即RAID可容忍非同一个Cell内多个磁盘发生介质错误,在极端的情况下,可能出现RAID中所有的成员磁盘上都存在介质错误,但是数据仍然可以访问,提高了存储产品对硬盘的容错性以及业务连续性。同时,针对多个磁盘出错区域在同一个Cell内的情况,ODSP存储软件平台继承了物理的处理方式,即这些磁盘错误仅影响当前的Cell,其他Cell仍然可以继续访问,使得错误的影响范围降到最小。4.1.1. 快速重建区别于传统RAID先踢盘再重建的方式,CRAID的快速重建可只重建错误磁盘上的损坏数据块,未发生错误的区域直接使用拷贝方式将数据块复制到热备盘,重建完成后,再将错误磁盘转移至IDDC磁
14、盘诊断中心处理,该方式可明显降低重建过程对RAID组性能造成的影响。 传统RAID组重建时,最消耗性能和时间的原因是需要调用所有磁盘进行异或校验。快速重建由于将全盘校验改成了按Cell校验+磁盘复制,其校验任务只有传统全盘重建的几百分一或千分之一,校验时间几乎可以忽略不记,而磁盘复制的速度可以达到磁盘读写的最大值。以1TB的SATA磁盘为例,在15块盘的RAID中,全盘重建时间约30小时,而快速重建的时间差最快可以达到6小时。 4.1.2. 局部重建类似于快速重建,但不是重建热备盘,而是只对原盘的变化部分进行重建,使其同步。适用于磁盘未损坏,但发生过闪断或人为误操作,短时间内拔出又插回的情况。
15、该方法可重建5分钟内磁盘不在位过程中所丢失的数据,重建时间短,极大降低RAID组受影响程度。4.1.3. 优化重建仅重建被LUN使用的Cell,未使用的Cell不重建,如下图,仅重建Cell1、2、3、4,Cell5、6不需重建;重建调度时,优先重建存在介质错误的Cell,然后再使用拷贝的方式重建其他Cell,以尽可能的避免该Cell所处的其它磁盘发生故障导致的Cell损坏;支持多重重建,可同时重建多个故障磁盘,如一个RAID组中的两块磁盘所处的不同Cell存在坏块,可以两个Cell并发重建,提高重建总体效率。4.1.4. 全盘重建与传统RAID组一样,适用于磁盘被拔走或者磁盘严重故障不能继续使用的情况使用。4.1.5. IDDC+CRAID处理流程示例IDDC磁盘诊断中心与CRAID优化同步重建技术相互联动,形成了一套对于磁盘的自动检测、故障处理,以及RAID快速恢复的智能处理流程,在提高设备易用性和可维护性的同时,更是大大的提高了设备的安全性 4.2. CRAID基于Cell的同步优化4.2.1. 按LUN同步如上图所示,如选择按LUN同步,则只需同步图中的Cell1、2、3、4即可完成同步,余下的Cell可在创建其它LUN时再做