通过一起数据灾难看RAID0+1及RAID1+0

近日,遇到一例4块盘SCSI RAID0+1的数据恢复,由4块36G SCSI组成。客户称是做了两组RAID1。出故障后,RAID状态里3块盘OFFLINE。

按我的理解,这个应该是两组逻辑盘(分别做的RAID1),那即使是3块盘OFFLINE,也应该有一组逻辑盘是可以正常工作的。但客户用装在别的硬盘上的WINDOWS访问此阵列时,也无法识别阵列的逻辑盘。这样的话,很多就解释不通了,只能仔细分析了。

拿下硬盘,单独接在SCSI适配器上,进入系统,无异常,可以识别出4块物理硬盘。分析,无明显RAID信息区域,之后,对4块盘做比较,结论是1、3号盘及2、4号盘每组都有相同性,但后面有大量不一致数据。1号盘及2号盘里有分区表,每个分区表里的描述都大约指出原逻辑盘分区总和大约68G。据此,可知有以下三种情况:

1、两组RAID0,但1、3号及2、4号均有部分完全相同的数据,应该可以排除。

2、RAID1+0(即两两做RAID1,再做RAID0,这种安全级别高,客户是集成商做的,可能性最大),一段时间内,两组RAID1中先后都有一块硬盘离线(此后就相当于RAID0,再不能提供任何冗余)。再后来,又有一块硬盘离线,系统崩溃。这种情况非常符合RAID里的表现。

3、RAID0+1(即两两做RAID0,再做RAID1,这种不太好,推断可能性不大)

根据分析后,发现除1、3组成的RAID,无任何错误,认为应该是对了。重组数据。直接写回RAID,系统正常可以启动。文件访问也正常。

本来以为已经完美解决了。结果很短的时间内收到客户电话,称数据严重滞后,是两年前的东西。

一细想,大悟。

真实的情况应该是:用户做了RAID0+1,结果组成RAID1中的其中一组RAID0中有一块盘离线(应该为1或3),导致整个RAID0离线(两块离线了),之后一直以单RAID0的方式工作(想起来竟然两年有余,汗!),直到最近,剩下的一组RAID0中有一块盘离线,RAID彻底瘫痪。用户使用的RAID卡为ADAPTEC的0通道RAID卡,比较低端,无法安全缓冲数据,最后离线时,因数据部分未写入等原因导致文件系统一致性有问题。

重新组织3及5号盘,修正错误,数据100%恢复成功。

此案例中突显RAID0+1及RAID1+0的安全差别,细细说说吧。

RAID0+1:

结构为,两块以上(含两块)硬盘先做条带(RAID0),组成相同的两组一级逻辑盘。再将两组逻辑盘做镜像(RAID1)。如下图:

RAID0+1的冗余性(安全性):只要有一块盘出错,它所在的RAID0就会整体离线,只能靠最外层的RAID1的冗余来支撑。实际上,只能允许一块盘出错,这样如果在4块以上的硬盘盘阵中,安全性实际会差得多。

利用率:1/2

时间: 2024-12-03 07:07:10

通过一起数据灾难看RAID0+1及RAID1+0的相关文章

oracle11g-使用sql语句select插入数据时怎么用行号补0为流水号做完单号保存

问题描述 使用sql语句select插入数据时怎么用行号补0为流水号做完单号保存 使用select语句像某个表中插入数据,表的单号要为该语句的ItemCode的值+5位流水号.流水号的规则是查询出来的"RowNum"的值自动补0为5为流水号.怎么出入,查询数据如图 解决方案 新增一列numerical order 类型为字符串 然后写个方法计算numerical order ,insert进去. 但只用sql语句的话,还没想到. 解决方案二: 试试这个: select itemcode

mysql两表数据匹配,更新结果为什么为0

问题描述 mysql两表数据匹配,更新结果为什么为0 update crm_customerhr_postset crm_customer.beseats_depid=hr_post.dep_idcrm_customer.beseats_depname=hr_post.depnamewhere hr_post.emp_id=crm_customer.BeSeats 解决方案 0就是没有数据更新呗,没有符合条件的数据吧 解决方案二: 字段名合适的没?表里边有没有这些字段

数据智能需求旺盛 阿里云MaxCompute2.0华南区开服

本文讲的是数据智能需求旺盛 阿里云MaxCompute2.0华南区开服 [IT168 资讯]8月31日,阿里云宣布将在深圳区域正式部署大数据计算服务MaxCompute,以进一步提升对华南区域客户服务的响应速度,并推动该地域人工智能产业的发展. 此前,凭借大规模计算存储.多种计算模型.强数据安全和低成本的优势,MaxCompute一直供不应求. 官方预计,深圳区域将于9月7日正式开放售卖,此后阿里云MaxCompute还将在年底前陆续新开北京.杭州.香港.新加坡.美国.日本.欧洲等节点.这显示了

求解多线程问题?数据库中有成千上万数据,每天都有20万以上标记为0的新纪录不断写入

问题描述 数据库中有成千上万数据,每天都有20万以上标记为0的新纪录不断写入.1.请写一段多线程程序,将此新数据交给N个处理器处理,处理完毕后标记更新1.N个处理器的处理能力不一,有时还会出现阻塞的情况,请考虑此情况.2.如果实际运行时此数据库经常因为查询统计而出现效率极低的情况,请给出解决办法?求解! 解决方案 本帖最后由 zp276588454 于 2011-04-13 17:55:10 编辑解决方案二:你还不如自己多去了解下线程方面的东西

数据访问函数库 for ado.net2.0

前言 源代码和调用演示下载:http://www.cnblogs.com/jyk/archive/2008/04/25/1170979.html 数据访问函数库for ado.net 1.1 的说明:http://www.cnblogs.com/jyk/category/67121.html 由于一直在使用vs2003开发,所以自己使用的数据访问函数库(以下简称:访问库)也就一直没有能够考虑到ado.net2.0.虽然ado.net2.0在调用的时候没有什么变化,但是内部结构却发生了不小的变化,

解析大数据与工业之德国工业4.0

云栖Tech Day第二十四期<工业大数据助务智能制造>,博拉科技CEO周公爽为大家带来<大数据与工业4.0>的分享,分享的主要内容如下: 博拉科技主营三大业务:一个是机器人自动化,主要是汽车零部件行业:第二个是工业物联网系统,我们特指MES系统,是根据国际ISA95标准设计的MES系统:第三块是基于大数据采集和分析的SaaS运维平台,主要针对数控领域.今天分享的主题跟德国工业4.0有关,我们来看看德国作为工业4.0的倡导者和发起者,他们目前是怎么看待工业4.0,他们是如何来落地工

如何利用数据赚钱?大数据价值变现的10种商业0模式及利弊分析

有人说大数据是「石油」是「黄金」,涂子沛说大数据是「土壤」,而马云说大数据是「生产资料」,我觉得他们说得都对,但是也都不对. 因为大数据就是「大数据」. 当大数据应用在不同的领域和不同的场景下,所产生的意义及其所代表的意义也都不一样,你没有办法用一句话完全概况.大数据是互联网时代不可或缺的产物,不管你愿不愿意,大数据就在那里,你我都是大数据的制造者同时也是受惠者,这个生态圈的闭环已经形成,而且还在不断的延伸到各行各业,为不同的行业创造着更新.更大的价值. 2015年9月,我曾经写过一篇名叫<一文

《Python数据科学实践指南》一第0章 发现、出发

第0章 发现.出发 最近一年里,知乎社区有不少朋友邀请我回答关于数据挖掘的问题,其中提问最多的是关于"如何改行做数据挖掘".我想他们之所以邀请我回答这类问题,不是因为我做数据挖掘做得好,而是好奇我是如何改行做数据挖掘的?说来也巧,我本科是学电子的,研究生是学控制的,而我的职业理想是成为一个"先知",但我并不知道如何才能实现这一职业理想.自公元632年人类最后一位先知默罕默德去世之后,将近1400年没人做先知了,既没有人可以指导我,也没有可以效仿的对象.2011年到2

各种RAID方案的适用环境

[数据恢复问题] RAID有不同的组织方案,有JBOD,RAID0,RAID1,RAID5,RAID6,RAID10,RAID01,ADG等,这些方案都适用于什么环境? [回答] RAID要解决的问题主要有3个:容量合并.IO性能.存储安全 JBOD是低端的RAID结构,有时候等同于WINDOWS的跨区卷,是将1块或几块硬盘首尾相接连起来的结构,只为解决硬盘扩容问题,安全性头差,IO性能与单盘无异,适用于安全级别与IO性能不高的容量组合环境.可以由任意多块硬盘组成. RAID0实现容量合并,IO