前言
在生产环境中不推荐大家使用软RAID,写这篇文章的主要目的是希望大家更好的了解RAID的工作原理:
软RAID就是在系统层面实现RAID功能了,数据处理主要依赖cpu来完成,没有第三方控制处理器和I/O芯片
在linux中是使用内置的md模块,模拟RAID卡,实现软RAID。在内核中有md模块完成将多个物理设备组合成一个逻辑设备
实现方式:
因为linux支持将块设备制作成RAID,可以使用不同磁盘的不同分区组件RAID;但是分区大小必须一样;
一、首先创建几个大小相同的分区;模式改为fd(linux raid autodetect)
fdisk /dev/sdb > n >e>+1G>t>fd
我这里使用的扩展分区做的
做完后w保存
partprobe /dev/sdb 让系统内核从新加载磁盘信息
cat /proc/partirions 查看系统是别的磁盘信息
确认有我们新添加的这几个分区
二、创建md设备文件
使用命令:mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{5,6}
我们先模拟RAID 0 所有只需要2个分区就够了
md0 是一个md组,编号0
-a yes 自动创建
-l 0 RAID级别为0
- n 这个md0组加入几块硬盘,后面跟上分区编号
然后使用cat /proc/mdstat 查看一下创建好的md0信息
Personalities : [raid0] RAID级别0
md0 : active raid0 sdb6[1] sdb5[0] md0 活的raid0 有哪些设备
2119680 blocks super 1.2 512k chunks chunks大小,chunks就是条带后每次分别写 入每个硬盘的数据块大小
unused devices: <none>
创建RAID前硬盘分区一定不要格式话
三、格式化和挂载
使用命令:mkfs -t etx4 /dev/md0 格式化md0为etx文件系统
mount /dev/md0 /mnt 将md0挂载到mnt下
使用mount查看下;没有问题就可以使用了
四、 mdadm用户空间管理工具详解
创建模式:
-C:
专用选项:
-l:RAID级别
-n:设备个数
-a:自动为其创建设备文件
-c:指定chunk大小;默认64kb;一般是2^n
-x:指定空闲盘个数;RAID阵列中哪个盘坏了可以自动加入阵列
例如:mdadm -C /dev/md0 -a yes -n 3 -c 128 /dev/sdb{5,6,7}
管理模式:
-a:从阵列中添加一块硬盘;
-r:从阵列中删除一块硬盘;需要先-f 停用后才能删除
-f:模拟阵列中哪块硬盘损坏
mdadm /dev/md1 -f /dev/sdb7
模拟后需要删除再添加才能使用
停止删除阵列:
mdadm -S或者--stop /dev/md#
然后如果 rm /dev/md# 就会彻底删除此阵列
装配模式:
停止的RAID阵列可以装配回去;确定/dev/md#文件存在
mdadm -A /dev/md# /dev/sdb#
查看RAID阵列信息
mdadm -D 或者--detail /dev/md#
mdadm -D --scan 显示每个RAID设备配置信息
> etc/mdadm.conf 导入到md配置文件中,
下次装配md#的时候就不用指定有哪些磁盘了
实验:
需要装配一个4G的RAID5;并且有一个空闲热备盘
分析:实现4G的RAID,需要三个2G的磁盘。再加一块2G的空闲盘
1、首先需要4块2G的磁盘模式改为fd
2、创建md5:mdadm -C /dev/md5 -a yes -l5 -n3 /dev/sdb{5,6,7}
3、使用mke2fs -j -E stride=16 -b 4096 /dev/md5 格式化优化性能
4、mount /dev/md5 /mnt 挂载后就可以使用了
5、mdadm /dev/md5 -a /dev/sdb8 添加一块热备盘
6、mdadm /dev/md5 -f /dev/sdb5 模拟一块硬盘有问题;查看热备盘能不能切换上
7、如果上述成功;使用mdadm /dev/md5 -r /dev/sdb5 删除有问题的磁盘;然后再把sdb5添加如阵列;做为热备盘使用