RAID
RAID里面有三大关键技术:镜像、校验、条带
我们说:RAID可以预防数据丢失,但是它并不能完全保证你的数据不会丢失,所以大家使用RADI的同时还是注意备份重要的数据
RAID的创建有两种方式:软RAID(通过操作系统软件来实现)和硬RAID(使用硬件阵列卡);
在企业中用的最多的是:raid1、raid10和raid5。不过随着云的高速发展,供应商一般可以把硬件问题解决掉。
硬RAID:需要RAID卡,我们的磁盘是接在RAID卡的,由它统一管理和控制。数据也由它来进行分配和维护;它有自己的cpu,处理速度快。
管理软raid工具:mdadm,mdadm是linux下用于创建和管理软件RAID的命令,是一个模式化命令。
RAID出现的原因
RAID基本思想:把好几块便宜的硬盘通过一定组合方式把它组合起来,成为一个新的硬盘阵列组,从而使它能够达到高性能硬盘的要求
RAID有三个关键技术:
镜像:提供了数据的安全性;
条带(块大小也可以说是条带的粒度),它的存在的就是为了提高I/O,提供了数据并发性
数据的校验:提供了数据的安全
级别 说明 最低磁盘数量 空间利用率 各自的优缺点
RAID0 数据条带化 2 +100% 读写速度快,不容错
RAID1 数据镜像化 2 50% 读写速度一般,容错
RAID5 带奇偶校验的条带集 3+ (n-1)/n 读写速度快,容错,允许坏一块盘
RAID6 带奇偶校验的条带集,双校验 4+ (n-2)/n 读写快,容错,允许坏两块盘
RAID10 RAID1的安全+RAID0的高速 4 50% 读写速度快,容错
RAID50 RAID5的安全+RAID0的高速 6 (n-2)/n 读写速度快,容错
RAID60 RAID5的安全+RAID0的高速 8 (n-4)/n 读写速度快,容错
-C或--creat 建立一个新阵列
-r 移除设备
-A 激活磁盘阵列
-l或--level 设定磁盘阵列的级别
-D或--detail 打印阵列设备的详细信息
-n或--raid-devices 指定阵列成员(分区/磁盘)的数量
-s或--scan 扫描配置文件或/proc/mdstat得到阵列缺失信息
-x或--spare-devicds 指定阵列中备用盘的数量
-f 将设备状态定为故障
-c或--chunk 设定阵列的块chunk大小 ,单位为KB
-a或--add 添加设备到阵列
-G或--grow 改变阵列大小或形态
-v或--verbose 显示详细信息
-S 停止阵列
RAID硬盘失效处理
一般两种处理方法:热备和热插拔
热备:HotSpare
q 定义:当冗余的RAID组中某个硬盘失效时,在不干扰当前RAID系统的正常使用的情况下,用RAID系统中另外一个正常的备用硬盘自动顶替失效硬盘,及时保证RAID系统的冗余性
q 全局式:备用硬盘为系统中所有的冗余RAID组共享
q 专用式:备用硬盘为系统中某一组冗余RAID组专用
如下图所示:是一个全局热备的示例,该热备盘由系统中两个RAID组共享,可自动顶替任何一个RAID中的一个失效硬盘
热插拔:HotSwap
定义:在不影响系统正常运转的情况下,用正常的物理硬盘替换RAID系统中失效硬盘
关键在于热插拔时电子器件的保护机制
(这个是创建RAID0的命令,如果要创建其他的RAID级别,把-l后面的0改为要改的级别数就OK!)
创建RAID:mdadm -C -v /dev/md0 -a yes -l 0 -n 2 /dev/sdb /dev/sdc
-C是创建一个新的RAID。后面的/dev/md0中0是名字、如果要加别的名字的话就是/dev/md/名字,中间的md一定不能去,不然会报错让你添加进去
-v是显示详细信息
-a是自动创建对应的设备。后面的也是表示创建,如果是no就是不创建。
-l是创建RAID的级别,这里的0表示创建RAID0
-n是创建RAID指定的磁盘数量,2是磁盘数量(或分区数量),后面的/dev/sdb /dev/sdc就是两块被指定的磁盘,这个也可以两个分区。
创建完成之后的分区就和磁盘分区一样fdisk /dev/md0
格式化是mkfs.ext3 /dev/md0p1 p1表示第一块分区
挂载:mount /dev/md0p1 /mnt
watch -n 1 cat /proc/mdstat 每隔一秒看一下/proc/mdstat文件
mdadm -r /dev/md1 /dev/sdb1 移除dev/md1中的/dev/sdb1设备
mdadm -a /dev/md1 /dev/sdb7 添加一块热备盘,说白了就是扩展
mdadm -D /dev/md1 查看详细信息
cat/proc/mdstat 查看阵列状态
mdadm -G /dev/md5 -n 4 –c 32 阵列大小的改变
阵列只有在正常状态下,才能扩容,降级及重构时不允许扩容。对于raid5来说,只能增加成员盘,不能减少。
而对于raid1来说,可以增加成员盘,也可以减少。但要减少成员盘时,首先要将盘faulty和removed掉。
删除RAID
umount /dev/md1 /raid1 #如果你已经挂载raid,就先卸载。
此时如果忘了raid中的硬盘名称,要么重启系统,要么运行:mdadm -A -s /dev/md0 然后再用mdadm -D /dev/md0查看raid中包含哪几个硬盘。再次运行第二步停止命令:mdadm -S /dev/md0
删除raid里的所有硬盘:mdadm --misc --zero-superblock /dev/sdc
rm -rf /etc/mdadm.conf #删除raid配置文件