【存储】RAID磁盘阵列选择
RAID磁盘阵列(Redundant Arrays of Inexpensive Disks)
一个基本思想:将多个容量较小、相对廉价的磁盘进行有机组合,从而以较低的成本获得与昂贵大容量磁盘相当的容量、性能、可靠性。
两个关键目标:高 I/O 性能(多磁盘并发读写)和高数据可靠性(数据校验和镜像)。
三个关键技术:镜像( Mirroring )、数据条带( Data Stripping )和数据校验( Data parity ) [3][4][5] 。
七个标准等级:SNIA 、 Berkeley 等组织机构按照磁盘组织在一起的工作方式不同,把 RAID0 、 RAID1 、 RAID2 、 RAID3 、 RAID4 、 RAID5 、 RAID6 七个等级定为标准的 RAID 等级,这也被业界和学术界所公认。
多个组合等级:标准 RAID 可以组合,即 RAID 组合等级,满足对性能、安全性、可靠性要求更高的存储应用需求,常用的有R01、R10。
1.RAID0模式:一块硬盘或者以上就可做raid0
RAID0 是一种简单的、无数据校验的数据条带化技术,不提供任何形式的冗余策略。将所在磁盘条带化后组成大容量的存储空间,将数据分散存储在所有磁盘中,以独立访问方式实现多块磁盘的并读访问。由于并发执行磁盘 I/O 操作,且不需要进行数据校验,总线带宽可得到充分利用。
优势:理论上N块磁盘组成的RAID0,硬盘容量提高N倍,读写速率为单块硬盘的N倍,读写性能在所有 RAID 等级中是最高的。
缺点:无冗余容错能力,一块硬盘损坏,数据全无。
建议:做raid0 可以提供更好的容量以及性能,推荐对数据安全性要求不高的使用,如视频、音频存储、临时数据缓存空间等。
2.RAID1模式:至少2块硬盘可做raid1
RAID1 称为镜像,它将是数据完全一致地分别写到工作磁盘和镜像磁盘,两块硬盘互为镜像。
优势:镜像,数据安全强,2快硬盘做raid一块正常运行,另外一块镜像备份数据,保障数据的安全。一块坏了,另外一块硬盘也有完整的数据,保障运行。
缺点:磁盘空间利用率50%;读取时可并发I/O操作,读性能大大提升;但写入时一份数据写入两块磁盘,写性能略有下降。
建议:对数据安全性比较看重,写性能没有太高要求的场景使用,如对邮件系统的数据保护。
3.RAID 3模式:至少3块硬盘可做raid3
RAID3是使用专用校验盘的并行访问阵列,它采用一个专用的磁盘作为校验盘,其余磁盘作为数据盘,数据以位为单位来分割并交叉存储到各个数据盘中。
RAID3 至少需要三块磁盘,不同磁盘上同一带区的数据作 XOR 校验(奇偶校验),校验值写入校验盘中。 某一磁盘出现故障,可以借助校验数据和其他完好数据来重建数据。
重建原理主要是知道XOR结果和A与B中的任何一个数值,就可以反推出另一个数值。XOR的校验原理如下表:
假如所要读取的数据块正好位于失效磁盘,则系统需要读取所有同一条带的数据块,并根据校验值重建丢失的数据,系统性能将受到影响。当故障磁盘被更换后,系统按相同的方式重建故障盘中的数据至新磁盘。
优点:RAID3 完好时读性能与 RAID0 完全一致;只要一个校验盘,存储空间利用率高。
缺点:需要计算和写入校验值,系统开销非常大。校验盘仅有一个,很容易成为系统瓶颈,尤其是出现坏盘性能会大幅下降。
建议:适用于大容量数据的顺序访问场景,如影像处理、流媒体服务等。
4.RAID 5模式:至少需要3块硬盘做raid5
RAID5 应该是目前最常见的 RAID 等级,基本上可以满足大部分的存储应用需求,数据中心大多采用它作为应用数据的保护方案。
RAID5与 RAID3 的原理大致相同,区别在于条带化的方式不同,RAID3是按照位的方式来组织数据,RAID5按照块的方式组织数据。
RAID5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
优势:RAID5 兼顾存储性能、数据安全和存储成本等各方面因素,它可以理解为 RAID0 和 RAID1 的折中方案,是目前综合性能最佳的数据保护解决方案。任意N-1快硬盘都有完整的数据。
缺点:只允许单盘故障,一盘出现故障得尽快处理。有盘坏情况下,raid5 IO/CPU性能狂跌,此时性能烂到无以复加。
建议:盘不多,对数据安全性和性能提示都有要求,raid5是个不错选择,鉴于出问题的性能,盘多可考虑riad10。
5.RAID 6模式:至少需要4块硬盘做raid6
raid6是再raid5的基础上为了加强数据保护而设计的,引入双重校验的概念,它可以保护阵列中同时出现两个磁盘失效时,阵列仍能够继续工作,不会发生数据丢失。
可用容量 = ( 磁盘数量 - 2 ) × 单个磁盘容量,例如4块1T硬盘做raid6可用容量是:(4-2)×1000GB=2000GB=2T
优势:可允许损坏2块硬盘。
缺点:性能提升方面不明显
建议: RAID6 很少得到实际应用,主要用于对数据安全等级要求非常高的场合。它一般是替代 RAID10 方案的经济性选择。
6、RAID 10模式:至少需要4快硬盘做raid10或raid01
RAID10 是磁盘分段及镜像的结合,把2块硬盘组成一个RAID1,然后两组RAID1组成一个RAID0。虽然RAID10方案造成了50%的磁盘浪费,但是它提供了200%的速度和单磁盘损坏的数据安全性。
优势:兼顾安全性和速度。基础4盘的情况下,raid10允许对柜盘2块故障,随着硬盘数量的提示,容错量也会相对应提升。这是raid5无法做到的。
缺点:对盘的数量要求稍高,磁盘使用率为一半。
建议:硬盘数量足够的情况,建议riad10.
(1)raid10 VS raid01
RAID01 与RAID10类似,采用2组RAID0的磁盘阵列互为镜像,它们之间又成为一个RAID1的阵列。
RAID01 是先做条带化再作镜像,本质是对物理磁盘实现镜像;而 RAID10 是先做镜像再作条带化,是对虚拟磁盘实现镜像。相同的配置下,通常 RAID01 比 RAID10 具有更好的容错能力。
(2) raid10 VS raid 5
只看盘的数量的话,raid5的写性能不逊于raid10。
看容量4块硬盘的情况下,raid10提供2盘的写性能,raid5提供3盘。但raid5的校检本质,导致额外的I0和CPU使用。
7.应用选择
RAID 等级的选择主要有三个因素,即数据可用性、 I/O 性能和成本。 目前,在实际应用中常见的主流 RAID 等级是 RAID0 , RAID1 , RAID3 , RAID5 , RAID6 和 RAID10 ,它们之间的技术对比情况如下表所示:
如果不要求可用性,选择 RAID0 以获得高性能。
如果可用性和性能是重要的,而成本不是一个主要因素,则根据磁盘数量选择 RAID1 。
如果可用性,成本和性能都同样重要,则根据一般的数据传输和磁盘数量选择 RAID3 或 RAID5 。
在实际应用中,应当根据用户的数据应用特点和具体情况,综合考虑可用性、性能和成本来选择合适的 RAID 等级。
参考文档:
【存储】RAID磁盘阵列选择的更多相关文章
- 存储之磁盘阵列RAID
存储之磁盘阵列RAID RAID是由美国加州大学伯克利分校的D.A. Patterson教授在1988年提出的.RAID名为独立冗余磁盘阵列(RedundantArray of Indepe ...
- 快速理解几种常用的RAID磁盘阵列级别
我发现周围不少人在学习和理解RAID磁盘阵列的原理时,找了很多专业的资料来看,但是因为动手的机会比较少,因此看完以后还是似懂非懂,真正遇到实际的方案设计的时候,还是拿不定主意. 因此,我结合自己在过去 ...
- RAID磁盘阵列学习笔记
RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列.简单地解释,就是将N台硬盘通过RAID Controller(分Hardware ...
- RAID磁盘阵列及CentOS7系统启动流程
磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意,,数据读取无影响.将数据切割成许多区段,分别存放在各个硬盘 ...
- 末学者笔记--Linux中RAID磁盘阵列及centos7启动过程
<一>RAID概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意. 磁盘阵列是由很多价格较便 ...
- 1-15-1 RAID磁盘阵列的原理和搭建
大纲: 1.1-1-企业级RAID磁盘阵列 RAID磁盘阵列的原理 RAID0,1,5,10的搭建 硬件RAID卡 1.2-1-使用廉价的磁盘搭建RAID磁盘阵列 实战-配置RAID0带区卷 ==== ...
- RAID磁盘阵列及CentOS7启动流程
1. 磁盘阵列 1.1 RAID,磁盘阵列磁盘通过硬件和软件的形式组合成一个容量巨大的磁盘组,提升整个磁盘的系统效能:RAID常见类型: RAID类型 最低磁盘个数 空间利用率 各自的优缺点 级别 说 ...
- RAID磁盘阵列介绍
磁盘阵列 RAID介绍 一.简介: 磁盘阵列(Redundant Arrays of Independent Drives,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意. 最初是由加利福尼亚 ...
- Linux中raid磁盘阵列
一.磁盘阵列(Redundant Arrays of Independent Disks,RAID) 有“独立磁盘构成的具有冗余能力的阵列”之意. 磁盘阵列是由很多价格较便宜的磁盘,以硬件(RAID卡 ...
随机推荐
- C#模拟httpwebrequest请求_向服务器模拟cookie发送
使用C#代码模拟web请求,是一种常用的方法,以前没专门整理过,这里暂时贴上自己整理的完整代码,以后再做梳理: public class MyRequest { #region 辅助方法 public ...
- C++程序实例唯一方案,窗口只打开一次,程序只打开一次
首先是方法: // IsAlreadyRunning - 是否已经运行 BOOL IsAlreadyRunning() { BOOL bRet = FALSE; HANDLE hMutex = ::C ...
- [PHP]算法-队列结构的PHP实现
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 思路: 1.php数组完全就能实现 2.array_push 从尾部往里压入元素 3.array_shi ...
- 谈下mysql预处理基础
传统的操作数据库方法有两种: 先写一条sql语句,然后通过mysqli->query($sql)去操作数据库(此处使用的是mysqli扩展库).这样操作并不会有什么大的错误,但是当要插入上千条上 ...
- C-Linux_毫秒级随机值获取
秒级随机值-常用方法: #include <stdlib.h> #include <stdio.h> #include <stdio.h> #include < ...
- 怎么打开在.bashrc文件以及设置颜色
打开/etc/bashrc,加入如下一行: alias ls="ls --color" 下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了,其中不同颜 ...
- ES6 import and export
定义: 用来导入或者导出模块. ES6 的模块自动采用严格模式,不管你有没有在模块头部加上"use strict";. 严格模式主要有以下限制. 变量必须声明后再使用 函数的参数不 ...
- 大事记 - 安卓微信浏览器 video 标签层级过高
// 为什么叫<大事记>? // 以前总有面试官问这样一个问题:“你在项目中遇到过最头疼的问题是什么,是怎么解决的?” // 当时总觉得,已解决的问题都算不上头疼,所以回答总是不尽人意. ...
- angularjs-select2的使用
1.引入文件 '/select2.css', '/select2-bootstrap.css', '/select2.min.js', ‘/angular-select2.min.js’ 2.页面 3 ...
- [转]JS学习总结-技巧、方法、细节
变量转换 var myVar = "3.14159", str = ""+ myVar,// string类型 int = ~~myVar, // number ...