首页 > 代码库 > linux下软RAID的实现
linux下软RAID的实现
RAID:
常见的RAID级别:
RAID 0:
工作模式:先将数据进行条带化,分别存放至硬盘中。
空间利用率:100%
是否支持冗余:否
性能:磁盘IO提高(取决于磁盘的数量)
至少需要2块磁盘
RAID 1:
工作模式:有一个磁盘为镜像盘
空间利用率:1/2
是否支持冗余:是
性能:写性能下降,读性能不变
至少需要2块磁盘,且只能坏1快磁盘
RAID 5:
工作模式:有一块盘为校验盘,存放校验数据
空间利用率:n-1/n
是否支持冗余:是
性能:读性能下降,写性能不变
至少需要3块盘,且只能坏1块磁盘
RAID 10:
工作模式:先将数据保存至磁盘做成镜像盘,在将raid1做成raid0
空间利用率:1/2
是否支持冗余:是
性能:IO提高
至少需要4块盘,且同一边不能同时坏2块硬盘,支持一边坏1块盘
RAID 01:
工作模式:先将数据保存至磁盘,做成raid 0,再将raid 0做成raid 1
空间利用率:1/2
是否支持冗余:是
性能:IO提高
至少需要4块盘,且两边不能同时坏2块盘,支持同一边坏2块盘
RAID 50:
工作模式:先将数据保存至磁盘,做成raid5,再将raid 5做成 raid 0
空间利用率:n-2
是否支持冗余:是
性能:IO提高
至少需要6块盘,支持两边同时坏1块盘
mdadm命令:
-C:创建软raid
-n:指定创建raid所需设备数量
-l:指定raid级别
-x:指定空闲盘
-a{yes|no}:创建raid时是否自动为其创建设备文件
-c:指定CHUNK大小,默认为64K,大小要为16的倍数
-a|--add:为指定raid添加新的磁盘
-r|--remove:删除指定raid中某个磁盘
-f|--fail:模拟指定raid中某块磁盘损坏
-S、-A
-A /dev/md#:启动raid
-S /dev/md#:停止raid
1、5块盘创建raid5,2块热备盘
# mdadm -C -l 5 -n 3 -x 2 -a yes /dev/md0 /dev/sdb{5,6,7,8,9} --创建raid5,
# mke2fs -j /dev/md0--格式化为ext3
# mount /dev/md0 /fighting--挂载raid
# mdadm /dev/md0 -f /dev/sdb6--模拟sda6坏掉
# mdadm /dev/md0 -a /dev/sdb{5,6}--添加新的磁盘到raid
# mdadm /dev/md0 -r /dev/sdb5--从raid中移除sdb5
# umount /fighting/--卸载
# mdadm -S /dev/md0 --停止raid
mdadm: stopped /dev/md0
# mdadm -D /dev/md0--查看raid详细信息
mdadm: cannot open /dev/md0: No such file or directory
# mdadm -A /dev/md0 /dev/sdb{5,6,7,8,9} --装配raid
PS:使用mdadm -D --scan /dev/md0 > /etc/mdadm.conf可以省略/dev/sdb{5,6,7,8,9}这部分。
本文出自 “跟你什么仇什么怨” 博客,请务必保留此出处http://fighting419.blog.51cto.com/1873782/1597630
linux下软RAID的实现