RAID生产环境注意事项:
- 最低要求:同样的磁盘大小
- 推荐要求:同品牌/型号/转速/大小,
四点
都要具备
不管
生产环境是raid几
,磁盘损坏
后,每次的重写压力不小,大概率重建时再坏一块
。
正确的办法
是一旦坏盘
就转移到另一台服务器
,原来的硬盘
就暂不要用于生产
了。
RAID简介
RAID0
,最少两
块硬盘,速度快,但不容灾RAID1
,最少两
块硬盘,镜像容灾,但容量减半RAID5
,最少三
块硬盘,奇偶校验,只允许坏
一块硬盘RAID10
,RAID0
+RAID1
,性能和容灾效果最好,金融行业专用
,成本高
RAID0(不推荐)
RAID0,最少2
块硬盘,速度快
,但不容灾
且不支持做热备
,做了也没用
RAID1
RAID1,最少2
块硬盘,镜像容灾
,但容量减半
RAID5
最少
3
块硬盘,奇偶校验
,只允许坏一块硬盘
容量只有n-1,剩余的1保存奇偶校验和
RAID6
RAID-Z
使用storcli工具配置RAID
https://mp.weixin.qq.com/s/C7TSLQ24eAjJC8yikjE3Cw
storcli软件的下载源找不到。
软RAID命令mdadm
软RAID命令
https://www.linuxcool.com/mdadm
创建创建RAID5
1.创建/dev/md0设备,带热备
# 创建/dev/md0设备
mdadm -Cv /dev/md0 -a yes -n 3 -l 5 -x 1 /dev/sd[b-e]
mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sd[b-e]
## -C 创建(create)的意思
## v 显示过程
## -a yes 是校验md0磁盘阵列组名称是否被使用,可以不加
## -n 3 代表用3块硬盘创建磁盘阵列组
## -l 5 代表RAID5级别
## -x 1 代表有1块热备盘
## /dev/sd[b-e] 通配符,匹配sdb,sdc,sdd,sde这四块盘
### 回车后创建了一个md0 的磁盘阵列组
2.格式化分区
# 格式化分区
mkfs.ext4 /dev/md0
3.新建挂载点
# 新建挂载点
mkdir /mnt/md0
4.手动挂载
# 手动挂载到挂载点
## mount 分区路径 挂载点
mount /dev/md0 /mnt/md0
5.查看分区挂载情况
# 查看分区挂载情况
df -h
6.手动模拟一块硬盘损坏
硬盘一旦损坏,热备盘立即会开始同步数据
即使断电后,来电重启后热备盘也会顶上
# 查看raid状态
mdadm -D /dev/md0
## /dev/sdc/ 这块磁盘的状态是faulty(故障)
7.查看热备盘的同步信息
# 查看同步信息
cat /var/log/messages
8.查看raid状态
# 查看raid状态,等待同步完成
mdadm -D /dev/md0
## /dev/sde/ 这块磁盘的状态已经是active sync(主动同步)
## 这时候热备已经生效了
创建RAID10方案
读:RAID一零
最少要用
4
块硬盘
RAID10
=RAID1
+RAID0
,金融行业专用
优点:性能高
,数据安全性强
缺点:成本贵
1.创建/dev/md0设备
# 创建/dev/md0设备
mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sd[b-e]
mdadm -Cv /dev/md0 -n 4 -l 10 /dev/sd[b-e]
## -C 创建(create)的意思
## v 显示过程
## -a yes 是校验md0磁盘阵列组名称是否被使用,可以不加
## -n 4 代表用4块硬盘创建磁盘阵列组
## -l 10 代表RAID10级别
## /dev/sd[b-e] 通配符,匹配sdb,sdc,sdd,sde这四块盘
### 回车后创建了一个md0 的磁盘阵列组
2.查看初始化进度
# 查看初始化进度Resync status: 100%(或消失) 时才可用
mdadm -D /dev/md0
3.格式化/dev/md0分区为xfs格式
# 格式化/dev/md0分区为xfs格式
mkfs.xfs /dev/md0
4.新建挂载点
# 新建挂载点
mkdir /mnt/md0
5.手动挂载/dev/md0到/mnt/md0
# 挂载到/mnt/md0
mount /dev/md0 /mnt/md0
6.查看分区挂载信息
# 查看分区挂载信息
df -h
7.挂载信息写入到/etc/fstab
# 将挂载信息写入到/etc/fstab
vim /etc/fstab
# 挂载信息如下
## 设备名称 挂载点 文件系统格式 权限 是否自动备份 是否进行校验
/dev/md0 /mnt/md0 xfs defaults(默认读写) 0 0
# 快速写入到/etc/fstab
echo "/dev/md0 /mnt/md0 xfs defaults 0 0" >> /etc/fstab
8.md0阵列中的磁盘故障查看
实验中移除一块硬盘
# 查看md0的磁盘信息
mdadm -D /dev/md0
## 此时有一块硬盘显示为---
9.将阵列中的故障硬盘标记为损坏
# 将阵列中的故障硬盘标记为损坏
mdadm /dev/md0 -f /dev/sdb
## -f 标注磁盘为故障
# 查看阵列磁盘信息
mdadm -D /dev/md0
## 此时只有三块磁盘提供服务了
10.移除/dev/md0挂载点(工作中跳过这部,不允许停机,使用热备盘)
# 移除/dev/md0的挂载点
umount /mnt/md0
或
umount /dev/md0
10.1.移除故障磁盘
# 移除故障的磁盘
mdadm /dev/md0 -r /dev/sdb
## -r /dev/sdb 移除磁盘参数
11.将新硬盘添加到磁盘阵列组/dev/md0中(工作中跳过这部,不允许停机,使用热备盘)
# 将新硬盘/dev/sdb添加到磁盘阵列组/dev/md0中
mdadm /dev/md0 -a /dev/sdb
# 查看磁盘阵列组的状态
mdadm -D /dev/md0
## -a后默认会自动开始数据的同步工作,使用-D参数即可看到整个过程和百分比进度:
## 添加新硬盘后,磁盘又变成4块,磁盘状态开始同步,等待100%后就可以挂载使用了
12.挂载/etc/fstab中的/dev/md0(工作中跳过这部,不允许停机,使用热备盘)
# 自动挂载/etc/fstab中的/dev/md0
## 前置条件是磁盘同步完毕
mount -a
查看RAID
# 查看RAID
mdadm -Q /dev/md0
## -Q 代表查看的意思
## /dev/md0 要查看的磁盘阵列名
查看RAID详情
# 查看RAID详细信息
mdadm -D /dev/md0
## -D 详细方式查看磁盘阵列
删除RAID组
# 先取消挂载点
umount /mnt/md0
# 再将md0阵列组下的所有磁盘标记为故障
mdadm /dev/md0 -f /dev/sdb
mdadm /dev/md0 -f /dev/sdc
mdadm /dev/md0 -f /dev/sdd
mdadm /dev/md0 -f /dev/sde
# 然后再逐一的移除磁盘
mdadm /dev/md0 -r /dev/sdb
mdadm /dev/md0 -r /dev/sdc
mdadm /dev/md0 -r /dev/sdd
mdadm /dev/md0 -r /dev/sde
## 标记故障并移除磁盘,可以用一条命令搞定
mdadm /dev/md0 -f /dev/sdb -r /dev/sdb
# 将所有的硬盘都移除后,再来看下磁盘阵列组的状态:
mdadm -D /dev/md0
# 停用整个RAID磁盘组,删除raid组就完成了
mdadm --stop /dev/md0
# df -h 或 ls -l /dev/md0 查看下磁盘阵列还在吗
热备
热备需要在创建raid
方案时使用-x
参数
热备盘平时不工作
,出现硬盘故障
时会立即顶上
开始工作
热备恢复的过程中,数据依然是可以访问的
mdadm -Cv /dev/md0 -a yes -n 3 -l 5 -x 1 /dev/sd[b-e]
## -x 1 代表1块热备盘
# 查看热备盘,raid详情中的spare信息
mdadm -D /dev/md0