Linux磁盘阵列

前言

RAID(Redundant Array of Independent Disks,中文简称:独立冗余磁盘阵列)是多块独立的物理硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术

在用户看来,组成的磁盘组就像时一个硬盘,用户可以对它进行分区,格式化等等。

组成磁盘阵列的不同方式成为RAID级别(RAID Levels)。RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性、性能和容量的要求

常用的RAID级别有以下几种:RAID0,RAID1,RAID5,RAID6,RAID1+0等

阵列形式及特点

RAID 0(带区卷)

在这里插入图片描述
N块(N>=2)硬盘并行组成一个新的逻辑盘 (N容量总和)
RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上(速度相当于提升2倍),因此具有很高的数据传输率,但它没有数据冗rong余,因此并不能算是真正的RAID结构
RAID 0只是单纯的提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响所有数据
RAID 0不能应用于数据安全性要求高的场合,不建议企业用户单独使用。

RAID 1(镜像卷)

在这里插入图片描述

N(偶数)块硬盘组合成一组镜像 (N/2容量)
通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据
当原始数据繁忙时,可以直接从镜像拷贝中读取数据,因此RAID 1 可以提高读取性能
RAID 1 时磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据

RAID 5

在这里插入图片描述

N(N>=3)块硬盘组成阵列 (N-1)/N容量
一份数据产生N-1个条带,同时还有1份校验数据,共N份数据在N块盘上循环均衡存储

N块盘同时读写,读性能很高,但由于有校验机制的问题,写性能相对不高

可靠性高,允许坏1块盘,不影响所有数据

RAID 6

在这里插入图片描述
N(N>=4)块盘组成阵列,(N-2)/N容量
据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用
RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此写性能较差

RAID 1+0

在这里插入图片描述

N/2块盘同时写入,N块盘同时读取
性能高,可靠性高

阵列卡

概念

阵列卡就是用来实现RAID功能的板卡,通常是由I/O处理器、硬盘控制器、硬盘连接器和缓存等一系列零组件构成的,不同的RAID卡支持的RAID功能不同,例如支持RAID0、RAID1、RAID5、RAID10等

阵列卡接口类型

RAID卡的接口类型:IDE接口、SCSI接口、 SATA接口、 SAS接口

IDE接口

IDE(Intergrated Drive Electronics),即“电子集成驱动器”,本意是指把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器
IDE这一接口技术从诞生至今就一直在不断发展,性能也不断的提高,特点时价格低廉、兼容性强
IDE属于并行接口

SCSI接口

SCSI(Small Computer System Interface),小型计算机系统接口,是同IDE完全不同的接口,IDE接口是普通PC的标准接口,而SCSI并不是专门为硬盘设计的接口,是一种广泛应用于小型机上的高速数据传输技术
SCSI接口具有应用范围广、多任务、带宽大、CPU占用率低,以及支持热插拔等优点,但较高的价格使得它很难如IDE硬盘般普及,因此SCSI硬盘主要应用于中、高端和高档工作站中

SATA接口

SATA(Serial ATA)接口的硬盘又叫串口硬盘,由于采用串行方式传输数据而知名
Serial ATA 2.0的数据传输率将达到300MB/s,最终SATA将实现600MB/s的最高数据传输率

SAS接口

SAS是新一代的SCSI技术,和现在流行的 Serial ATA (SATA)硬盘相同,都是采用串行技术以获得更高的传输速度
SAS的接口技术可以向下兼容SATA

阵列卡的缓存

缓存(Cache)是RAID卡与外部总线交换数据的场所,RAID卡先将数据传送到缓存,再由缓存和外边数据总线交换数据。它是RAID卡电路板上的一块存储芯片,与硬盘盘片相比,具有极快的存取速度

缓存的大小与速度是直接关系到RAID卡的实际传输速度的重要因素,大缓存能够大幅度地提高数据命中率从而提高RAID卡整体性能

不同的RAID卡出厂时配备的内存容量不同,一般为几兆到数百兆容量不等

构建软RAID磁盘阵列

需求描述:

为Linux服务器添加4块SCSI硬盘
使用madadm软件包,构建RAID5磁盘阵列,提高硬盘存储的性能和可靠性

部署思路:

1.安装madadm

2.准备用户RAID阵列的分区

● 为Linux服务器添加4块SCSI硬盘,并使用fdisk工具各划分出一块2GB的分区,依次为:/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1
● 将其类型ID更改为“fd”,对应为“Linux raid autodeted“,表示支持用于RAID磁盘阵列

3.创建RAID设备

4.在RAID设备中建立文件系统

5.挂载并使用文件系统

查看是否安装mdadm:rpm -qa | grep mdadm
mdadm /dev/md0 -r /dev/sdb1 移除
mdadm /dev/md0 -a /dev/sdb1 添加

部署raid 0 (条带卷)

先创建分区,更换fd格式

mdadm -C(创建) -v(显示详细过程) /dev/md0(创建raid的名字,起名字) -l0(指定raid0)
-n(几块磁盘的意思)2(两块磁盘) /dev/sd[b-c]1(哪几块磁盘)

[root@localhost ~]#mdadm  -C -v /dev/md0 -l0 -n2 /dev/sd[b-c]1      //创建

[root@localhost ~]#cat /proc/mdstat                            //查看阵列实时信息,过程,方法1
Personalities : [raid0] 
md0 : active raid0 sdc1[1] sdb1[0]
      41908224 blocks super 1.2 512k chunks

unused devices: <none>
[root@localhost ~]#mdadm -D /dev/md0                           //查看raid阵列详细信息,方法2
/dev/md0:
           Version : 1.2
     Creation Time : Thu Nov  7 09:36:45 2019
        Raid Level : raid0
        Array Size : 41908224 (39.97 GiB 42.91 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Thu Nov  7 09:36:45 2019
             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 : ba69f781:dc5d3736:d7277806:2deca5f7
            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                           //格式化

[root@localhost ~]#mkdir /raid0                                //创建目录

[root@localhost ~]#vim /etc/fstab                               //进入配置文件自动挂载

[root@localhost ~]# mount -a                                 //启动挂载 

这里配置的时自动挂载,也可使用命令单次挂载(重启后挂载失效,需重挂)

raid 1 (镜像卷)2块镜像,加一块备用

在这里插入图片描述
mdadm -C(创建) -v(显示详细过程) /dev/md1(创建raid的名字,起名字) -l1(指定raid1) -n(几块磁盘的意思)2(两块磁盘) /dev/sd[d-e]1(哪几块磁盘) -x1(指定1块备用) /dev/sdf1(哪几块磁盘备用)

[root@localhost ~]#mdadm -C -v /dev/md1 -l1 -n2 /dev/sd[d-e]1 -x1 /dev/sdf1      //创建

[root@localhost ~]#cat /proc/mdstat                            //查看阵列实时信息,方法1

[root@localhost ~]#mdadm -D /dev/md1                        //查看阵列详细信息,方法2

[root@localhost ~]#mkfs.xfs /dev/md1                          //格式化

[root@localhost ~]#mkdir /raid1                            //创建目录

[root@localhost ~]#vim /etc/fstab                          //进入配置文件自动挂载

[root@localhost ~]# mount -a                                 //启动挂载 

查看raid1阵列详细信息:

[root@localhost ~]# mdadm -D /dev/md1     //查看阵列详细信息
/dev/md1:
           Version : 1.2
     Creation Time : Thu Nov  7 11:35:44 2019
        Raid Level : raid1
 …………省略部分内容

    Number   Major   Minor   RaidDevice State
       0       8       49        0      active sync   /dev/sdd1    //sdd1在使用
       1       8       65        1      active sync   /dev/sde1    //sde1在使用

       2       8       81        -      spare   /dev/sdf1           //sdf1备用磁盘

mdadm -f /dev/md1 dev/sdd1 删掉磁盘sdd1
sdf1将自动顶上

[root@localhost ~]# mdadm -f /dev/md1 /dev/sdd1   //删除磁盘sdd1
mdadm: set /dev/sdd1 faulty in /dev/md1           
[root@localhost ~]# mdadm -D /dev/md1             //查看阵列详细信息
/dev/md1:
           Version : 1.2
     Creation Time : Thu Nov  7 11:35:44 2019
        Raid Level : raid1                       
     …………省略部分内容

    Number   Major   Minor   RaidDevice State
       2       8       81        0      spare rebuilding   /dev/sdf1   
       1       8       65        1      active sync   /dev/sde1

       0       8       49        -      faulty   /dev/sdd1    //sdd1被替换下来,sdf1在使用中

raid 5 ( 3块盘 加一块备用)

[root@localhost ~]# mdadm -C -v /dev/md5 -l5 -n3 /dev/sd[b-d]1 -x1 /dev/sde    //创建
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: partition table exists on /dev/sde
mdadm: partition table exists on /dev/sde but will be lost or
       meaningless after creating array
mdadm: size set to 20954112K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
[root@localhost ~]# cat /proc/mdstat                 //查看阵列实时信息,方法1
Personalities : [raid6] [raid5] [raid4] 
md5 : active raid5 sdd1[4] sde[3](S) sdc1[1] sdb1[0]
      41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
      [===>.................]  recovery = 17.1% (3603584/20954112) finish=1.4min speed=200199K/sec
      
unused devices: <none>
[root@localhost ~]# mdadm -D /dev/md5                //查看阵列详细信息,方法2
/dev/md5:
           Version : 1.2
     Creation Time : Thu Nov  7 12:25:25 2019
        Raid Level : raid5
        Array Size : 41908224 (39.97 GiB 42.91 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Thu Nov  7 12:26:23 2019
             State : clean, degraded, recovering 
    Active Devices : 2
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 2

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

    Rebuild Status : 57% complete

              Name : localhost.localdomain:5  (local to host localhost.localdomain)
              UUID : 2dcb3007:89a72ec7:23ba6aee:93953214
            Events : 10

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1         //sdb1在使用
       1       8       33        1      active sync   /dev/sdc1         //sdc1在使用
       4       8       49        2      spare rebuilding   /dev/sdd1    //sdd1在使用

       3       8       64        -      spare   /dev/sde         //sde备用磁盘
       
[root@localhost ~]#mkfs.xfs /dev/md5                          //格式化

[root@localhost ~]#mkdir /raid5                            //创建目录

[root@localhost ~]#vim /etc/fstab                          //进入配置文件自动挂载

[root@localhost ~]# mount -a                                 //启动挂载        

raid 6 ( 4块盘 加2块备用)

[root@localhost ~]# mdadm -C -v /dev/md6 -l6 -n4 /dev/sd[b-e]1 -x2 /dev/sd[f-g]1  //创建
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md6 started.
[root@localhost ~]# mdadm -D /dev/md6             //查看阵列详细信息,方法2
/dev/md6:
           Version : 1.2
     Creation Time : Thu Nov  7 13:31:00 2019
        Raid Level : raid6
        Array Size : 41908224 (39.97 GiB 42.91 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 4
     Total Devices : 6
       Persistence : Superblock is persistent
       Update Time : Thu Nov  7 13:31:19 2019
             State : clean, resyncing 
    Active Devices : 4
   Working Devices : 6
    Failed Devices : 0
     Spare Devices : 2
            Layout : left-symmetric
        Chunk Size : 512K
Consistency Policy : resync
     Resync Status : 23% complete
              Name : localhost.localdomain:6  (local to host localhost.localdomain)
              UUID : b6f625fc:037a6507:62b0ed91:668e7d0b
            Events : 3
    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1    //sdb1在使用
       1       8       33        1      active sync   /dev/sdc1     //sdc1在使用
       2       8       49        2      active sync   /dev/sdd1    //sdd1在使用
       3       8       65        3      active sync   /dev/sde1    //sde1在使用
       4       8       81        -      spare   /dev/sdf1     //sdf1备用磁盘
       5       8       97        -      spare   /dev/sdg1     //sdg1备用磁盘
[root@localhost ~]# cat /proc/mdstat            //查看阵列实时信息,方法1
Personalities : [raid6] [raid5] [raid4] 
md6 : active raid6 sdg1[5](S) sdf1[4](S) sde1[3] sdd1[2] sdc1[1] sdb1[0]
      41908224 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU]
      [===================>.]  resync = 95.3% (19973980/20954112) finish=0.0min speed=206534K/sec
      
unused devices: <none>
[root@localhost ~]#mkfs.xfs /dev/md6                          //格式化
[root@localhost ~]#mkdir /raid6                            //创建目录
[root@localhost ~]#vim /etc/fstab                          //进入配置文件自动挂载
[root@localhost ~]# mount -a                                 //启动挂载

raid 1+0(4块硬盘,加2块备用)

[root@localhost ~]# mdadm -C -v /dev/md10 -l1 -n2 /dev/sd[b-c]1 -x1 /dev/sdd1  //创建raid0
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 20954112K
Continue creating array? 
Continue creating array? (y/n) y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md10 started.
[root@localhost ~]# mdadm -D /dev/md10              //查看阵列详细信息,方法2
/dev/md10:
       …………省略部分信息

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

       2       8       49        -      spare   /dev/sdd1         //sdd1备用磁盘


[root@localhost ~]# mdadm -C -v /dev/md1 -l1 -n2 /dev/sd[e-f]1 -x1 /dev/sdg1   //创建raid0
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 20954112K
Continue creating array?  
Continue creating array? (y/n) y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[root@localhost ~]# mdadm -D /dev/md1                //查看阵列详细信息,方法2
/dev/md1:
           Version : 1.2
    …………省略部分信息

    Number   Major   Minor   RaidDevice State
       0       8       65        0      active sync   /dev/sde1    //sde1在使用中
       1       8       81        1      active sync   /dev/sdf1    //sdf1在使用中

       2       8       97        -      spare   /dev/sdg1        //sdg1备用磁盘


[root@localhost ~]# mdadm -C -v /dev/md110 -l0 -n2 /dev/md10 /dev/md1      //创建raid 1+0
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md110 started.

[root@localhost ~]# cat /proc/mdstat                 //查看阵列信息,过程,方法1
Personalities : [raid1] [raid0] 
md110 : active raid0 md1[1] md10[0]
      41875456 blocks super 1.2 512k chunks
      
md1 : active raid1 sdg1[2](S) sdf1[1] sde1[0]
      20954112 blocks super 1.2 [2/2] [UU]
      
md10 : active raid1 sdd1[2](S) sdc1[1] sdb1[0]
      20954112 blocks super 1.2 [2/2] [UU]
      
unused devices: <none>
[root@localhost ~]# mdadm -D /dev/md110
/dev/md110:
           Version : 1.2
     Creation Time : Thu Nov  7 19:13:01 2019
        Raid Level : raid0
        Array Size : 41875456 (39.94 GiB 42.88 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Thu Nov  7 19:13:01 2019
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

        Chunk Size : 512K

Consistency Policy : none

              Name : localhost.localdomain:110  (local to host localhost.localdomain)
              UUID : 3c6d322f:b1da560b:b4a87bdf:bccee99a
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       9       10        0      active sync   /dev/md10   //md10使用中,raid1
       1       9        1        1      active sync   /dev/md1    //md1使用中,raid1

raid1+0 在这里是创建两个raide1,并为两个raid1各加了一块磁盘作为备份,将两个raid1再做一个raid0。这里raid 1+0 的存储容量,因为是做了镜像的,所以是4块磁盘一半的容量,也就是2个磁盘的容量

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值