内容概要
- 1、什么是RAID
- 2、RAID的级别
- RAID 0
- RAID 1
- RAID 1+0
- RAID 5
- RAID 6
- 2、阵列卡的缓存
- 3、创建软件RAID磁盘阵列步骤:
1、什么是RAID
RAID我们一般称为磁盘软件阵列,是Redundant Array of Independent Disks的缩写,中文的意思是独立冗余磁盘阵列。
RAID的作用就是可以将多个较小的磁盘整合成为一个较大的磁盘设备,它的功能不光有超大存储,还可以实现数据保护的功能。
2、RAID的级别
组成磁盘阵列的不同种方式称为RAID级别(level),我们常见的RAID级别有以下几种:RAID 0、RAID 1、RAID 1+0、RAID 5、RAID 6
RAID 0
RAID 0(等量模式,条带化存储):RAID 0的模式最好使用相同型号与容量的磁盘来组成,这样可以发挥最佳性能。RAID 0可以并行的读写数据,RAID 0磁盘会被割成小数据块,当有数据写入到RAID0磁盘里时,数据会先被分割成小数据块,再一块一块的分给不同的磁盘,如下图,比如有100M的数据写进磁盘,数据会被分割成50M和50M(左右各50M),再分别分给block1、block2、block3等等,照这样来说,越多块磁盘组成的RAID 0性能会更好,因为每块负责的数据就更低,它具有很高的读写性能,但是他的缺点就是没有数据冗余功能,因为它的数据是被分成一块一块的,如果任意一块磁盘出现问题,那么整个数据就会损坏,因此,RAID 0不能应用于数据安全性要求高的场所。
RAID 1
RAID 1(镜像模式):RAID 1也是最好用容量相同的磁盘,如果是不同容量的磁盘组成的RAID 1,那么容量将以最小的那一块磁盘为主。如图所示,假如我有100M数据写入RAID 1,那么RAID 1会将100M的数据同时写入到存储空间,左右各写100M数据是一模一样的,就像一面镜子一样,所以它的安全性就高,因为当你任意一个磁盘损坏时,你的数据还是能够完整的保存下来,RAID 1相比于RAID 0来说最大的优点就是数据的安全性,但是由于磁盘一半的空间用于备份,所以它的性能不如RAID 0。
RAID 1+0
RAID 1+0:上述说过RAID 0的性能佳但是安全性低,RAID 1的数据安全性高但是性能不佳,如果将两者的优点结合在一起,那不是美哉?所以就有了RAID 1+0和RAID 0+1,所谓的RAID 1+0就是先做RAID 1再做RAID 0。RAID 0+1就是倒过来嘛,不过RAID 0+1的安全性低于RAID 1+0,所以我们一般不用。如图,如果我有100M的数据要写入,由于RAID +0的关系,两组RAID 1都会写入50M的数据,但是又因为是RAID1,因此每块磁盘都会写入50M的数据,所以,不论哪一组RAID 1的磁盘损坏,因此不会有任何问题发生。
RAID 5
RAID 5:RAID 5需要至少三块以上(N≥3)的磁盘才能够组成,该磁盘写入有点像RAID 0,不过在每个写入过程中,每块磁盘会加上一个Parity(校验数据),这个数据会记录其他磁盘的备份数据,当有磁盘损坏时可以恢复。如图,每次写入数据的时候,都会有Parity被记录下来,并且每次都记录在不同的磁盘,因此,任何一个磁盘损坏都能借其他的磁盘的检查码来恢复数据。它的读性能很高,但是写的性能相对不高,它的磁盘利用率为(N-1)/N。
但是当磁盘损坏量大于等于两块时,RAID 5的数据就损坏了,因为RAID 5默认仅能支持一块磁盘的损坏。
RAID 6
RAID 6:由于RAID 5只能支持一块磁盘损坏,所以后来就有了RAID 6的出现,它需要至少四块(N≥4)以上的磁盘组成,RAID 6在RAID 5的基础上又多加了第二块奇偶校验,因此整体的磁盘容量就会少两块,它的利用率为(N-2)/N,所以使得即使两块磁盘同时失效也能够不影响数据的使用,但是RAID 6的写的性能相对于RAID 5来说就更差了。
2、阵列卡的缓存
缓存(Cache)是RAID卡于外部总线交换数据的场所,RAID卡先将数据传送到缓存,再由缓存和外边数据总线交换数据。
缓存的大小于速度是直接关系到RAID卡的实际传输速度的重要因素。
不同的RAID卡出场时配备的内存容量不同,一般为几兆到百兆容量不等。
3、创建软件RAID磁盘阵列步骤:
1、检查是否已安装mdadm 软件包:rpm -q mdadm
如果没有安装:yum install -y mdadm
2、使用fdisk工具将新磁盘设备/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde划分出主分区sdb1、sdc1、sdd1、sde1,并且把分区类型的ID标记改为“fd”:fdisk /dev/sdb
3、创建RAID设备:
#创建RAID 5:mdadm -Cv /dev/md0 -l5 -n3 /dev/sd[b-d]1 -x1 /dev/sde1
-C:表示新建;
-v:显示创建过程中的详细信息。
/dev/md0:创建RAID5 的名称。
-a yes: --auto,表示如果有什么设备文件没有存在的话就自动创建,可省略。
-l:指定RAID的级别,l5 表示创建RAID 5。
-n:指定使用几块硬盘创建 RAID,n3表示使用3块硬盘创建RAID。
/dev/sd [bcd]1:指定使用这3块磁盘分区去创建RAID。
-x:指定使用几块硬盘做RAID的热备用盘,表示保留1块空闲的硬盘作备用
/dev/sde1:指定用作于备用的磁盘
4、你可以通过cat /proc/mdstat来查看RAID创建进度。
但是每想看一次进度就要输入一次cat /proc/mdstat,太麻烦了,可以使用watch -n 5 ‘cat /proc/mdstat’,这个命令就是每隔几秒来刷新一次输出
检查磁盘是否使用了RAID:mdadm -E /dev/sdb[b-e]1
5、创建并挂载文件系统:
mkfs -t xfs /dev/md0
mkdir /guazai
mount /dev/md0 /guazai/
df -Th
cp /etc/fstab /etc/fstab.bak
vim /etc/fstab
/dev/md0 /guazai xfs defaults 0 0
格式化文件系统
创建一个空目录进行挂载
备份以下fstab的内容去fstab.bak,以防出问题,再进入vim /etc/fstab写入自动挂载。
6、模拟故障恢复:mdadm /dev/md0 -f /dev/sdb1 //模拟/dev/sdb1故障
mdadm -D /dev/md0 //查看发现sde1已顶替sdb1
模拟sdc1故障
mdadm -D /dev/md0查看到目前sde1处于rebuilding状态
7、创建RAID的配置文件,方便管理软RAID的配置,比如启动、停止:echo ‘DEVICE /dev/sdc1 /dev/sdb1 /dev/sdd1 /dev/sde1’ > /etc/mdadm.conf
mdadm - -detail - -scan >> /etc/mdadm.conf
**>**的意思是覆盖文件内容。
**>>**的意思是追加输入,不覆盖。
8、mdadm命令其它常用选项:
-r:移除设备
-a:添加设备
-S:停止RAID
-A:启动RAID
mdadm /dev/md0 -f /dev/sdb1 //-f是指定故障
mdadm /dev/md0 -r /dev/sdb1
mdadm /dev/md0 -a /dev/sde1
停止和启动RAID的前提是需要解挂载
umount /dev/md0
mdadm -S /dev/md0 //停止
mdadm -A /dev/md0 //启动
mdadm -As /dev/md0
-s:指查找 /etc/mdadm.conf 文件中的配置信息,如果配置信息没有产生,那就启动不了。