成功恢复新网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,如需转载请自行联系原作者
目录
相关文章
|
13天前
|
监控 Linux Shell
|
16天前
|
监控 Java Linux
Linux系统之安装Ward服务器监控工具
【10月更文挑战第17天】Linux系统之安装Ward服务器监控工具
37 5
Linux系统之安装Ward服务器监控工具
|
1天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
4天前
|
缓存 Unix Linux
服务器linux!!!
本文介绍了计算机的演变历史、硬件基础知识及服务器相关知识。从电子管时代的ENIAC到冯-诺伊曼架构,再到现代计算机系统组成,详细讲解了计算机的发展历程。此外,文章还介绍了服务器的分类、品牌、硬件组成以及IDC机房的上架流程,为读者提供了全面的技术背景知识。
18 0
服务器linux!!!
|
6天前
|
人工智能 安全 Linux
|
8天前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
43 3
|
11天前
|
存储 安全 关系型数据库
Linux系统在服务器领域的应用与优势###
本文深入探讨了Linux操作系统在服务器领域的广泛应用及其显著优势。通过分析其开源性、安全性、稳定性和高效性,揭示了为何Linux成为众多企业和开发者的首选服务器操作系统。文章还列举了Linux在服务器管理、性能优化和社区支持等方面的具体优势,为读者提供了全面而深入的理解。 ###
|
14天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
136 2
|
24天前
|
监控 安全 Java
linux服务器上启动framework应用程序流程
【10月更文挑战第17天】在Linux服务器上启动Framework应用程序需经过准备工作、部署、启动、监控及访问五个步骤。首先确保服务器满足系统要求并安装依赖项;接着上传应用文件,编译构建,配置参数;然后通过脚本、命令行或系统服务启动应用;启动后检查日志,监控性能;最后确认访问地址,验证应用运行状态。具体操作应参照应用文档。
|
24天前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
32 1