raid的作用主要是用来提高磁盘的读写速率和提高数据的容错率。 常见的raid级别有:

	raid0,raid1,raid5,raid10等

raid0:

	理论上创建raid0至少需要两块盘,每一块盘都用做读写数据,也就是说:一个数据会拆分成多个,分别写入到每块磁盘中,读取数据的时候也会从每块盘中读取。优点:大大提高了数据的读写速率;缺点:容错率很差,只要其中一个块盘坏了,数据就不可用。
	raid0的磁盘利用率为100%。
	另外在实际生产环境中一块盘也能做raid0.

raid1:

	创建raid1需要两块盘,其中一块盘作数据盘,用来存储数据,另一块为镜像盘,用来备份数据。优点:容错率高,允许坏掉一块盘,不会破坏数据,读取速率比一块盘要高;缺点:因为一份数据要写入两块盘,所以写入数据速率低,另外成本高,磁盘的利用率只有50%。

raid5:

	创建raid5至少需要三块盘,其中两块轮流作为数据盘,用来存储数据,另外一块作为校验盘。优点:容错率高,允许坏掉一块盘,不会破坏数据,当其中一块盘坏了之后,可通过校验盘恢复破坏的数据,如果校验盘坏了可通过两块盘的数据恢复校验盘,读写性能略有提升;缺点成本较高,不能同时坏两块盘。磁盘利用率为(n-1)/n
	raid6和raid5差不多,raid6至少需要4块盘,两块做校验盘。

raid10: 创建raid10至少需要四块盘,先两两做成raid1再做成raid0;磁盘利用率为1/2. 另外在生产环境中常用的还用一种jbod的直通模式,就是系统和磁盘直连,在做hadoop大数据中经常需要这种模式。 如,软raid1创建:

	首先需要两块盘,这里我创建两个同样大小的逻辑分区 sdb5和sdb6.
	之后将其格式化mkfs.ext4 /dev/sdb5,mkfs.ext4 /dev/sdb6
	使用mdadm模块将其创建成raid1(如果没有mdadm需要安装)
	创建raid1: mdadm -C /dev/md0 -a yes -l 1 -n 2 /dev/sdb5 /sdb6
			-C 创建,-a yes自动创建文件系统,-l raid级别,-n 磁盘数量
	查看raid1状态:mdadm -D /dev/md0(-D 打印信息)
	[root@localhost ~]# mdadm -D /dev/md0 
/dev/md0:
				Version : 1.2
	Creation Time : Fri Aug 10 15:19:55 2018
		 Raid Level : raid1
		 Array Size : 521792 (509.65 MiB 534.32 MB)
	Used Dev Size : 521792 (509.65 MiB 534.32 MB)
	 Raid Devices : 2
	Total Devices : 2
		Persistence : Superblock is persistent

		Update Time : Fri Aug 10 15:19:59 2018
					State : clean 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
	Spare Devices : 0

					 Name : localhost.localdomain:0  (local to host localhost.localdomain)
					 UUID : fa32332d:ee855ef9:a94fe472:820b3fec
				 Events : 17

		Number   Major   Minor   RaidDevice State
			 0       8       21        0      active sync   /dev/sdb5
			 1       8       22        1      active sync   /dev/sdb6
			 
[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sdb6[1] sdb5[0]
			521792 blocks super 1.2 [2/2] [UU]

unused devices: <none>

我们知道raid1是有一块备份盘的,允许破坏一块盘而不破坏数据,现在模拟一下,使用watch命令来监控raid的状态:watch -n 1 "cat /proc/mdstat" ,每隔一秒打印raid信息。 现在我们破坏其中一块盘:

 mdadm /dev/md0 --fail /dev/sdb5可以看到其中一块盘破坏了
 [root@localhost ~]# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sdb6[1] sdb5[0](F)      #F fail表示破坏
			521792 blocks super 1.2 [2/1] [_U]    # 看到只有一个U up

unused devices: <none>
使用mdadm -D /dev/md0查看
    Number   Major   Minor   RaidDevice State
   0       0        0        0      removed
   1       8       22        1      active sync   /dev/sdb6

/dev/sdb5破坏后需要将其移除:mdadm /dev/md0 --remove /dev/sdb5 添加另一块好的盘将raid1恢复:mdadm /dev/md0 --add /dev/sdb5,恢复后

	 Number   Major   Minor   RaidDevice State
				 2       8       21        0	active sync   /dev/sdb5
				 1       8       22        1	active sync   /dev/sdb6

停止raid:mdadm -S /dev/md0 启动raid:mdadm -A /dev/md0 /dev/sdb5 /dev/sdb6

	如需自动装配需要写入配置文件:mdadm -D --scan > /etc/mdadm.conf

更多的参数使用man mdadm查看,另外软raid在实际生产线上用的非常少,因为一旦系统破坏磁盘的数据就毁了,所以一般使用硬raid。