什么是 RAID
磁盘阵列全名是『 Redundant Arrays of Inexpensive Disks, RAID』,意思是:容错式廉价磁盘阵列。 RAID 可以透过一个技术(软件或硬件),将多个较小的磁盘整合成为一个较大的磁盘装置; 而这个较大的磁盘功能可不止是储存而已,他还具有数据保护的功能。整个RAID 由于选择的等级 (level) 不同,而使得整合后的磁盘具有不同的功能, 基本常见的 level 有这几种:
a) RAID-0 (等量模式, stripe):效能最佳,先在磁盘上切出等量的区块,然后将数据依次存放到磁盘里,每个磁盘会交错的存放数据。
优点:降低每个磁盘所负责的数据量,效能变得更好,磁盘的总容量变大。
缺点:一个磁盘挂了,所有数据都无法读取,当使用不同容量磁盘时,最小的满了以后,会将所有数据写入最大的磁盘中。
b) RAID-1 (映射模式, mirror):完整备份
优点:一份数据会保存为两份,存在两个磁盘上,完成数据的备份。
缺点:磁盘容量一般在备份,写入效能不佳。
c) RAID 0+1,RAID 1+0
上面两个的综合。
d) RAID 5:效能与数据备份的均衡考量
至少需要三个以上的磁盘组成。每次循环写入过程中,会加入一个同位检查数据(parity),当有1个磁盘挂掉后,可以进行恢复。
缺点:有计算的动作,写入的能效与系统的硬件关系较大。
e) Spare Disk:预备磁盘
用作替换挂掉磁盘的预备磁盘,手动拔插硬盘,需要进行关机才行。
磁盘阵列的优点
你的系统如果需要磁盘阵列的话,其实重点在于:
1.数据安全与可靠性:指的并非信息安全,而是当硬件 (指磁盘) 损毁时,数据是否还能够安全的救援或使用之意;
2.读写效能:例如 RAID 0 可以加强读写效能,让你的系统 I/O 部分得以改善;
3.容量:可以让多颗磁盘组合起来,故单一文件系统可以有相当大的容量。
磁盘阵列分硬件磁盘阵列和软件磁盘阵列,好的硬件磁盘阵列价格比较昂贵。
CentOS 提供的软件磁盘阵列为 mdadm 这套软件,这套软件会以partition 或 disk 为磁碟的单位
注意:硬件磁盘阵列在 Linux 底下看起来就是一颗实际的大磁盘,因此硬件磁盘阵列的装置档名为 /dev/sd[a-p] ,因为使用到 SCSI 的模块之故(如果使用IDE,那么为/dev/hd[a-p])。至于软件磁盘阵列则是系统模拟的,因此使用的装置档名是系统的装置档, 档名为/dev/md0, /dev/md1...,两者的装置档名并不相同!
mdadm常见参数解释
创建RAID0
新建分区
创建RAID0 需要两块硬盘,所以我们拿/dev/sdb 和/dev/sdc 来实
验。
# fdisk /dev/sdb //对sdb 进行分区
n 新建分区
p 查看分区情况
t 修改类型
L 列出所有文件格式
fd 选择Linux raid auto
p 查看分区情况
w 保存分区
同样方法处理/dev/sdc
查看现在的状态
fdisk -l /dev/sdb /dev/sdc
开始创建RAID0
# mdadm -C /dev/md0 -ayes -l0 -n2 /dev/sd{b,c}1
-C --create 创建阵列;
-a --auto 同意创建设备,如不加此参数时必须先使用mknod 命令来创建一个RAID设备,不过推荐使用-a yes参数一次性创建;
-l --level 阵列模式,支持的阵列模式有 linear, raid0,raid1, raid4, raid5, raid6, raid10, multipath, faulty, container;
-n --raid-devices 阵列中活动磁盘的数目,该数目加上备用磁盘的数目应该等于阵列中总的磁盘数目;
/dev/md0 阵列的设备名称;
/dev/sd{b,c}1 参与创建阵列的磁盘名称;
查看raid0 状态
cat /proc/mdstat
或 mdadm -D /dev/md0
RAID 配置文件
先创建 /etc/mdadm.conf
# echo DEVICE /dev/sd{b,c}1 >> /etc/mdadm.conf
# mdadm –Ds >> /etc/mdadm.conf
修改为下面的
DEVICE /dev/sdb1 /dev/sdc1
ARRAY /dev/md0 level=raid0 num-devices=2
UUID=f483c25b:24eacee5:e1b2e87c:daf01a08
格式化磁盘阵列
# mkfs.ext4 /dev/md0
建立挂载点并挂载
# mkdir /mnt/raid0
# mount /dev/md0 /mnt/raid0
如果想设置下次开机自启需要修改/etc/fstab
然后reboot测试
其他RAID创建方法类似