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安装包