RAID磁盘阵列

一.RAID磁盘阵列

RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立磁盘冗余磁盘阵列。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。
组成磁盘阵列的不同方式称为RAID级别(RAID Levels)。在用户看起来,组成的磁盘组就像是一个硬盘,用户可以对它进行分区,格式化等等。总之,对磁盘阵列的操作与单个硬盘一模一样。不同的是,磁盘阵列的存储速度要比单个硬盘高很多,而且可以提供自动数据备份。数据备份的功能是在用户数据一旦发生损坏后,利用备份信息可以使损坏数据得以恢复,从而保障了用户数据的安全性。
常用的磁盘阵列级别: RAID0,RAID1,RAID3,RAID5,RAID1+0,RADI0+1等

1.RAID0

RAID 0 并不是真正的RAID结构,没有数据冗余,没有数据校验的磁盘陈列。实现RAID 0至少需要两块以上的硬盘,它将两块以上的硬盘合并成一块,数据连续地分割在每块盘上。 因为带宽加倍,所以读/写速度加倍, 但RAID 0在提高性能的同时,并没有提供数据保护功能,只要任何一块硬盘损坏就会丢失所有数据。因此RAID 0 不可应用于需要数据高可用性的关键领域。

特点:

RAID 0具有的特点,使其特别适用于对性能要求较高,而对数据安全不太在乎的领域,如图形工作站等。对于个人用户,RAID 0也是提高硬盘存储性能的绝佳选择。
在这里插入图片描述

2.RAID1

RAID1是将一个两块(偶数块)硬盘所构成RAID磁盘阵列,其容量仅等于N一块硬盘的容量,因为另一块只是当作数据“镜像”。RAID 1磁盘阵列显然是最可靠的一种阵列,因为它总是保持一份完整的数据备份。它的性能自然没有RAID 0磁盘阵列那样好,但其数据读取确实较单一硬盘来的快,因为数据会从两块硬盘中较快的一块中读出。RAID 1磁盘阵列的写入速度通常较慢 ,因为数据得分别写入两块硬盘中并做比较。RAID 1磁盘阵列一般支持“热交换”,就是说阵列中硬盘的移除或替换可以在系统运行时进行,无须中断退出系统。RAID 1磁盘阵列是十分安全的,不过也是较贵一种RAID磁盘阵列解决方案,因为两块硬盘仅能提供一块硬盘的容量。RAID 1磁盘阵列主要用在数据安全性很高,而且要求能够快速恢复被破坏的数据的场合。

特点:

RAID1通过硬盘数据镜像实现数据的冗余,保护数据安全,在两块盘上产生互为备份的数据,当原始数据繁忙时,可直接从镜像备份中读取数据,因此RAID1可以提供读取性能。

RAID1是硬盘中单位成本最高的,但提供了很高的数据安全性可用性,当一个硬盘失效时,系统可以自动切换到镜像硬盘上读/写,并且不需要重组失效的数据。

在这里插入图片描述

3.RAID3

RAID 3是把数据分成多个“块”,按照一定的容错算法,存放在N+1个硬盘上,实际数据占用的有效空间为N个硬盘的空间总和,而第N+1个硬盘上存储的数据是校验容错信息,当这N+1个硬盘中的其中一个硬盘出现故障时,从其它N个硬盘中的数据也可以恢复原始数据,这样,仅使用这N个硬盘也可以带伤继续工作(如采集和回放素材),当更换一个新硬盘后,系统可以重新恢复完整的校验容错信息。由于在一个硬盘阵列中,多于一个硬盘同时出现故障率的几率很小,所以一般情况下,使用RAID3,安全性是可以得到保障的。

特点

  • RAID 3使用简单的奇偶校验,并用单块磁盘存放奇偶校验信息。如果一块磁盘失效,奇偶盘及其他数据盘可以重新产生数据;如果奇偶盘失效则不影响数据使用。
  • RAID3会把数据写入操作分散到多个硬盘上进行,然而不管是向哪一个数据盘写入数据,都需要同时重写校验盘中的相关信息。因此,对于那些经常需要执行大量写入操作的应用来说,校验盘的负载将会很大,无法满足程序的运行速度,从而导致整个RAID系统性能的下降
  • RAID3更加适合应用于那些写入操作较少,读取操作较多的应用环境,如数据库和web服务器等。

工作原理

XOR校验原理

A值B值XOR结果
000
101
011
110

这里的A与B值就代表了两个位,从中可以发现,A与B一样时,XOR结果为0,A与B不一样时,XOR结果就是1,而且知道XOR结果和A与B中的任何一个数值,就可以反推出另一个数值。比如A为1,XOR结果为1,那么B肯定为0,如果XOR结果为0,那么B肯定为1。
![在这里插入图片描述](https://img-blog.csdnimg.cn/214626a7adea4fc6940b9d86aa64d0e7.png在这里插入图片描述

4.RAID5

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

工作原理
RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据,也就是说有相当于一块磁盘容量的空间用于存储奇偶校验信息。因此当RAID5的一个磁盘发生损坏后,不会影响数据的完整性,从而保证了数据安全。当损坏的磁盘被替换后,RAID还会自动利用剩下奇偶校验信息去重建此磁盘上的数据,来保持RAID5的高可靠性

做raid 5阵列所有磁盘容量必须一样大,当容量不同时,会以最小的容量为准。 最好硬盘转速一样,否则会影响性能,而且可用空间=磁盘数n-1,Raid 5 没有独立的奇偶校验盘,所有校验信息分散放在所有磁盘上, 只占用一个磁盘的容量。
在这里插入图片描述

5.RAID01和RAID10

RAID 0+ 1
优点:
正常使用中,考虑性能上讲,RAID0+1 好,就是先做RAID 0 条带,再做 RAID 1 MIRROR,这样写入速度快,读的速度和RAID1+0一样。
缺点:
一旦一个硬盘坏了,一半的硬盘无法工作,如果2个条带上各坏1个硬盘(RAID0+1只有2个条带),GAME OVER…即使是只有一个硬盘坏了,做数据恢复也很慢,因为一半的硬盘要rebuild(大家该知道为什么吧)。
RAID 1+0
优点:
数据安全性好,只要不是1个RAID1上的2个硬盘同时坏,没有问题,还可以继续跑数据。数据恢复快。
缺点:
写性能稍微比RAID 0+1 差(读性能一样)

在这里插入图片描述在这里插入图片描述

二.RAID实验

磁盘分区

1.RAID0

下载命令 : yum -y install mdadm
准备两个块盘,分区,大小都是2G在这里插入图片描述
制作RAID0
-C 表示新建
-v 显示创建过程中的详细信息
/dev/md0 创建的raid0的名称
-a yes --auto 表示如果有什么设备文件没有存在的话就自动创建,可省略
-l 指定raid的等级
-n 表示使用几块盘创建

[root@localhost ~]# mdadm -C -v -a yes /dev/md0 -a yes -l0 -n2 /dev/sdb1 /dev/sdc1     #创建raid0的命令
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

查看RAID0

[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Tue Jun 13 15:41:13 2023
        Raid Level : raid0    #raid的等级
        Array Size : 4188160 (3.99 GiB 4.29 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Tue Jun 13 15:41:13 2023
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

        Chunk Size : 512K

Consistency Policy : none

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : be0f0c73:1af1b9f2:b1a60775:0809caf1
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1

创建目录,创建文件系统,挂载

[root@localhost ~]# mkfs.xfs /dev/md0    创建文件系统
meta-data=/dev/md0               isize=512    agcount=8, agsize=130944 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1047040, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# mkdir /raid0    #创建目录
[root@localhost ~]# mount  /dev/md0  /raid0/    #挂载
[root@localhost ~]# df -h /raid0    #查看磁盘大小
Filesystem      Size  Used Avail Use% Mounted on
/dev/md0        4.0G   33M  4.0G   1% /raid0

2.RAID1

制作RAID1
-C 表示新建
-v 显示创建过程中的详细信息
/dev/md1 创建的raid1的名称
-a yes --auto 表示如果有什么设备文件没有存在的话就自动创建,可省略
-l 指定raid的等级
-n 表示使用几块盘创建

[root@localhost ~]# mdadm -C -v  -a yes /dev/md1 -l1 -n2 /dev/sdb1 /dev/sdc1    #创建raid1
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
mdadm: size set to 2094080K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

查看RAID1

[root@localhost ~]# mdadm -D /dev/md1     #查看raid1
/dev/md1:
           Version : 1.2
     Creation Time : Tue Jun 13 19:48:24 2023
        Raid Level : raid1
        Array Size : 2094080 (2045.00 MiB 2144.34 MB)
     Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Tue Jun 13 19:48:32 2023
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : resync

              Name : localhost.localdomain:1  (local to host localhost.localdomain)
              UUID : fb4b37a3:6dc1ddfb:d3db739e:66e26e98
            Events : 17

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1

创建目录,创建文件系统,挂载

[root@localhost ~]# mkdir /raid1    #创建目录
[root@localhost ~]# mount  /dev/md1  /raid1/    #挂载
[root@localhost ~]# df -h /raid1
Filesystem      Size  Used Avail Use% Mounted on
/dev/md1        2.0G   33M  2.0G   2% /raid1

3.RAID5

制作RAID5
-C 表示新建
-v 显示创建过程中的详细信息
/dev/md5 创建的raid5的名称
-a yes --auto 表示如果有什么设备文件没有存在的话就自动创建,可省略
-l 指定raid的等级
-n 表示使用几块盘创建
-x:指定几块空闲硬盘做RAID的热备用盘,x1表示保留1块空闲的硬盘作备用盘

[root@localhost ~]# mdadm -Cv /dev/md5 -a yes  -l5 -n3 /dev/sdb1 /dev/sdc1  /dev/sdb2 -x1 /dev/sdc2    #创建raid5,sdc2磁盘做备份
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 2094080K
mdadm: Fail create md5 when using /sys/module/md_mod/parameters/new_array
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.

查看RAID5

[root@localhost ~]# mdadm  -D /dev/md5
/dev/md5:
           Version : 1.2
     Creation Time : Wed Jun 14 19:14:39 2023
        Raid Level : raid5
        Array Size : 4188160 (3.99 GiB 4.29 GB)
     Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Wed Jun 14 19:14:52 2023
             State : clean 
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:5  (local to host localhost.localdomain)
              UUID : d7220416:544cc27c:535e7eff:405a9c97
            Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1    
       1       8       33        1      active sync   /dev/sdc1    
       4       8       18        2      active sync   /dev/sdb2    
       3       8       34        -      spare   /dev/sdc2    #磁盘用来做备份

创建目录,创建文件系统,挂载

[root@localhost ~]# mkdir  /raid5
[root@localhost ~]# mkfs.xfs /dev/md5
[root@localhost ~]# mount /dev/md5  /raid5
[root@localhost ~]# df -h /raid5    #查看磁盘大小
Filesystem      Size  Used Avail Use% Mounted on
/dev/md5        4.0G   33M  4.0G   1% /raid5

模拟磁盘损坏
在这里插入图片描述

[root@localhost ~]# mdadm /dev/md5 -f /dev/sdb1    #模拟sdb1损坏
mdadm: set /dev/sdb1 faulty in /dev/md5

在这里插入图片描述
移除损坏的磁盘
mdadm /dev/md5 -r /dev/sdb1
添加新的磁盘
mdadm /dev/md5 -a /dev/sdd1

4.RAID10

制作RAID10
-C 表示新建
-v 显示创建过程中的详细信息
/dev/md10 创建的raid10的名称
-a yes --auto 表示如果有什么设备文件没有存在的话就自动创建,可省略
-l 指定raid的等级
-n 表示使用几块盘创建
先创建两个raid1,在利用两个raid1做成raid0

[root@localhost ~]# mdadm -C -v  -a yes /dev/md1 -l1 -n2 /dev/sdb1 /dev/sdc1
[root@localhost ~]# mdadm -C -v  -a yes /dev/md2 -l1 -n2 /dev/sdb2 /dev/sdc2
[root@localhost ~]# mdadm -C -v -a yes  /dev/md10   -l0 -n2 /dev/md1 /dev/md2
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md10 started.

查看RAID10

[root@localhost ~]# mdadm -D /dev/md10
/dev/md10:
           Version : 1.2
     Creation Time : Wed Jun 14 20:23:39 2023
        Raid Level : raid0
        Array Size : 4184064 (3.99 GiB 4.28 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Wed Jun 14 20:23:39 2023
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

        Chunk Size : 512K

Consistency Policy : none

              Name : localhost.localdomain:10  (local to host localhost.localdomain)
              UUID : 5e0ddfca:c6f56a7b:e6f7ae0e:8377cc3e
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       9        1        0      active sync   /dev/md1
       1       9        2        1      active sync   /dev/md2

创建目录,创建文件系统,挂载

[root@localhost ~]# mkfs.xfs /dev/md10
meta-data=/dev/md10              isize=512    agcount=8, agsize=130688 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1045504, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# mkdir /raid10
[root@localhost ~]# mount /dev/md10 /raid10
[root@localhost ~]# df -h /raid10
Filesystem      Size  Used Avail Use% Mounted on
/dev/md10       4.0G   33M  4.0G   1% /raid10

三.总结

raid级别读性能写性能利用率是否有备份校验允许损坏盘数
raid0NNN0
raid1N/2N/2N/21
raid5N-1(N-1)/nN-1校验1
raid10N/2N/2N/2备份有两个基组各坏一个
raid01N/2N/2N/2备份允许坏一组

四.删除RAID

1.取消挂载

[root@localhost ~]# umount /dev/md5

2.停止raid

[root@localhost ~]# mdadm -S /dev/md5                                   
mdadm: stopped /dev/md5

3.清除所有磁盘

[root@localhost ~]# mdadm --zero-superblock /dev/sdb1
[root@localhost ~]# mdadm --zero-superblock /dev/sdb2
[root@localhost ~]# mdadm --zero-superblock /dev/sdc1
[root@localhost ~]# mdadm --zero-superblock /dev/sdc2

4.查看是否清除

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   50G  0 disk 
|-sda1            8:1    0    1G  0 part /boot
`-sda2            8:2    0   49G  0 part 
  |-centos-root 253:0    0   44G  0 lvm  /
  `-centos-swap 253:1    0    5G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
|-sdb1            8:17   0    2G  0 part 
`-sdb2            8:18   0    2G  0 part 
sdc               8:32   0   20G  0 disk 
|-sdc1            8:33   0    2G  0 part 
`-sdc2            8:34   0    2G  0 part 
sr0              11:0    1  4.3G  0 rom  

5.删除配置文件(防止系统启动时启动raid)

参考:https://blog.csdn.net/m0_66900908/article/details/125623824
https://baike.baidu.com/item/RAID%E7%A3%81%E7%9B%98%E9%98%B5%E5%88%97/10588130?fr=aladdin

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值