成功恢复新网LINUX REISERFS 6块盘 RAID5邮件服务器

简介:
+关注继续查看
[摘要]
    新网([url]http://www.xinnet.com[/url]),企业邮件服务器,存储于146G×6 RAID5中,有上百万企业用户的邮件,数据区,只分一个区,文件系统为REISERFS,正常工作中,RAID突然OFFLINE,管理员到机房检查时,发现有两块盘报警,将其中一块强制上线后发现卷无法MOUNT,于是强行FSCK 并REBULD TREE,历时4天,完成后仍无法MOUNT。无奈之下,向数据恢复公司求救,大多数公司无法提供可行的解决方案。新网在多方比较及评估后,选择让我们完成。
[分析]
    这种RAID的问题事实上是很常见的,通常是因为亮灯的两块盘并不是同时掉线,而恰巧的是,强制上线了早离线的硬盘,导致数据区新鲜的和陈旧的混在一起,文件系统结构不一致。本身强制上线后,会在读写过程中生成新的检验条带,所以会影响一部分数据,但如果读写不多或根本无法MOUNT的话,这种灾难的严重性将会小得多,此例中最为严重的问题在于REBUILD TREE,相当于试图将一个混杂的文件系统连续化。这样的结果将会导致文件系统的所有结构体全面出错,通常这是无法挽救的。加上用户的文件目录结构非常复杂,文件总数粗略估计上亿,更是机会渺茫。
[解决方案]
    1、应试图将文件系统结构区单独提出来进行分析,这样工作量会小很多,也给反复查找分析提供了可能。但REISERFS的文件系统区相对较散且无规律,需通过自主程序进行提取及分析,此例中,光1级节点提出的大小达6G之大,文件结构可谓复杂。(用户也是因EXT3面对这样的结构崩溃才选用REISERFS的,可见其结构复杂程度)
    2、对文件系统区进行一致性检验,相当于手工FSCK,修正错误地方,此例中,好多文件系统节点区都因检验关系,使关键属性字节发生了改变。通过程序将所有节点状态统一初始化,完成节点一致性处理
    3、完成上述两步后有两种做法,一是在LINUX系统下再次FSCK,此例效果不好,(因LINUX FSCK的功能有限,在父节点稍有错误,其子节点便会全部打入LOST+FOUND里,无法还原原本的目录结构),二是通过只读方式,用自主程序在WINDOWS下提取数据,需忽略许多错误,修改程序后,使用此法,所有数据已可提取。
[后记]
    最近这种两块硬盘离线,不知道哪块先离、哪块后离的例子很多。希望RAID用户可以在两块硬盘离线后谨慎对待,如果可以查到日志,通过日志确定为好。如果强制上线出错,应马上停止操作,切不可做FSCK等操作。
    另外,老生常谈的事,LINUX的FSCK风险很大(实际WINDOWS也会有),做之前请尽量看清提示,如果出错信息异常,应选择其他途径。




本文转自 张宇 51CTO博客,原文链接:http://blog.51cto.com/zhangyu/33743,如需转载请自行联系原作者
目录
相关文章
|
24天前
|
存储 缓存 算法
解密Linux中的通用块层:加速存储系统,提升系统性能
本文探讨了Linux操作系统中的通用块层和存储系统I/O软件分层的优化策略。通用块层作为文件系统和磁盘驱动之间的接口,通过排队和调度I/O请求,提高磁盘的读写效率和可靠性。存储系统的I/O软件分层包括文件系统层、通用块层和设备层,它们相互协作,实现对存储系统的高效管理和操作。本文旨在深入了解通用块层和其他I/O软件层的功能和作用,分析优化存储系统的管理和操作,提升系统性能和可靠性。
解密Linux中的通用块层:加速存储系统,提升系统性能
|
4月前
|
Linux
【Linux】关于Bad magic number in super-block 当尝试打开/dev/sda1 时找不到有效的文件系统超级块
【Linux】关于Bad magic number in super-block 当尝试打开/dev/sda1 时找不到有效的文件系统超级块
81 0
|
5月前
|
Linux
Linux 如何查看文件系统的块大小
Linux 如何查看文件系统的块大小
231 0
|
7月前
|
存储 缓存 固态存储
【Linux】基础IO --- 内核级和用户级缓冲区、磁盘结构、磁盘的分治管理、block group块组剖析…
【Linux】基础IO --- 内核级和用户级缓冲区、磁盘结构、磁盘的分治管理、block group块组剖析…
|
存储 缓存 Linux
Linux之RAID介绍、软RAID5实操配置(失望攒够了就放手,不打扰是我最后的温柔)(一)
Linux之RAID介绍、软RAID5实操配置(失望攒够了就放手,不打扰是我最后的温柔)(一)
196 0
Linux之RAID介绍、软RAID5实操配置(失望攒够了就放手,不打扰是我最后的温柔)(一)
|
存储 缓存 算法
Linux驱动开发: 块设备驱动开发
Linux驱动开发: 块设备驱动开发
295 0
Linux驱动开发: 块设备驱动开发
|
存储 缓存 固态存储
相关产品
云迁移中心
推荐文章
更多