服务器数据恢复—Raid磁盘阵列故障类型和常见故障原因

本文主要是介绍服务器数据恢复—Raid磁盘阵列故障类型和常见故障原因,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

出于尽可能避免数据灾难的设计初衷,RAID解决了3个问题:容量问题、IO性能问题、存储安全(冗余)问题。从数据恢复的角度讨论RAID的存储安全问题。


常见的起到存储安全作用的RAID方案有RAID1、RAID5及其变形。基本设计思路是相似的:当部分数据异常时,可通过特定算法将数据还原出来。以RAID5为例:如果要记录两个数字,可以通过再多记录这两个数字的和来达到记录冗余性的目的。例如记录3和5,同时再记录这2个数字的和8。在不记得到底是几和5的情况下,只需要用8-5就可以算出这个丢失的数字了,其余情况依此类推。


在RAID里同样是以某种算法来达到保全数据的目的,当一组RAID5阵列正常工作时,所有写入RAID里的数据都正确地写到特定磁盘地址,同时再生成一个特定的计算值(通常称为校验和)。当其中一块盘出现故障时,存储在这块故障盘上的原有数据就要通过其他硬盘的数据恢复出来。由控制器(硬RAID为RAID卡,软RAID实际上是个驱动)负责这个工作。为了不宕机,控制器也会保证存储的正常化,不会让操作系统认为硬盘系统出了问题。


RAID在存储安全上还有一些不太容易避免的漏洞。虽然由于这些漏洞出现问题的可能性不大,但是存储在RAID上的数据价值无法评估。


RAID常见故障:


1、处于降级状态时,未及时rebuild。RAID是通过空余的部分存储空间来提供算法上的数据安全冗余的。当某些盘出现故障下线后,RAID便不能再提供这种存储冗余。如果不及时更换盘&REBUILD,如果其他硬盘再出现故障,RAID便无法正常工作了。


2、RAID控制器故障:控制器是连接物理硬盘与操作系统之间的纽带。硬盘容量、硬盘数量,RAID级别、逻辑磁盘分割方式、块大小、校验方式等组合成不同的RAID信息(RAID元数据),这些RAID信息有时候会写在阵列卡上,有时候会写在硬盘上,还有的时候两者皆有。如果RAID控制器出现故障,即使更换新的控制器一般也不能将RAID信息还原。中低端的RAID控制器出于成本考虑,漏洞更多。

3、固件算法缺陷:RAID的创建、重建、降级、保护等功能的实现需要非常复杂的算法。尽管厂商不会承认生产的RAID控制器的BUG,但算法漏洞在任何一款控制器上都无法避免。固件算法BUG可能会导致很多无法解释的故障。


4、IO通道受阻导致RAID掉盘:RAID控制器在设计时为了数据的绝对安全,会尽可能避免写数据到不稳定的存储介质上。这样,当控制器与物理硬盘进行IO时,如果时间超过某个阈值,或不满足校验关系,控制器便会认为对应的存储设备已不具备持续工作的能力,会让其强制下线,通知管理员尽快解决问题。这种设计的初衷很好,但对于像物理链接线路松动、硬盘完好情况下机械工作时反应超时等随机因素,RAID控制器无法分辨设备是否具备和之前一样的稳定状态,通常会让其强制下线,便会导致RAID卷出现故障,此类故障的发生概率极大且无法避免。


5、RAID控制器的稳定性:RAID控制器在ONLINE状态下(无离线盘)工作是最稳定的。当部分硬盘损坏(可能是逻辑故障)后离线,RAID控制器便会工作在一个“亚健康”的状态。这也是好多中低端的RAID控制器在一块盘离线后读写性能急速下降的原因。控制器负载太重便会极大地增加数据吞吐时出现IO滞留的可能性,从而导致RAID离线。一个不具备高速硬件处理芯片,不具备高速缓冲的控制器发生这类故障的概率要高得多。


6、坏硬盘:很多人认为只要硬盘一坏,RAID就会让这块坏硬盘脱机,更换新硬盘后REBUILD就恢复如初了。实际情况是一组RAID在工作很长时间以后也很少会读到物理硬盘的所有磁盘空间,同一时间更是不可能。部分情况下会在没有读到的区域或者以前读取良好的区域出现坏道。这类坏道因为没有读写过,所以控制器是没有识别出来的。当一块物理硬盘离线后,通常技术人员及官方资料都会建议尽快做REBUILD。如果其他硬盘存在这类坏道,当REBUILD(对全盘做全面同步)过程中读到那些坏道,这时候REBUILD没完成,新盘还无法上线,旧盘里又发现了坏道,然后又有硬盘下线,导致RAID出现故障,无法自行恢复数据。


7、人为误操作:误拔RAID硬盘、没准备备件盘、不及时换盘、给RAID除尘时忘了原来的顺序、不小心删除了原RAID配置等。


8、其他原因。


上述的这些故障原因除人为因素外,大多数很难直接避免,只能结合备份,构建整体存储安全方案来解决。 

这篇关于服务器数据恢复—Raid磁盘阵列故障类型和常见故障原因的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1145706

相关文章

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

Linux服务器Java启动脚本

Linux服务器Java启动脚本 1、初版2、优化版本3、常用脚本仓库 本文章介绍了如何在Linux服务器上执行Java并启动jar包, 通常我们会使用nohup直接启动,但是还是需要手动停止然后再次启动, 那如何更优雅的在服务器上启动jar包呢,让我们一起探讨一下吧。 1、初版 第一个版本是常用的做法,直接使用nohup后台启动jar包, 并将日志输出到当前文件夹n

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

Mysql BLOB类型介绍

BLOB类型的字段用于存储二进制数据 在MySQL中,BLOB类型,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储的大小不同。 TinyBlob 最大 255 Blob 最大 65K MediumBlob 最大 16M LongBlob 最大 4G