一、RAID概述

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

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

磁盘阵列的样式包括:

1、外接式磁盘阵列柜

2、内接式磁盘阵列卡

3、软件的方式来实现


1)RAID级别

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

1、RAID0-(分条)

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

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

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

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

2、RAID1-(镜像)

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

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

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

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

3、RAID5-(奇偶校验)

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

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

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

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

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

4、RAID10-(分条+镜像)

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

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

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

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

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


二、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)准备工作

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

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

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

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

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

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

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

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

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


三、磁盘阵列+备份盘

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

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

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

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

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

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

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

1、准备工作

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

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

提示:这样得话就是:/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处于备用状态

4、验证备份盘技术

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

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

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

【只是为了打发时间】

独立磁盘冗余阵列-RAID的更多相关文章

  1. RAID 独立磁盘冗余阵列 - redundant array of independent disks

    RAID:  RAID全称是独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想是把多个磁盘组合起来,组合一个磁盘阵列组,使得性能大幅提高. RAID ...

  2. RAID(独立磁盘冗余阵列)简介

    RAID(独立磁盘冗余阵列) 在大数据技术出现之前,人们就需要面对这些关于存储的问题,对应的解决方案就是RAID技术. RAID(独立磁盘冗余阵列)技术主要是为了改善磁盘的存储容量,读写速度,增强磁盘 ...

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

    RAID 分为不用的等级(RAID0 - RAID5),以满足不同的数据应用需求. RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术. AID ...

  4. RAID(独立磁盘冗余阵列)

    Raid ​ RAID 独立磁盘冗余阵列,在本科学习时候学习过,记不清是组成原理还是操作系统,当时理解的不太清楚,现在研究生期间做存储相关项目,涉及到了Raid,于是查各种博客,为了以后便于后期查阅, ...

  5. 磁盘冗余阵列之RAID10的配置

    1988年由加利福尼亚大学伯克利分校发表的文章首次提到并定义了RAID,当今CPU性能每年可提升30%-50%但硬盘仅提升7%,渐渐的已经成为计算机整体性能的瓶颈,并且为了避免硬盘的突然损坏导致数据丢 ...

  6. 磁盘冗余阵列之RAID5的配置

    1988年由加利福尼亚大学伯克利分校发表的文章首次提到并定义了RAID,当今CPU性能每年可提升30%-50%但硬盘仅提升7%,渐渐的已经成为计算机整体性能的瓶颈,并且为了避免硬盘的突然损坏导致数据丢 ...

  7. 磁盘冗余阵列之RAID5、RAID10

    RAID技术主要有以下三个基本功能: (1).通过对磁盘上的数据进行条带化,实现对数据成块存取,减少磁盘的机械寻道时间,提高了数据存取速度. (2).通过对一个阵列中的几块磁盘同时读取,减少了磁盘的机 ...

  8. linux系统中RAID5磁盘冗余阵列配置(5块磁盘)

    RAID5:需要至少三块(含)硬盘,兼顾存储性能.数据安全和储存成本. 如图所示”parity”块中保存的是其他硬盘数据的奇偶校验信息(并非其他硬盘的数据),以数据的奇偶校验信息来保证数据的安全,RA ...

  9. linux系统中RAID10磁盘冗余阵列配置

    介绍:RAID10:需要至少四块(含)硬盘,兼具速度和安全性,但成本很高,RAID10用两个磁盘做RAID0,用其他两个做RAID1当备份. 配置流程: 第一步:在原有基础上为磁盘再填入五块磁盘(至少 ...

随机推荐

  1. CTPN训练自己的数据集过程大白话记录

    一.算法理解 此处省略1万字.............. 二.训练及源码理解 配置以下3步: 在utils文件夹和utils\bbox文件夹下创建__init__.py文件 在utils\bbox文件 ...

  2. 2019-2020春江云暖你先知,CAE/EDA/高校等CloudHPC领域年均复合增长率超21%

    原创: 灵魂工作室 速石科技 我猜,我们是最早和你说春天来了的人. 一年前,我们还在小心谨慎地定义着Cloud HPC,一脸娇羞地拿Novartis 诺华制药在5年前做的案例当作标杆. 不久前,Hyp ...

  3. 《Java核心技术》 JVM指令集

    https://www.jianshu.com/p/bc91c6b46d7b

  4. hadoop 基础

    common 一组分布式文件系统和通用I/O的组件与接口(序列化.java RPC和持久化数据结构) Avro 一种支持高效.跨语言的RPC以及永久存储数据的序列化系统 MapReduce 分布式数据 ...

  5. 前端笔记7-js3

    1.方法: //创建一个对象var obj = {name:"孙悟空",age:18}; //对象的属性也可以是对象 obj.brother = {name:"猪八戒&q ...

  6. python3搭建Django项目

    1.本次安装的python3.7版本,可前往官网下载,这里的安装不作多余介绍 2.安装虚拟环境 第一种:virtualenv:用于创建虚拟环境,实现项目之间的环境隔离,解决项目中存在的版本冲突问题 w ...

  7. Java服务端两个常见的并发错误

    理想情况来讲,开发在开始编写代码之前就应该讲并发情况考虑进去,但是大多数实际情况确是,开发压根不会考虑高并发情况下的业务问题.主要原因还是因为业务极难遇到高并发的情况. 下面列举两个比较常见的后端编码 ...

  8. 一图胜千言elasticsearch(lucene)的内存管理

  9. Thematic002.字符串专题

    目录 Trie字典树 KMP AC自动机 Manacher 回文自动机 后缀数组 后缀自动机 Trie字典树 概念 我们先来看看什么是Trie字典树 可以发现,这棵树的每一条边都有一个字符 有一些点是 ...

  10. 个人第四次作业AIpha2版本测试(最终版)

    这个作业属于哪个课程 软件工程 作业要求在哪里 作业要求 团队名称 RainbowPlan团队博客 这个作业目标 手动测试非本团队的小组程序,是否可以正常登录,正常运行 一.测试人员信息 测试人员 姓 ...