一、RAID磁盘阵列介绍
-
磁盘阵列的全名(Redundant Arrays of Inexpensive Disk,RAID),中文简称是独立冗余磁盘阵列。
-
RAID可以通过技术(软件或者硬件)将多个独立的物理硬盘整合成为一个较大的硬盘组(逻辑硬盘),用户可以对它进行分区,格式化
-
这个逻辑硬盘功能除了存储之外,它还具有数据保护的功能,提供数据备份技术,
-
RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性、性能和容量的要求
-
整个RAID由于选择的级别(level)不同,而使得整合后的硬盘读写性能上有些不同
-
常用的level有以下几种常用的RAID级别有以下几种:RAID0,RAID1,RAID5,RAID6 ,RAID1+0等
二、RAID磁盘阵列详解
2.1RAID0(条带化存储)
-
RAID 0连续以位或字节为单位进行分割数据,将数据分段存储在各个硬盘中,n块硬盘并行读/写数据,因此具有很高的数据传输率,可以达到单个硬盘的N倍,但它没有数据冗余;
-
RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据,因此并不能算真正的RAID结构;
-
RAID 0不能应用于数据安全性要求高的场合。
2.2RAID 1(镜像存储)
-
通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据;
-
当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1 可以提高读取性能;
-
RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时, 系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。
-
N(偶数)块硬盘组成镜像,容量为N/2
2.3RAID5
-
N (N>=3) 块盘组成阵列,一份数据产生N-1个条带,同时还有1份校验数据,共N份数据在N块盘上循环均衡存储
-
N块盘同时读写,读性能很高,但由于有校验机制的问题,写性能相对不高;
-
(N-1) /N磁盘利用率(有一块是用来校验的);
-
可靠性高,允许坏1块盘,不影响所有数据。
2.4RAID6
-
N (N>=4) 块盘组成阵列,(N-2) /N容量利用率;
-
与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块;
-
两个独立的奇偶系统使用不同的算法,即使两块磁盘同时失效也不会影响数据的使用;
-
需要更大的磁盘空间,相对于RAID 5有更大的“写损失"因此写性能较差。
2.5 RAID 1+0(先做镜像,再做条带)
-
N (偶数,N>=4)块盘两两镜像后,再组合成一个RAID 0;
-
N/2磁盘利用率,使用率低;
-
N/2块盘同时写入,N块盘同时读取;
-
性能高,可靠性高。
2.6RAID 0+1(先做条带,在做镜像)
-
读写性能与RAID 1+0相同;
-
安全性低于RAID 1+0;
-
使用较少。
三、磁盘阵列
3.1阵列卡介绍
-
阵列卡是用来实现RAID功能的板卡,通常是由I/O处理器、硬盘控制器、硬盘连接器和缓存等一系列组件构成的
-
不同的RAID卡支持的RAID功能不同: 例如支持RAID0、RAID1、 RAID5、 RAID10等
-
RAID卡的接口类型:
-
IDE接口(并行接口,价格低廉,兼容性强)
-
SCSI接口(串行接口,是小型计算机系统接口,广泛应用于小型机上的高速数据传输技术,支持热拔插,CPU占用率低,但是价格高)
-
SATA接口(串行接口)
-
SAS接口(新一代scsi接口,向下兼容SATA)
-
3.2阵列卡的缓存
-
缓存(Cache)是RAID卡与外部总线交换数据的场所,RAID卡先将数据传送到缓存,再由缓存和外边数据总线交换数据。
-
缓存的大小与速度是直接关系到RAID卡的实际传输速度的重要因素,大缓存可以提高命中率
-
不同的RAID卡出厂时配备的内存容量不同,一般为几兆到数百兆容量不等。
四、配置RAID
-
需求:
1.为Linux服务器添加4块SCSI硬盘
2.使用mdadm软件包,构建RAID5磁盘阵列,提磁盘存储的性能和可靠性
-
步骤说明:
-
检查是否安装mdadm,准备用于RAID阵列的分区
-
为Linux服务器添加4块SCSI硬盘,并使用fdisk工具各划分出一块2GB的分区,依次为:/dev/sdb1、/dev/sdc1./dev/sdd1、/devsde1
-
将其类型ID更改为“fd",对应为“Linux raidautodetect”,表示支持用于RAID磁盘阵列创建RAID设备
创建raid10 (先做镜象,再做条带) mdadm -Cv /dev/md0 -11 -n2 /dev/sd[bc]1 mdadm -Cv /dev/md1 -11 -n2 /dev/sd[de]1 mdadm -Cv /dev/md10 110 -n2 /dev/md0/dev/md1
创建raid5: madam -C -v /dev/md0 -l5 /dev/sd[bcd]1 -x1 /dev/sde1 madam:命令字 -C:创建 -v:显示过程 /dev/md0 : raid名字 -l5:级别 /dev/sd[bcd]1 : /dev/sdb1 /dev/sdc1 /dev/sdd1 指定使用这3块磁盘分区去创建RAID。 -x1:热备盘 ,x1表示保留1块空闲的硬盘作备用 /dev/sde1:热备盘的分区设备
4.查看是否创建成功
法一:cat /proc/mdstat #还能查看创建RAID的进度 法二:mdadm -D /dev/md0 法三:watch -n 10 ' cat /proc/mdstat #用watch命令来每隔-一段时间刷新/proc/mdstat的输 出
5.在RAID设备中建立文件系统挂载并使用文件系统
mkfs -t xfs /dev/imd0 建立文件系统 mkdir /myraid 创建挂载目录 mount /dev/md0 /myraid/ 挂载 df -Th 查看挂载信息 设置自动挂载 cp /etc/ fstab /etc/fstab.bak 备份 vim /etc/fstab 进入/etc/fstab编辑 /dev/md0 /myraid xfs defaults 0 0
6.实现故障恢复
mdadm /dev/md0 -f /dev/sdb1 #模拟/dev/sdb1故障 mdadm -D /dev/md0 #查看故障
-
具体创建RAID5步骤
(1)检查系统有没有安装mdadm,没有的话,用yum安装一下
(2)往虚拟机里添加四块硬盘(具体步骤可以参考此博客第二段)
(2)重启系统,系统就可以识别到硬盘了
(3)
(4)刷新分区表
(5)创建RAID阵列
(6)查看阵列详细信息
(7)创建文件系统
(8)手动挂载
(8)也可以设置自动挂载
(9)测试一下是否自动挂载成功
五、RAID阵列的管理及设备恢复
-
扫描或查看磁盘阵列信息
-
启动/停止RAID阵列
-
设备恢复操作 模拟阵列设备故障 更换故障设备,并恢复数据
-
mdadm命令其他常用选项:
-
-r:移除设备
-
-a:添加设备
-
-S:停止RAID
-
-A:启动RAID
-
-f :模拟故障
-
-
mdadm /dev/md0 -f /dev/sdc1 — 将指定磁盘设为故障 mdadm /dev/md0 -r /dev/sdc1 — 移除指定磁盘 mdadm /dev/md0 -a /dev/sdc1 — 添加指定磁盘
(1)建立一个文件,并将mdadm插卡信息复制进去
(2)启停配置文件:
(3)再启动一下,看是否能启动,如果能启动,说明配置文件没问题
(4)模拟设备坏了操作:
总结
RAID RAID级别 | 硬盘数量 | 磁盘利用率 | 是否有校验 | 保护能力 | 写性能 |
---|---|---|---|---|---|
RAID0 | N(可以为1) | N | 无 | 无 | 单个硬盘的N倍 |
RAID1 | N(偶数) | N/2 | 无 | 允许一个设备故障 | 需写两对存储设备,互为主备 |
RAID5 | N>=3 | (N-1)/2 | 有 | 允许一个设备故障 | 需写计算校验 |
RAID6 | N>=4 | (N-2)/2 | 有 | 允许两个设备故障 | 需双重写计算校验 |
RAID10 | N>=4(偶数) | N/2 | 无 | 允许两个基组中各坏一个,同时坏两块盘的不掉数据概率是三分之二 | N/2块盘同时写入 |