在全部正式内容开始以前先问一个问题,什么是raid?raid的概念描述在互联网上比比皆是,都未免太过专业了。我想用最简单的原理描述,就是在定义存储方式时容许在一部分数据缺失的状况下不影响所有数据,相似于通信领域的纠错码。不一样的冗余模式造成了不一样的RAID类别。咱们须要先描述仅具有一个磁盘冗余的RAID模型(思想同RAID3,RAID4,RAID5)。假设如今有3页空白的纸,用来记录一些数字,为了更清晰地记录,咱们先将每页白纸划出相同大小的一些表格。再假设有一个可能:这3页纸,特定状况下会有其中某一页丢失。为了在上述设定状况保证这些数字能完整安全的记录下来,咱们要设计一些互相牵连的冗余关系。如咱们要记录的数字序列是:三、1四、2八、四、9八、88 。咱们能够依次在第1页和第2页写要记录的数字,在第3页写上他们的和。这样无论这3页中的哪一页丢失,均可以经过另两页计算另外一页的数据来。很显然,即便是超过3页的状况,按上述方式设计记录模式,也能够支持任意一页记录的丢失。这就是raid的数据存储原理了。
好了,下面咱们进入正题,若是一个raid阵列同时有3块硬盘掉线了,咱们应该怎么处理才能避免数据丢失呢?下面是北亚数据恢复中心服务器数据恢复工程师恢复的一个raid6阵列数据恢复的真实案例:
出现故障须要进行数据恢复的是一组6块750G磁盘的 RAID6磁盘阵列,服务器在正常的运行过程当中前后有两块磁盘离线,但维护人员在此状况下依然没有更换磁盘,因此在第三块硬盘离线后raid阵列就理所固然的崩溃了,服务器瘫痪了,业务也所以停滞。想要更换硬盘从新组建阵列是没有问题,可是这组阵列中的全部数据将所有丢失,有由此带来的损失将是巨大的。
服务器管理员对数据进行了分析和恢复后找回了一部分的数据,可是仍有大部分数据丢失没法恢复,因而客户联系到了北京北亚数据恢复中心进行数据恢复操做。客户的服务器是一台web服务器,挂载了6块硬盘,当时3块硬盘处于离线状态。运行了MySQL数据库和一些比较杂乱的其余类型文件。服务器数据恢复工程师首先将服务器内的包括正常硬盘在内的全部硬盘进行了完整镜像,而后将客户服务器归还,剩下的工做就是分析镜像并恢复数据了。
对于服务器出现多块硬盘掉线的状况来讲,掉线的硬盘一定有先有后,毕竟同时有3块硬盘掉线的概率是能够忽略不计的。因此针对服务器阵列有多块硬盘掉线的数据恢复原理就是分析硬盘离线的前后顺序,修复最后离线的硬盘故障,而后提取最后离线的硬盘数据,根据raid的存储结构分析出一些基础参数后重组raid便可。在本次数据恢复案例中出现的raid模式是raid阵列,raid6磁盘阵列使用的是双校验模式,第一个校验是普通的oxr也就是异或运算,第二个校验是reed-solmon算法。一般数据恢复时采用第一种校验方法便可回复,但通过服务器数据恢复工程师的分析发现阵列中前两块硬盘很早就已经掉线了,不具有数据恢复的条件,因此第一种校验方式显然已经没有用了。第二种校验方式又比较复杂,市面上也没有成熟的软件或者工具可使用,因此客户的管理员恢复的数据缺失程度很大,且数据库没法使用。
不过还好北亚数据恢复中心掌握一些reed-solomon算法的核心技术,也有过相应的数据恢复经验,通过多名服务器数据恢复工程师的共同分析终于得到了客户raid阵列中的必要参数并提取出完整的镜像数据。通过客户管理员验证,全部数据成功恢复,数据库可使用,本次数据恢复圆满成功。
重要数据要作好数据备份工做,作好病毒防御工做,发现数据丢失后必定要保护好故障硬盘。寻找数据恢复公司最好是找一些专业数据恢复公司,能够最大程度保障数据恢复的成功率。web