RAID 概念
-
校验方式用在 RAID 重建中从校验所保存的信息中重新生成丢失的内容。 RAID 5,RAID 6 基于校验。
-
条带化是将切片数据随机存储到多个磁盘。它不会在单个磁盘中保存完整的数据。如果我们使用2个磁盘,则每个磁盘存储我们的一半数据。
-
镜像被用于 RAID 1 和 RAID 10。镜像会自动备份数据。在 RAID 1 中,它会保存相同的内容到其他盘上。
-
热备份只是我们的服务器上的一个备用驱动器,它可以自动更换发生故障的驱动器。在我们的阵列中,如果任何一个驱动器损坏,热备份驱动器会自动用于重建 RAID。
-
块是 RAID 控制器每次读写数据时的最小单位,最小 4KB。通过定义块大小,我们可以增加 I/O 性能。
RAID有不同的级别。在这里,我们仅列出在真实环境下的使用最多的 RAID 级别。
-
RAID0 = 条带化
-
RAID1 = 镜像
-
RAID5 = 单磁盘分布式奇偶校验
-
RAID6 = 双磁盘分布式奇偶校验
-
RAID10 = 镜像 + 条带。(嵌套RAID)
RAID 0 / 条带化
RAID 1 / 镜像化
RAID 5 / 分布式奇偶校验
RAID 6 双分布式奇偶校验磁盘
RAID 10 / 镜像+条带
硬件raid卡:亚当普特克、美国巨积(参数:级别,接口,数据传输,插槽类型等)
软raid:
raid0:striping条带模式,至少需要两块磁盘,做RAID分区最好是相同的(可以充分发挥并发优势);数据分散存储在不同的磁盘上,在读写的时候可以实现并发,但是没有容错功能;任何一个磁盘损坏将损坏全部数据;磁盘利用率为100%
raid1:mirroring镜像卷,raid大小等于两个raid分区最小的容量(最好将分区大小分为一样),数据有冗余,在存储时,同时写入两块磁盘,实现数据备份;磁盘利用率为50%
raid5:需要3块或以上的硬盘,可以提供热备盘实现故障的恢复;只损坏一块没有问题,但如果同时损坏两块磁盘,则数据会损坏;空间利用率 (n-1)/n;raid5校验位算法原理:使用简单的异或逻辑运算,相同为0,相异为1
软raid管理工具mdadm
命令参数:
-C或--creat 建立一个新阵列
-A **磁盘阵列
-D或--detail 打印磁盘阵列详细信息
-s或--scan 打印配置文件/proc/mdstat得到阵列缺省信息
-f 将设备状态定位故障
-a或--add 添加设备到阵列
-v 显示详细信息
-r 移除设备
-l或--level= 设定磁盘阵列的级别
-n或--raid-devices= 指定阵列成员(分区/磁盘)的数量
-x或--spare-devices 指定阵列中备用盘的数量
-c或--chunk= 设定阵列的块chuank(类似于block)大小,单位为KB
-G或--grow 改变阵列大小或形态
-E或--examine 打印 device 上的 md superblock 的内容
热备份盘(host spare or hot standy driver):为了加强容错功能以及使系统在磁盘故障时能迅速重建数据,以维持系统的性能,一般的磁盘阵列系统都可使用热备份功能
一、创建raid0
1) 创建raid0
2) 创建磁盘阵列配置文件
3) 分区;格式化;挂载到指定目录
4) 修改/etc/fstab开机自动挂载
环境:添加一个sdb硬盘,分两个1G的主分区(实际线上为两个独立的磁盘),sdb1和sdb2
1. 分区
说明:分两个主分区:sdb1 、sdb2,各为1G
命令 fdisk /dev/sdb
说明:查看分区,8表示硬盘,16,17,18表示分区
命令 ls -l /dev/sdb*
2. 创建磁盘阵列
说明:C表示创建,v显示详情,l级别,n硬盘数量
命令 mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdb2
2.1 扫描出阵列信息
命令 mdadm -Ds
2.2 查看RAID级别
命令cat /proc/mdstat
2.3 查看RAID设备
命令mdadm -E /dev/sdb[1-2]
2.4 查看RAID阵列:
命令 mdadm -D /dev/md0
说明:Spare、 Failed分别表示备份、坏掉的磁盘,都为0;Chunk Size表示块的大小,512K;State状态为sync
3. 生成raid配置文件
说明:默认没有配置文件
命令 mdadm -Ds > /etc/mdadm.conf
4. 先分区;再格式化;然后挂载
4.1 分区
命令 fdisk /dev/md0
4.2 格式化
命令 mkfs.ext4 /dev/md0p1
4.3 挂载
命令 mkdir /raid0
命令 mount /dev/md0p1 /raid0/
5. 开机自动挂载
说明:修改配置文件 /etc/fstab
添加:/dev/md0p1 /raid0 ext4 defaults 0 0
6. 重启
二、创建raid1
1)建立raid1
2)添加1G热备盘
3)模拟磁盘故障,自动顶替故障盘
4)卸载阵列并删除整个阵列
环境:创建分区,sdb1,sdb2,sdb3大小为1G
1. 创建三个主分区
2. 创建阵列,-x 1 热备盘为1
2.1 查看raid信息
2.2 查看raid状态
3. 创建配置文件
4. 创建主分区、格式化
说明:大小不填,直接回车,即所有分区大小给它
5. 挂载
6. 模拟故障
查看分析:s表示热备盘,两个都OK,2/2
相比raid0,配置文件多了个spare,表示热备盘数量
说明:每1秒钟,执行后面的命令(将sdc设置为故障盘,执行命令前,先在打开一台机器,观察)
设置故障盘命令:mdadm -f /dev/md1 /dev/sdb1
观察切换过程
7. 移除标识为坏的盘,尽管硬盘有的支持热插拔,也需要软raid移除一下
8. 重新生产配置文件
9. 开机自动挂载
说明:修改配置文件 /etc/fstab
10. 重启
三、创建RAID5
1) 创建raid5
2) 添加1G热备盘,模拟磁盘故障,自动顶替故障盘
3) 移除故障盘
4) 停止阵列,重新**阵列
5) 再添加新的1G热备盘,扩展阵列容量,从3个扩展到4个
实验环境:sdb1 sdb2 sdb3 sdb5 sdb6(sdb4为扩展分区)
1. 创建3个主分区,扩展分区下,2个逻辑分区
查看分区
2. 创建阵列
2.1 查看阵列
2.2 查看打印信息
省略2)3)步
3. 分区
说明:主分区,全部内容
4. 格式化
5. 挂载
说明:3个盘,共2个G大小
6. 添加一个扩展盘,使raid5阵列扩展到4块盘
说明:先卸载,再添加盘
6.1 新添加的盘被系统作为热备盘
6.2 添加扩展前,先开一个窗口,查看监控状态
6.3 扩展为4个盘
说明:新加的盘上,也要更新内容,添加数据和检验位等,需要较长一段时间
7. 重新生成配置文件
8. 开机自动挂载
命令:vim /etc/fstab
9. 重启
四、创建raid10
说明:raid1+0双层架构方法
1. 创建4个主分区
2. 创建两个底层raid1(md11和md12)
查看raid状态
3. 将md11和md12 合并创建一个raid0(md10)
4. 导出配置文件、分区、格式化、挂载、开机自动挂载、重启
开机自动挂载:vim /etc/fstab
五、其他操作
1. 停止阵列
停止前,先生成配置文件,因为后期重新启动时,要用到它;先卸载,再停用
命令:mdadm -Ds >/etc/mdadm.conf
比如停止md5:mdadm -S /dev/md5
批量停止命令
说明:扫描所有信息,再停止
命令:mdadm -Ss
2. **阵列
说明:起来的过程中,需要读配置文件
批量**命令: mdadm -As
3. 删除阵列
说明:先卸载,再停止raid设备,删除raid配置文件,清除物理磁盘中的raid标识