RAID:Redundant Arrays of Inexpensive(Independent) Disks
原来的称呼是:廉价磁盘冗余阵列。因为现在磁盘不廉价了,所以改名叫独立冗余磁盘阵列
-
原理:把多个磁盘放一起工作。
-
目的:提高IO能力,提高耐用性
-
实现方式:
- 外接式磁盘阵列:通过扩展控制器,控制所有磁盘
- 内嵌式磁盘阵列:主板集成RAID控制器
- software RAID:软件模拟
多个磁盘的组织方式:
RAID-0:会把一个文件内容分隔,存在多个磁盘上。
优点:
- 读写能力提升
- 可用空间提升:N*min(磁盘1,磁盘2.。。。)
缺点:
-
由于没有冗余,所以无容错
最少磁盘:2
RAID-1:把一个文件,存到所有磁盘
优点:
- 有冗余,所以可以容错
缺点:
- 可用空间:1*min(磁盘1,磁盘2.。。。)
- 写能力下降
最少2个磁盘
RAID-4:结合RAID-0和RAID-1的优点
最少3个磁盘,拿1个做校验盘,另外2个盘用RAID-0的方式设置,当某一个坏了,另一块和校验盘做计算,可以计算出坏了的磁盘的内容。
缺点:校验盘要是坏了就不能恢复了,校验盘成了性能的瓶颈。
RAID-5:类似RAID-4,所有磁盘轮流做校验盘。
RAID-6:类似RAID-5,但多拿出一个磁盘做校验盘,校验码存2次。
最少4块磁盘
混和类型:
RAID-10:地下磁盘是RAID-1的方式组织,上面存数据是RAID-0方式
可用空间:总磁盘的一般
最少磁盘:4
有容错能力(两两一组)
RAID-01:和RAID-10相反
RAID-50,RAID-7
JBOD:Just a Bunch of Disks
将多块磁盘的空间合并成一个大的连续空间使用。
常见种类:RAID-0,RAID-1,RAID-5,RAID-10,RAID-10,RAID-50,JBOD
centos6上的软件RAID实现:使用内核的md(multi devices)
mdadm:模式化工具:
语法格式:mdadm [mode] <raiddevice> [option] <component-device>
支持的RAID级别:LINEAR(JBOD),RAID0,RAID1,RAID4,RAID5,RAID6,RAID10
<raiddevice>:是不存在的,使用mdadm命令后,才会被做成
<component-device>:任意块设备
模式:
-
创建:-C
-n #:使用#个块设备来创建此RAID
-l # :指明要创建的RAID的种类
-a {yes|no} :自动/非自动创建目标RAID设备的设备文件
-c CHUNK_SIZE:指明块大小
-x # :指明空闲磁盘个数。
-
装配:-A
-
监控:-F
-
管理:-f(标记指定磁盘为损坏, -r(移除磁盘), -a(添加磁盘)
-
显示详细信息:-D:
mdadm -D /dev/md#
观察:watch -n1 'ifconfig eth0
:每秒执行一次后面的命令
观察RAID的状态:cat /proc/mdstat
配合watch使用。
停止RAID:mdadm -S /dev/md#