首页 > 代码库 > linux高级文件系统管理——RAID

linux高级文件系统管理——RAID

    作为大型企业,很多时候数据量相当庞大,由此以来对磁盘空间的要求比较高,更重要是的对数据的完整性的追求。所以单独的磁盘不仅空间使用满足不了,数据的完整性更是无从谈起,所以也就出现了专业的数据存储技术,而RAID是其中应用比较广泛,也是历史比较悠久的存数据储技术了。今天就给大家分享一下RAID的一些基本概念以及软件RAID的实现方法。

一、RAID的定义

RAID:Redundant Arrays of Inexpensive(Independent) Disks

1988年由加利福尼亚大学伯克利分校(University of California-Berkeley) “A Case for Redundant Arrays of Inexpensive Disks”。

多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供


中文名称变化

早期:廉价冗余磁盘阵列

现在:独立冗余磁盘阵列


二、RAID的优势

1、提高IO能力:磁盘并行读写来实现

2、提高耐用性;磁盘冗余来实现


三、RAID实现的方式

软件RAID:内置式RAID;主板集成RAID控制器,安装OS前需在BIOS里配置

硬件RAID:外接式磁盘阵列;通过扩展卡提供适配能力

RAID硬件组合方式:

早期RAID:IDE、SCSI

现在RAID:SATA、SAS


四、RAID级别——没有高低级之分,仅代表工作方式不同

1、RAID0:条带

2、RAID1:镜像

3、RAID4:固定校验盘

4、RAID5:轮换校验盘

5、RAID6:比RAID4或RAID5多了一块校验盘

6、RAID01:先条带再镜像

7、RAID10:先镜像再条带

8、RAID50:先轮换校验再条带

9、RAID60:先轮换校验再条带

10、JBOD:将多块小盘合成大盘(存储大个文件)


五、RAID性能对比

RAID级别 读写性能 冗余能力 空间利用率 需求硬盘数

RAID0 均提升 100% 至少2块

RAID1 读提升、写下降 50% 至少2块

RAID4 均提升 100% 至少3块

RAID5 均提升 (n-1)/n 至少3块

RAID6 均提升 (n-2)/n 至少4块

RAID01 均提升 50% 至少4块

RAID10 均提升 50% 至少4块

RAID50 均提升 (n-1)/2n 至少6块

RAID60 均提升 (n-2)/2n 至少8块

JBOD 无提升 100% 至少2块


六、软RAID的创建与管理

mdadm:为软RAID提供管理界面

md:multi disk(多磁盘)

RAID设备文件:/dev/md#——#是md的接口号,非RAID级别


mdadm:模式化的工具

命令的语法格式:mdadm [mode] [options] devices

支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, AID5, RAID6, RAID10 

模式:

创建模式:-C

装配模式: -A

监控模式: -F

管理模式:-f, -r, -a


-C: 创建模式

-n #: 使用#个块设备来创建此RAID

-l #:指明要创建的RAID的级别

-a {yes|no}:自动创建目标RAID设备的设备文件

-c CHUNK_SIZE: 指明块大小(默认64K)

-x #: 指明空闲盘的个数


-D:显示raid的详细信息

mdadm -D /dev/md#


管理模式:

-f: 标记指定磁盘为损坏

-a: 添加磁盘

-r: 移除磁盘


查看md的状态:cat /proc/mdstat

停止md设备:mdadm -S /dev/md#


七、RAID5管理实例

现在我们使用四块20G的硬盘来做一个RAID5,三块工作盘,一块备用盘,(3-1)/3*20*3=40G,所以做出来的RAID5实际可用空间是40G


第一步:先在服务器上装载四块同样大小的新硬盘

如果使用分区来做的话,首先必须在每块盘上分出一个大小相同的分区出来,分区的同时把分区类型调整为fd(Linux raid auto)

如果是用四块相同大小的硬盘(大小是自己所想要的单盘空间大小),就不需要执行分区这个过程了,只要正常装载进操作系统就行了,使用lsblk可查看是否全部装载进来了

[root@centos7 ~]# lsblk

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda      8:0    0   20G  0 disk 

├─sda1   8:1    0  200M  0 part /boot

├─sda2   8:2    0    5G  0 part /

└─sda3   8:3    0    5G  0 part /test

sdb      8:16   0   20G  0 disk 

sdc      8:32   0   20G  0 disk 

sdd      8:48   0   20G  0 disk 

sde      8:64   0   20G  0 disk 

sr0     11:0    1  7.2G  0 rom  

[root@centos7 ~]# 

我这里显示已经正常装载进来了,可以直接进行第二步了


第二步:使用mdadm创建模式创建RAID5

[root@centos7 ~]# mdadm -C -l 5 -a yes -n 3 -x 1 /dev/md0 /dev/sd{b,c,d,e}

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md0 started.

[root@centos7 ~]#

创建成功,现在我们可以使用mdadm -D查看一下md0的运行状态


[root@centos7 ~]# mdadm -D /dev/md0

/dev/md0:

       Version : 1.2

 Creation Time : Sun Aug 28 22:51:49 2016

    Raid Level : raid5

    Array Size : 41910272 (39.97 GiB 42.92 GB)

 Used Dev Size : 20955136 (19.98 GiB 21.46 GB)

  Raid Devices : 3

 Total Devices : 4

   Persistence : Superblock is persistent


   Update Time : Sun Aug 28 22:52:29 2016

         State : clean, degraded, recovering 

Active Devices : 2

Working Devices : 4

Failed Devices : 0

 Spare Devices : 2


        Layout : left-symmetric

    Chunk Size : 512K


Rebuild Status : 40% complete


          Name : centos7:0  (local to host centos7)

          UUID : 5c963814:a05913d3:f1c0a068:2edb71d0

        Events : 7


   Number   Major   Minor   RaidDevice State

      0       8       16        0      active sync   /dev/sdb

      1       8       32        1      active sync   /dev/sdc

      4       8       48        2      spare rebuilding   /dev/sdd


      3       8       64        -      spare   /dev/sde

[root@centos7 ~]# 

可以看到,spare rebuilding,空闲盘正在重建中,sdb,sdc,sdd三块是当前活动盘,sde现在做备用盘spare


第三步:建立RAID装配文件,方便RAID停止后,能够使用mdadm -A自动装配RAID

[root@centos7 ~]# mdadm -Ds /dev/md0 > /etc/mdadm.conf

[root@centos7 ~]# cat /etc/mdadm.conf

ARRAY /dev/md0 metadata=http://www.mamicode.com/1.2 spares=1 name=centos7:0 UUID=8923e2c7:bdeb1003:ec468b86:c87453e1

[root@centos7 ~]# 

配置文件创建成功,测试RAID停止后自动装配


[root@centos7 ~]# mdadm -S /dev/md0

mdadm: stopped /dev/md0

[root@centos7 ~]# mdadm -A /dev/md0

mdadm: /dev/md0 has been started with 3 drives and 1 spare.

[root@centos7 ~]#

mdadm -A调用我们刚才创建的mdadm.conf已经把RAID5重新装配起来了,我们来查看一下详细情况


[root@centos7 ~]# mdadm -D /dev/md0

/dev/md0:

       Version : 1.2

 Creation Time : Mon Aug 29 12:34:48 2016

    Raid Level : raid5

    Array Size : 41910272 (39.97 GiB 42.92 GB)

 Used Dev Size : 20955136 (19.98 GiB 21.46 GB)

  Raid Devices : 3

 Total Devices : 4

   Persistence : Superblock is persistent


   Update Time : Mon Aug 29 12:37:27 2016

         State : clean 

Active Devices : 3

Working Devices : 4

Failed Devices : 0

 Spare Devices : 1


        Layout : left-symmetric

    Chunk Size : 512K


          Name : centos7:0  (local to host centos7)

          UUID : 8923e2c7:bdeb1003:ec468b86:c87453e1

        Events : 18


   Number   Major   Minor   RaidDevice State

      0       8       16        0      active sync   /dev/sdb

      1       8       32        1      active sync   /dev/sdc

      4       8       48        2      active sync   /dev/sdd


      3       8       64        -      spare   /dev/sde

[root@centos7 ~]# 

自动装配正确无误,我们可以正常进行下一步的操作了


第四步:使用ext4格式格式化创建好的md0,并挂载到/RAID5目录下

[root@centos7 ~]# mkfs.ext4 -L RAID5 /dev/md0

mke2fs 1.42.9 (28-Dec-2013)

Filesystem label=RAID5

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=128 blocks, Stripe width=256 blocks

2621440 inodes, 10477568 blocks

523878 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=2157969408

320 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks: 

32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 

4096000, 7962624


Allocating group tables: done                            

Writing inode tables: done                            

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done   


[root@centos7 ~]# mkdir /RAID5

[root@centos7 ~]# mount /dev/md0 /RAID5

[root@centos7 test]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda2       5.0G  4.3G  743M  86% /

devtmpfs        899M     0  899M   0% /dev

tmpfs           913M   84K  913M   1% /dev/shm

tmpfs           913M  8.9M  904M   1% /run

tmpfs           913M     0  913M   0% /sys/fs/cgroup

/dev/sda3       4.8G  1.1G  3.5G  24% /test

/dev/sda1       197M  139M   59M  71% /boot

tmpfs           183M   16K  183M   1% /run/user/42

tmpfs           183M     0  183M   0% /run/user/0

/dev/md0         40G   49M   38G   1% /RAID5

[root@centos7 ~]# ll /RAID5

total 16

drwx------. 2 root root 16384 Aug 28 23:06 lost+found

[root@centos7 ~]# 

当看到df -h命令返回列表中有/dev/md0这一条,并且/RAID5目录有一个刚刚创建出来的lost+found目录时,证明,你的RAID已经挂载成功了


第五步:配置RAID自动挂载

要想让RAID在重启系统之后能够自动挂载,就需要在/etc/fstab文件中添加一行

[root@centos7 test]# blkid /dev/md0

/dev/md0: LABEL="RAID5" UUID="19f98b8f-59e9-4d19-86fb-bc7fe4fcf285" TYPE="ext4" 

[root@centos7 test]# vim /etc/fstab


UUID="19f98b8f-59e9-4d19-86fb-bc7fe4fcf285" /RAID5  ext4    defaults    0 0


第六步,使用mdadm -f模拟sdb损坏,验证RAID5的备用盘sde是否能自动热替换,并保证数据不丢失

1,复制/boot目录下的所有文件到刚才创建的RAID上,并查看RAID当前工作状态

[root@centos7 test]# cp -r /boot/* /RAID5

[root@centos7 test]# ll /RAID5

total 122944

-rw-r--r--. 1 root root   126426 Aug 29 08:31 config-3.10.0-327.el7.x86_64

drwxr-xr-x. 2 root root     4096 Aug 29 08:31 grub

drwx------. 6 root root     4096 Aug 29 08:31 grub2

-rw-r--r--. 1 root root 57594025 Aug 29 08:31 initramfs-0-rescue-2603580124fe4b4f9803f6e2ac195123.img

-rw-r--r--. 1 root root 28080535 Aug 29 08:31 initramfs-3.10.0-327.el7.x86_64.img

-rw-r--r--. 1 root root 16333775 Aug 29 08:31 initramfs-3.10.0-327.el7.x86_64kdump.img

-rw-r--r--. 1 root root 10192163 Aug 29 08:31 initrd-plymouth.img

drwx------. 2 root root    16384 Aug 28 23:06 lost+found

-rw-r--r--. 1 root root   252612 Aug 29 08:31 symvers-3.10.0-327.el7.x86_64.gz

-rw-------. 1 root root  2963044 Aug 29 08:31 System.map-3.10.0-327.el7.x86_64

-rwxr-xr-x. 1 root root  5156528 Aug 29 08:31 vmlinuz-0-rescue-2603580124fe4b4f9803f6e2ac195123

-rwxr-xr-x. 1 root root  5156528 Aug 29 08:31 vmlinuz-3.10.0-327.el7.x86_64

[root@centos7 test]# mdadm -D /dev/md0

/dev/md0:

       Version : 1.2

 Creation Time : Sun Aug 28 22:51:49 2016

    Raid Level : raid5

    Array Size : 41910272 (39.97 GiB 42.92 GB)

 Used Dev Size : 20955136 (19.98 GiB 21.46 GB)

  Raid Devices : 3

 Total Devices : 4

   Persistence : Superblock is persistent


   Update Time : Mon Aug 29 08:34:13 2016

         State : clean 

Active Devices : 3

Working Devices : 4

Failed Devices : 0

 Spare Devices : 1


        Layout : left-symmetric

    Chunk Size : 512K


          Name : centos7:0  (local to host centos7)

          UUID : 5c963814:a05913d3:f1c0a068:2edb71d0

        Events : 19


   Number   Major   Minor   RaidDevice State

      0       8       16        0      active sync   /dev/sdb

      1       8       32        1      active sync   /dev/sdc

      4       8       48        2      active sync   /dev/sdd


      3       8       64        -      spare   /dev/sde

[root@centos7 test]#

当前状态,一切正常,State : clean 


2、模拟sdb损坏,验证sde是否能够自动热替换

[root@centos7 test]# mdadm -f /dev/md0 /dev/sdb

mdadm: set /dev/sdb faulty in /dev/md0

[root@centos7 test]# mdadm -D /dev/md0

/dev/md0:

       Version : 1.2

 Creation Time : Sun Aug 28 22:51:49 2016

    Raid Level : raid5

    Array Size : 41910272 (39.97 GiB 42.92 GB)

 Used Dev Size : 20955136 (19.98 GiB 21.46 GB)

  Raid Devices : 3

 Total Devices : 4

   Persistence : Superblock is persistent


   Update Time : Mon Aug 29 08:40:54 2016

         State : clean, degraded, recovering 

Active Devices : 2

Working Devices : 3

Failed Devices : 1

 Spare Devices : 1


        Layout : left-symmetric

    Chunk Size : 512K


Rebuild Status : 10% complete


          Name : centos7:0  (local to host centos7)

          UUID : 5c963814:a05913d3:f1c0a068:2edb71d0

        Events : 22


   Number   Major   Minor   RaidDevice State

      3       8       64        0      spare rebuilding   /dev/sde

      1       8       32        1      active sync   /dev/sdc

      4       8       48        2      active sync   /dev/sdd


      0       8       16        -      faulty   /dev/sdb

[root@centos7 test]# 

可以看到sdb显示已经坏掉了,sde自动顶替上去了,State : clean, degraded, recovering,并且正在执行同步,等同步完成,RAID状态就恢复正常了

[root@centos7 test]# mdadm -D /dev/md0

/dev/md0:

       Version : 1.2

 Creation Time : Sun Aug 28 22:51:49 2016

    Raid Level : raid5

    Array Size : 41910272 (39.97 GiB 42.92 GB)

 Used Dev Size : 20955136 (19.98 GiB 21.46 GB)

  Raid Devices : 3

 Total Devices : 4

   Persistence : Superblock is persistent


   Update Time : Mon Aug 29 08:42:04 2016

         State : clean

Active Devices : 3

Working Devices : 3

Failed Devices : 1

 Spare Devices : 0


        Layout : left-symmetric

    Chunk Size : 512K


          Name : centos7:0  (local to host centos7)

          UUID : 5c963814:a05913d3:f1c0a068:2edb71d0

        Events : 27


   Number   Major   Minor   RaidDevice State

      3       8       64        0      active sync   /dev/sde

      1       8       32        1      active sync   /dev/sdc

      4       8       48        2      active sync   /dev/sdd


      0       8       16        -      faulty   /dev/sdb

[root@centos7 test]# 

现在sde替换sdb之后,同步完成,RAID状态恢复正常


3、验证热替换后RAID上的数据是否损坏

[root@centos7 test]# ll /RAID5

total 122944

-rw-r--r--. 1 root root   126426 Aug 29 08:31 config-3.10.0-327.el7.x86_64

drwxr-xr-x. 2 root root     4096 Aug 29 08:31 grub

drwx------. 6 root root     4096 Aug 29 08:31 grub2

-rw-r--r--. 1 root root 57594025 Aug 29 08:31 initramfs-0-rescue-2603580124fe4b4f9803f6e2ac195123.img

-rw-r--r--. 1 root root 28080535 Aug 29 08:31 initramfs-3.10.0-327.el7.x86_64.img

-rw-r--r--. 1 root root 16333775 Aug 29 08:31 initramfs-3.10.0-327.el7.x86_64kdump.img

-rw-r--r--. 1 root root 10192163 Aug 29 08:31 initrd-plymouth.img

drwx------. 2 root root    16384 Aug 28 23:06 lost+found

-rw-r--r--. 1 root root   252612 Aug 29 08:31 symvers-3.10.0-327.el7.x86_64.gz

-rw-------. 1 root root  2963044 Aug 29 08:31 System.map-3.10.0-327.el7.x86_64

-rwxr-xr-x. 1 root root  5156528 Aug 29 08:31 vmlinuz-0-rescue-2603580124fe4b4f9803f6e2ac195123

-rwxr-xr-x. 1 root root  5156528 Aug 29 08:31 vmlinuz-3.10.0-327.el7.x86_64

[root@centos7 test]# gzip -d /RAID5/symvers-3.10.0-327.el7.x86_64.gz 

[root@centos7 test]# ll /RAID5/symvers-3.10.0-327.el7.x86_64 

-rw-r--r--. 1 root root 906479 Aug 29 08:31 /RAID5/symvers-3.10.0-327.el7.x86_64

[root@centos7 test]# 

既然原有的压缩文件在坏掉一块盘并热替换之后都可以正常解压出来,说明RAID5备用盘的热替换是能保证数据完整性的


第七步:验证RAID5的冗余能力

既然sdb损坏了,我们就把它取下来

[root@centos7 test]# mdadm -r /dev/md0 /dev/sdb

mdadm: hot removed /dev/sdb from /dev/md0

[root@centos7 test]# mdadm -D /dev/md0

/dev/md0:

       Version : 1.2

 Creation Time : Sun Aug 28 22:51:49 2016

    Raid Level : raid5

    Array Size : 41910272 (39.97 GiB 42.92 GB)

 Used Dev Size : 20955136 (19.98 GiB 21.46 GB)

  Raid Devices : 3

 Total Devices : 3

   Persistence : Superblock is persistent


   Update Time : Mon Aug 29 09:02:12 2016

         State : clean 

Active Devices : 3

Working Devices : 3

Failed Devices : 0

 Spare Devices : 0


        Layout : left-symmetric

    Chunk Size : 512K


          Name : centos7:0  (local to host centos7)

          UUID : 5c963814:a05913d3:f1c0a068:2edb71d0

        Events : 39


   Number   Major   Minor   RaidDevice State

      3       8       64        0      active sync   /dev/sde

      1       8       32        1      active sync   /dev/sdc

      4       8       48        2      active sync   /dev/sdd

[root@centos7 test]# 

已经把坏盘给移除了,当前三块盘都处于工作中,State : clean,RAID的工作状态一切正常。已经没有备用盘了,现在我们再损坏一块工作盘sde,测试RAID5在坏掉一块工作盘的情况下,是否有冗余能力


[root@centos7 test]# mdadm -f /dev/md0 /dev/sde

mdadm: set /dev/sde faulty in /dev/md0

[root@centos7 test]# mdadm -D /dev/md0

/dev/md0:

       Version : 1.2

 Creation Time : Sun Aug 28 22:51:49 2016

    Raid Level : raid5

    Array Size : 41910272 (39.97 GiB 42.92 GB)

 Used Dev Size : 20955136 (19.98 GiB 21.46 GB)

  Raid Devices : 3

 Total Devices : 3

   Persistence : Superblock is persistent


   Update Time : Mon Aug 29 09:09:50 2016

         State : clean, degraded 

Active Devices : 2

Working Devices : 2

Failed Devices : 1

 Spare Devices : 0


        Layout : left-symmetric

    Chunk Size : 512K


          Name : centos7:0  (local to host centos7)

          UUID : 5c963814:a05913d3:f1c0a068:2edb71d0

        Events : 41


   Number   Major   Minor   RaidDevice State

      0       0        0        0      removed

      1       8       32        1      active sync   /dev/sdc

      4       8       48        2      active sync   /dev/sdd


      3       8       64        -      faulty   /dev/sde

[root@centos7 test]# ll /RAID5/grub

total 4

-rw-r--r--. 1 root root 1350 Aug 29 08:31 splash.xpm.gz

[root@centos7 test]# gzip -d /RAID5/grub/splash.xpm.gz 

[root@centos7 test]# ll /RAID5/grub/splash.xpm

-rw-r--r--. 1 root root 309214 Aug 29 08:31 /RAID5/grub/splash.xpm

[root@centos7 test]# 

RAID5中三块工作盘坏掉了一块sde,原来的文件依然能够正常解压出来,说明RAID5是在损坏一块盘的情况下,是能正常工作,并且保证数据的完整性的,也就是我们之前提到的冗余能力是具有的。但是RAID的状态已经明确标明RAID已经处于退化的状态了,State : clean, degraded,所以此时作为我们运维人员,就需要及时的修复或安装新硬盘,否则,RAID的工作状态可能随时有危险。


第八步:RAID状态修复

现在我们的sdb、sde已经修改好了,需要把它们重装回去,并让它们重新组合成三块工作盘,一块备用的工作状态


1、先把当前坏掉的盘sde移除,再把已经修复的盘sdb添加进来

[root@centos7 test]# mdadm -r /dev/md0 /dev/sde

mdadm: hot removed /dev/sde from /dev/md0

[root@centos7 test]# mdadm -D /dev/md0

/dev/md0:

       Version : 1.2

 Creation Time : Sun Aug 28 22:51:49 2016

    Raid Level : raid5

    Array Size : 41910272 (39.97 GiB 42.92 GB)

 Used Dev Size : 20955136 (19.98 GiB 21.46 GB)

  Raid Devices : 3

 Total Devices : 2

   Persistence : Superblock is persistent


   Update Time : Mon Aug 29 09:46:59 2016

         State : clean, degraded 

Active Devices : 2

Working Devices : 2

Failed Devices : 0

 Spare Devices : 0


        Layout : left-symmetric

    Chunk Size : 512K


          Name : centos7:0  (local to host centos7)

          UUID : 5c963814:a05913d3:f1c0a068:2edb71d0

        Events : 50


   Number   Major   Minor   RaidDevice State

      0       0        0        0      removed

      1       8       32        1      active sync   /dev/sdc

      4       8       48        2      active sync   /dev/sdd

[root@centos7 test]# mdadm -a /dev/md0 /dev/sdb

mdadm: added /dev/sdb

[root@centos7 test]# mdadm -D /dev/md0

/dev/md0:

       Version : 1.2

 Creation Time : Sun Aug 28 22:51:49 2016

    Raid Level : raid5

    Array Size : 41910272 (39.97 GiB 42.92 GB)

 Used Dev Size : 20955136 (19.98 GiB 21.46 GB)

  Raid Devices : 3

 Total Devices : 3

   Persistence : Superblock is persistent


   Update Time : Mon Aug 29 09:54:43 2016

         State : clean, degraded, recovering 

Active Devices : 2

Working Devices : 3

Failed Devices : 0

 Spare Devices : 1


        Layout : left-symmetric

    Chunk Size : 512K


Rebuild Status : 6% complete


          Name : centos7:0  (local to host centos7)

          UUID : 5c963814:a05913d3:f1c0a068:2edb71d0

        Events : 52


   Number   Major   Minor   RaidDevice State

      3       8       16        0      spare rebuilding   /dev/sdb

      1       8       32        1      active sync   /dev/sdc

      4       8       48        2      active sync   /dev/sdd

[root@centos7 test]#

此时sdb添加进来之后,RAID会有一个修复的过程,State : clean, degraded, recovering,标明RAID正在恢复中,spare rebuilding   /dev/sdb标明是新添加进来的sdb正在和sdc、sdd进行数据同步,等同步完成之后,RAID状态就恢复正常了


[root@centos7 test]# mdadm -D /dev/md0

/dev/md0:

       Version : 1.2

 Creation Time : Sun Aug 28 22:51:49 2016

    Raid Level : raid5

    Array Size : 41910272 (39.97 GiB 42.92 GB)

 Used Dev Size : 20955136 (19.98 GiB 21.46 GB)

  Raid Devices : 3

 Total Devices : 3

   Persistence : Superblock is persistent


   Update Time : Mon Aug 29 09:56:50 2016

         State : clean 

Active Devices : 3

Working Devices : 3

Failed Devices : 0

 Spare Devices : 0


        Layout : left-symmetric

    Chunk Size : 512K


          Name : centos7:0  (local to host centos7)

          UUID : 5c963814:a05913d3:f1c0a068:2edb71d0

        Events : 58


   Number   Major   Minor   RaidDevice State

      3       8       16        0      active sync   /dev/sdb

      1       8       32        1      active sync   /dev/sdc

      4       8       48        2      active sync   /dev/sdd

[root@centos7 test]#

State : clean,RAID状态就恢复正常


2、添加已经修复的盘sde进来继续作为备用盘

[root@centos7 test]# mdadm -a /dev/md0 /dev/sde

mdadm: added /dev/sde

[root@centos7 test]# mdadm -D /dev/md0

/dev/md0:

       Version : 1.2

 Creation Time : Sun Aug 28 22:51:49 2016

    Raid Level : raid5

    Array Size : 41910272 (39.97 GiB 42.92 GB)

 Used Dev Size : 20955136 (19.98 GiB 21.46 GB)

  Raid Devices : 3

 Total Devices : 4

   Persistence : Superblock is persistent


   Update Time : Mon Aug 29 09:59:15 2016

         State : clean 

Active Devices : 3

Working Devices : 4

Failed Devices : 0

 Spare Devices : 1


        Layout : left-symmetric

    Chunk Size : 512K


          Name : centos7:0  (local to host centos7)

          UUID : 5c963814:a05913d3:f1c0a068:2edb71d0

        Events : 70


   Number   Major   Minor   RaidDevice State

      3       8       16        0      active sync   /dev/sdb

      1       8       32        1      active sync   /dev/sdc

      4       8       48        2      active sync   /dev/sdd


      5       8       64        -      spare   /dev/sde

[root@centos7 test]# 

RAID5理想的工作状态完全恢复,三块工作盘sdb、sdc、sdd,一块备用盘sde


第九步:删除RAID

1、要想删除RAID,必须先停止RAID,要想停止RAID,必须取消RAID的挂载状态

[root@centos7 test]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda2       5.0G  4.3G  744M  86% /

devtmpfs        899M     0  899M   0% /dev

tmpfs           913M   84K  913M   1% /dev/shm

tmpfs           913M  8.9M  904M   1% /run

tmpfs           913M     0  913M   0% /sys/fs/cgroup

/dev/sda3       4.8G  1.2G  3.4G  26% /test

/dev/sda1       197M  139M   59M  71% /boot

tmpfs           183M   16K  183M   1% /run/user/42

tmpfs           183M     0  183M   0% /run/user/0

/dev/md0         40G  178M   38G   1% /RAID5

[root@centos7 test]# umount /dev/md0

[root@centos7 test]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda2       5.0G  4.3G  744M  86% /

devtmpfs        899M     0  899M   0% /dev

tmpfs           913M   84K  913M   1% /dev/shm

tmpfs           913M  8.9M  904M   1% /run

tmpfs           913M     0  913M   0% /sys/fs/cgroup

/dev/sda3       4.8G  1.2G  3.4G  26% /test

/dev/sda1       197M  139M   59M  71% /boot

tmpfs           183M   16K  183M   1% /run/user/42

tmpfs           183M     0  183M   0% /run/user/0

[root@centos7 test]# 

取消RAID的挂载已成功,接下来可以停止RAID了


2、停止RAID

[root@centos7 test]# mdadm -S /dev/md0

mdadm: stopped /dev/md0

[root@centos7 test]# 


3、删除RAID自动装配文件

[root@centos7 test]# rm -f /etc/mdadm.conf


4、配置过自动挂载的,还需要删除/etc/fstab文件中的RAID挂载一行

UUID="19f98b8f-59e9-4d19-86fb-bc7fe4fcf285" /RAID5  ext4    defaults    0 0(删除整行)

如果是用四块整盘做的RAID,直接把硬盘拆除即可。如果是用磁盘分区做的RAID,还需要进行下两步


5、清除成员raid信息

mdadm --zero-superblock /dev/sd#

6、删除用于组建RAID的分区

fdisk /dev/sd#


至此,从RAID创建、管理、修复、删除基本上是给大家全过程的展示了一遍,相信只要认真学习我的博文的同仁们,最起码,你对RAID的工作原理有一个基础的了解了。至于其它级别的RAID同样可以参考本文的步骤,只是创建的时候级别不同,其它操作区别不大。

本文出自 “爱情防火墙” 博客,请务必保留此出处http://183530300.blog.51cto.com/894387/1843980

linux高级文件系统管理——RAID