SAN LUN Mapping出错导致文件系统共享冲突的完美解决方案

【用户单位】
中国联通某分公司
【数据恢复故障描述】

SUN 光纤存储系统,中心存储为6枚300G硬盘组成的RAID6,划分为若干LUN,MAP到不同业务的服务器上,服务器上运行SUN SOLARIS操作系统。
正常工作状态下,用户需要新增应用,所以增加了一台IBM服务器,之后在线状态下将存储中的某个LUN映射到新增的IBM服务器,不料,映射的卷是原先已经MAP到SOLARIS生产系统上的某个LUN上了,由于并未及时发现,IBM服务器上已经对此LUN进行了部分初始化操作(操作不详),之后SOLARIS上磁盘报错,重启后发现问题,卷无法挂载。
SUN工程师检测后,执行fsck,完成后文件系统可挂上,但很多数据丢失或大小变为0,尤其最新数据破坏严重。

【数据恢复故障分析】

SAN环境下此类故障较为常见,但多数是人为不小心导致,此故障也是如此。正常情况下,SAN分配出来的LUN是独占模式的,如果同时为几个操作系统所控制,极易导致写操作不互斥,导致文件系统一致性出错。
如果要恢复此部分数据,需要深入文件系统,考察其各结构的破坏情况。本例中,因文件系统采用UFS,所以对任何一个需要恢复的文件而言,优先考虑目录信息、节点、数据区是否正常,如上述3个结构均正常,数据可完整恢复。但多数情况下,fsck后INODE会清除,即使留下目录信息,也无法与数据一一对应,这时候,就只能参考文件内部格式进行类型式的恢复了。

【数据恢复过程】
1、完整备份故障卷,因RAID无故障,所以直接在SOLARIS环境中对原LUN做dd备份。
2、在备份中分析文件系统,确定需恢复文件的inode已经全部清除,无法还原。只好按文件类型进行处理。
3、对用户需要恢复的特定文件进行分析,发现采用vfs公文系统的索引文件具有强的类型特征,同时文件中包含目录信息。
4、按照公文系统的索引结构特征,写程序提取,提取后根据特征重新命名。
5、按类型恢复数据文件,之后用户人工根据索引文件,对数据文件进行重新整理。
【数据恢复结论】

历时24小时,目录索引文件99%恢复成功,数据文件大部分恢复成功,其余已破坏无法恢复的文件,用户根据目录索引文件重新向其他部门采集。结论上,用户认可数据恢复成功。

时间: 2024-07-31 09:00:14

SAN LUN Mapping出错导致文件系统共享冲突的完美解决方案的相关文章

用Promise解决多个异步Ajax请求导致的代码嵌套问题(完美解决方案)

问题 前端小同学在做页面的时候,犯了个常见的错误:把多个Ajax请求顺序着写下来了,而后面的请求,对前面请求的返回结果,是有依赖的.如下面的代码所示: var someData; $.ajax({ url: '/prefix/entity1/action1', type: 'GET' , async: true, contentType: "application/json", success: function (resp) { //do something on response

Android滑动冲突的完美解决方案_Android

关于滑动冲突 在Android开发中,如果是一些简单的布局,都很容易搞定,但是一旦涉及到复杂的页面,特别是为了兼容小屏手机而使用了ScrollView以后,就会出现很多点击事件的冲突,最经典的就是ScrollView中嵌套了ListView.我想大部分刚开始接触Android的同学们都踩到过这个坑,下面跟着小编一起来看看解决方案吧.. 同方向滑动冲突 比如ScrollView嵌套ListView,或者是ScrollView嵌套自己 这里先看一张效果图 上图是在购物软件上常见的上拉查看图文详情,关

Android滑动冲突的完美解决方案

关于滑动冲突 在Android开发中,如果是一些简单的布局,都很容易搞定,但是一旦涉及到复杂的页面,特别是为了兼容小屏手机而使用了ScrollView以后,就会出现很多点击事件的冲突,最经典的就是ScrollView中嵌套了ListView.我想大部分刚开始接触Android的同学们都踩到过这个坑,下面跟着小编一起来看看解决方案吧.. 同方向滑动冲突 比如ScrollView嵌套ListView,或者是ScrollView嵌套自己 这里先看一张效果图 上图是在购物软件上常见的上拉查看图文详情,关

Tomcat 6.0.24之后引入内存泄露检查机制,由此导致严重警告,有无完美解决方案?

问题描述 严重:Thewebapplication[...]registeredtheJDBCdriver[com.microsoft.sqlserver.jdbc.SQLServerDriver]butfailedtounregisteritwhenthewebapplicationwasstopped.Topreventamemoryleak,theJDBCDriverhasbeenforciblyunregistered.在网上查了查,无非是以下三种解决方案:1.假装没看见2.使用6.0.

Windows8网络配置出错导致不能上网如何重新启用以太网

  在使用计算机的时候,常因网络配置出错导致无法上网,影响工作.学习和娱乐,这种情况其实只要重新启用以太网就可以了.对于电脑新手来说,很有必要掌握网络配置这一项技能.下面就给大家介绍一下,Windows8系统下如何快速处理这方面的问题. 处理方法: 1. 右键点击桌面的右下角网络小图标. 2. 单击打开网络和共享中心.在右上角有个更改适配器设置,在这里就可以看到你的网络连接状况. 3. 单击更改适配器设置.这里显示了包括你的wifi的网络连接. 4. 在这里我们可以看到以太网网络连接,这就是你插

《Excel高手捷径:一招鲜,吃遍天》一第26招 Excel保存文件时出现共享冲突,不能保存到“文件名.xls0”

第26招 Excel保存文件时出现共享冲突,不能保存到"文件名.xls0" Excel高手捷径:一招鲜,吃遍天Excel保存文件时偶尔出现这样的情况,由于共享冲突,你的更改不能保存到"文件名.xls0".请尝试保存到其他文件.这是怎么回事呢,如何解决? 首先应确认没有共享过此文档,现在也未共享(审阅→共享工作簿中"允许多用户同时编辑,同时允许工作簿合并"的选项没有被选择),如图1-102所示. 如果确认没有问题,还是不能保存,那就是杀毒软件监控的

数据库连接失败-由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例

问题描述 由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例 我用的是Win7的系统,SQL Server2008和VS2010,在运行程序是出现了错误:由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例.谁知道怎么解决吗?AppDataLocalMicrosoftMicrosoft SQL Server DataSQLEXPRESS,把SQLEXPRESS删除之后还是会出现启动用户实例的进程时出错,似乎是数据库的连接问题,很苦恼,谁知道怎么解

jQuery中 $ 符号的冲突问题及解决方案_jquery

在jQuery中,$是jQuery的别名,为了书写方便,我们更习惯用$('#id')这一类的方式来书写代码.当同一页面引用了jQuery多个版本或者jQuery与某些其他js库产生冲突,控制台就会报错. 同一个页面多个版本冲突解决办法 你可能会问,为什么在一个页面上会引用多个版本的jQuery,只引用一个不就好了吗? 答案是:不行.一般要用到两个(或以上)版本的jQuery库的原因是:现有的网站已经用了旧版本的jQuery以及相关插件,直接将jQuery升级到新版本会导致这些基于旧版本jQuer

PHP PEAR安装出错导致PEAR命令无法使用的解决方法

之前我详细介绍了Windows下PHP PEAR的安装方法,在安装使用PEAR DB类时由于DedeAMPZ 的限制,我将PEAR重新安装在DedeAMPZ\WebRoot\Default目录下,但由于PEAR安装环境变量PHP_PEAR_INSTALL_DIR的问题,始终无法通过PEAR命令下载安装PEAR DB类,现放出解决方法. PHP PEAR 安装问题 原先我安装在PHP5目录下,后由于DedeAMPZ 的限制,我将PEAR目录手动删除后,将PEAR重新安装在DedeAMPZ\WebR