一、什么是RAID

RAID中文名叫容错廉价磁盘阵列。RAID技术将多个较小的磁盘整合成一个大的磁盘设备;而这个大的磁盘,不仅仅是存储而已,还具有数据保护的功能;整个RAID由于选择的等级不同,而使得整合后的磁盘具有不同的功能。

二、RAID的优势

  1. 易于灵活的进行容量扩展,其”虚拟化“使得其在管理性得到了极大的增强;

  2. ”磁盘分块“技术带来了性上的提升;

  3. 通过冗余和热备、热换提升了可靠性

三、常见类型的RAID

  1. RAID0(等量模式):性能最佳

     RAID各级别的特性及软实现_中文名 RAID各级别的特性及软实现_中文名_02

      RAID0是以条带的形式将数据均匀分布在整列的各个磁盘上,这种模式下使用相同型号和容量的磁盘来组成效果最好。其至少需要两个或更多地磁盘;因为存储时,将一个整体的数据分散至多个磁盘,故其大大提高了读写速度,但是,其无法实现冗余,只要有任何一块磁盘损坏,在RAID上面的所有数据都会丢失而无法正常读取。故其不能用在对数据安全性要求高的环境,常用于视频生成和剪辑,图像编辑等一些不需要大的宽带速度的场景。

2.RAID1(镜像模式):完整备份

 RAID各级别的特性及软实现_中文名_03

         RAID1以镜像的为冗余的方式,对虚拟磁盘上的数据作多分拷贝,放在成员盘上。这种模式下使用相同型号的磁盘性能最好;其将一份数据完整的保存在了两块磁盘上,因此至少需要两个磁盘;其具有100%的冗余,提供较高的数据安全保障,理论上可以实现2倍的读取效率,但是其开销大,空间利用率为50%,在写性能上速度降低,常用于财务,金融等高可用、高安全性的数据存储环境;

3.RAID2:校验冗余

          RAID2采用校验冗余将数据分散为位或块,加入汉明码,间隔写入带磁盘阵列的每个磁盘中,在成员盘中其地址都一样,采用了并行存取的方式,花费大,成本高昂,不适用;

4.RAID3:校验存储

 RAID各级别的特性及软实现_型号_04

         RAID3中,数据块被分割成更小的块,并行传输到各个成员盘上,同时计算异或(xor)校验数据放到专用的校验盘上;故其最撒后需要三块磁盘,在读写性能上都比较好,当有磁盘损坏时,对整体吞吐量影响较小,减少了开销,适用于高吞吐量的应用环境;

5.RAID5:性能和冗余双考虑

 RAID各级别的特性及软实现_型号_05

      RAID5采用独立存取的阵列方式,校验信息被均匀的分散到阵列的各个磁盘上,其至少需要三个成员盘,RAID5的总容量会是整体磁盘数量减一,读性能较高,写性能一般,校验inxi1的分布式存储,避免了出现些操作额瓶颈,但是其需要一个复杂的控制逻辑,磁盘重建过程过于复杂;故常用用的场景有文件服务器,Email服务器、web服务器、数据库等应用环境。

6.RAID10

 RAID各级别的特性及软实现_可靠性_06 

     RAID10结合RAID1和RAID0,先镜像,在条带化,读写性能均有提升,有容错能力,但是其内部的每组镜像最多只能坏一块盘,至少需要4块盘;多用于高可用和高安全性的数据库应用huanjing‘

7.RAID50

   RAID50结合RAID5和RAID0,先实现r=RAID5,再条带化;

 RAID各级别的特性及软实现_技术_07

raid5特性:

             RAID各级别的特性及软实现_可靠性_08

常见raid级别比较

 RAID各级别的特性及软实现_安全性_09

三、RAID内核实现观测相关命令

CentOS 6上的软件RAID的实现

    1.md(multi devices)工具,mdadm:模式化的工具

命令的语法格式:mdadm [mode] <raiddevice> [options] <component-devices>

支持的RAID级别:LINEAR线性方式, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10;

模式:创建:-C;装配: -A;监控: -F;管理:-f, -r, -a

<raiddevice>: /dev/md#

<component-devices>: 任意块设备

(1)-C: 创建模式

-n #: 使用#个块设备来创建此RAID;

-l #:指明要创建的RAID的级别;

-a {yes|no}:自动创建目标RAID设备的设备文件;

-c CHUNK_SIZE: 指明块大小; 默认512k

-x #: 指明空闲盘的个数;

(2) 管理模式:

-f: 标记指定磁盘为损坏;

-a: 添加磁盘

-r: 移除磁盘

(3)-D:显示raid的详细信息;      mdadm -D /dev/md#

           (4)观察md的状态: cat /proc/mdstat

(5)停止md设备:mdadm -S /dev/md#

    2.watch:动态观测命令运行过程

格式:watch -n# 'COMMAND'

-n #: 刷新间隔,单位是秒;