详解CentOS 7 中配置RAID 0 、RAID 1、RAID 5(理论+实践)

RAID介绍

RAID全称是独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想是把多个磁盘组合起来,组合一个磁盘阵列组,使得性能大幅提高。最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。

RAID可以充分发挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会 受到损坏硬盘的影响。

RAID磁盘阵列介绍

RAID将一组硬盘连结成来,组成一个阵列,以避免单个硬盘损坏而带来的数据损失,同时亦提供了比单个硬盘高的可用性及容错性。

RAID 0介绍

RAID 0 俗称条带卷,与Windows系统中带区卷功能相同,它将两个或多个硬盘组成一个逻辑硬盘,将数据分段储存在各个硬盘中,读写均可并行处理,因此,其读写速度是单个硬盘的N倍,没有冗余功能,任何一个磁盘的损坏就会导致的数据不可用。

  • 特点:

    • 高读写
    • 不可靠
    • 大小相同的两块或多块磁盘组成
    • 容量是多块磁盘容量总和
  • 构建RAID 0

    1、首先,在虚拟机中添加两块硬盘,每块硬盘分别是20G,然后,重启Linux系统,识别添加的硬盘,并将添加的硬盘进行分区管理,修改分区号为fd(Linux raid 自动)。

[[email protected] ~]# cd /dev
[[email protected] dev]# ls
...//省略部分内容...
cdrom            lp2                 sda4      tty16  tty38  tty6     vcs6
char             lp3                 sda5      tty17  tty39  tty60    vcsa
console          mapper              sdb       tty18  tty4   tty61    vcsa1
core             mcelog              sdc       tty19  tty40  tty62    vcsa2
cpu              mem                 sg0       tty2   tty41  tty63    vcsa3
...//省略部分内容...
[[email protected] dev]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
...//省略部分内容...
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x1570d5d5

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   fd  Linux raid autodetect

//sdc硬盘同样操作...

[[email protected] ~]# fdisk -l

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
...//省略部分内容...
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x1570d5d5

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   fd  Linux raid autodetect

磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xe4b54d43

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    41943039    20970496   fd  Linux raid autodetect

? 2、查看Linux系统是否安装mdadm软件(制作软RAID工具),我们需要通过mdadm命令来制作RAID磁盘阵列。(若为安装此软件可以通过yum安装)

  • 命令格式:mdadm -C -v [/dev/要创建的RAID的设备名称] -lN -nN 磁盘设备 -xN 磁盘设备
  • 常用选项

    -C:创建

    -v:显示详细过程

    -l:RAID的级别

    -n:磁盘个数

    -x:保留磁盘(备用盘)

    -D:查看创建的RAID磁盘阵列

    -f:删除RAID阵列中的某块磁盘

[[email protected] ~]# rpm -q mdadm
mdadm-4.0-5.el7.x86_64

? 3、制作RAID 0磁盘阵列,然后查看是否创建成功。(可以用mdadm -D [RAID的设备名称]查看,也可以通过查看配置文件查看cat /proc/mdstat)

[[email protected] ~]# mdadm -C -v /dev/md0 -l0 -n2 /dev/sd[b-c]1
mdadm: chunk size defaults to 512K                 //将sdb1、sdc1做成RAID 0磁盘阵列
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[[email protected] ~]# mdadm -D /dev/md0              //查看RAID磁盘阵列的详细信息
/dev/md0:
           Version : 1.2
     Creation Time : Sat Aug 24 09:10:19 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 : Sat Aug 24 09:10:19 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 : 9b56f231:d4687383:83705a03:7d5d606a
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1   //构成RAID的磁盘
       1       8       33        1      active sync   /dev/sdc1
[[email protected] ~]# cat /proc/mdstat         //查看RAID磁盘阵列状态
Personalities : [raid0]
md0 : active raid0 sdc1[1] sdb1[0]           //输出创建的RAID磁盘阵列信息
      41908224 blocks super 1.2 512k chunks

unused devices: <none>

? 4、将RAID 0磁盘进行创建文件系统(格式化),再通过挂载,使磁盘可以正常使用。

[[email protected] ~]# mkfs.xfs /dev/md0
meta-data=/dev/md0               isize=512    agcount=16, agsize=654720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=10475520, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=5120, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[[email protected] ~]# mkdir /opt/md01
[[email protected] ~]# mount /dev/md0 /opt/md01
[[email protected] ~]# df -h
(敏感词汇分隔...)
/dev/sda2        20G  4.3G   16G   22% /
devtmpfs        1.9G     0  1.9G    0% /dev
tmpfs           1.9G     0  1.9G    0% /dev/shm
tmpfs           1.9G  9.0M  1.9G    1% /run
tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda5        10G   50M   10G    1% /home
/dev/sda1       2.0G  174M  1.9G    9% /boot
tmpfs           378M   12K  378M    1% /run/user/42
tmpfs           378M     0  378M    0% /run/user/0
/dev/md0         40G   33M   40G    1% /opt/md01

RAID 1介绍

RAID 1Windows系统中j镜像卷功能相同,它最少由2个硬盘组成,且两个硬盘上存储的数据均相同,以实现数据冗余。没有数据校验,数据被同等的写入到2个或者多个磁盘中,写入速度相对慢, 但是读取速度比较快。

  • 特点:

    • 高可靠
    • 不具备扩展性
    • 由大小相同的2块或多块磁盘组成
    • 容量是多块磁盘总和的一半
  • 构建RAID 1

    1、首先,在虚拟机中添加3块硬盘,每块硬盘分别是20G,然后,重启Linux系统,识别添加的硬盘,并将添加的硬盘进行分区管理,修改分区号为fd(Linux raid 自动)。(在这里我做三块磁盘是因为在企业中使用RAID时都会多做一块或多块备用磁盘,当在使用的磁盘有1块损坏时自动顶替上去,使磁盘正常运行。)

[[email protected] ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x95ce2aa8 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x95ce2aa8

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   fd  Linux raid autodetect

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

//sdc、sdd硬盘同样操作...

[[email protected] ~]# fdisk -l

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
...//省略部分内容...

磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xac9b4564

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    41943039    20970496   fd  Linux raid autodetect

磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x7be39280

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdd1            2048    41943039    20970496   fd  Linux raid autodetect

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x95ce2aa8

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   fd  Linux raid autodetect

? 2、通过mdadm命令构建RAID 1磁盘阵列,并构建保存备用盘;然后查看是否构建成功。

[[email protected] ~]# mdadm -C -v /dev/md1 -l1 -n2 /dev/sd[b-c]1 -x1 /dev/sdd1
mdadm: Note: this array has metadata at the start and  //构建RAID 1磁盘阵列,并设置备用盘
    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             //输入Y确认,回车
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[[email protected] ~]# cat /proc/mdstat         //查看RAID状态
Personalities : [raid1]
md1 : active raid1 sdd1[2](S) sdc1[1] sdb1[0]
      20954112 blocks super 1.2 [2/2] [UU]
      [========>............]  resync = 41.0% (8602240/20954112) finish=0.9min speed=206300K/sec               //构建RAID 1的两块磁盘在进行同步,同步完成后才能正常使用

unused devices: <none>
[[email protected] ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdd1[2](S) sdc1[1] sdb1[0]
      20954112 blocks super 1.2 [2/2] [UU]    //同步完成,可以正常使用磁盘

unused devices: <none>
[[email protected] ~]# mdadm -D /dev/md1        //查看RAID详细信息
/dev/md1:
           Version : 1.2
     Creation Time : Sat Aug 24 10:23:31 2019
        Raid Level : raid1
        Array Size : 20954112 (19.98 GiB 21.46 GB)      //容量
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 2                                //使用的磁盘数量
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Sat Aug 24 10:25:16 2019
             State : clean
    Active Devices : 2
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 1

Consistency Policy : resync

              Name : localhost.localdomain:1  (local to host localhost.localdomain)
              UUID : 459d9233:201d4c25:73f1b967:3b477186
            Events : 17

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1   ////构成RAID的磁盘
       1       8       33        1      active sync   /dev/sdc1

       2       8       49        -      spare   /dev/sdd1           //创建的备用盘

? 3、将RAID 0磁盘进行创建文件系统(格式化),再通过挂载,使磁盘可以正常使用。

[[email protected] ~]# mkfs.xfs /dev/md1
meta-data=/dev/md1               isize=512    agcount=4, agsize=1309632 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5238528, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[[email protected] ~]# mkdir /opt/si1
[[email protected] ~]# mount /dev/md1 /opt/si1
[[email protected] ~]# df -h
(敏感词汇分隔...)
/dev/sda2        20G  4.3G   16G   22% /
devtmpfs        1.9G     0  1.9G    0% /dev
tmpfs           1.9G     0  1.9G    0% /dev/shm
tmpfs           1.9G  9.0M  1.9G    1% /run
tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda5        10G   50M   10G    1% /home
/dev/sda1       2.0G  174M  1.9G    9% /boot
tmpfs           378M   12K  378M    1% /run/user/42
tmpfs           378M     0  378M    0% /run/user/0
/dev/md1         20G   33M   20G    1% /opt/si1

? 4、在挂载点中写入文件,并通过mdadm命令模拟撤掉一块磁盘,看备用盘是否会自动顶替,然后查看写入的文件是否能够正常查看。

[[email protected] ~]# touch /opt/si1/siti{1..10}.txt    //在si1中创建txt文件
[[email protected] ~]# ls /opt/si1                       //查看文件
siti10.txt  siti2.txt  siti4.txt  siti6.txt  siti8.txt
siti1.txt   siti3.txt  siti5.txt  siti7.txt  siti9.txt
[[email protected] ~]# mdadm -f /dev/md1 /dev/sdb1      //在RAID中撤掉sdb1磁盘
mdadm: set /dev/sdb1 faulty in /dev/md1
[[email protected] ~]# cat /proc/mdstat               //查看PAID阵列状态
Personalities : [raid1]
md1 : active raid1 sdd1[2] sdc1[1] sdb1[0](F)
      20954112 blocks super 1.2 [2/1] [_U]
      [========>............]  recovery = 41.0% (8602368/20954112) finish=0.9min speed=206284K/sec                               //开始重新同步磁盘

unused devices: <none>
[[email protected] ~]# mdadm -D /dev/md1             //查看RAID 1阵列的详细信息
/dev/md1:
           Version : 1.2
     Creation Time : Sat Aug 24 10:23:31 2019
        Raid Level : raid1
        Array Size : 20954112 (19.98 GiB 21.46 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 2
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Sat Aug 24 11:12:25 2019
             State : active, degraded, recovering
    Active Devices : 1
   Working Devices : 2
    Failed Devices : 1
     Spare Devices : 1

Consistency Policy : resync

    Rebuild Status : 86% complete

              Name : localhost.localdomain:1  (local to host localhost.localdomain)
              UUID : 459d9233:201d4c25:73f1b967:3b477186
            Events : 33

    Number   Major   Minor   RaidDevice State
       2       8       49        0      spare rebuilding   /dev/sdd1 //备用盘顶替撤掉的磁盘
       1       8       33        1      active sync   /dev/sdc1

       0       8       17        -      faulty   /dev/sdb1      //sdb1处于闲置状态
[[email protected] ~]# ls /opt/si1                            //查看si1中文件
siti10.txt  siti2.txt  siti4.txt  siti6.txt  siti8.txt    //显示文件,可以正常查看使用
siti1.txt   siti3.txt  siti5.txt  siti7.txt  siti9.txt

RAID 5介绍

RAID5 最少由三个硬盘组成,它将数据分散存储于阵列中的每个硬盘,并且还伴有一个数据校验位,数据位与校验位通过算法能相互验证,当丢失其中的一位时,RAID控制器能通过算法,利用其它两位数据将丢失的数据进行计算还原。

  • 特点

    • 高读取,写一般,高可靠
    • 至少3快大小相同的磁盘
    • 容量为n-1/n磁盘容量总和
  • 构建RAID 5

    1、首先,在虚拟机中添加4块硬盘,每块硬盘分别是20G,然后,重启Linux系统,识别添加的硬盘,并将添加的硬盘进行分区管理,修改分区号为fd(Linux raid 自动)。(与上面做RAID 1相同,用三块磁盘构建RAID 5,1块做备用盘)。

[[email protected] ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x6247f95d 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6247f95d

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   fd  Linux raid autodetect

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

//sdc、sdd、sde硬盘同样操作...

[[email protected] ~]# fdisk -l

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
...//省略部分内容...

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x88c98a9f

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   fd  Linux raid autodetect

磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf265b801

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdd1            2048    41943039    20970496   fd  Linux raid autodetect

磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x7922c5a3

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    41943039    20970496   fd  Linux raid autodetect

磁盘 /dev/sde:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x54d78d57

   设备 Boot      Start         End      Blocks   Id  System
/dev/sde1            2048    41943039    20970496   fd  Linux raid autodetect

? 2、通过mdadm命令构建RAID 5磁盘阵列,并构建保存备用盘;然后查看是否构建成功。

[[email protected] ~]# mdadm -C -v /dev/md5 -l5 -n3 /dev/sd[b-d]1 -x1 /dev/sde1
mdadm: layout defaults to left-symmetric         //构建RAID 5磁盘阵列
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/md5 started.
[[email protected] ~]# cat /proc/mdstat            //查看状态
Personalities : [raid6] [raid5] [raid4]
md5 : active raid5 sdd1[4] sde1[3](S) sdc1[1] sdb1[0]
      41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
      [=======>.............]  recovery = 37.6% (7898112/20954112) finish=1.0min speed=200093K/sec                     //正在同步...

unused devices: <none>
[[email protected] ~]# mdadm -D /dev/md5          //查看详细信息
/dev/md5:
           Version : 1.2
     Creation Time : Sat Aug 24 11:59:51 2019
        Raid Level : raid5
        Array Size : 41908224 (39.97 GiB 42.91 GB)   //容量40G
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Sat Aug 24 12:01:29 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 : 99% complete

              Name : localhost.localdomain:5  (local to host localhost.localdomain)
              UUID : 968fa4f5:020f5fec:4c726d63:df4b4b9b
            Events : 16

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1      //构建RAID 5的磁盘
       1       8       33        1      active sync   /dev/sdc1
       4       8       49        2      spare rebuilding   /dev/sdd1  //未同步好的磁盘

       3       8       65        -      spare   /dev/sde1            //备用盘
[[email protected] ~]# cat /proc/mdstat                        //常看状态
Personalities : [raid6] [raid5] [raid4]
md5 : active raid5 sdd1[4] sde1[3](S) sdc1[1] sdb1[0]
      41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
                                                      //同步完成
unused devices: <none>

3、在RAID 5阵列中撤掉sdb1磁盘,看看备用盘是否会顶替sdb1。

[[email protected] ~]# mdadm -f /dev/md5 /dev/sdb1     //从RAID 5中撤掉sdb1磁盘
mdadm: set /dev/sdb1 faulty in /dev/md5
[[email protected] ~]# cat /proc/mdstat             //查看状态
Personalities : [raid6] [raid5] [raid4]
md5 : active raid5 sdd1[4] sde1[3] sdc1[1] sdb1[0](F)
      41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU]
      [=>...................]  recovery =  5.7% (1212928/20954112) finish=1.3min speed=242585K/sec               //开始重新同步

unused devices: <none>
[[email protected]st ~]# mdadm -D /dev/md5           //查看详细信息
/dev/md5:
           Version : 1.2
     Creation Time : Sat Aug 24 11:59:51 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 : Sat Aug 24 12:13:10 2019
             State : clean, degraded, recovering
    Active Devices : 2
   Working Devices : 3
    Failed Devices : 1
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

    Rebuild Status : 14% complete

              Name : localhost.localdomain:5  (local to host localhost.localdomain)
              UUID : 968fa4f5:020f5fec:4c726d63:df4b4b9b
            Events : 22

    Number   Major   Minor   RaidDevice State
       3       8       65        0      spare rebuilding   /dev/sde1 //顶替sdb1
       1       8       33        1      active sync   /dev/sdc1
       4       8       49        2      active sync   /dev/sdd1

       0       8       17        -      faulty   /dev/sdb1             //sdb1处于闲置状态

4、将RAID 5阵列进行文件系统创建(格式化),并挂载使用。

[[email protected] ~]# mkfs.xfs /dev/md5
meta-data=/dev/md5               isize=512    agcount=16, agsize=654720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=10475520, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=5120, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[[email protected] ~]# mkdir /opt/siti02
[[email protected] ~]# mount /dev/md5 /opt/siti02
[[email protected] ~]# df -h
(敏感词汇分隔...)
/dev/sda2        20G  4.3G   16G   22% /
devtmpfs        1.9G     0  1.9G    0% /dev
tmpfs           1.9G     0  1.9G    0% /dev/shm
tmpfs           1.9G  9.1M  1.9G    1% /run
tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda5        10G   50M   10G    1% /home
/dev/sda1       2.0G  174M  1.9G    9% /boot
tmpfs           378M   12K  378M    1% /run/user/42
tmpfs           378M     0  378M    0% /run/user/0
/dev/md5         40G   33M   40G    1% /opt/siti02

注意:

我每次创建RAID磁盘阵列都是重新初始化虚拟机Linux系统,因为之前在虚拟机中安装好Linux系统时已经拍了快照,可以直接恢复。大家也可以自己操作下,希望可以帮助到大家!!!

原文地址:https://blog.51cto.com/14473285/2432257

时间: 2024-11-13 01:45:20

详解CentOS 7 中配置RAID 0 、RAID 1、RAID 5(理论+实践)的相关文章

详解CentOS 7中RAID 6与RAID 10配置(理论+实践)

RAID 6介绍 RAID6 是在RAID5 的基础上改良而成的,RAID6 再将数据校验位增加一位,所以允许损坏的硬盘数量也由 RAID5的一个增加到二个.由于同一阵列中两个硬盘同时损坏的概率非常少,所以,RAID6 用增加一块硬盘的代价,换来了比 RAID5更高的数据安全性,其特点与RAID 5基本相同,最少需要4块大小相同的磁盘,总容量为(n-2)/n. RAID 6的构建 1.首先,在虚拟机中添加5块硬盘,每块硬盘分别是20G,并重启虚拟机Linux系统,识别硬盘.然后,将添加的硬盘进行

详解CentOS 7中LVM 与磁盘配额

LVM 逻辑卷管理 LVM 概述 LVM 是 Linux 操作系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上.文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层的磁盘分区布局,因此能够在保持现有数据不变的情况下动态调整磁盘容量,从而增强磁盘管理的灵活性. 要建立 LVM 分区管理机制,首先,将普通分区或整个硬盘创建为物理卷:然后,将物理上比较分散的各物理卷的存储空间组成一个逻辑整体,即卷组:最后,基于卷组这个整体,分割出不同的数据存储空间,形成逻辑卷.逻辑卷才是最终用户可以格

详解CentOS 7中PXE高效批量网络装机与kickstart无人值守技术

PXE高效批量网络装机 服务器的批量部署 规模化:同时装配多台服务器 自动化:安装系统.配置各种服务 远程实现:不需要光盘.U盘等安装介质 关于PXE网络 PXE 预启动执行环境,在操作系统之前运行 可用于远程安装,构建无盘工作站 服务端 运行DHCP服务,用来分配地址.定位引导程序 DHCP 自动分配IP地址 定位引导文件 运行TFTP服务器,提供引导程序下载 TFTP 简单文件传输协议 使用UDP协议 端口号69号 优点:高效率 缺点:容量小 用于存放:引导程序pxelinux.0(sysl

详解CentOS配置和管理web服务-Apache

详解CentOS配置和管理web服务-Apache 家住海边喜欢浪:zhang789.blog.51cto.com 目录 1.web介绍 2.web历史和工作原理 3.http请求流程 4.关于Apache 5.Apache服务器软件安装使用 6.符号链接和虚拟目录 7.页面重定向 8.Apache日志文件 9.Apache安全配置 10.虚拟主机 10.1.基于IP 10.2.基于域名 10.3.基于端口 web服务器配置和管理 http协议简介 http协议,全称HyperText Tran

Icehouse版keystone配置完全详解(更新中)

本文全面解读Icehouse发行版keystone的配置文件keystone.conf [DEFAULT]admin_token=(string value)# 这是一个公知的密码,用于初始化keystone,强烈建议在生产模式中禁用,只需要在# keystone-paste.ini文件中移除AdminTokenAuthMiddleware这个pipeline即可 public_bind_host=(string value)# The IP Address of the network int

centos7.0 安装日志--图文详解-python开发环境配置

centos7.0发布之后,就下载了everthing的DVD镜像,今天有时间,所以决定在vbox底下体验一番--- 上图: 默认是体验安装,作为一个忠实粉丝,我决定选择直接安装! 这个界面是这次新版本更新后改的,它把以前要下一步.上一步可以修改的操作全部集中到一个页面来,默认选择是下图这样,比如你想修改软件安装选项只要点击相应选项就可以了. 每次你更改安装选项之后,它都会自动从新计算安装源,如果你的选择的资源本地没有,还可以通过网络来安装,默认网络是不启用的,所以我们需要自己手工设置一下网络.

详解Server 2012 R2部署WSUS4.0之四

在前面的文章中,我们介绍了如何进行WSUS4.0的部署以及如何利用WSUS进行补丁分发.但是现在我们要考虑这样一种情况,在一个大型企业中,一台WSUS服务器是满足不了所有用户的更新需求的,这时我们就需要进行WSUS服务器的链式部署,即分别设置WSUS的上游服务器和下游服务器.所谓上游服务器就是从微软下载更新,而下游服务器则从上游服务器下载更新.我们在最开始部署的第一台WSUS是roleserver,所以在此案例中,他就是我们的上游服务器.在下面的服务器名中填写roleserver.contoso

SpringMVC配置web.xml文件详解(列举常用的配置)

常用的web.xml的配置 1.Spring 框架解决字符串编码问题:过滤器 CharacterEncodingFilter(filter-name) 2.在web.xml配置监听器ContextLoaderListener(listener-class) ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息.因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默

Android Google Map v2详解之:开发环境配置

Android Google Map v2详解之:开发环境配置                                       --转载请注明出处:coder-pig 说在前面: 说到地图定位,现在越来越多的社交app都加入了地图和定位的功能模块,用户很多的时候 也会用到这些东东,比如,到外面吃饭,次次吃饭前都要拍下照片发到朋友圈,定个位,然后发条说说, 炫耀一下自己今天吃了什么高大上的东东,炫耀和攀比心理我懂,不过,一次下班去吃饭,看到一妹子 吃饭,拍照+发朋友圈,足足用了大概20