Linux-软件RAID

Posted liang-yao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux-软件RAID相关的知识,希望对你有一定的参考价值。

磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上

磁盘阵列还能利用同位检查的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中

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%

以上是关于Linux-软件RAID的主要内容,如果未能解决你的问题,请参考以下文章

RAID 1 软件实现(Linux 系统)

Linux软件RAID(磁盘冗余阵列)

如何使用linux程序mdadm创建软件RAID1软阵列

Linux系统上利用软件实现RAID

第十三章 Linux磁盘管理-RAID

第十三章 Linux磁盘管理-RAID