【Linux应用】RAID盘阵操作及其读写测试

1.简述

磁盘阵列(Redundant Arrays of Independent Disk)简称RAID,将数据以分段(striping)的方式分散存储在不同的磁盘中,通过多个磁盘的同时读写减少存取时间,并且利用不同技术实现数据冗余,具有安全性高、速度快、数据容量大等突出特点。 磁盘阵列根据其使用的技术不同而划分了等级,目前公认的标准是RAID 0~RAID 5。其中的level并不代表技术的高低,至于选择哪一种RAID需视用户的需求而定。

2.RAID等级

  • RAID0:是将多个磁盘并列起来,成为一个大硬盘。在存取数据时,将数据按磁盘的个数来进行分段,同时将这些数据写进。条带模式,需要至少两块磁盘。在所有的级别中,RAID0的速度是最快的。没有数据冗余,阵列中任何一个磁盘坏掉,意味着所有数据丢失。对高磁盘容量及高速磁盘存取有集群需求,RAID0无疑是提高磁盘I/O性能的最好方法。
  • RAID1: 镜像模式,实现数据备份,写性能降低,读性能略微提升,需要至少两块磁盘,磁盘可用空间=磁盘书*最小磁盘大小/2。
    在这里插入图片描述
  • RAID5:需要至少三块磁盘组成磁盘阵列,在每个循坏写入过程中,轮流在其中一块磁盘存储其他几个磁盘数据的同位校验码(parity),同位检验码为同位其他数据相与或所得,当其中任何一个磁盘损坏时,可通过其他磁盘的校验码来重建磁盘的数据。RAID5需要N块磁盘(N>=3),能够存储数据的大小为(N-1)*min(S1,S2,S3,S4…)。
  • RAID6:条带化双分布式奇偶校验。RAID6技术是在RAID 5基础上,进一步加强数据保护而设计的一种RAID方式。与RAID5的不同之处于除了每个硬盘上都有同级数据XOR校验区外,还有一个针对每个数据块的XOR校验区。当然,当前盘数据块的校验数据不可能存在当前盘而是交错存储的,等于每个数据块有了两个校验保护屏障,一个分层校验,一个是总体校验。因此RAID 6的数据冗余性能相当好,写入的效率较RAID 5还差。读性能比 RAID 5 更好,因为它从多个磁盘读取。同一RAID6中最多运行同时损坏2块磁盘,更换磁盘后,数据将被重新计算写入;RAID6需要N个磁盘(N>=4);容量为(N-2)*min(s1,s2,s3,…)。
    在这里插入图片描述
  • RAID10:RAID10和RAID01在读写速度上没太大差别,但是RAID10的数据安全性比较高。RAID10是将所有硬盘先组成N组RAID 1,然后再组成RAID0。RAID10需要N个磁盘(N>=4)。
    在这里插入图片描述

3.mdadm命令

参数作用
-S停止阵列
-E检测设备名称
-n指定设备数量
-l指定RAID级别
-C创建设备
-v显示过程
-f模拟设备损坏
-r移除设备
-a添加设备
-Q查看摘要信息
-D查看详细信息

在这里插入图片描述

4.基本操作

4.1 RAID0操作

将/dev/sdb1和/dev/sdb2建立等级RAID0的md0

mdadm -C -v /dev/mdo -l 0 -n 2 /dev/sda1 /dev/sdb2

查看RAID基本信息

cat /proc/mdstat    查看系统上的RAID
mdadm -D /dev/md0   查看是否创建成功

在这里插入图片描述
挂载到/mnt/md0

sudo mkfs.xfs /dev/md0(sudo mkfs -t ext4 /dev/md0)
mount /dev/md0 mnt/md0/

删除命令

停止阵列mdadm -S /dev/md0
umount mnt/md0/
mdadm --zero-superblock /dev/sda1
mdadm --zero-superblock /dev/sdb1

4.2 RAID5操作

mdadm -Cv /dev/md5 -l 5 -n 3 /dev/sdb1 /dev/sdb2 /dev/sdb3 --s pare-devices=1 /dev/sdb5 (sdb5 作为热备盘)

查看RAID5基本信息
在这里插入图片描述

cat /proc/mdstat    查看系统上的RAID
mdadm -D /dev/md5   查看是否创建成功

挂载到/mnt/md5

sudo mkfs.xfs /dev/md5(sudo mkfs -t ext4 /dev/md5)
mount /dev/md5 mnt/md5/

删除命令
在这里插入图片描述

停止阵列mdadm -S /dev/md5
umount mnt/md0/
mdadm --zero-superblock /dev/sda1
mdadm --zero-superblock /dev/sdb1

模拟硬盘故障
故障硬盘为/dev/sdb3

mdadm -f /dev/md5 /dev/sdb3
mdadm -D /dev/md5

在这里插入图片描述
热移除故障盘

mdadm -r /dev/md5 /dev/sdb3
mdadm -D /dev/md5

在这里插入图片描述

4.3 RAID6操作

检查下磁盘是否创建过 RAID 分区。

mdadm -E /dev/sd[1-5]
mdadm --examine /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb5 

在这里插入图片描述
创建并1s观察一次

mdadm -Cv /dev/md6 -l 6 -n 4 /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb5
watch -n1 cat /proc/mdstat

在这里插入图片描述
查看是否创建成功
在这里插入图片描述

4.4 RAID10操作

mdadm -Cv /dev/md10 -l 10 -n 4 /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb5 --run
#指定--run参数,将跳过确认信息,直接启动阵列

查看RAID10基本信息
在这里插入图片描述
挂载、删除等操作和其他RAID一致。

5.测试性能

测试RAID0模式下,sata3.0盘的读写速度:

  • 纯写
    root@localhost:/mnt/md0# dd if=/dev/zero of=/mnt/md0/test bs=8k count=1000000
    记录了1000000+0 的读入
    记录了1000000+0 的写出
    8192000000 bytes (8.2 GB, 7.6 GiB) copied, 9.94526 s, 824 MB/s
  • 纯读
    root@localhost:/mnt/md0# time dd if=/mnt/md0/test of=/dev/null bs=8k
    记录了1000000+0 的读入
    记录了1000000+0 的写出
    8192000000 bytes (8.2 GB, 7.6 GiB) copied, 7.61115 s, 1.1 GB/s
    real 0m7.620s
    user 0m0.196s
    sys 0m5.068s
  • 读写
    root@localhost:/mnt/md0# time dd if=/mnt/md0/test of=/mnt/md0/testrw.dbf bs=8k
    记录了2000000+0 的读入
    记录了2000000+0 的写出
    8192000000 bytes (8.2 GB, 7.6 GiB) copied, 23.5216 s, 348 MB/s
    real 0m23.641s
    user 0m0.432s
    sys 0m14.812s
    同样的方法,测试RAID1模式
操作RAID0RAID1
纯写824 MB/s404 MB/s
纯读1.1 GB/s465 MB/s
读写348 MB/s185 MB/s

6.加入讨论

在这里插入图片描述

7.参考

1.独立硬盘冗余阵列-RAID
2.RAID管理
3.在 Linux 下使用 RAID
4.raid的mdadm命令,热备盘设置,6个问题
5.在CentOS-7.0下高级硬盘管理RAID 1+0方案
6.mdadm命令详解

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值