RAID的全称是廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),于1987年由美国Berkeley 大学的两名工程师提出的。 RAID出现的,最初目的是将多个容量较小的廉价硬盘合并成为一个大容量的“逻辑盘”或磁盘阵列,实现提高硬盘容量和性能的功能。 随着RAID技术的逐渐普及应用,RAID技术的各方面得到了很大的发展。现在,RAID从最初的RAID0-RAID5,又增加了RAID0+1和RAID0+5等不同的阵列组合方式,可以根据不同的需要实现不同的功能,扩大硬盘容量,提供数据冗余,或者是大幅度提高硬盘系统的I/0吞吐能力。

RAID技术主要有三个特点:
第一、通过对硬盘上的数据进行条带化,实现对数据成块存取,减少硬盘的机械寻道时间,提高数据存取速度。
第二、通过对一阵列中的几块硬盘同时读取,减少硬盘的机械寻道时间,提高数据存取速度。
第三、通过镜像或者存储奇偶校验信息的方式,实现对数据的冗余保护。
经常应用的RAID阵列主要分为RAID 0,RAID 1,RAID 5和RAID 0+1。
 
1.1 RAID0:条带化
RAID 0 也叫条带化,它将数据象条带一样写到多个磁盘上,这些条带也叫做“块”。条带化实现了可以同时访问多个磁盘上的数据,平衡I/O负载,加大了数据存储空间和加快了数据访问速度。RAID 0是唯一的一个没有冗余功能的RAID技术,但RAID0 的实现成本低。如果阵列中有一个盘出现故障,则阵列中的所有数据都会丢失。如要恢复RAID 0,只有换掉坏的硬盘,从备份设备中恢复数据到所有的硬盘中。 
硬件和软件都可以实现RAID0。实现RAID0最少用2个硬盘。对系统而言,数据是采用分布方式存储在所有的硬盘上,当某一个硬盘出现故障时数据会全部丢失。RAID 0 能提供很高的硬盘I/O性能,可以通过硬件或软件两种方式实现。
1.2 RAID1
也被称为磁盘镜像。系统将数据同时重复的写入两个硬盘,但是在操作系统中表现为一个逻辑盘。所以如果一个硬盘发生了故障,另一个硬盘中仍然保留了一份完整的数据,系统仍然可以照常工作。系统可以同时从两个硬盘读取数据,所以会提高硬盘读的速度;但由于在系统写数据需要重复一次,所以会影响系统写数据的速度。硬盘容量的利用率只有50%。
1.3 RAID0+1
对RAID0阵列做镜像。这是一种Dual Level RAID,也有人称之为RAID level 10。是两组硬盘先做RAID0,组成两颗大容量的逻辑硬盘,再互相为“镜像”。在每次写入数据,磁盘阵列控制器会将资料同时写入该两组“大容量数组硬盘组”内。
同RAID level 1 一样,虽然其硬盘使用率亦只有50%,但它却是最具高效率的规划方式。
1.4 RAID5
是在RAID3和RAID4的基础上发展来的,它继承了它们的数据冗余和条带化的特点,并将数据校验信息均匀保存在阵列中的所有硬盘上。系统可以对阵列中所有的硬盘同时读写,减少了由硬盘机械系统引起的时间延迟,提高了磁盘系统的I/O能力;当阵列中的一块硬盘仿生故障,系统可以使用保存在其它硬盘上的奇偶校验信息恢复故障硬盘的数据,继续进行正常工作。

RAID的实现

RAID可以通过软件或硬件实现。软件实现RAID需要操作系统的支持。硬件实现就是使用专用的RAID卡来实现。
 
1、软件RAID
一些网络操作系统可以使用标准的SCSI适配卡支持和管理驱动器。一些网络操作系统支持RAID0,RAID1和RAID5。
由于是操作系统下实现RAID,软RAID不能保护系统盘。亦即系统分区不能参与实现RAID。有些操作系统,RAID的配置信息存在系统信息中,而不是存在硬盘上;当系统崩溃,需重新安装时,RAID的信息也会丢失。
当运行I/O增强应用程序,如文件服务器或应用程序服务器,可适当的使用软件RAID。RAID 5是CPU的增强方式,所以不建议使用软件RAID在增强的处理器服务器中。
磁盘的容错技术并不等于完全支持在线更换,热插拔或热交换,有些操作系统不能支持系统不经过重启的在线热交换。能否支持错误硬盘的热交换与操作系统有关。 
NetWare支持 RAID 1 (镜像和双工) 。 Windows NT 、Windows2000、LINUX、OPENSERVER支持RAID 0, RAID1和RAID5。
另一种方案是配置系统在线扩充,服务器中配置一块备用硬盘,当系统中没有硬盘错误时,它处于等待状态,当RAID5或RAID1中出现硬盘错误时,它可以自动取代坏盘,当系统确认后,即可成为阵列的一部分。
 
2、硬件RAID
硬件 RAID是采用集成的阵列卡或专用的阵列卡来控制硬盘驱动器,这样可以极大节省服务器系统CPU和操作系统的资源。从而使网络服务器的性能获得很大的提高。
RAID控制器对主系统,是藉由连接至其存取接口(目前以SCSI 为主)作信道。换言之,它在主系统的存取接口上,是一个独立的直接存取储存体DASD Direct Access Storage Device。 而这个大的储存体内,可以有不只一个的逻辑磁盘LUN Logical Unit Number。 RAID控制器,对下管理多颗数组硬盘机们。而主系统是不会看到或直接管理该硬盘的。
例如:Mylex、AMI、Adaptec等 ... 都有相关的产品。
现在的RAID卡产品,都支持在线更换,热插拔或热交换。并在部分操作系统下实现软件监控和管理。
 
参考:

RAID介绍和实现的更多相关文章

  1. 基本的RAID介绍

    RAID是一个我们经常能见到的名词.但却因为很少能在实际环境中体验,所以很难对其原理 能有很清楚的认识和掌握.本文将对RAID技术进行介绍和总结,以期能尽量阐明其概念. RAID全称为独立磁盘冗余阵列 ...

  2. RAID 介绍

    介绍 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意. 磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨 ...

  3. Raid 介绍以及软raid的实现

    RAID: old Redundant Arrays of Inexpensive Disks (廉价磁盘冗余阵列) new Redundant Arrays of Independent Disks ...

  4. 几种RAID介绍(总结)

    概念 RAID是Redundent Array of Inexpensive Disks的缩写,简称为“磁盘阵列”.后来RAID中的字母I被改作了Independent,RAID就成了“独立冗余磁盘阵 ...

  5. Raid介绍

    https://wsgzao.github.io/post/raid/ http://www.cnblogs.com/Bob-FD/p/3409221.html

  6. 18.RAID介绍和部署磁盘阵列

    1.RAID RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列)技术具备的冗余备份机制以及提升了的硬盘吞吐量. 1)RAID 0:把多块物理硬盘设备 ...

  7. RAID技术介绍

    RAID技术介绍 简介 RAID是一个我们经常能见到的名词.但却因为很少能在实际环境中体验,所以很难对其原理 能有很清楚的认识和掌握.本文将对RAID技术进行介绍和总结,以期能尽量阐明其概念. RAI ...

  8. RAID的简单介绍

    该文章全部复制转载于:http://blog.jobbole.com/83808/,只为做笔记供自己查看 简介 RAID是一个我们经常能见到的名词.但却因为很少能在实际环境中体验,所以很难对其原理 能 ...

  9. [转]RAID技术介绍和总结

    以下内容转自伯乐在线:http://blog.jobbole.com/83808/ 原文出处: 涯余(@若东临于沧海) ---------------------------------------- ...

随机推荐

  1. 字符串反转,栈模拟(ZOJ1151)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=151 这里可以用栈模拟,也可以用STL,reverse();函数. 但 ...

  2. 2018.7.6 js实现点击事件---点击小图出现大图---时间定时器----注册表单验证

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  3. Shell编程学习之Shell编程基础(一)

    这篇随笔将要介绍关于Shell编程的基本知识,这些将会在假设你已经熟悉了Linux系统和命令行的基本知识. 构建基本脚本 你应该了解或熟悉使用Shell命令行了,但是只是使用Shell命令行的命令,有 ...

  4. Linux利用i节点删除乱码文件

    Linux删除乱码文件 当文件名为乱码的时候,无法通过键盘输入文件名,所以在终端下就不能直接利用rm,mv等命令管理文件了. 但是我们知道每个文件都有一个i节点号,我们可以考虑通过i节点号来管理文件. ...

  5. C# 方法中的参数类型

    二.方法中的参数类型 1. 值参数 值参数是指不带修饰符只带数据类型的形参. 值参数在使用值向方法传递参数时,编译程序会把实参的值做一份拷贝,并且将此拷贝传递给该方法,被调用的方法不会修改内存中实参的 ...

  6. 15、SpringBoot------整合swagger2

    开发工具:STS 前言: 对外提供一个Api,无论是对开发.测试.维护,都有很大的帮助. 下面我们来实现swagger2. 参考实例:https://blog.csdn.net/weixin_3947 ...

  7. LeetCode997. Find the Town Judge

    题目 在一个小镇里,按从 1 到 N 标记了 N 个人.传言称,这些人中有一个是小镇上的秘密法官. 如果小镇的法官真的存在,那么: 小镇的法官不相信任何人. 每个人(除了小镇法官外)都信任小镇的法官. ...

  8. 深入理解java虚拟机学习笔记(一)JVM内存模型

    上周末搬家后,家里的宽带一直没弄好,跟电信客服反映了N遍了终于约了个师傅明天早上来迁移宽带,可以结束一个多星期没网的痛苦日子了.这段时间也是各种忙,都一个星期没更新博客了,再不写之前那种状态和激情都要 ...

  9. JavaScript编码加密

    网上看到的加密方法: JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,deco ...

  10. 重头开始学Qt——day1

    以前学过Qt,但只是为了学分,现在重学. 1. 认识Qt应用程序框架 直接新建一个项目后,自动生成了一下文件,下面一个个理解. (1)main.cpp main.cpp中特别的是QApplicatio ...