什么是RAID?
RAID:独立磁盘冗余阵列(Redundant Array of Independent Disks),简称硬盘阵列。RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来,形成一个硬盘组(逻辑硬盘)。将逻辑硬盘挂载给操作系统,在系统中读取到的是单块硬盘(即逻辑硬盘)而非多块硬盘(独立的物理磁盘)。RAID技术通过增加硬盘的数量增加了平均故障间隔时间(MTBF),从而提供比单个硬盘更高的存储性能和提供数据备份技术。
常用的RAID级别:
RAID0、RAID1、RAID 3、RAID5、RAID6、RA J10、RAID50
逻辑硬盘优点
1、容量大
2、性能好
3、可靠性高
RAID实现方式
RAID实现方式分为两种,分别是软件RAID、硬件RAID
软件RAID
优点
1、成本低,无需购置硬件;
2、允许用户重新配置磁盘阵列,不受硬件限制。
缺点
1、读写性能差;
2、软件RAID会占用系统资源。
硬件RAID
优点:
1、不消耗硬盘性能及存储空间;·相对于操作系统独立;
2、磁盘故障易更换。
缺点:
1、相比较软件RAID成本高;
2、硬件RAID卡故障,必须更换同型号或与故障卡相互兼容的型号。
RAID保护方式有两种镜像与校验
镜像就是克隆出来一个副本,数据相同
校验就是使用奇偶校验法逻辑算法为异或
RAID0原理
至少使用两块物理盘
使用率100%
可靠性弱
R/W最好
RAID 1
至少使用两块物理盘
使用率50%
支持重构效率较快
数据读写,先写入镜像在写入物理盘
物理盘故障换上新的镜像会把数据复制给物理盘
RAID 3
利用率n-1/n(n为盘数)
至少需要3个盘
支持重构
R/W取决盘数
RAID 3使用奇偶校验来保证数据可靠性。
RAID 3配备一块专用的校验盘,将奇偶校验数据写入校验盘。
RAID 3物理盘1损坏时,将新磁盘更换后将校验盘和物理盘2的数据进行异或运算后再将数据恢复到新磁盘。
RAID5
本质与RAID3没有区别主要就是把校验盘取消,校验数据都写入物理盘
重构:RAID 5物理盘1损坏时,将磁盘更换后会将校验数据和物理盘数据进行异或运算,再将数据恢复到新物理盘。
不过RAID 3 与RAID 5 一样最多允许坏一个盘为了解决这个问题有了RAID6
RAID 6
RAID 6的可靠性高于RAID5。
RAID 6有两个校验数据,分别为P和Q。校验数据P和Q是由以下公式计算得来的
eg:
P1=D0⊕D1⊕D2
Q1=(D0α)⊕(D1β)⊕(D2*γ)
其中α,β,γ为赋予的常量值
重构与RAID5相似,多了一步运算,原理相同。
可以通过二元一次方程计算
RAID 10
RAID 10通过数据副本的方式保证数据可靠性。
RAID 10是先做RAID 1在做RAID 0。
RAID 50
RAID 50通过奇偶校验保证数据可靠性。
·
RAID先做RAID 5在做RAID 0
增加速度与可靠性
·
总结如下
- 模块化工具mdadm1.支持的RAID级别:RAID0,RAID1,RAID4,RAID5,RAID6,RAID10; 2.可以基于多块硬盘、分区以及逻辑卷来实现RAID; 3.状态信息保存在/proc/mdstat 4.已创建好的RAID位于/dev/md#
- mdadm的语法格式
mdadm [mode] <raiddevice> [options] <component-devices>
模式:
创建:-C
装配: -A
监控: -F
管理:-f, -r, -a
<raiddevice>: /dev/md#
<component-devices>: 任意块设备
-C: 创建模式
-n #: 使用#个块设备来创建此RAID;
-l #:指明要创建的RAID的级别;
-a {yes|no}:自动创建目标RAID设备的设备文件;
-c CHUNK_SIZE: 指明块大小;
-x #: 指明空闲盘的个数;
-D:显示raid的详细信息;
mdadm -D /dev/md#
管理模式:
-f: 标记指定磁盘为损坏;
-a: 添加磁盘
-r: 移除磁盘
观察md的状态:
cat /proc/mdstat
停止md设备:
mdadm -S /dev/md#
- 实现实例
创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能
z[root@CentOS6 ~]# mdadm -C /dev/md0 -n 2 -l 1 -c 128 /dev/sd{b,c}
[root@CentOS6 ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Fri Aug 19 15:40:11 2016
Raid Level : raid1
Array Size : 5238720 (5.00 GiB 5.36 GB)
Used Dev Size : 5238720 (5.00 GiB 5.36 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Fri Aug 19 15:40:27 2016
State : clean, resyncing
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Resync Status : 64% complete
Name : CentOS6:0 (local to host CentOS6)
UUID : f92a25b5:a1120042:521176b5:1964c806
Events : 10
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
[root@CentOS6 ~]# mkfs.ext4 /dev/md0
[root@CentOS6 ~]# echo "/dev/md1 /backup ext4 defaults,acl,nodiratime 0 0" >> /etc/fstab
- 注意:
- 创建好RAID之后,最好将相关信息保存到
/etc/mdadm
文件中,如是在下次启动系统时会自动挂载启用RAID# mdadm -D --scan > /etc/mdadm.conf - 创建好RAID之后使用时要使用RAID设备来挂载,不要对原块设备操作
- 在停止RAID之前要先卸载,而后使用
mdadm -S
命令 - 若要重启RAID使用
mdadm -R
命令,但是由于操作系统或软件版本的问题,关闭RAID后会找不到/dev/md#
块设备,此时只要重启系统便可,因为已把相关信息保存至/etc/mdadm.conf
文件
- 创建好RAID之后,最好将相关信息保存到