详解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系统,识别硬盘。然后,将添加的硬盘进行分区管理,修改分区号为fd(Linux raid 自动),(我这里做用4块硬盘构架RAID 6磁盘阵列,1块硬盘做备用盘。)

[[email protected] ~]# cd /dev
[[email protected] dev]# ls
agpgart          kmsg                sda       tty    tty30  tty53    vcs
autofs           log                 sda1      tty0   tty31  tty54    vcs1
block            loop-control        sda2      tty1   tty32  tty55    vcs2
bsg              lp0                 sda3      tty10  tty33  tty56    vcs3
btrfs-control    lp1                 sda4      tty11  tty34  tty57    vcs4
bus              lp2                 sda5      tty12  tty35  tty58    vcs5
cdrom            lp3                 sdb       tty13  tty36  tty59    vcs6
char             mapper              sdc       tty14  tty37  tty6     vcsa
console          mcelog              sdd       tty15  tty38  tty60    vcsa1
core             mem                 sde       tty16  tty39  tty61    vcsa2
cpu              mqueue              sdf       tty17  tty4   tty62    vcsa3
...//省略部分内容...
[[email protected] dev]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

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

Device does not contain a recognized partition table
使用磁盘标识符 0xf0ae3f91 创建新的 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
磁盘标识符:0xf0ae3f91

   设备 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、sdf同样操作...

[[email protected] dev]# fdisk -l

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes

...//省略部分内容...

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdd1            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
磁盘标识符:0x377651e1

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

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdf1            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
磁盘标识符:0xf0ae3f91

   设备 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
磁盘标识符:0x7f05f086

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

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

[[email protected] dev]# mdadm -C -v /dev/md6 -l6 -n4 /dev/sd[b-e]1 -x1 /dev/sdf1
mdadm: layout defaults to left-symmetric        //构建RAID 6磁盘阵列
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.
[[email protected] dev]# cat /proc/mdstat           //查看RAID磁盘阵列状态
Personalities : [raid6] [raid5] [raid4]
md6 : active raid6 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 = 23.8% (5006208/20954112) finish=1.3min speed=200248K/sec                                //正在同步磁盘

unused devices: <none>
[[email protected] dev]# mdadm -D /dev/md6          //查看RAID阵列详细信息
/dev/md6:
           Version : 1.2
     Creation Time : Sat Aug 24 21:35:32 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                               //组成RAID的磁盘数量
     Total Devices : 5
       Persistence : Superblock is persistent

       Update Time : Sat Aug 24 21:37:17 2019
             State : clean
    Active Devices : 4
   Working Devices : 5
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:6  (local to host localhost.localdomain)
              UUID : 3d6b6ec3:05bcd2c1:696cf1ab:1b94b41d
            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        2      active sync   /dev/sdd1
       3       8       65        3      active sync   /dev/sde1

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

? 3、用mdadm -f命令模拟构建的RAID 6 中一块磁盘损坏,看看备用盘是否会顶替损坏的磁盘。

[[email protected] dev]# mdadm -f /dev/md6 /dev/sdb1  //撤掉RAID 6阵列中sdb1磁盘
mdadm: set /dev/sdb1 faulty in /dev/md6
[[email protected] dev]# mdadm -D /dev/md6            //查看RAID阵列详细信息
/dev/md6:
           Version : 1.2
     Creation Time : Sat Aug 24 21:35:32 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 : 5
       Persistence : Superblock is persistent

       Update Time : Sat Aug 24 21:55:16 2019
             State : clean
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 1
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:6  (local to host localhost.localdomain)
              UUID : 3d6b6ec3:05bcd2c1:696cf1ab:1b94b41d
            Events : 36

    Number   Major   Minor   RaidDevice State
       4       8       81        0      active sync   /dev/sdf1  //备用盘顶替撤掉的磁盘
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        2      active sync   /dev/sdd1
       3       8       65        3      active sync   /dev/sde1

       0       8       17        -      faulty   /dev/sdb1

RAID 10介绍

`

RAID 10也叫RAID 1+0,顾名思义,就是RAID 1RAID 0的组合,RAID1+0 是先将数据进行镜像操作,然后再对数据进行分组,RAID 1 在这里就是一个冗余的备份阵列,而RAID 0 则负责数据的读写阵列。至少要四块硬盘,四块硬盘组成两组RAID 1,再把两组RAID 1组成RAID 0,以提高读写速度。RAID 10对存储容量的利用率和RAID 1`一样低,只有磁盘总容量的一半。

Raid1+0方案造成了50%的磁盘浪费,但是它提供了200%的速度和单磁盘损坏的数据安全性,并且当同时损坏的磁盘不在同一Raid1中,就能保证数据安全性,RAID 10能提供比RAID 5更好的性能。RAID 10也是在实际应用中比较常用的磁盘阵列。

  • RAID 10的构建

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

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

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

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

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p):
Using default response 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
磁盘标识符:0xca2594aa

   设备 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
磁盘标识符:0xca2594aa

   设备 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
磁盘标识符:0x66e98

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdd1            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
磁盘标识符:0x2d9046ca

   设备 Boot      Start         End      Blocks   Id  System
/dev/sde1            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
磁盘标识符:0x8db10f78

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            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  //创建RAID 1磁盘阵列
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.
[[email protected] ~]# mdadm -C -v /dev/md2 -l1 -n2 /dev/sd[d-e]1  //创建RAID 1磁盘阵列
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/md2 started.
[[email protected] ~]# cat /proc/mdstat           //查看RAID状态
Personalities : [raid1]
md2 : active raid1 sde1[1] sdd1[0]
      20954112 blocks super 1.2 [2/2] [UU]
                                                //成功创建的两组RAID 1磁盘阵列
md1 : active raid1 sdc1[1] sdb1[0]
      20954112 blocks super 1.2 [2/2] [UU]

unused devices: <none>

? 3、将两组RAID 1磁盘阵列组成RAID 0磁盘阵列,并查看磁盘整列是否创建成功。

[[email protected] ~]# mdadm -C -v /dev/md10 -l0 -n2 /dev/md1 /dev/md2 //创建RAID 0磁盘阵列
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md10 started.
[[email protected] ~]# cat /proc/mdstat         //查看状态
Personalities : [raid1] [raid0]               //创建的RAID 0磁盘阵列
md10 : active raid0 md2[1] md1[0]
      41875456 blocks super 1.2 512k chunks

md2 : active raid1 sde1[1] sdd1[0]
      20954112 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sdc1[1] sdb1[0]
      20954112 blocks super 1.2 [2/2] [UU]

unused devices: <none>
[[email protected] ~]# mdadm -D /dev/md10      //查看创建的RAID 0磁盘阵列
/dev/md10:
           Version : 1.2
     Creation Time : Sat Aug 24 23:51:34 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 : Sat Aug 24 23:51:34 2019
             State : clean
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

        Chunk Size : 512K

Consistency Policy : none

              Name : localhost.localdomain:10  (local to host localhost.localdomain)
              UUID : 9ee47118:a7934574:6ccd01df:6e20700b
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       9        1        0      active sync   /dev/md1  //组成RAID 0的两块RAID 1磁盘
       1       9        2        1      active sync   /dev/md2

通过上面的讲解与实践操作大家应该能够配置RAID 6RAID 10,希望对大家有所帮助。

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

时间: 2024-08-26 23:41:29

详解CentOS 7中RAID 6与RAID 10配置(理论+实践)的相关文章

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

RAID介绍 RAID全称是独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想是把多个磁盘组合起来,组合一个磁盘阵列组,使得性能大幅提高.最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术. RAID可以充分发挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会 受到损坏硬盘的影响. R

详解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

详解Centos默认磁盘分区

对于有经验的Linux系统管理员,在安装系统之前都会对系统的分区进行规划:针对这一需求,下面就通过默认的Centos分区与大家分享一些关于Linux系统的知识.Linux系统的磁盘命名规范:硬盘类型标记:第一个SCSI磁盘记为/dev/sda,第二个SCSI磁盘记为/dev/sdb:第一个SATA磁盘记为/dev/hda,第二个为/dev /hdb,以此类推.硬盘分区标记:Linux系统中,每一个磁盘的各个分区编号是从1开始的,例如,第一个SCSI磁盘的第一个分区为/dev/sda1,第二分区为

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

详解WebService开发中四个常见问题(1)

详解WebService开发中四个常见问题(1) WebService开发中经常会碰到诸如WebService与方法重载.循环引用.数据被穿该等等问题.本文会给大家一些很好的解决方法. AD:WOT2014:用户标签系统与用户数据化运营培训专场 任何问题都需要从它的根源说起,所以简单说一下WebService的工作原理.客户端调用一个WebService的方法,首先需要将方法名和需要传递的参数包装成XML(也就是SOAP包),通常是通过HTTP传递到服务器端,然后服务器端解析这段XML,得到被调

Android菜单详解——理解android中的Menu

Android菜单详解--理解android中的Menu 前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至今为止看到的最好的一本android书,中文版出到<精通Android 2>. 理解Android的菜单 菜单是许多应用程序不可或缺的一部分,Android中更是如此,所有搭载Android系统的手机甚至都要有一个"Menu&qu

详解WebService开发中四个常见问题(2)

详解WebService开发中四个常见问题(2) WebService开发中经常会碰到诸如WebService与方法重载.循环引用.数据被穿该等等问题.本文会给大家一些很好的解决方法. AD:WOT2014:用户标签系统与用户数据化运营培训专场 问题三:循环引用 还是先来看一个例子.下面是WebService的接口: 1 @WebService2     public interface IHello {3     4         @WebMethod5         public Str