独立磁盘冗余阵列-RAID

一、RAID概述

RAID(Redundant Array of Independent Disks)即独立冗余磁盘阵列

磁盘阵列就是、由很多块廉价磁盘 组成的一个容量巨大的卷组、然后在使用不同级别的RAID来提升数据的读写效率、保证数据的安全性

磁盘阵列的样式包括:

1、外接式磁盘阵列柜

2、内接式磁盘阵列卡

3、软件的方式来实现


 1)RAID级别

RAID的级别很多、目前以有的RAID磁盘阵列多达十几种、而常见的包括:RAID0、RAID1、RAID5、RAID10

1、RAID0-(分条)

RAID0就是将多块硬盘(至少两块)通过软件或者是硬件的方式串联在一起 组成一个庞大的卷组

然后将数据依次写入到各个物理硬盘中、这样的话 数据的读写效率 可以得到很大的提升

优点:因为是条带化、所以数据的读写效率 得到了很大的提升

缺点:无容错效果、一块盘损坏将导致整个系统的数据受到损坏

独立磁盘冗余阵列-RAID_第1张图片

 2、RAID1-(镜像)

RAID技术 就是将两块或者两块以上的硬盘绑定在一起、写入数据的时候 将数据同时写入到多块硬盘上面

当中如果有一块硬盘发生故障 就立即以热交换模式 来恢复数据正常使用 可将另一块盘上的数据 理解为副本

优点:因为是镜像数、所以具有冗余性

缺点:磁盘的利用率得以降低、写的性能有所变慢 

独立磁盘冗余阵列-RAID_第2张图片

 3、RAID5-(奇偶校验)

RAID5技术就是通过将数据的奇偶校验信息保存到不同硬盘中、而不是单独保存在一块硬盘上面

这样做的最大好处就是一块盘损坏之后、不至于出现致命缺陷 为何呢 因为硬盘设备出现问题之后

我们可以通过 奇偶校验信息来重建损坏的数据、如下图所示 Parity的地方存储的就是 数据校验信息

优点:兼顾了 读写效率、数据安全这两者 冗余类型为奇偶校验

缺点:成本是一方面、另一方面就是 一块硬盘出现故障以后、整个系统的性能 肯定会有所降低

独立磁盘冗余阵列-RAID_第3张图片

 4、RAID10-(分条+镜像)

从名字我们可以看出来、RAID10技术就是 RAID0+RAID1的一个结合体、部署RAID10至少需要四块盘

最基础的理念就是、先两两制作成RAID1 来保证系统和数据的安全性、然后在RAID1的基础上 部署RAID0

以此来进一步提高硬盘设备的读写效率、这样的话 只要坏的不是同一组中的所有硬盘 那数据丢失概率不大

优点:兼顾 RAID0和RAID1的特点、在不考虑成本的情况下 RAID10的效率要高于RAID5

缺点:还是以上这个说法、价格相对较高 但是我们要知道的是 数据的价值 远远超过了硬盘的价值

独立磁盘冗余阵列-RAID_第4张图片


  二、Linux实现软RAID

 因为RAID0和RAID1的效果 均可以在 RAID10里面 体现出来、所以这边的话 我就不单独做了

在部署之前 我们先来看一下使用什么来实现?

在Linux系统里面、阵列的管理和配置 需要用到 mdadm命令、使用yum 安装即可 yum -y install mdadm

以下为mdadm的常用参数:

-C:    创建

-a:    检测设备名称

-v:    显示过程信息

-l:    指定RAID 级别

-n:    指定设备数量

-x:    指定热备磁盘

-D:    查看详细信息

-c:    指定数据块大小

-f:    模拟设备损坏

-r:    移除设备

-Q:    查看摘要信息

-S:    停止磁盘阵列

===================================================

1)准备工作

因为是虚拟机、所以我们先来快速的添加 四块硬盘、如下所示

独立磁盘冗余阵列-RAID_第5张图片

 2)创建软RAID

如下所示:设备名称为md10、硬盘数量为4、RAID的级别为10

[root@node1 ~]# mdadm -C /dev/md10 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde

 

3)格式化阵列

格式化的命令为:mkfs -t 类型 设备名称

如下所示、我将格式化刚刚所创建的 md10

[root@node1 ~]# mkfs -t ext4 /dev/md10		#格式化的类型为 ext4

4)使用与验证软RAID

使用之前、我们先创建一个目录用来挂载使用

如下所示:先创建目录、然后挂载、最后将挂载信息写入到配置文件使其开机自动挂载

[root@node1 ~]# mkdir /share												#创建对应的挂载目录
[root@node1 ~]# mount /dev/md10 /share										#挂载
[root@node1 ~]# echo "/dev/md10 /share ext4 defaults 0 0" >> /etc/fstab 	#将信息写入配置文件
[root@node1 ~]# mount -a
[root@node1 ~]# df -hT | tail -1
/dev/md10                     ext4       20G   45M   19G    1% /share

演示的话也看不出其性能、除非是真实的生产环境、不过RAID1的特点 可以测试出来

测试的话就是将一块或者两块硬盘 将其移除、然后在测试数据是否可以读取和写入

如下所示:我将使用 -r选项 来模拟硬盘设备故障、然后测试数据是否可以 正常的写入和读取、最后添加一块新的磁盘到阵列里面

[root@node1 ~]# mdadm /dev/md10 -f /dev/sdb				#模拟磁盘损坏
mdadm: set /dev/sdb faulty in /dev/md10

然后 再次查看状态信息、如下所示我们可以看到、活跃的和正在工作的磁盘只有三个、然后损坏了一个 

独立磁盘冗余阵列-RAID_第6张图片

但是这并不影响我们的数据存储、如下所示

独立磁盘冗余阵列-RAID_第7张图片

虽然说不会影响数据的正常使用、但是系统性能肯定还是会有所降低、所以我们在添加一块硬盘到阵列

如下所示:我们将刚刚所移除的 /dev/sdb设备 添加回来、然后再次查看阵列状态

注意:添加之前先重启、不然系统会提示设备繁忙 

[root@node1 ~]# mdadm /dev/md10 -a /dev/sdb
mdadm: added /dev/sdc

再次来查看、如下所示、我们可以看到已经恢复正常

独立磁盘冗余阵列-RAID_第8张图片


 三、磁盘阵列+备份盘

我们都知道 RAID 1/5/10具有容错效果、一块磁盘坏掉并不影响我们数据的正常使用、如果运气不好、所有磁盘全部损坏、那业务就得暂停了

那能不能预防这种事故的发生呢?能。我们可以使用RAID备份盘技术来预防这种事故的发生

那什么是备份盘呢?首先我们得准备一块空间足够的硬盘、然后在服务器上面做好相应的配置(使用mdadm命令)

配置完成之后、这块硬盘就没它什么事情了、平时它处于空闲状态(类似双机热备)一旦阵列中有硬盘出现故障、它就直接顶替上去

1)实现磁盘阵列+备份盘

我们首先来部署RAID5、因为刚刚我没有演示、在配置RAID5的同时、使用 mdadm命令中的 -x 选项 来指定备份盘的数量

配置完成以后、我们需要:创建目录、挂载、开启挂载、然后使用 -f 选项模拟故障、在这个出故障的时候、我们查看阵列状态、看看那个备份盘 是否 从备用变成了活跃

1、准备工作

因为我刚刚做了RAID10、但是这种热备盘技术与RAID1并不兼容、所以我们得把环境重塑一下

还是一样、在虚拟里面添加三块硬盘、哦 不对 、添加四块 为毛??因为还有一块我们需要用来做热备盘

独立磁盘冗余阵列-RAID_第9张图片

 提示:这样得话就是:/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde 、然后我们使用/dev/sde来做备份盘

2、部署RAID5

注意:如下所示 -x 后面指定的就是热备盘的数量、我这就一个、所以值为1

[root@node1 ~]# mdadm -C /dev/md5 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
[root@node1 ~]# mkfs -t ext4 /dev/md5
[root@node1 ~]# mkdir /share
[root@node1 ~]# mount /dev/md5 /share
[root@node1 ~]# echo "/dev/md5 /share ext4 defaults 0 0" >> /etc/fstab 
[root@node1 ~]# mount -a
[root@node1 ~]# df -hT | tail -1
/dev/md5   ext4    40G   49M   38G  1% /share

3、查看阵列状态

如下图所示:我们可以看到、工作数量为4、但是活跃的为3、然后在往下看、可以看见 sde处于备用状态

独立磁盘冗余阵列-RAID_第10张图片

4、验证备份盘技术

下面我们使用 -f 选项来移除一块磁盘、就sdd吧、如下所示

[root@node1 ~]# mdadm /dev/md5 -f /dev/sdd			#移除/dev/sdd设备
mdadm: set /dev/sdd faulty in /dev/md5

然后再次来查看阵列状态、我们会看到 sdd处于失败状态、然后sde顶上去了、并且已经同步了数据 、如下所示:

独立磁盘冗余阵列-RAID_第11张图片

【只是为了打发时间】

你可能感兴趣的:(独立磁盘冗余阵列-RAID)