本文主要介绍Linux存储技术中的RAID的概念和操作方法。
1. RAID概念
RAID(Redundant Array of Inexpensive Disks)称为廉价磁盘冗余阵列。RAID的基本想法是把多个便宜的小磁盘组合到一起,成为一个磁盘组,使性能达到或超过一个容量巨大、价格昂贵的磁盘。
目前 RAID技术大致分为两种:基于硬件的RAID技术和基于软件的RAID技术。 本文介绍的是软RAID。
2. RAID级别
raid 0 读写性能佳,坏了其中一块,数据挂掉,可靠性低(stripe条带化),磁盘利用率100%
A B
1 2
3 4
raid 1 镜像备份(mirror),同一份资料完整的保存在多个磁盘上,写的性能不佳,可靠性高,读的性能还行,磁盘利用率50%
A B
1 1
2 2
3 3
4 4
raid 5 由多块磁盘做raid 5,磁盘利用率为n-1/n, 其中一块放校验数据,允许坏一块盘,数据可以利用校验值来恢复
disk 1 disk 2 disk 3
数据 数据 校验
检验 数据 数据
数据 检验 数据
raid 10 先做raid1,再做raid0
raid01 先做raid0,再做raid1
3. 软RAID实现
使用vmware或者kvm直接在线加8个1G大小的硬盘
linear 线型
stripe 条带
mirror 镜像
- 创建raid 0
1 | # mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc |
创建过程中可以用另一终端cat /proc/mdstat去查看正在创建的状态信息
1 | # mkfs.ext4 /dev/md0 |
- 创建raid 1
1 | # mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdd /dev/sde |
对上面的raid0和raid1的一个写性能使用dd命令进行测试,下面命令可以多测几次
1 | # dd if=/dev/zero of=/mnt/aaa bs=1M count=1000 |
测试的结果是raid0写性能比raid1要好
1 | # yum install sysstat -y |
验证raid0,在做raid0的两个盘上查看io情况
终端1:iostat 2 两秒一次查看所有的盘上的IO情况
终端2: dd if=/dev/zero of=/mnt/aaa bs=1M count=1000
可以看到两个盘上都有写的io,并且/dev/sdb和/dev/sdc的IO一样,总和才等于/dev/md0的IO;验证了raid0的功能(条带)
验证raid1,在做raid1的两个盘上查看io情况
终端1:iostat 2 两秒一次查看所有的盘上的IO情况
终端2: dd if=/dev/zero of=/media/aaa bs=1M count=1000
可以看到两个盘上都有写的io,并且/dev/sdd和/dev/sde的IO一样,并且也等于/dev/md1的IO;验证了raid1的功能(镜像)
- 创建raid5
1 | # mdadm --create /dev/md5 --level=5 --raid-devices=4 /dev/sdf /dev/sdg /dev/sdh /dev/sdi |
验证raid5,在做raid5的四个盘上查看io情况
终端1:iostat 2 两秒一次查看所有的盘上的IO情况
终端2: dd if=/dev/zero of=/misc/aaa bs=1M count=1000
4. RAID启停
1 | # vim /etc/mdadm.conf 手动编写raid的配置文件,此文件不存在,要手动建立,并写上 |
- 停止raid设备
1 | 先umount 已经挂载的raid设备 |
- 启动raid设备”
1 | (1) 有/etc/mdadm.conf配置文件的情况下 |
5. 软raid的热插拔实验
模拟raid中其中一块盘故障
1 | # mdadm /dev/md5 --fail /dev/sdf |
6. 删除raid
1 | (1) 第一步 |