结构
服务器硬件详解
RAID磁盘列阵详解
列阵卡介绍与真机配置
构建软RAID磁盘列阵
RAID磁盘阵列
简称:独立冗余磁盘阵列
把多块独立的物理硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘)。从而提供比单个硬盘更高的存储性能和提供数据备份技术。
RAID级别
组成磁盘阵列的不同方式称为RAID级别(RAID Levels)
常用的RAID级别:RAID0、RAID1、RAID5、RAID6、RAID1+0等
RAID 0(条带化存储)
RAID 0(条带化存储)
RAID0连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余。
RAID 0只是单纯的提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据
RAID 0不能应用于数据安全性要求高的场合
RAID 1(镜像存储)
RAID 1(镜像存储)
通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据
当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能
RAID1是磁盘阵列中单位成本最高的。但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。
RAID 5:
RAID 5
N(N≥3)块盘组成阵列,一份数据产生N-1个条带,同时还有一份校验数据,共N份数据在N块盘上循环均衡存储
N块盘同时读写,读性能很高,但由于有校验机制的问题,写性能相对不高
(N-1)/N 磁盘利用率
可靠性高,允许坏一块盘,不影响所有数据
RAID 6
RAID 6
N(N≥4)块盘组成阵列,(N-2)/N 磁盘利用率
与RAID 5相比,RAID 6增加了第二块独立的奇偶校验信息块
两个独立的奇偶系统使用不同的算法,即使两块磁盘同时失效也不会影响数据的使用
相对于RAID 5有更大的“写损失”,因此写性能较差
RAID 1+0(先做镜象,再做条带)
RAID 1+0(先做镜象,再做条带)
N (偶数,N>=4)。块盘两两镜像后,再组合成一个RAID 0
N/2磁盘利用率
N/2块盘同时写入,N块盘同时读取
性能高,可靠性高
RAID 0+1(先做条带,再做镜象)
读写性能与RAID 10相同
安全性低于RAID 10
阵列卡的介绍 (磁盘阵列卡)
阵列卡是用来实现RAID功能的板卡;通常是由I/O处理器、硬盘控制
器、硬盘连接器和缓存等一系列组件构成的;不同的RAID卡支持的RAID功能不同。
阵列卡的缓存
缓存(cache)是RAID 卡与外部的线交换数据的场所,RAID 卡先将数据传送
到缓存,再由缓存和外边数据总线进行数据交换。缓存的大小与速度是RAID卡的实际传输速度的
重要因素,大缓存能够大幅度地提高数据命中率从而提高 RAID卡整体性能。
多数的RAID卡都会配备一定数量的内存来作为高速缓存使用,不同的RAID卡出厂时配备的内
存容量不同,一般为几兆到数百兆容量不等,主要取供于磁盘阵列产品应用的范围。
RAID卡分为硬RAID卡和软RAID卡两种,
通过硬件来实现RAID 功能的就是硬RAID;
通过软件并使用CPU 的 RAID 卡我们称为
软 RAIID,因为软 RAID 占用 CPU 资源比较高,所以绝大部分
的服务器设备都使用的硬RAID。
热备盘
热备盘就相当于RAID阵列的备份,
当RAID阵列坏掉的盘的数量超出了RAID阵列最大限制时,再加了热备盘以后,热备盘就会临时顶替换坏掉的盘,继续维持原来盘的数据正常运转,相当于磁盘的最后一层保险
热备盘的工作原理
热备盘相当于帮Raid阵列多做多个备份,
如果Raid陈列里其中一个盘坏了,这个热备盘就会顶替Raid里的那个坏盘,
同时利用异或校验算法,把坏盘上面的数据原样做出来并存储在热备盘中。
这样一来就等于Raid没受到损坏,然后再找个一个同样的盘把坏盘替换掉,
Raid和热备盘的状态回复正常。
mdadm命令:
-E:查看磁盘是否创建磁盘阵列
-C:表示新建;
-v:显示创建过程中的详细信息。
/dev/md5:创建 RAID5 的名称。
-a yes:–auto,表示如果有什么设备文件没有存在的话就自动创建,可省略。
-l:指定 RAID 的级别,l5 表示创建 RAID5。
-n:指定使用几块硬盘创建 RAID,n3 表示使用 3 块硬盘创建 RAID。
/dev/sd[bcd]1:指定使用这四块磁盘分区去创建 RAID。
-x:指定使用几块硬盘做RAID的热备用盘,-x1表示保留1块空闲的硬盘作备用
/dev/sde1:指定用作于备用的磁盘
cat /proc/mdstat #还能查看创建RAID的进度
mdadm -D /dev/md5 #查看RAID磁盘详细信息
mdadm命令其它常用选项
r:移除设备
-a:添加设备
-S:停止RAID
-A:启动RAID
生成配置:mdadm -D -s >> /etc/mdadm.conf
停止设备:mdadm -S /dev/md0
激活设备:mdadm -A -s /dev/md0
强行启动:mdadm -R /dev/md0
增加新的成员mdadm -G /dev/md0 -n5 -a /dev/sdg
实验1:创建RAID 5
1.[root@localhost ~]# rpm -q mdadm 【查看是否已安装mdadm】
mdadm-4.0-5.el7.x86_64
2.[root@localhost ~]# lsblk 【查看磁盘】
[root@localhost ~]# mdadm -E /dev/sd[b-f] 【-E 查看磁盘b-f是否做过磁盘阵列】
3.分区[root@localhost ~]# fdisk /dev/sdb 【分区c,d,e同b一样】
4. 创建阵列:[root@localhost ~]# mdadm -C -v /dev/md5 -l5 -n3 /dev/sdb1 /dev/sdc1 /dev/sdd1 -x1 /dev/sde1 【C创建 v显示信息 md5名称 l5表示RAID5 n3表示3个磁盘 x1表示1个热备份】
5.[root@localhost ~]# cat /proc/mdstat 【查看创建进度】
[root@localhost ~]# mdadm -D /dev/md5 【D查看详细信息】
5.格式化:[root@localhost ~]# mkfs.xfs /dev/md5
6:挂载:[root@localhost ~]# mkdir /opt/aa 【创建挂载目录】
[root@localhost ~]# mount /dev/md5 /opt/aa 【挂载】
7.模拟容灾备灾
[root@localhost aa]# cp /etc/passwd /opt/aa 【复制passwd 到挂载目录aa下】
[root@localhost aa]# mdadm /dev/md5 -f /dev/sdc1 【强制停止设备sdc1】
[root@localhost aa]# mdadm -D /dev/md5 【查看md5详细信息】
此时热备份sde1上线接替 sdc1,若此时将设备都强制停止,那么passwd将无法查看
实验2:创建RAID 10
这里注意的点是创建RAID10 需要先创建两个RAID1 ,
每个RAID1里分配两个硬盘,然后再创建RAID0,
将两个创建好的RAID1 配置上去,
这样就达到RAID10 的功能。
需要创建5个硬盘,其中1个做热备份
1.查看磁盘:[root@localhost ~]# lsblk
2.分盘
3.创建阵列:
[root@localhost ~]# mdadm -C -v /dev/md0 -l10 -n4 -x1 /dev/sd{b,c,d,e,f}1 【创建】
[root@localhost ~]# cat /proc/mdstat 【查询进度】
[root@localhost ~]# mdadm -D /dev/md0 【查询详细信息】
4.格式化:
[root@localhost ~]# mkfs.xfs /dev/md0
5.挂载:
[root@localhost ~]# mkdir /opt/aa 【创建挂载目录】
[root@localhost ~]# mount /dev/md0 /opt/aa
6.模拟故障
[root@localhost ~]# mdadm /dev/md0 -f /dev/sdb1 【强制sdb1下线】
mdadm: set /dev/sdb1 faulty in /dev/md0
【sdb1下线后 热备份sdf1补上】
接着把set-A set-B各下线一个:
[root@localhost ~]# mdadm /dev/md0 -f /dev/sdd1
mdadm: set /dev/sdd1 faulty in /dev/md0
[root@localhost ~]# mdadm /dev/md0 -f /dev/sdc1
mdadm: set /dev/sdc1 faulty in /dev/md0
此时若再下线set-A或set-B中任何一个都会启动保护机制,不允许下线
删除raid:
1.先umount组建好的raid:umount /dev/md0
2.停止raid设备:mdadm -S /dev/md0
3.此时如果忘了raid中的硬盘名称,要么重启系统,要么运行:mdadm -A -s /dev/md0 然后再用mdadm -D /dev/md0查看raid中包含哪几个硬盘。再次运行第二步停止命令:mdadm -S /dev/md0
4.删除raid里的所有硬盘:mdadm --misc --zero-superblock /dev/sdc,
mdadm --misc --zero-superblock /dev/sdd
mdadm --misc --zero-superblock /dev/sde
mdadm --misc --zero-superblock /dev/sdf
有几块硬盘,就按格式删几次,注意最后面的硬盘名称。
5.删除配置文件:rm -rf /etc/mdadm.conf
补充:释放的硬盘在做一个raid5 raid1+0