Raid配置与管理

一:Raid简介

     RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)可以提供较普通磁盘更高的速度、安全性,所以服务器在安装时都会选择创建RAID。RAID的创建有两种方式:软RAID(通过操作系统软件来实现)和硬RAID(使用硬件阵列卡)。

    RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性、性能和容量的要求。RAID级别主要有以下几种:RAID0,RAID1,RAID2,RAID3,RAID4,RAID5,RAID6,RAID(0+1),RAID(1+0)等,经常使用的是RAID5和RAID(1+0),本文主要介绍RAID0,RAID1,RAID5以及RAID(1+0)。

二:常用RAID介绍

      RAID 0

    striping(条带模式),至少需要两块磁盘,做RAID分区的大小最好是相同的(可以充分发挥并发优势);数据分散存储于不同的磁盘上,在读写的时候可以实现并发,所以相对其读写性能最好;但是没有容错功能,任何一个磁盘的损坏将损坏全部数据;

    磁盘利用率为100%。

1-11 Raid配置与管理_服务器

RAID 1

    mirroring(镜像卷),至少需要两块硬盘,raid大小等于两个raid分区中最小的容量(最好将分区大小分为一样),数据有冗余,在存储时同时写入两块硬盘,实现了数据备份;

    磁盘利用率为50%,即2块100G的磁盘构成RAID1只能提供100G的可用空间。

1-11 Raid配置与管理_操作系统_02

RAID 5

    需要三块或以上硬盘,可以提供热备盘实现故障的恢复;只损坏一块,没有问题。但如果同时损坏两块磁盘,则数据将都会损坏;

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

    空间利用率:(n-1)/n(如4块硬盘利用率为3/4);

1-11 Raid配置与管理_服务器_03

RAID(1+0)

    Raid 10是一个Raid 0Raid1的组合体,它是利用奇偶校验实现条带集镜像,所以它继承了Raid0的快速和Raid1的安全。我们知道,RAID 1在这里就是一个冗余的备份阵列,而RAID 0则负责数据的读写阵列。其实,下图只是一种RAID 10方式,更多的情况是从主通路分出两路,做Striping操作,即把数据分割,而这分出来的每一路则再分两路,做Mirroring操作,即互做镜像;

    磁盘利用率与RAID1一样为50%,但读写速度却是大大提升了;

1-11 Raid配置与管理_服务器_04

三:实验环境

本次实验主要是针对软raid进行配置操作,需要准备5块硬盘(虚拟机)。

实验内容包含以下几点:

RAID0基本配置;

RAID1基本配置;

RAID5基本配置;

RAID(1+0)基本配置

四:实验步骤

实验一.RAID0配置

1.添加一块sdb硬盘,分成2个主分区sdb1,sdb2

1
2
3
4
5
[root@xuegod63 ~]# fdisk /dev/sdb
[root@xuegod63 ~]# ll /dev/sdb*
brw-rw---- 1 root disk 8, 16 Oct 31 15:42 /dev/sdb
brw-rw---- 1 root disk 8, 17 Oct 31 15:42 /dev/sdb1
brw-rw---- 1 root disk 8, 18 Oct 31 15:42 /dev/sdb2


2.创建RAID0阵列

1
2
3
4
[root@xuegod63 ~]# mdadm -C -v /dev/md0  -l 0 -n 2 /dev/sdb1 /dev/sdb2
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.


注:mdadm是raid管理工具,-C:创建新阵列;-v:显示详细信息;-l:设定磁盘阵列级别;-n:设定阵列成员数量

查看阵列信息

1
2
[root@xuegod63 ~]# mdadm -Ds
ARRAY /dev/md0 metadata=1.2 name=xuegod63.cn:0UUID=df3227be:0b8f7587:d9ac0626:8a33fc8b


3.生成配置文件

[root@xuegod63 ~]# mdadm -Ds  > /etc/mdadm.conf

4.将配置好的RAID0阵列进行分区

1
2
3
4
[root@xuegod63 ~]# fdisk /dev/md0
[root@xuegod63 ~]# ll /dev/md0*
brw-rw---- 1 root disk   9, 0 Oct 31 16:01 /dev/md0
brw-rw---- 1 root disk 259, 0 Oct 31 16:01/dev/md0p1


5.格式化并挂载分区

1
2
3
4
5
6
7
8
9
[root@xuegod63 ~]# mkfs.ext4 /dev/md0p1
[root@xuegod63 ~]# mkdir /raid0
[root@xuegod63 ~]# mount /dev/md0p1 /raid0
[root@xuegod63 ~]# df -h
Filesystem     Size  Used Avail Use% Mounted on
/dev/sda3       18G  4.0G   13G 24% /
tmpfs          495M  224K  495M  1% /dev/shm
/dev/sda1      194M   30M  155M 16% /boot
/dev/md0p1      485M  11M  449M   3% /raid0


raid0到此创建完成!

实验二.RAID1配置

1.添加一块sdc硬盘,分成3个主分区sdc1,sdc2,sdc3

1
2
3
4
5
6
[root@xuegod63 ~]# fdisk /dev/sdc
[root@xuegod63 ~]# ll /dev/sdc*
brw-rw---- 1 root disk 8, 16 Oct 31 16:32 /dev/sdc
brw-rw---- 1 root disk 8, 16 Oct 31 16:32 /dev/sdc1
brw-rw---- 1 root disk 8, 16 Oct 31 16:32 /dev/sdc2
brw-rw---- 1 root disk 8, 16 Oct 31 16:32 /dev/sdc3


2.创建RAID1阵列

1
2
3
4
5
6
7
8
9
10
11
[root@xuegod63 ~]# mdadm -C -v /dev/md1 -l 1 -n 2 -x1 /dev/sdc{1,2,3}
mdadm: Note: this array has metadata at the startand
    may not be suitable as a bootdevice.  If you plan to
    store '/boot' on this deviceplease ensure that
    your boot-loader understandsmd/v1.x metadata, or use
    --metadata=0.90
mdadm: size set to 1059200K
Continue creating array?
Continue creating array? (y/n) y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.


注:-x:阵列中备用盘的数量

3.生成配置文件

1
2
3
4
[root@xuegod63 ~]# mdadm -Ds > /etc/mdadm.conf
[root@xuegod63 ~]#cat /etc/mdadm.conf
ARRAY /dev/md0 metadata=1.2 name=xuegod163.com:0UUID=213f0f10:bbeb0493:60694473:8871242a
ARRAY /dev/md1 metadata=1.2 spares=1 name=xuegod163.com:1UUID=ac519296:4c614e0e:a0e1da67:cb93eb66


注:spares=1表示:有热备盘1个

4.将配置好的RAID1阵列进行分区并挂载

1
2
3
4
5
6
7
8
9
10
11
[root@xuegod63 ~]# mkdir /raid1
[root@xuegod63 ~]# fdisk /dev/md1
[root@xuegod63 ~]# mkfs.ext4 /dev/md1p1
[root@xuegod63 ~]# mount /dev/md1p1 /raid1/
[root@xuegod63 ~]# df -h
Filesystem      Size Used Avail Use% Mounted on
/dev/sda3        18G 4.0G   13G  24% /
tmpfs          495M  224K  495M  1% /dev/shm
/dev/sda1      194M   30M  155M 16% /boot
/dev/md0p1     485M   11M  449M  3% /raid0
/dev/md1p1   1019M 34M 934M 4% /raid1


到此raid1已经配置完成了,下面模拟一下磁盘故障以及恢复过程

1.将sdc1设置为故障状态

1
2
[root@xuegod63 ~]# mdadm -f /dev/md1 /dev/sdc1
mdadm: set /dev/sdc1 faulty in /dev/md1


2.将sdc1移除RAID1阵列

1
2
[root@xuegod163 ~]# mdadm -r /dev/md1 /dev/sdc1
mdadm: hot removed /dev/sdc1 from /dev/md1


3.查看阵列状态

1
2
3
4
5
6
7
[root@xuegod63 ~]# cat /proc/mdstat
Personalities : [raid0] [raid1]
md1 : activeraid1 sdc3[2] sdc2[1]
     1059200 blocks super 1.2 [2/2] [UU]
md0 : active raid0 sdb2[1] sdb1[0]
      2119680 blocks super1.2 512k chunks
unused devices: <none>


由此可以看出sdc1已被热备盘sdc3代替。

4.生成配置文件

1
2
3
4
5
[root@xuegod63 ~]# mdadm -Ds > /etc/mdadm.conf
[root@xuegod63 ~]# cat !$
cat /etc/mdadm.conf
ARRAY /dev/md0 metadata=1.2 name=xuegod63.com:0UUID=15b8b7e0:caddb3de:d7d66e00:f42d12e4
ARRAY /dev/md1 metadata=1.2 name=xuegod63.com:1UUID=6b7cf136:220e9678:c924c7ce:c1e3f285


可以看出spares=1没了,也就是热备盘没有了。

实验三.RAID5配置

1.添加一块sde硬盘,分成3个主分区sde1,sde2,sde3,sde4,sde5,sde6

1
2
3
4
5
6
7
8
9
[root@xuegod63 ~]# fdisk /dev/sdc
[root@xuegod63 ~]# ll /dev/sde*
brw-rw---- 1 root disk 8, 16 Oct 31 17:10 /dev/sde
brw-rw---- 1 root disk 8, 16 Oct 31 17:10 /dev/sde1
brw-rw---- 1 root disk 8, 16 Oct 31 17:10 /dev/sde2
brw-rw---- 1 root disk 8, 16 Oct 31 17:10 /dev/sde3
brw-rw---- 1 root disk 8, 16 Oct 31 17:10 /dev/sde4
brw-rw---- 1 root disk 8, 16 Oct 31 17:10 /dev/sde5
brw-rw---- 1 root disk 8, 16 Oct 31 17:10 /dev/sde6


2.创建RAID5阵列

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@xuegod163 ~]# mdadm -C -v /dev/md5 -l 5 -n 3-c 32 -x 1 /dev/sde{1,2,3,5}
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: size set to 1059200K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
3.生成配置文件
[root@xuegod63 ~]# mdadm -Ds > /etc/mdadm.conf
[root@xuegod63 ~]# cat  !$
cat  /etc/mdadm.conf
ARRAY /dev/md0 metadata=1.2 name=xuegod63.com:0UUID=213f0f10:bbeb0493:60694473:8871242a
ARRAY /dev/md1 metadata=1.2 name=xuegod63.com:1UUID=ac519296:4c614e0e:a0e1da67:cb93eb66
ARRAY /dev/md5 metadata=1.2 spares=1 name=xuegod63.com:5UUID=c367f714:3da62060:28b9dcda:d6753102


其余步骤与RAID0、RAID1一致,此处不再赘述

为RAID5阵列添加分区

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
再新添加一块硬盘分区/dev/sde6,希望扩展RAID5阵列到4块硬盘
[root@xuegod163 ~]# mdadm -a /dev/md5/dev/sde6  
 mdadm: added/dev/sde6
  
[root@xuegod163 ~]# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5][raid4]
md5 : active raid5 sde6[5](S) sde1[0] sde5[3](S)sde3[4] sde2[1]
      2118400 blocks super1.2 level 5, 32k chunk, algorithm 2 [3/3] [UUU]
     md1 : active raid1sdc3[2] sdc2[1]
      1059200 blocks super1.2 [2/2] [UU]
     md0 : active raid0sdb2[1] sdb1[0]
      2119680 blocks super1.2 512k chunks
     unused devices:<none>
 [root@xuegod63~]# mdadm -G /dev/md5 -n 4
mdadm: Need to backup 192K of critical section..
[root@xuegod63 ~]# mdadm -Ds > /etc/mdadm.conf
[root@xuegod63 ~]# cat !$
cat /etc/mdadm.conf
ARRAY /dev/md0 metadata=1.2 name=xuegod63.com:0UUID=213f0f10:bbeb0493:60694473:8871242a
ARRAY /dev/md1 metadata=1.2 name=xuegod63.com:1UUID=ac519296:4c614e0e:a0e1da67:cb93eb66
ARRAY /dev/md5 metadata=1.2 spares=1 name=xuegod63.com:5UUID=c367f714:3da62060:28b9dcda:d6753102


实验四.简单介绍RAID(1+0)配置

1.添加硬盘,创建分区sdf1,sdf2,sdf3,sdf4

1
2
3
4
5
6
[root@xuegod63 ~]# ll /dev/sdf*
brw-rw---- 1 root disk 8, 16 Oct 31 18:10 /dev/sdf
brw-rw---- 1 root disk 8, 16 Oct 31 18:10 /dev/sdf1
brw-rw---- 1 root disk 8, 16 Oct 31 18:10 /dev/sdf2
brw-rw---- 1 root disk 8, 16 Oct 31 18:10 /dev/sdf3
brw-rw---- 1 root disk 8, 16 Oct 31 18:10 /dev/sdf4


2.创建2个RAID1 

1
2
[root@xuegod63 ~]# mdadm -C -v /dev/md11 -l 1 -n 2/dev/sdf{1,2}
[root@xuegod63 ~]# mdadm -C -v /dev/md12 -l 1 -n 2/dev/sdf{3,4}


3.在RAID1基础上创建RAID0

1
2
3
4
[root@xuegod63 ~]# mdadm -C -v /dev/md10 -l 0 -n 2/dev/md1{1,2}
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md10 started.


4.生成配置文件

1
2
3
4
5
6
7
8
9
[root@xuegod63 ~]# mdadm -Ds > /etc/mdadm.conf
[root@xuegod63 ~]# cat !$
cat /etc/mdadm.conf
ARRAY /dev/md0 metadata=1.2 name=xuegod63.com:0UUID=15b8b7e0:caddb3de:d7d66e00:f42d12e4
ARRAY /dev/md1 metadata=1.2 name=xuegod63.com:1UUID=6b7cf136:220e9678:c924c7ce:c1e3f285
ARRAY /dev/md5 metadata=1.2 spares=1 name=xuegod63.com:5UUID=0135d9f1:dfc01d99:315e46ed:4738fef6
ARRAY /dev/md11 metadata=1.2 name=xuegod63.com:11UUID=a7d22ee3:65c5a8c9:d7abe8a5:0a49f45d
ARRAY /dev/md12 metadata=1.2 name=xuegod63.com:12UUID=d46af9a5:fbf486e7:03ff3942:37076f39
ARRAY /dev/md10 metadata=1.2 name=xuegod63.com:10UUID=94f7d294:2148e306:542727f0:d6d06446


其余使用步骤与之前一样,本次实验到此已经结束。


学神-IT-教育51cto技术交流群:468845589  快来上我们公开课吧!

        学神MK老师:1273815479

        学神ZY老师:3054384936

 

本文由学神-IT-教育1506班VIP学员 学神-1508-VIP-逍遥同学整理提供

本文出自 “学神IT教育-讲师MK” 博客,请务必保留此出处http://xuegodlinux.blog.51cto.com/10844319/1709964