RAID 概述
原创地址:http://www.cnblogs.com/jfzhu/p/3999283.html
转载请注明出处
独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称硬盘阵列。其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。RAID把多个硬盘组合成为一个逻辑扇区,因此,操作系统只会把它当作一个硬盘。RAID常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。
(一)RAID级别
常见的有以下几种
RAID 0 – Disk Striping
RAID 1 – Disk Mirroring
RAID 5 – Disk Striping with Parity
(1)RAID 0
它将两个以上的磁盘串联起来,成为一个大容量的磁盘。它可以合并的硬盘数量是2-32个硬盘,合并后的硬盘容量即为每个硬盘容量的总和。举个例子,有四块硬盘,每个硬盘容量都是250GB,那么Disk Striping Array的容量就为1TB。
它在向磁盘存放数据时,将数据分段(以位或字节为单位)后分散存储在这些磁盘中。比如要保存一个Excel文档,这个文档的bit 1被写到磁盘1中,bit 2被写到磁盘2中,bit 3被写到磁盘3中,bit 4被写到磁盘4中,然后bit 5又被写到bit 1中,这样循环下去,只到整个文档都被写完。因为读写时都可以并行处理,所以在所有的级别中,RAID 0的速度是最快的。但是RAID 0既没有冗余功能,也不具备容错能力,如果一个磁盘(物理)损坏,所有数据都会丢失,危险程度很高。
Volume = Sum(S1, S2, S3,…)
优点:硬盘利用率高,读写速度快
缺点:没有冗余功能
(2) RAID 1
Disk Mirroring 的意思是多块硬盘互为镜像,其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据,当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的,可靠性最高。RAID 1支持热插拔,如果有一块硬盘坏掉,可以把它直接拔下来,然后热插上一块新硬盘,新硬盘会把另一块硬盘内容拷贝过来。在一些多线程操作系统中能有很好的读取速度,理论上读取速度等于硬盘数量的倍数,但写入速度有微小的降低。另外无论用多少磁盘做RAID 1,仅算一个磁盘的容量,是所有RAID中磁盘利用率最低的一个级别。
Volume = min(S1, S2, S3…)
优点:冗余功能
缺点:硬盘写速度降低,硬盘利用率低
(3) RAID 5
RAID 5可以理解为是RAID 0和RAID 1的折衷方案,它兼顾了储存性能、数据安全和存储成本。RAID 5需要至少3块硬盘,它不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID 5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取速度,只是因为多了一个奇偶校验信息,写入数据的速度相对单独写入一块硬盘的速度略慢,若使用“回写高速缓存”可以让性能改善不少。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较便宜。
Volume = (N - 1) * min(S1, S2, S3…, SN)
优点:磁盘容量利用率较高 (RAID 0 > RAID 5 > RAID 1)
硬盘读速度较快(RAID 0 > RAID 5 > RAID 1)
冗余功能
(4) RAID 10 / 01
RAID 10是先镜像再分割资料,再将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。
RAID 01则是跟RAID 10的程序相反,是先分割再将资料镜像到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。
当RAID 10有一个硬盘受损,其余硬盘会继续运作。RAID 01只要有一个硬盘受损,同组RAID 0的所有硬盘都会停止运作,只剩下其他组的硬盘运作,可靠性较低。如果以六个硬盘建RAID 01,镜像再用三个建RAID 0,那么一个硬盘坏便会有三个硬盘离线。因此,RAID 10远较RAID 01常用,零售主机板绝大部份支援RAID 0/1/5/10,但不支援RAID 01。
应该说能够与RAID10竞争的只有RAID 5了,两者在不同的场景有大量的使用。在安全性上RAID 10要比RAID 5强,当RAID 5有一块硬盘损坏时,读性能有很大的下降,因为损坏硬盘中的数据要通过其他硬盘中的数据和校验一起才能计算出来,所以在数据库存储时一般选择RAID 10。在磁盘使用率上RAID 5要比RAID 10高很多,所以对安全性要求不是特别高的场合比如文件存储一般大量使用RAID 5。相反,安全性要求很高,不计成本,小数据量频繁写入的系统采用RAID 10的方式比较好。
(二)Size VS. Volume in RAID
Size >= Volume
RAID对每块硬盘所能使用的容量取决于容量最小的那块硬盘。以下图为例,三块硬盘的容量分别为500GB, 250GB, 100GB, 我们要做一个RAID 5阵列,那么每块硬盘可以使用的容量就为100GB。做出的阵列,Size为300GB, Volume为200GB。
(三)服务器磁盘阵列损坏时注意不要做的事情
当服务器的RAID的磁盘阵列坏掉时,不要break磁盘阵列,不要将一块磁盘拔出来,试图在其他地方进行数据恢复,因为这样可能会破坏磁盘阵列数据的完整性。
(四)实际应用情况
RAID2、3、4较少实际应用,因为RAID5已经涵盖了所需的功能,因此RAID2、3、4大多只在研究领域有实现,而实际应用上则以RAID 5为主。在数据库等重要领域一般使用RAID 10,所以在实际生产中要么选择RAID5,要么选择RAID10,当然也有少量的RAID6存在。除非特定厂商的产品有比较特殊的特定的选择。虽然RAID技术是一个很伟大的发明,但是除非在大型企业或数据中心中,一般不建议使用RAID。即便使用了RAID技术,做好系统备份与灾难恢复的工作也是十分重要的,比如如果RAID Controller坏掉了,可能厂商会第二天才会过来帮你换一个新的,又或者厂商已经倒闭,没有办法换一个新的RAID Controller,所以相对来讲,可能更为实惠可靠的方法是对数据做好灾备工作。
另外参见微软的文档 RAID Levels and SQL Server
RAID 概述的更多相关文章
- Linux创建RAID概述
Linux创建RAID RAID概述 RAID(Redundant Array of Independent Disk)虚拟存储系统 RAID即独立冗余磁盘阵列,其思想是将多块独立的磁盘按不同的方式组 ...
- raid概述与CentOS7.4中raid5的搭建与测试
前言 一.raid的定义与作用 raid(独立冗余磁盘阵列).raid技术通过把多个硬盘设备组合成一个容量更大的,安全性更好的磁盘阵列.把数据切割成许多区段后分别放在不同的物理磁盘上,然后利用分散读写 ...
- 图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID10
RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆.这篇文章为网络转载,写得相当不错,它对 RAID 技术的概念特征.基本原理.关键技术.各种等级和发展现状进 ...
- 【转】RAID 技术发展综述
原文地址:https://blog.csdn.net/liuaigui/article/details/4581970 摘要 :现代企业信息化水平不断提高,数据已经取代计算成为了信息计算的中心.这 ...
- centos6中创建软raid方法
raid概述: 组建raid阵列命令: mdadm:模式化的工具 /etc/mdadm.conf -A Assemble 装配模式 -C Create 创建模式 -C:专用 ...
- 图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID100
RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆.这篇文章为网络转载,写得相当不错,它对 RAID 技术的概念特征.基本原理.关键技术.各种等级和发展现状进 ...
- 【Linux】LVM逻辑卷管理和RAID
LVM概述: 是对磁盘分区进行管理的一种机制 是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不 够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现一种磁盘空 ...
- RAID技术全解图解-RAID0、RAID1、RAID5、RAID100【转】
图文并茂 RAID 技术全解 – RAID0.RAID1.RAID5.RAID100…… RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆.这篇文章为网络转 ...
- RAID技术超详细讲解
RAID 技术是一种多磁盘技术,面对数据的各方面有着两面性的影响,整体来说优点大于缺点的,下面我将详细介绍一下 RAID ,简称磁盘阵列技术. 一.RAID 概述 1988 年美国加州大学伯克利分校的 ...
随机推荐
- 通过FileHandle获取FileObject对象
<div id="wrap"> <!-- google_ad_section_start --> NTSTATUS MyNtReadFile(<br& ...
- shell处理输入
1.在运行脚本时指定参数,直接在脚本名称后边跟随需要添加的参数,在运行的过程中,$0代表程序名,$1代表第一个参数,$2代表第二个参数,一直到第九个,从第十个参数开始需要变成${10}等,即需要添加花 ...
- js的一些笔记
var txt = "Hello World!";document.write("<p>字体变大: " + txt.big() + "&l ...
- 1、Spring In Action 4th笔记(1)
Spring In Action 4th笔记(1) 2016-12-28 1.Spring是一个框架,致力于减轻JEE的开发,它有4个特点: 1.1 基于POJO(Plain Ordinary Jav ...
- leanote个人版安装
https://github.com/leanote/leanote/wiki/Leanote-%E4%BA%8C%E8%BF%9B%E5%88%B6%E7%89%88%E8%AF%A6%E7%BB% ...
- 2016-1-29 图解HTTP(04)
第7章 确保Web安全的HTTPS 在HTTP协议中有可能存在信息窃听或身份伪装等安全问题.使用HTTPS通信机制可以有效的防止这些问题. 7.1 HTTP的缺点 ● 通信使用明文(不加密),内容可能 ...
- Linux(Ubuntu) Mysql的安装配置例子以及常用命令
1.安装配置例子 有空再写 2.注意事项 (1)启动mysql 在/etc/mysql 目录下 service mysql start 新版本是(service mysqld start ) (2 ...
- 调试台自动多出现一个'' ,我 用uploadify上传图片时,在给页面写入一个返回值为图片名称的变量的值的时候值的前面始终多出现一个''
对你有助请点赞,请顶,不好请踩------送人玫瑰,手留余香! 15:54 2016/3/12用uploadify上传图片时,在给页面写入一个返回值为图片名称的变量的值的时候值的前面始终多出现一个' ...
- 闭包和重写函数 返回IE浏览器版本号
开发过程中我们有时候需要知道IE的版本号,我们知道得到IE的版本号的方法: var v = 3, div = document.createElement('div'), all = div.getE ...
- Redis 做消息队列
一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式.利用redis这两种场景的消息队列都能够实现.定义: 生产者消费者模式:生产者生产消息放到队列里,多个消费者同时监听队列, ...