1、概述
RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列
2、RAID 级别
RAID 0
将多个磁盘合并成一个大的磁盘,不具有冗余,并行I/O,速度最快。RAID 0亦称为带区集。它是将多个磁盘并列起来,成为一个大磁盘。在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中,所以在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都会丢失
理论上越多的磁盘效能就等于“单一磁盘效能”ד磁盘数”,但实际上受限于总线I/O瓶颈及其它因素的影响,RAID效能会随边际递减,也就是说,假设一个磁盘的效能是50MB每秒,两个磁盘的RAID 0效能约96MB每秒,三个磁盘的RAID 0也许是130MB每秒而不是150MB每秒,所以两个磁盘的RAID 0最能明显感受到效能的提升
size=2*min(s1,s2...)
RAID 1
两组以上的N个磁盘相互作镜像,在一些多线程操作系统中能有很好的读取速度,另外写入速度有微小的降低。除非拥有相同资料的主磁盘与镜像同时损坏,否则只要一个磁盘正常即可维持运作,可靠性最高。RAID 1就是镜像。其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。但无论用多少磁盘做RAID 1,仅算一个磁盘的容量,是所有RAID上磁盘利用率最低的一个级别
size=min(s1,s2..)
RAID 5
RAID Level 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案,RAID 5 至少需要三颗硬盘, RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。 RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度相当的慢,若使用“回写快取”可以让效能改善不少。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较便宜。
size=(n-1)*(s1,s2...sn)
维基百科
http://zh.wikipedia.org/wiki/RAID
创建磁盘阵列 mdadm
1、创建 mdadm -C
[root@bogon ~]# mdadm -C /dev/md01 -l 5 -n 3 -x 1 /dev/sdb{5..8} mdadm: /dev/sdb5 appears to contain an ext2fs file system size=1048576K mtime=Thu Apr 12 02:55:16 2012 Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md01 started.
查看磁盘阵列状态 cat /proc/mdstat
[root@bogon ~]# watch -n .5 cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] md1 : active raid5 sdb7[4] sdb8[3](S) sdb6[1] sdb5[0] 1637376 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] unused devices: <none>
查看阵列设备的详细信息 mdadm -D [设备]
[root@bogon ~]# mdadm -D /dev/md1 /dev/md1: Version : 1.2 Creation Time : Thu Apr 12 03:19:42 2012 Raid Level : raid5 Array Size : 1637376 (1599.27 MiB 1676.67 MB) Used Dev Size : 818688 (799.63 MiB 838.34 MB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Thu Apr 12 03:20:47 2012 State : clean Active Devices : 3 Working Devices : 4 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Name : bogon:01 (local to host bogon) UUID : 2a8b963a:cf24b369:6fec2f1b:bd28beaa Events : 18 Number Major Minor RaidDevice State 0 8 21 0 active sync /dev/sdb5 1 8 22 1 active sync /dev/sdb6 4 8 23 2 active sync /dev/sdb7 3 8 24 - spare /dev/sdb8
查看输入输出设备状态 iostata
[root@bogon ~]# iostat /dev/sdb{5..8} 2 Linux 2.6.35.6-45.fc14.i686 (bogon) 04/12/2012 _i686_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 1.58 0.00 7.44 2.34 0.00 88.63 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sdb5 144.59 1271.23 0.04 1639902 48 sdb6 145.18 1271.10 0.04 1639738 48 sdb7 4.58 1.79 1269.31 2306 1637424 sdb8 0.22 1.78 0.03 2298 44
2、格式化、挂载
[root@bogon ~]# mkfs.ext4 /dev/md1 [root@bogon ~]# mount /dev/md1 /mnt/mydata
example: 模拟硬盘损坏、更换磁盘
1、设备阵列中的一个磁盘为坏的状态
[root@bogon mydata]# mdadm /dev/md1 -f /dev/sdb6 mdadm: set /dev/sdb6 faulty in /dev/md1此时的磁盘阵列状态,备用盘自动替换sdb6,sdb6变成fail状态
[root@bogon ~]# mdadm -D /dev/md1 /dev/md1: …… Update Time : Thu Apr 12 03:56:16 2012 State : clean, degraded, recovering #### Active Devices : 2 Working Devices : 3 Failed Devices : 1 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Rebuild Status : 12% complete Name : bogon:01 (local to host bogon) UUID : 2a8b963a:cf24b369:6fec2f1b:bd28beaa Events : 21 Number Major Minor RaidDevice State 0 8 21 0 active sync /dev/sdb5 3 8 24 1 spare rebuilding /dev/sdb8 #### 4 8 23 2 active sync /dev/sdb7 1 8 22 - faulty spare /dev/sdb6 ####
md1 : active raid5 sdb7[4] sdb8[3] sdb6[1](F) sdb5[0] 1637376 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U] [===========>.........] recovery = 59.3% (485888/818688) finish=0.4min speed=13692K/sec
2、移除坏的磁盘,从md1中移除sdb6
[root@bogon ~]# mdadm /dev/md1 -r /dev/sdb6 mdadm: hot removed /dev/sdb6 from /dev/md1 [root@bogon ~]# mdadm -D /dev/md1 …… Update Time : Thu Apr 12 06:35:14 2012 State : clean Active Devices : 3 Working Devices : 3 Failed Devices : 0 Spare Devices : 0 …… Number Major Minor RaidDevice State 0 8 21 0 active sync /dev/sdb5 3 8 24 1 active sync /dev/sdb8 4 8 23 2 active sync /dev/sdb7
3、再将好的磁盘添加到md1阵列中,成为备用盘
[root@bogon ~]# mdadm /dev/md1 -a /dev/sdb6 …… Number Major Minor RaidDevice State 0 8 21 0 active sync /dev/sdb5 3 8 24 1 active sync /dev/sdb8 4 8 23 2 active sync /dev/sdb7 1 8 22 - spare /dev/sdb6
停止软磁盘阵列
[root@bogon ~]# umount /mnt/mydata [root@bogon ~]# mdadm --stop /dev/md1 mdadm: stopped /dev/md1 [root@bogon ~]# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] unused devices: <none> [root@bogon ~]#