首页 > 代码库 > 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的实现