什么是RAID 全名是 Redundant Array of Independent Disks 廉价磁盘的冗(rong)余阵列
常见模式:
RAID-0 等量模式
优点 读写快
适应应用最好选择同型号,同容量的效果最佳,这种模式RAID会将磁盘先分割出等量的区块(如4kb),然后当一个文件写入RAID时,该文件会依据RAID划分好的区块的大小切割好,之后再放到各个磁盘里面去。放入的方式是依序等量交错的存入每个磁盘。
另外,假如使用了不同容量的磁盘来组成RAID-0时,当小容量的磁盘被用完时,那剩余的数据会全部放入最大的那颗磁盘里。

RAID-0数据写入方式
RAID-1 完整备份模式(镜像模式)mirror
优点 可以实现完整备份,读取的速度快。
缺点:写入的速度 不佳。软RAID写入的速度会很差。因为数据传到I/O总线后会被复制多份到各个磁盘,结果就是数据量的猛增。硬RAID实现的话,会好的多。
写入数据的方式:把一个数据,同时完整的保存在两颗磁盘上,数据就会在两个磁盘上都有一个完整的备份。

RAID-1数据写入方式
RAID 0+1 RAID 1+0
RAID 0+1 &第一步就是先让两个磁盘组成RAID 0,并且这样的设定共有两组,所以总共要4块硬盘 ;
&第二步再把刚才的两组RAID 0 组成RAID 1的意思
RAID 1+0 &就是反过来,先组成RAID 1 再组成RAID 0的意思
下图是RAID 0+1的数据写入示意图

RAID-5
这种模式优点是实现容量和速度的平衡,组成RAID-5最少需要3块硬盘。
数据写入方式:
每次将数据以RAID-0的方式写磁盘后,同时会循环在RAID-5组内的其中一块磁盘写入一个校验码(parity),校验码记录的写入数据的相关信息。每次写入校验码的磁盘都会不同
RAID-5的实际使用容量=RAID-组内磁盘总容量减轻一块磁盘容量
例如:RAID-T组内有5块硬盘,其实际可用容量=5-1=4块硬盘的容量
RAID-5仅能允许组内同时其中一块磁盘损坏,RAID-6同时允许2块。

Spare Disk : 预备磁盘
其功能是将一块或多块没有被包含在原本磁盘阵列等级中的磁盘,作为一个备用,平时不会被使用,当阵列的磁盘有损坏的时候。则这块磁盘会被主动的拉进磁盘阵列中,并将坏的磁盘从磁盘阵列中移除!然后立即重建(rebuild)数据系统。若是磁盘阵列支持热插拔就更完美了,这样可以直接将坏的磁盘拔下,再插入一个新的磁盘,设定其为spare disk
硬RAID是通过RAID卡实现的,卡上有处理器及芯片等,中高档的卡一般都是支持热插拔的。
在Linux系统中硬RAID被识别为/dev/sd[a-p],因为使用的是SCSI模块
linux中软RAID是通过软件mdadm实现的,文件名为 /dev/md0,dev/md1...
Linux系统实现软RAID
[root@xiguatian ~]# mdadm -C -a yes /dev/md[0-9] -l N -n N -x N /dev/sd{a-p}
选项:
-C //创建
-a yes //指定以自动的方式在Linux系统中建立RAID设备,后接要创建的RAID设备名如:/dev/md0,即第一个RAID设备
-l N //小写字母 l ,指定要建立的等级,RAID-0,RAID1,RAID-5等
-n N //指明要用几块硬盘(或分区)建立磁盘阵列
-x N // (--spare-devices=N)指明了要用几个设备用于预备磁盘。
最后接设备名,可以是硬盘,也可以是分区,总是应该等于 -n N 和 -x N的之和。
[root@xiguatian ~]#mdadm -D /dev/md0 //成功创建后可以查看指定磁盘阵列的状态
[root@xiguatian ~]#cat /proc/mdstat //通过查看这个文件也可查看软磁盘阵列的状态
[root@xiguatian ~]#watch -n 1 cat /proc/mdstat /以每秒刷新一次动态查看软磁盘阵列的状态
实现RAID 10
两种方法:
1. 是用嵌套的方式制作RAID 10 ,即先建立2组RAID 1 ,之后再用这两组RAID 1组成RAID 0;特点是只允许偶数个磁盘,必须分开管理RAID 1和RAID 0
[root@xiguatian ~]#mdadm -C -a yes /dev/md0 -l 1 -n 2 /dev/sdc /dev/sdd
[root@xiguatian ~]#mdadm -C -a yes /dev/md1 -l 1 -n 2 /dev/sde /dev/sdf
[root@xiguatian ~]#mdadm -C -a yse /dev/md10 -l 0 -n 2 /dev/md0 /dev/md1
2. 是一次性建立RAID 10 ,即用一条命令一次性建立RAID 10;特点是支持用偶数个或者奇数个磁盘去创建阵列,而且能以单个RAID设备的形式去管理它
[root@xiguatian ~]#mdadm -C -a yes /dev/md10 -l 10 -n 5 /dev/sd{c,d,e,f,g} -x 1 /dev/sdh
[root@xiguatian ~]#mdadm -D /dev/md10 //看看情况
格式化RAID,挂载使用
[root@xiguatian ~]#mkfs.ext4 /dev/md0 //对磁盘阵列设备进行格式化
[root@xiguatian ~]#mkdir /mnt/raid //建立挂在点,以对其进行访问及使用
[root@xiguatian ~]#mount /dev/md0 /mnt/raid //挂载
[root@xiguatian ~]#df -aTh //查看已挂载的设备,以验证
如何验证磁盘阵列的功效
[root@xiguatian ~]# mdadm [-a 磁盘阵列名 设备名] [-r 磁盘阵列名 设备名] [-f 磁盘阵列名 设备名 ]
选项说明:
-a //添加一块磁盘到指定的阵列
-r //从指定的阵列中移除一块磁盘
-f //在指定的阵列中模拟一块磁盘损坏
[root@xiguatian ~]#cp -a /etc/profile /var/log /mnt/raid //先复制一些数据在磁盘阵列中
[root@xiguatian ~]#df /mnt/raid;du -sm /mnt/raid/* //查看数据是否真的存入
[root@xiguatian ~]#mdadm -f /dev/md0 /dev/sdc //假设阵列md0中的硬盘sdc发生故障
[root@xiguatian ~]#mdadm -D /dev/md0 //观察阵列状态
[root@xiguatian ~]#watch -n 1 /dev/mdstat // 动态查看阵列各个磁盘的状态转化,此时动作要快,你会发现原来的spare disk会被主动的拉入磁盘阵列,而坏的磁盘会被标识为faulty spare (出错的 备用)
[root@xiguatian ~]#mdadm -a /dev/md0 /dev/sdh -r /dev/md0 /dev/sdc //向阵列md0里添加一块新的磁盘,同时移除坏的磁盘
[root@xiguatian ~]#mdadm -D /dev/md0 //这时快速查看阵列状态,会开到新增加的那块磁盘会被自动设为spare disk
设置开机自启RAID 并自动挂载
[root@xiguatian ~]#mdadm -D /dev/md0 | grep -i uuid //获取阵列设备的UUID
[root@xiguatian ~]#vi /etc/mdadm.conf //编辑配置文件
ARRAY /dev/md0 UUID=bc71abf8-07f2-45ee-be86-f34b696dc215
#阵列 阵列名 系统唯一识别号
[root@xiguatian ~]#vi /etc/fstab //编辑自动挂载文件
/dev/md0 /mnt/raid ext4 defaults 1 2
[root@xiguatian ~]#umount /dev/md0;mount -a //测试
[root@xiguatian ~]#df /mnt/raid //确认顺利挂载,并没发生任何错误
正常关闭软RAID
1.先卸载且在配置文件里删除或者注释与这个/dev/md0相关的内容
[root@xiguatian ~]#umount /dev/md0
[root@xiguatian ~]#vi /etc/fstab
[root@xiguatian ~]#vi /etc/mdadm.conf
2.直接关闭软RAID并查看其状态,已确认关闭成功
[root@xiguatian ~]#mdadm -S /dev/md0
[root@xiguatian ~]#mdadm -D /dev/md0
网友评论