Bootstrap

一篇文章教你全面认识raid

一.概述

RAID(Redundant Array of Independent Disk ==独立冗余磁盘阵列==)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。RAID就是一种由-->多块廉价磁盘构成<--的冗余阵列,在操作系统下是作为一个独立的-->大型存储设备<--出现。

优点 

  1. 提高硬盘速度
  2. 增大容量
  3. 容错功能
  4. 确保数据安全性
  5. 易于管理
  6. 目标:在任何一块硬盘出现的情况下都可以继续工作,不会受到损坏硬盘的影响

二.分类

 RAID0

1)磁盘需要:2块
2)优缺点
  1. 数据条带化分布到磁盘,i高的读写性能,100%高存储空间利用率
  2. 数据没有冗余策略,一块磁盘故障,数据将无法恢复
3)场景

 对性能要求高但对数据安全性和可靠性要求不高的场景,比如音频、视频等的存储

RAID1

1)磁盘需要:2块
2)优缺点
  1. 数据镜像备份写到磁盘上(工作盘和镜像盘)
  2. 可靠性高,磁盘利用率为50%
  3. 读性能可以,但写性能不佳
  4. 一块磁盘故障,不会影响数据的读写
3)场景

对数据安全可靠要求较高的场景,比如邮件系统、交易系统等。

RAID5

1)磁盘需要:3块
2)优缺点
  1. 数据条带化存储在磁盘,读写性能好,磁盘利用率为(n-1)/n
  2. 以奇偶校验(分散)做数据冗余
  3. 一块磁盘故障,可根据其他数据块和对应的校猃数据重构损坏数据(消粍性能)
  4. 是目前综合性能最佳的数据保护解决方案
  5. 兼顾了存储性能、数据安全和存储成本等各方面因素(性价比高)
3)场景

适用于大部分的应用场景 

RAID6

1)磁盘需要:3块
2)优缺点
  1. 数据条带化存储在磁盘,读取性能好,容错能力强
  2. 采用双重校验方式保证数据的安全性
  3. 如果2块磁盘同时故障,可以通过两个校验数据来重建两个磁盘的数据
  4. 成本要比其他等级高,并且更复杂
3)场景

一般用于对数据安全性要求较高的场合

RAID10

1)磁盘需要:3块
2)优缺点
  1. RAID10是raid1+raid0的组合
  2. 两块硬盘为一组先做raid1,再将做好raid1的两组做raid0
  3. 兼顾数据的冗余(raid1镜像)和读写性能(raid0数据条带化)
  4. 磁盘利用率为50%,成本较高 

 三.比较

 四.软硬Raid

软RAID运行于操作系统底层,将SCSI或者IDE控制器提交上来的物理磁盘,虚拟成虚拟磁盘,再提交给管理程序来进行管理。软RAID有以下特点:

- 占用内存空间
- 占用CPU资源
- 如果程序或者操作系统故障就无法运行

总结:基于以上缺陷,所以现在企业很少用软raid。

 通过用硬件来实现RAID功能的就是硬RAID,独立的RAID卡,主板集成的RAID芯片都是硬RAID。RAID卡就是用来实现RAID功能的板卡,通常是由I/O处理器、硬盘控制器、硬盘连接器和缓存等一系列零组件构成的。不同的RAID卡支持的RAID功能不同。支持RAlD0、RAID1、RAID4、RAID5、RAID10不等。

五.软测试

Raid0

1)安装mdadm工具

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# yum -y install mdadm

 2)创建raid0

-C:创建软raid
-l : 指定raid级别
-n:指定raid中设备个数

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mdadm -C /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdb2

3)查看RAID信息

/proc/mdstat文件记录了所有raid信息

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# cat /proc/mdstat

 4)查看指定的RAID信息

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mdadm -D /dev/md0

 5)格式化挂载使用

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mkfs.ext4 /dev/md0
[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mount /dev/md0  /md0

 6)测试

①动态查看磁盘读写
[root@iZ2vc3ukucsx14ihjsiekpZ ~]# iostat -m -d /dev/sdb[12] 2
 ②重新开一个窗口
[root@iZ2vc3ukucsx14ihjsiekpZ ~]# dd if=/dev/zero of=/md0/file bs=1M count=1024

记录了1024+0 的读入
记录了1024+0 的写出
1073741824字节(1.1 GB)已复制,1.48475 秒,723 MB/秒

 Raid1

1)创建raid1

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mdadm -C /dev/md1 -l 1 -n 2 /dev/sdb[56]

2)查看状态信息

watch命令监控该文件变化情况,1秒钟显示一次
或者直接查看

[root@iZ2vc3ukucsx14ihjsiekpZ ~]#  watch -n 1 cat /proc/mdstat 

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# cat /proc/mdstat

 3)查看raid1详细信息

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mdadm -D /dev/md1

4)格式化挂载使用

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mkdir /md1

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mount /dev/md1  /md1

Raid5

1)创建rsid5

-x, --spare-devices=  表示指定热备盘

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mdadm -C /dev/md5 -l 5 -n 3 -x 1 /dev/sdb{7,8,9,10}

 2)等待同步后查看

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# cat /proc/mdstat 

3)格式话挂载使用

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mkfs.ext4 /dev/md5

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mount /dev/md5 /md5

 4)查看空间使用情况

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# df -h

 六.保存

问:为什么要保存raid信息?
答:如果不做信息的保存,重启系统后raid不能自动被识别到(在rhel6里测试为重启后名字会变)。

 1. 创建配置文件

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# vim /etc/mdadm.conf 

 说明:该配置文件默认没有,手动创建,里面写上做了raid的所有硬盘设备。

2. 扫描raid信息保存到配置文件

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mdadm -D --scan >> /etc/mdadm.conf
 
[root@iZ2vc3ukucsx14ihjsiekpZ ~]# cat /etc/mdadm.conf

七.停启动

 以RAID5为例说明

停止raid

1.卸载raid

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# umount /md5

 2. 使用命令停止raid

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mdadm --stop /dev/md5

启动raid:

 1. 配置文件(/etc/mdadm.conf)存在如下启动

[root@iZ2vc3ukucsx14ihjsiekpZ ~]#  mdadm -A /dev/md5

 -A:Assemble a pre-existing array  表示装载一个已存在的raid

2. 配置文件(/etc/mdadm.conf)不存在如下启动

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mdadm -A /dev/md5 /dev/sdc[789]

 3. 如果设备名不知道,可以去查看每个设备的raid信息,使用uuid把raid设备重新组合

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mdadm -E /dev/sdc7

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mdadm -E /dev/sdb8

 通过以上方法找到后进行重新组合,如下:

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mdadm -A --uuid=18a60636:71c82e50:724a2a8f:e763fdcf /dev/md5

 八.删除

1. 卸载设备

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# umount /md5

2. 移除所有磁盘

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mdadm /dev/md5 -f /dev/sdb[789]

 3. 停止raid

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mdadm --stop /dev/md5

4. 擦除超级块(superblock)清除相关信息

[root@iZ2vc3ukucsx14ihjsiekpZ ~]# mdadm --misc --zero-superblock /dev/sdb[789]

;