RAID 详解
一.什么是RAID
磁盘阵列全名是『Redundant Arrays of Inexpensive Disks, RAID 』,英翻中的意思是:容错式廉价磁盘阵列。 RAID 可以透过一个技术(软件或硬件),将多个较小的磁盘整合成为一个较大的磁盘装置;而这个较大的磁盘功能可不止是储存而已,他还具有数据保护的功能呢。RAID可以充分发 挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会 受到损坏硬盘的影响
二.Raid的级别
1.RAID 0
RAID 0 又称为 Stripe 或 Striping,它代表了所有 RAID 级别中最高的存储性能。RAID 0 提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。
如图 1 所示:系统向三个磁盘组成的逻辑硬盘(RADI 0 磁盘组)发出的 I/O 数据请求被转化为 3 项操作,其中的每一项操作都对应于一块物理硬盘。我们从图中可以清楚的看到通过建立 RAID 0,原先顺序的数据请求被分散到所有的三块硬盘中同时执行。
从理论上讲,三块硬盘的并行操作使同一时间内磁盘读写速度提升了 3 倍。 但由于总线带宽等多种因素的影响,实际的提升速率肯定会低于理论值,但是,大量数据并行传输与串行传输比较,提速效果显著显然毋庸置疑。
RAID 0 的缺点是不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复。
RAID 0 具有的特点,使其特别适用于对性能要求较高。(最少两块盘)
2.RAID1
RAID 1 又称为 Mirror 或 Mirroring,它的宗旨是最大限度的保证用户数据的可用性和可修复性。 RAID1 的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。当读取数据时,系统先从 RAID 0 的源盘读取数据,如果读取数据成功,则系统不去管备份盘上的数据;如果读取源盘数据失败,则系统自动转而读取备份盘上的数据,不会造成用户工作任务的中断。当然,我们应当及时地更换损坏的硬盘并利用备份数据重新建立 Mirror,避免备份盘在发生损坏时,造成不可挽。
(最少两块盘)
3.Raid 4
Raid4带奇偶校验码的独立磁盘结构
RAID 4是以扇区作数据分段,各磁盘相同位置的分段形成一个校验磁盘分段(parity block),放在校验磁盘。这种方式可在不同的磁盘平行执行不同的读取命今,大幅提高磁盘阵列的读取性能;但写入数据时,因受限于校验磁盘,同一时间只能作一次,启动所有磁盘读取数据形成同一校验分段的所有数据分段,与要写入的数据做好校验计算再写入。但校验磁盘形成RAID 4的瓶颈,降低了性能,因有RAID 5而使得RAID 4较少使用
4.raid 5
RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。 以四个硬盘组成的 RAID 5 为例,其数据存储方式如下图所示:图中,P0 为 D0,D1 和 D2 的奇偶校验信息,其它以此类推。
RAID 5 不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组
成 RAID5 的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当 RAID5 的一个
磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
RAID 5 可以理解为是 RAID 0 和 RAID 1 的折衷方案。RAID 5 可以为系统提供数据安全保障,但保障
程度要比 Mirror 低而磁盘空间利用率要比 Mirror 高。RAID 5 具有和 RAID 0 相近似的数据读取速度,只
是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个(最少三块盘)
5.RAID6
RADI6技术是在RAID 5基础上,为了进一步加强数据保护而设计的一种RAID方式,实际上是一种扩展RAID 5等级。与RAID 5的不同之处于除了每个硬盘上都有同级数据XOR校验区外,还有一个针对每个数据块的XOR校验区。当然,当前盘数据块的校验数据不可能存在当前盘而是交错存储的,具体形式见图
RAID-6和RAID-5一样对逻辑盘进行条带化然后存储数据和校验位,只是对每一位数据又增加了一位校验位。这样在使用RAID-6时会有两块硬盘用来存储校验位,增强了容错功能,同时必然会减少硬盘的实际使用容量。以前的raid级别一般只允许一块硬盘坏掉,而RAID-6可以允许坏掉两块硬盘,因此,RAID-6 (要求至少4块硬盘)。
6.RAID 0+1与RAID10
RAID 0 和 RAID 1 的组合称为 RAID 0+1,或称为 RAID 10。如下所述,它具有一些有趣的优越性。通
过将 RAID 0 分块的速度和 RAID 1 镜像的冗余进行组合,结果产生了一个快速、没有写开销、具有极好冗
余性质的子系统。
Raid 0+1
Raid 10:先建立raid1,在建raid0
RAID1+0与RAID0+1的区别:
RAID 1+0是先镜射再分区数据,再将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。RAID 0+1则是跟RAID 1+0的程序相反,是先分区再将数据镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。性能上,RAID 0+1比RAID 1+0有着更快的读写速度。可靠性上,当RAID 1+0有一个硬盘受损,其余三个硬盘会继续运作。RAID 0+1 只要有一个硬盘受损,同组RAID 0的另一只硬盘亦会停止运作,只剩下两个硬盘运作,可靠性较低。因此,RAID 10远较RAID 01常用。
RAID总结:
RAID Level |
性能提升 |
冗余能力 |
空间利用率 |
磁盘数量(块) |
允许磁盘故障数 |
优点 |
缺点 |
RAID 0 |
读、写提升 |
无 |
100% |
至少2 |
不允许 |
读写性能,利用率高 |
缺乏冗余能力 |
RAID 1 |
读性能提升,写性能下降 |
有 |
50% |
至少2 |
50% |
读性能提升,具有冗余 |
写性能下降,磁盘利用率低 |
RAID 4 |
读、写提升 |
有 |
n*(n-1)/n |
至少3 |
1 |
读写性能提升 |
瓶颈在校验盘上 |
RAID 5 |
读、写提升 |
有 |
n*(n-1)/n |
至少3 |
1 |
读写性能提升 |
仅允许坏一块盘 |
RAID 6 |
读、写提升 |
有 |
n*(n-2)/n |
至少4块 |
2 |
读写性能提升 |
磁盘利用率降低,写入速度没有raid5块 |
RAID 1+0 |
读、写提升 |
有 |
50% |
至少4 |
50% |
读写性能提升 |
磁盘利用率低 |
RAID 0+1 |
读、写提升 |
有 |
50% |
至少4 |
50% |
读写性能提升 |
磁盘利用率低,容错性没有raid10好 |
RAID 详解的更多相关文章
- Raid详解
Raid详解 一.什么是RAID 磁盘阵列全名是『Redundant Arrays of Inexpensive Disks, RAID 』,英翻中的意思是:容错式廉价磁盘阵列. RAID 可以透过一 ...
- Linux阵列 RAID详解
主要内容:(笔记总结--会不定时补充.修改,如有错误,欢迎指正探讨) 一. RAID详解 二. mdadm工具介绍 三. 创建一个RAID的基本过程 四. 磁盘阵列的管理 五. ...
- Linux阵列 RAID详解 (转)
原文链接:http://molinux.blog.51cto.com/2536040/516008 一. RAID详解 二. mdadm工具介绍 三. 创建一个RAID的基本过程 四. ...
- RAID详解[RAID0/RAID1/RAID10/RAID5]
一.RAID定义RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘 ...
- 转载: RAID详解[RAID0/RAID1/RAID10/RAID5]
一.RAID定义 RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁 ...
- Linux 硬件RAID详解系统功能图
RAID-0(条带模式) 特点: 在读写的时候可以实现并发,所以相对其读写性能最好,每个磁盘都保存了完整数据的一部分,读取也采用并行方式,磁盘数量越多,读取和写入速度越快. 因为没有冗余,一个硬盘坏掉 ...
- RAID详解[RAID0/RAID1/RAID5]
RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失 ...
- RAID详解[RAID0/RAID1/RAID10/RAID5] (转)
一.RAID定义RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘 ...
- 运维笔记之yum,rpm,挂载,磁盘管理和raid详解
yum 与 rpm centos6,7 主要有rpm和yum这两种包管理软件,两种包的管理各有用处,其中最主要区别是: yum使用简单但需要联网,yum会去网上的yum包源去获取所需要的软件包.而r ...
随机推荐
- 第2章KNN算法笔记_函数classify0
<机器学习实战>知识点笔记目录 K-近邻算法(KNN)思想: 1,计算未知样本与所有已知样本的距离 2,按照距离递增排序,选前K个样本(K<20) 3,针对K个样本统计各个分类的出现 ...
- Git常用命令清单笔记
git github 小弟调调 2015年01月12日发布 赞 | 6收藏 | 45 5k 次浏览 这里是我的笔记,记录一些git常用和一些记不住的命令,这个笔记原本是基于 颜海镜的文章增加 ...
- css弹性盒子新旧兼容
前言:本篇随笔是对弹性盒子有了解的人来写的这篇文章,具体属性产生的效果这里不做说明,基础的东西去查文档.这里只是总结. 时至今日,css3的flex弹性盒子在移动端基本上都是支持的,但不排除有些些低版 ...
- Zabbix自动发现java进程
一:简介 使用Python psutil模块,查找java模块,并获取启动命令,结合zabbix监控自动监控.点击下载 二:操作 发现脚本 #!/usr/bin/env python # coding ...
- JMeter集合点
位置:添加--> 定时器-->Synchronizing Timer 注意:集合点放在所有操作之前. 假设线程组线程数设置的是50个,那么希望50个都准备好一块上,那么集合点中 ...
- 程序猿的日常——Java中的集合列表
列表对于日常开发来说实在是太常见了,以至于很多开发者习惯性的用到数组,就来一个ArrayList,根本不做过多的思考.其实列表里面还是有很多玩法的,有时候玩不好,搞出来bug还得定位半天.所以这里就再 ...
- LeetCode题目总结(一)
我的代码在github上,https://github.com/WINTERFELLS/LeetCode-Answers 这里只提供个人的解题思路,不一定是最好的. Problems1-20 寻找两个 ...
- java 数据格式验证类
作为一个前端,懂一点java,php之类的,甚好. 我所在的项目前端采用的就是java的spring mvc框架,所以我们也写java,掐指一算,也快一年了. 前端而言,验证是一个坎,绕不过去的,前面 ...
- timeline时间轴进度“群英荟萃”
timeline时间轴进度“群英荟萃” 是日,无论PC项目还是APP,都涉及到了通常称谓的“时间轴”UI展现布局.产品和设计师都喜欢横向.纵向的时间轴来传达产品的寓意.如此,如斯!总结一套 time ...
- [Spark内核] 第40课:CacheManager彻底解密:CacheManager运行原理流程图和源码详解
本课主题 CacheManager 运行原理图 CacheManager 源码解析 CacheManager 运行原理图 [下图是CacheManager的运行原理图] 首先 RDD 是通过 iter ...