linux RAID详解及创建,维护过程

RAID

独立磁盘冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬盘的不同的地方(因此,冗余地)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间(MTBF),储存冗余数据也增加了容错。

RAID类型 个数 利用率 优缺点
RAID0条带集 2或2+ 100% 读写性能提升,不容错
RAID1镜像集 2或2+ 50% 读性能提升,写性能下降,有冗余能力
RAID5奇偶校验条带集 3+ n-1 读写性能提升,容错,允许坏一个盘
RAID6奇偶校验条带集双校验 4+ n-2 读写性能提升,容错,允许坏2个盘
RAID10 4+ 50% 读写性能提升,容错
RAID01 4+ n-4 读写性能提升,容错
RAID50 6 n-2 读写性能提升,容错
RAID60 8 n-4 读写性能提升,容错

RAID0

定义:
RAID 0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能。RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能
原理:
系统向三个磁盘组成的逻辑硬盘(RAID0 磁盘组)发出的I/O数据请求被转化为3项操作,其中的每一项操作都对应于一块物理硬盘。通过建立RAID 0,原先顺序的数据请求被分散到所有的三块硬盘中同时执行
在这里插入图片描述

RAID1

定义:
RAID 1通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。
工作原理:
RAID1是将一个两块硬盘所构成RAID磁盘阵列,其容量仅等于一块硬盘的容量,因为另一块只是当作数据“镜像”
在这里插入图片描述

RAID5

定义:
RAID 5具有和RAID0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID5的磁盘空间利用率要比RAID 1高,存储成本相对较低,是目前运用较多的一种解决方案

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

在这里插入图片描述

RAID6

定义:
引入双重校验的概念,它可以保护阵列中同时出现。两个磁盘失效时,阵列仍能继续工作不会发生数据丢失。RAID6等级是在RAID5的基础上,为了进一步增长数据保护而设计的一种方式,它可以看作是一种扩展RAID5等级。

在这里插入图片描述

RAID10

定义:
RAID10也被称为镜象阵列条带。象RAID0一样,数据跨磁盘抽取;象RAID1一样,每个磁盘都有一个镜象磁盘, 所以RAID 10的另一种会说法是 RAID 0+1

实现原理:
Raid10其实结构非常简单,首先创建2个独立的Raid1,然后将这两个独立的Raid1组成一个Raid0,当往这个逻辑Raid中写数据时,数据被有序的写入两个Raid1中。磁盘1和磁盘2组成一个Raid1,磁盘3和磁盘4又组成另外一个Raid1;这两个Raid1组成了一个新的Raid0

在这里插入图片描述

RAID01

定义:RAID01兼备了RAID0和RAID1的优点,他先用两块磁盘建立镜像,然后再在镜像内部做条带化。RAID1的数据将同时写入到两个磁盘阵列中,如果其中一个阵列损坏。仍可继续工作。保证数据安全性的同时又提高了性能。RAID1和RAID0内部都含有RAID1的模式。因此整体磁盘利用率均为50%。

在这里插入图片描述

创建RAID5

使用mdadm工具

-C 或–create 创建一个新RAID
-A 或–assemble 加载一个已存在的阵列,后面跟阵列以及设备的名称。
-D或–detail 输出指定RAID设备的详细。
-S或–stop 停止指定的RAID设备。
-l或–level 设置raid级别 ( -l=#)
-n或–raid-devices 指定阵列中活动磁盘的数量
–spare-devices 指定阵列中的备用磁盘数目。
-s或–scan 扫描配置文件或/proc/mdstat文件来搜索软raid的配置信息,该参数不能单独使用,只能配置其他参数才能使用

准备4个空闲磁盘

1创建分区

[root@xiaoagiao ~]# fdisk /dev/sdc                    //分别对四块磁盘进行分区
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xfed67348.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-2097151, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +100M
Partition 1 of type Linux and of size 100 MiB is set

Command (m for help): w

2 创建RAID5

[root@xiaoagiao ~]# mdadm --create /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sd[c-f]1  //创建一个RAID5,/dev/md0,活动磁盘数量为3,一个备用
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.


[root@xiaoagiao ~]# mdadm -D /dev/md0   //查看/dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Sat Apr  4 02:02:27 2020
        Raid Level : raid5                   //RAID类型
        Array Size : 200704 (196.00 MiB 205.52 MB)
     Used Dev Size : 100352 (98.00 MiB 102.76 MB)
      Raid Devices : 3                    //可用为3个
     Total Devices : 4                    //总计4个
       Persistence : Superblock is persistent

       Update Time : Sat Apr  4 02:02:29 2020
             State : clean
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : xiaoagiao:0  (local to host xiaoagiao)
              UUID : 24a8ee5f:4b36775e:a6681144:a9d26e98
            Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       49        1      active sync   /dev/sdd1
       4       8       65        2      active sync   /dev/sde1

       3       8       81        -      spare   /dev/sdf1


3创建RAID配置文件

RAID配置文件“mdadm.conf”,默认是不存在的。所以需要手工创建。该配置文件存在的主要作用是启动系统的时候。能够自动加载软RAID,同时方便日后管理。
mdadm.conf包括:用于软raid的所有设备。ARRAY选项所指定阵列设备名,RAID级别,阵列中活动设备数目及UUID

[root@xiaoagiao ~]# mdadm  --detail  --scan > /etc/mdadm.conf       //创建mdadm.conf,但需要修改内容
[root@xiaoagiao ~]# cat /etc/mdadm.conf
ARRAY /dev/md0 metadata=1.2 spares=1 name=xiaoagiao:0 UUID=24a8ee5f:4b36775e:a6681144:a9d26e98

[root@xiaoagiao ~]# vi /etc/mdadm.conf
[root@xiaoagiao ~]# cat /etc/mdadm.conf
DEVICE /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1               //添加用于RAID设备
ARRAY /dev/md0 metadata=1.2 spares=1 name=xiaoagiao:0 UUID=24a8ee5f:4b36775e:a6681144:a9d26e98

4创建文件系统

# mkfs.ext4 /dev/md0

维护RAID

若一个磁盘损坏(/dev/sdc1),系统会自动标记该磁盘为故障磁盘,并停止对故障磁盘的读写操作。所以需要将/dev/sdc1标记为出现故障的磁盘。

[root@xiaoagiao ~]# mdadm /dev/md0 --fail /dev/sdc1      //标记/dev/sdc1/损坏
mdadm: set /dev/sdc1 faulty in /dev/md0

因为有一个备用磁盘,所以当一个损坏后备用磁盘会立即顶替工作。通过/proc/mdstat文件可查看当前阵列的状态。

[root@xiaoagiao ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sde1[4] sdf1[3] sdd1[1] sdc1[0](F)    //可以看出 sdc1损坏,其他三个工作正常。
      200704 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

unused devices: <none>

移除有故障的磁盘。

# mdadm /dev/md0 --remove /dev/sdc1
mdadm: hot removed /dev/sdc1 from /dev/md0

添加新的磁盘

# mdadm /dev/md0 --add /dev/sdc1
mdadm: added /dev/sdc1

发布了20 篇原创文章 · 获赞 15 · 访问量 1930

猜你喜欢

转载自blog.csdn.net/wdwangye/article/details/105295339