mdadm的相关使用
一、RAID
RAID (originally redundant array of inexpensive disks, now commonly redundant array of independent disks) 最初廉价磁盘冗余阵列,现在常用的独立磁盘冗余阵列,是一个数据存储虚拟化技术,它将多个物理磁盘组成一个逻辑单元,目的是为了,进行数据冗余,提高读写性能的,或两者兼而有之。
Raid Level:仅用于标识磁盘组合方式的不同
常用的raid级别:raid0,raid1,raid4,raid5,raid6,raid10,raid01,jbod
raid0: 至少需要两块磁盘,没有容错能力,提高了读写性能,100%的磁盘利用率,磁盘具有同样大小。
raid1: 至少需要两块磁盘,镜像,硬件容错能力,读性能提升,写性能下降,50%的磁盘利用率。
raid4: 至少需要三块磁盘,允许一块磁盘出错,读写性能提升,磁盘利用率(n-1)/n 丢失一块磁盘后性能急剧下降
raid5: 至少需要三块磁盘,允许一块磁盘出错,读写性能提升,磁盘利用率(n-1)/n
raid6: 至少需要四块盘,允许两块盘出错,读写性能提升,磁盘利用率(n-2)/n
raid10: 至少需要四块盘,允许不同组内各坏一块盘,读写性能提升,空间利用率50%,先做1后做0,不允许同一组内两块盘同时挂掉
raid01: 先做0后做1,不允许不同组内各坏一块盘,没有raid10好
jbod:将多块磁盘合并成一个磁盘使用,将小空间合并成大空间
RAID实现方式
硬件:
HBA:
内核要可以驱动阵列卡
硬件RAID制作需要在BIOS中实现
软件:
md模块:可以组合任何块设备,(分区,raid)
然而同一个磁盘上的分区没有任何意义
使用mdadm工具进行配置。
mdadm:模块化的工具
-A:装配模式
-C:创建模式
-F:监控模式
管理模式:-f(模拟损坏),-r(移除损坏),-a(插上新磁盘替换移除的磁盘)
-C:创建模式
-n #;用于创建RAID设备的设备个数
-x #: 热备磁盘个数;
-l #:raid级别
-a yes:自动为创建的raid设备创建设备文件;
-c Chunk_Size:指定分块大小,默认为512,单位为KB
注:raid分区类型为fd
练习:创建一个大小为4G的RAID5其chunk大小为1024K:给其添加一个空闲盘,模拟损坏等:停止raid:
注:使用fdisk 分区时注意分区类型为fd
mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 -c 1024 /dev/sdb{1,2,3,5}
watch -n1 'cat /proc/mdstat'
mke2fs -t ext4 /dev/md0
mdadm -D /dev/md0
模拟损坏
mdadm /dev/md0 -f /dev/sdb1
移除损害的盘
mdadm /dev/md0 -r /dev/sdb1
插入新盘
mdadm /dev/md0 -a /dev/sdb1
停止raid
mdadm -S /dev/md0
启动
mdadm -A /dev/md0 /dev/sdb{2,3,5,1}
最后附上mdadm安装包