磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上
磁盘阵列还能利用同位检查的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中
RAID档次 | 最少硬盘 | 最大容错 | 可用容量 | 读取性能 | 写入性能 | 安全性 | 目的 | 应用产业 |
---|---|---|---|---|---|---|---|---|
单一硬盘 | (参考) | 0 | 1 | 1 | 1 | 无 | ||
JBOD | 1 | 0 | n | 1 | 1 | 无(同RAID 0) | 增加容量 | 个人(暂时)存储备份 |
0 | 2 | 0 | n | n | n | 一个硬盘异常,全部硬盘都会异常 | 追求最大容量、速度 | 视频剪接缓存用途 |
1 | 2 | n-1 | 1 | n | 1 | 最高,一个正常即可 | 追求最大安全性 | 个人、企业备份 |
5 | 3 | 1 | n-1 | n-1 | n-1 | 高 | 追求最大容量、最小预算 | 个人、企业备份 |
6 | 4 | 2 | n-2 | n-2 | n-2 | 安全性较RAID 5高 | 同RAID 5,但较安全 | 个人、企业备份 |
10 | 4 | n/2 | n/2 | n | n/2 | 安全性高 | 综合RAID 0/1优点,理论速度较快 | 大型数据库、服务器 |
1. n代表硬盘总数
2. JBOD可接到现有硬盘,直接增加容量
3. 如果创建RAID的硬盘较大,可能需要一段时间,cat /proc/mdstat可以查看进度
创建好的软件RAID对应/dev/mdn,n为数字
RAID信息保存在/proc/mdstat文件中,可通过mdadm命令查看
mdadm
-C 创建一个新的RAID
-S 关闭指定RAID,关闭前先卸载
-R 重新启用指定RAID (需要重启)
-D 查看RAID信息(cat /proc/mdstat也可以查看)
-a 自动创建对应设备
-l 指定RAID级别
-n 硬盘数量
-x 指定备份磁盘-x后面跟数字
-f 标示硬盘为故障
-r 移除硬盘
-a 添加新硬盘到RAID中
--zero-superblock /dev/sdb 删除全部信息和数据(先关闭RAID)
例:
1. 创建RAID10,硬盘数量为4
mdadm -C /dev/md0 -a yes -l 10 -n 4 /dev/sdb /dev/sdc /dev/sdd /dev/sde
2. 创建文件系统之后挂载
mkfs.xfs -f /dev/md0
mount /dev/md0 /home/
3. 设置开机自动挂载
vim /etc/fstab
/dev/md0 /home xfs defaults 0 0
1. 批量创建文件测试数据是否丢失
cd /home
touch {1..20}
2. 标示sdb为故障硬盘,然后移除
mdadm /dev/md0 -f /dev/sdb
mdadm /dev/md0 -r /dev/sdb
ll /home/ 查看数据是否丢失
添加一块硬盘
cat /proc/mdstat发现[4/3]
正在重建
mdadm /dev/md0 -a /dev/sdb
cat /proc/mdstat
[=========>...........] recovery = 45.9%