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:
将RAID0和RAID1一块使用,先用条带化再用镜像技术,就是将条带的数据磁盘,镜像成另外一组数据一样的磁盘。同组可以损坏多个,但不同组中不能损坏存放同样数据的。
总结:性能表现:读,写提升
冗余能力:有
空间利用率:1/2
至少需要4块盘
RAID10:
先镜像,再条带。即先将数据的盘镜像备份,再进行条带。这个是两个存储一样数据的盘一组,把组条带化。这样就不能让同组的两个磁盘都损坏,损坏就无法还原了。
RAID01和RAID10没有什么好坏之分,只是其应用场所不同。
总结:性能表现:读,写提升
冗余能力:有
空间利用率:1/2
至少需要4块盘
RAID50:
就是先实行校验码技术,将存放数据的磁盘,做好校验码之后,再进行条带化技术。
具有更高的容错能力,且加快了数据的读写速度。需要的磁盘数较多。
总结: 性能表现:读,写提升
冗余能力:有
空间利用率:(n-2)/n
至少需要6块盘
jbod:最主要目的,将多个小盘组合成一个大盘来用
Hadoop:HDFS —— 自身保存数据系统
总结:性能表现:无
冗余能力:无
空间能力: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 创建一个10G的raid5设备,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创建的进度