RAID:独立冗余磁盘阵列。

在早期的时候它被称为Redundant Arrays of Inexpensive Disks,即“廉价冗余磁盘阵列”;后来发现真的让这样的设备达到很高的性能,其廉价的作用已显现不出来。因此,将'Inexpensive' 改为 'Independent',就是我们现在称的“独立冗余磁盘阵列”。

独立磁盘冗余阵列是把相同的数据分别存储在多个硬盘的不同地方,并做好备份,不至于使数据损失,即它拥有冗余和容错的功能。

它的作用通俗的说就是:组合多个设备同时完成一个任务。

RAID技术的实现是分级别的。下边我们来说一下RAID的各个级别,及其实现方式:

RAID level :(仅代表磁盘组织方式不同,没有级别高低之分)

 

RAID 0 

条带技术,将数据并行存储在磁盘上,因此有很高的数据传输性能。但由于其没有冗余能力,也就没有容错能力,所以数据一旦损坏就无法修复。所以说,RAID0只是单纯提高性能,数据安全性很低。

 

总结:性能提升:读,写

  冗余能力(容错能力):无

  空间利用率:nS

  至少需要2块盘

 

RAID1

镜像技术,就是将数据存储在多个磁盘上,然后在产生备份。读取数据时,即可从原有的磁盘上读取,也可从镜像备份磁盘中读取,但是写的就不能了。当一个磁盘损坏时,还可使用镜像备份将原来的数据还原回来。这就使它有了冗余能力,所以其需要的磁盘数会是RAID0存储相同数据的两倍(由于需要镜像)。

 

总结:性能表现:写性能下降,读性能提升

  冗余能力(容错能力):有

  空间利用率:1/2

  至少需要2块盘

 

RAID4

校验码技术,同样也是将数据条带化并分布于不同的磁盘上,但他需要使用一块磁盘作为校验盘,将数据存储盘的循环冗余校验码都放到这块盘上。当有一个磁盘损坏时,可通过校验盘和其他的数据盘来还原损坏的数据。因此,它也具有冗余容错能力。但是如果损坏了两块或两块以上磁盘,数据将无法修复。因此,这项技术较少使用。

 

总结:性能表现:读,写提升

  冗余能力:有

  空间利用率:(n-1/n

  至少需要3块盘

 

RAID5

同样的校验码技术,只是使用各个数据盘轮流作为校验盘的机制。并且,有两块校验盘。这样的话每个磁盘上都存有循环冗余校验码,当一个盘损坏时,可根据其它盘修复。两块盘同样的道理。

 

总结:性能表现:读,写提升

  冗余能力:有

  空间利用率:(n-1/n

  至少需要3块盘

 

RAID01

RAID0RAID1一块使用,先用条带化再用镜像技术,就是将条带的数据磁盘,镜像成另外一组数据一样的磁盘。同组可以损坏多个,但不同组中不能损坏存放同样数据的。

 

总结:性能表现:读,写提升

 冗余能力:有

 空间利用率:1/2

 至少需要4块盘

 

RAID10

先镜像,再条带。即先将数据的盘镜像备份,再进行条带。这个是两个存储一样数据的盘一组,把组条带化。这样就不能让同组的两个磁盘都损坏,损坏就无法还原了。

RAID01RAID10没有什么好坏之分,只是其应用场所不同。

 

总结:性能表现:读,写提升

      冗余能力:有

      空间利用率:1/2

      至少需要4块盘

 

RAID50

就是先实行校验码技术,将存放数据的磁盘,做好校验码之后,再进行条带化技术。

具有更高的容错能力,且加快了数据的读写速度。需要的磁盘数较多。

总结: 性能表现:读,写提升

    冗余能力:有

    空间利用率:(n-2/n

    至少需要6块盘

 

jbod:最主要目的,将多个小盘组合成一个大盘来用

HadoopHDFS —— 自身保存数据系统

  总结:性能表现:无

冗余能力:无

空间能力:nS

至少需要2块盘

以上都是我们常见到的磁盘阵列技术,各个技术都有其应用的领域,不分好坏。

 

RAID在应用中分为硬件RAID和软件RAID

硬件RAID:一个将多硬件组合的设备

被操作系统看为一个硬件:/dev/sda,/dev/sdb

可在BIOS中进行配置

  raid 0

  raid 1

软件RAID

通过命令将几块硬盘组合成一个raid,即

   内核中的一个模块:md——multi disks(多设备或多磁盘)   /dev/md#

  通过内核中md模块模拟一个RAID

  即能够通过模块访问几个磁盘的称为RAID

 

逻辑RAID格式:

/dev/md#

 

我们使用mdadm命令将任何的块设备做成RAID

mdadm:用户空间管理工具

mdadm  -D | --detail :查看RAID序列的详细信息(即为监控)

模式化的命令:

创建模式

 -C

专用选项:

-l:级别

-n:设备个数

-a {yes|no}:自动为其创建设备文件

-c:指定chunk大小(数据块大小),2^n,默认为64k

-x:指定空闲盘个数

例: #  mdadm  -C /dev/md5 -a yes -l 5 -n 4  -c 32   创建一个10Graid5设备,chunk大小为32k

管理模式

 --add|-a(为受损RAID加新分区),--remove|-r--fail|-f

例: #  mdadm  /dev/md0  -f  /dev/sda7  删除在/dev/sda7上创建的RAID0

监控模式

 -F

增长模式

 -G

装配模式:重新将硬件组合成RAID

 -A

例: #  mdadm  /dev/md0  -A  /dev/sda8 将另一块空闲的磁盘即/dev/sda8加进RAID0中。

停止阵列:-S

#  mdadm  -S  /dev/md1  停止阵列

将当前RAID信息保存至配置文件,以便以后进行装配:

#  mdadm -D --scan > /etc/mdadm.conf

补充:

watch:周期性的执行指定命令,并以全屏方式显示结果

-n #:指定周期长度,单位为秒,默认为2

格式: watch -n # 'COMMAND'

例: #  watch -n 2 'cat /proc/mdstat'  显示查看md创建的进度