RAID-详解

Posted Demon丶安梓

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RAID-详解相关的知识,希望对你有一定的参考价值。

RAID 定义

RAID(Redundant Array of Independent Disks)即独立磁盘冗余阵列,RAID技术将多个单独的物理硬盘以不同的方式组合成一个逻辑硬盘,从而提高硬盘的读写性能和数据安全性。

  • 根据不同的组合方式可以分为不同的RAID级别:
级别 说明
RAID 0 数据条带化,无校验
RAID 1 数据镜像,无校验
RAID 3 数据条带化读写,检验信息存放于专用硬盘
RAID 5 数据条带化,检验信息分布式存放
RAID 6 数据条带化,分布式校验并提供两级冗余
  • 同时采用两种不同的RAID方式还能组合成新的RAID级别:
级别 说明
RAID 0+1 先做RAID 0,后做RAID 1,同时提供数据条带化和镜像
RAID 10 类似于RAID 0+1,区别在于先做RAID1,后做RAID 0
RAID 50 先做RAID 5,后座RAID 0,能有效提高RAID 5的性能

RAID 0

定义:

  • RAID 0既没有容错设计的条带硬盘阵列((Striped Disk Array without Fault Tolerance),以条带形式将RAID组的数据均匀分布在各个硬盘中

优点:

  1. 极高的读写效率
  2. 速度快,由于不存在校验,所以不占用CPU资源
  3. 部署简单

缺点:

  1. 无冗余,通常和其他RAID级别混合使用
  2. 不适合用于关键数据

最小硬盘数:2

RAID 1

定义:

  • RAID 1又称镜像(Mirror),数据同时一致写道主硬盘和镜像硬盘

优点:

  1. 提供过了很高的数据安全性和可用性
  2. 100%的数据冗余
  3. 设计、使用简单
  4. 不做校验计算,CPU占用资源少

缺点:

  1. 空间利用率只有1/2
  2. 相对于单个硬盘,无法提高写能力

RAID 5

定义:

  • RAID 5与RAID 3机制类似,但校验数据均匀分布在各数据硬盘上,RAID成员硬盘上同时保存数据和校验信息,数据块和对应的校验信息不存在不同硬盘上。RAID 5是最长用的RAID方式之一。

优点:

  1. 高读取速率,中等写速率
  2. 提供一定程度的数据安全

缺点:

  1. RAID组里单块硬盘的故障,会导致其他硬盘读写性能大幅下降

最小硬盘数: 3

常用RAID比较

RAID级别 RAID 0 RAID 1 RAID 3 RAID 5 RAID 10 RAID 0+1
别名 条带 镜像 专用奇偶位条带 分布奇偶位条带 镜像阵列条带 条带阵列镜像
容错性
冗余类型 复制 奇偶校验 奇偶校验 复制 复制
热备盘选项
读性能 一般
随机写能力 最低 一般 一般
连续写能力 一般 一般
最小硬盘数 2块 2块 3块 3块 4块 4块
可用容量 N* 单块硬盘容量,N为RAID组成员,一般不大于16 (N/2)* 单块硬盘容量,N为RAID组成员,一般不大于16 (N-1)* 单块硬盘容量,N为RAID组成员,一般不大于16 (N-1)* 单块硬盘容量,N为RAID组成员,一般不大于16 (N/2)* 单块硬盘容量,N为RAID组成员,一般不大于16 (N/2)* 单块硬盘容量,N为RAID组成员,一般不大于16
典型应用环境 迅速读写,安全性要求不高,如图形工作站等 随机数据写入,安全性能要求高,如服务器、数据库存储领域 连续数据传输,安全性要求高,如视频编辑、大型数据库等 随即数据传输,安全性要求高,如金融、数据库、存储等 数据量大,安全性要求高,如银行、金融领域 高性能和高安全性,如视频服务器

常用RAID选择

  • RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比RAID1低而磁盘空间利用率要比RAID1高。
  • RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低。

热备盘

1. 热备:Hot Spare

定义:当冗余的RAID组中某个硬盘失效时,在不干扰当前RAID系统的正常使用的情况下,用RAID系统中另外一个正常的备用硬盘自动顶替失效硬盘,及时保证RAID系统的冗余性。

  • 全局式:备用硬盘为系统中所有的冗余RAID组共享
  • 专用式:备用硬盘为系统中某一组冗余RAID组专用
  • 可用容量由(N -1) * 单块硬盘容量降为(N -2) * 单块硬盘容量(以Raid5为例)

2. 热插拔:Hot Swap

定义:在不影响系统正常运转的情况下,用正常的硬盘物理替换RAID系统中失效硬盘

  • 关键在于热插拔时电子器件的保护机制

23磁盘管理—磁盘阵列(RAID)实例详解

  • 磁盘阵列(RAID)实例详解

  • raid技术分类

    • 软raid技术

    • 硬raid技术

  • Raid和lvm的区别

  • 为什么选择用raid

  • RAID详解

    • RAID-0

    • RAID-1

    • RAID-5

    • Raid-10

  • Raid的管理

    • 案例:创建一个raid10+冗余盘

磁盘阵列(RAID)实例详解

Raid(磁盘阵列)级别介绍

Raid有”廉价磁盘冗余阵列”的意思,就是利用多块廉价的硬盘组成磁盘组,让数据分部储存在这些硬盘里面,从而达到读取和写入加速的目的;也可以用作数据的冗余,当某块硬盘损毁后,其他硬盘可以通过冗余数据计算出损坏磁盘的数据,这样就提高了数据储存的安全性。可以提供较普通磁盘更高的速度、安全性,所以服务器在安装时都会选择创建RAID。RAID的创建有两种方式:软RAID(通过操作系统软件来实现)和硬RAID(使用硬件阵列卡)。

raid技术分类

常见的raid技术分两类 
基于硬件raid技术和基于软件的raid技术

软raid技术

在Linux下安装系统的过程中或者安装系统后通过自带的软件就能实现raid功能,使用软raid可省去购买硬件raid控制器和附件就能极大地增强磁盘的IO性能和可靠性,由于是用软件实现的raid功能,所以它配置灵活,管理方便,同时使用软件raid,还可以将几个物理磁盘合并成一个更大的虚拟设备,从而达到性能改进和数据冗余的目的

硬raid技术

基于硬件raid解决方案比基于软件raid技术在使用性能和服务性能上会更胜一筹,具体表现在检测和修复多位错误的能力,错误磁盘自动检测和阵列重建等方面,从安全性能考虑,基于硬件的raid解决方案也是更安全的,因此,在实际的生产场景工作中,基于硬件的raid解决方案应该是我们的首选,互联网公司常用的生产dell服务器,默认就会支持raid0,1。如果raid5,10就需要买raid卡(或者个别配置自带有,购买前,看参数)

Raid和lvm的区别

LVM(Logical Volume Manager)是Linux环境下对硬盘分区进行管理的一种机制,可以实现多块硬盘空间的动态划分和调整,跨硬盘储存文件等功能。常用于装备大量硬盘并随时需要增加或删除硬盘的环境,也同样适于仅有一、两块硬盘的环境。(可以灵活的管理磁盘容量,让磁盘分区随意变大变小,便于管理磁盘剩余的容量)如果过于强调性能和备份,还是优先选择硬件raid功能

为什么选择用raid

磁盘阵列可以把多个磁盘驱动器通过不同的连接方式连接在一起协同办公,大大提高了读写速度,同时把磁盘系统的可靠性提高到接近无措的境界,使其可靠性极高。 
用raid最直接的好处是:

提高数据安全性 
提升数据读写性能 
提供更大的单一逻辑磁盘数据容量存储

RAID详解

RAID-0

技术分享

D1

D2

数据1

数据2

数据3

数据4

数据5

数据6

RAID-0 :striping(条带模式)特点:在读写的时候可以实现并发,所以相对其读写性能最好,每个磁盘都保存了完整数据的一部分,读取也采用并行方式,磁盘数量越多,读取和写入速度越快。因为没有冗余,一个硬盘坏掉全部数据丢失。至少两块硬盘才能组成Raid0阵列。 
容量:所有硬盘之和。磁盘利用率为100%。

生产应用场景 
1、负载均衡集群下面的多个相同RS节点服务器 
2、分布式文件存储下面的主节点或CHUNK server 
3、MySQL主从复制的多个slave服务器 
4、对性能要求很高,对冗余要求很低的相关业务

RAID-1

技术分享

D1

D2

数据1

数据1

数据2

数据2

数据3

数据3

RAID-1 :mirroring(镜像卷),至少需要两块硬盘,raid大小等于两个raid分区中最小的容量(最好将分区大小分为一样),数据有冗余,在存储时同时写入两块硬盘,实现了数据备份; 
磁盘利用率为50%,即2块100G的磁盘构成RAID1只能提供100G的可用空间。

RAID-5

技术分享

D1

D2

D3

数据1

数据2

校验和1

校验和2

数据3

数据4

数据5

校验和3

数据6

特点:采用奇偶校验,可靠性强,磁盘校验和被散列到不同的磁盘里面,增加了读写速率。只有当两块磁盘同时丢失时,数据才无法恢复,至少三块硬盘并且硬盘大小应该相等才能组成Raid5阵列。

容量:所有硬盘容量之和减去其中一块硬盘的容量,被减去的容量被分配到三块硬盘的不同区域用来存放数据校验信息。

Raid-10

技术分享

D1   

D2

D3

D4

数据1

数据1

数据2

数据2

数据3

数据3

数据4

数据4

Raid10(Raid1+Raid0)是现在比较常用的一种磁盘阵列级别,它的容错好,读写数据效率较高,但经费相对也较高。

特点:备份和并发式存取数据,可靠性强。D1、D2组成一个阵列Raid1,其中D1是数据盘,D2是备份盘;D3、D4也组成一个Raid1,其中D3是数据盘,D4是备份盘;在这个基础上将D1、D2作为一个整体,将D3、D4也作为一个整体,这两个整体之间再组成一个Raid0阵列。这样不仅仅读取数据会非常快,并发写入的速度也会随着磁盘的增多而变快。至少四块硬盘并且每块硬盘大小应该相等才能组成Raid10阵列。

容量:所有硬盘容量之和的一半(一半写数据,一半用来备份数据)。

Raid的管理

主要用到的命令:mdadm; 
参数: 
-C或–creat 建立一个新阵列 -r 移除设备 
-A 激活磁盘阵列 -l 或–level= 设定磁盘阵列的级别 
-D或–detail 打印阵列设备的详细信息 
-n或–raid-devices= 指定阵列成员(分区/磁盘)的数量 
-s或–scan 扫描配置文件或/proc/mdstat得到阵列缺失信息 
-x或–spare-devicds= 指定阵列中备用盘的数量 
-f将设备状态定为故障 
-c或–chunk= 设定阵列的块chunk大小 ,单位为KB 
-a或–add 添加设备到阵列 
-G或–grow 改变阵列大小或形态 
-v –verbose 显示详细信息

CentOS7中mdadm默认已安装,如果没有安装,可以使用yum在线安装,如下: 
首先确保已经连接到互联网,搜索一下yum服务器上是否存在mdadm

[root@localhost ~]# yum search mdadm

案例:创建一个raid10+冗余盘

总共7块盘,创建一个raid 10 使用4块盘,热备2块,使用中1块出现故障,热备顶上,再加一块热备,把坏的T下来

1、创建raid阵列

[[email protected] ~]# mdadm -C /dev/md0 -a yes -l 10 -n 4 -x 2 /dev/sd{b,c,d,e,f,g}

2、查看raid阵列信息

[[email protected] ~]# cat /proc/mdstat 
Personalities : [raid10]
md0 : active raid10 sdg[5](S) sdf[4](S) sde[3] sdd[2] sdc[1] sdb[0]
     41910272 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
     [=====>...............]  resync = 27.5% (11542784/41910272) finish=2.4min speed=206250K/sec

unused devices: <none>
// 四块盘在用,两块S热备

3、生成配置文件

[root@localhost ~]# mdadm -D --scan > /etc/mdadm.conf

4、格式化挂载使用

[[email protected] ~]# mkfs.ext4 /dev/md0
[[email protected] ~]# mkdir /data
[[email protected] ~]# mount /dev/md0 /data/
[[email protected] ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg0-root   20G  333M   19G   2% /
tmpfs                 491M     0  491M   0% /dev/shm
/dev/sda1             190M   34M  147M  19% /boot
/dev/mapper/vg0-usr   9.8G  1.9G  7.4G  21% /usr
/dev/mapper/vg0-var    20G  113M   19G   1% /var
/dev/md0               40G   48M   38G   1% /data
//我一块20G,raid10一半数据,一半备份数据

5、模拟故障一个磁盘

先往data目录拷贝点文件,看看坏了一块数据是否丢失

[[email protected] ~]# du -sh /data/
1.4M    /data/
//输入命令或者直接把硬盘断开连接
[[email protected] ~]# mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
[[email protected] ~]# cat /proc/mdstat
Personalities : [raid10]
md0 : active raid10 sdg[5] sdf[4](S) sde[3] sdd[2] sdc[1] sdb[0](F)
     41910272 blocks super 1.2 512K chunks 2 near-copies [4/3] [_UUU]
     [=>...................]  recovery =  6.6% (1400064/20955136) finish=1.6min speed=200009K/sec

unused devices: <none>
// sdb (F) 故障状态了,原来sdg的S没有了,说明,已经顶上去了
[[email protected] ~]# du -sh /data/
1.4M    /data/
//数据没有丢失

6、把坏的T下去,把新硬盘加上去

硬盘坏了,肯定要加新的热备盘上去,把旧的卸下来

//把故障硬盘卸载下来
[[email protected] ~]# mdadm -r /dev/md0 /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md0
//添加新的硬盘
[[email protected] ~]# mdadm -a /dev/md0 /dev/sdh
mdadm: added /dev/sdh

[[email protected] ~]# cat /proc/mdstat
Personalities : [raid10]
md0 : active raid10 sdh[6](S) sdg[5] sdf[4](S) sde[3] sdd[2] sdc[1]
     41910272 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
//查看状态,已经发现新硬盘,旧硬盘已经没有了      
unused devices: <none>
[[email protected] ~]# mdadm -D /dev/md0
   Number   Major   Minor   RaidDevice State
      5       8       96        0      active sync set-A   /dev/sdg
      1       8       32        1      active sync set-B   /dev/sdc
      2       8       48        2      active sync set-A   /dev/sdd
      3       8       64        3      active sync set-B   /dev/sde

      4       8       80        -      spare   /dev/sdf
      6       8      112        -      spare   /dev/sdh
//阵列还是原来的,没变

(动画来自互联网)

本文出自 “家住海边喜欢浪” 博客,请务必保留此出处http://zhang789.blog.51cto.com/11045979/1847355

以上是关于RAID-详解的主要内容,如果未能解决你的问题,请参考以下文章

RAID详解及软RAID管理

RAID-详解

RAID 磁盘阵列详解,RAID分类及优缺点

RAID的详解

在线raid详解

RAID 磁盘阵列详解,RAID分类及优缺点