天天看点

rhel6.5常见的软件RAID阵列创建

  • RAID(Redundant Array of Independent Disk)

    ,经常被翻译为链接磁盘冗余阵列,最早的思想是用来组合小磁盘,代替大容量的磁盘,并且尽量的提供磁盘冗余能力,提供磁盘在硬件损毁时,提供对于数据一定的冗余能力;
  • 这里通过软件来实现

    RAID

    阵列,软件

    RAID

    和硬件

    RAID

    的性能相差特别大,但是可以通过软件

    RAID

    来了解

    RAID

    的特性
  • RAID

    的几种技术:
    • 条带化技术:如何将数据分散存储在多块盘上面,将数据按照一定的大小划分称为一定的数量然后将这些划分好的数据按照一定的位置进行存放;
    • 磁盘镜像化技术:用于实现将数据划分成为相同的几份;
    • 检验码技术:数据在进行条带化的存储的时候,将等长的数据,计算校验码的值,用于在数据出错时,进行数据的检错和恢复;校验技术例如奇偶校验;
  • RAID阵列的级别
  • 级别仅仅是不同的功能的划分,和性能等无关
  • RAID 0

    :
  • 仅仅使用条带化技术,可以改善数据的存入和读取性能,但是不提供数据的冗余能力,至少需要两块磁盘来构建

    RAID 0

    阵列
    rhel6.5常见的软件RAID阵列创建
  • RAID 1

    :
  • 仅仅使用镜像技术,写性能提升,读性能提升,写性能下降,存在冗余能力,磁盘利用率为

    1/2

    ,至少需要两块磁盘;
    rhel6.5常见的软件RAID阵列创建
  • RAID 2

    :
  • 使用汉明码的方式将需要存储的数据进行编码,并且使用条带化技术进行存储,在进行数据读取时,要求具有共轴同步技术,对于大文件读取性能优秀,对于小文件,频繁的读取不足一个扇区的数据,导致性能下降,较少应用于

    PC

    机等小文件操作频繁的技术;
  • `RAID 3

    :
  • 使用条带化和校验码技术,通过条带化技术将原始数据划分成为两份,分别存储在不同磁盘上面相同位置,并且根据校验码技术计算出校验和,将校验和保存在独立的第三块磁盘上面,通过这种技术,磁盘保证了数据的读取和写入性能,并且数据具有一定的冗余能力,数据的校验以及恢复能力有限,仅仅允许单块磁盘出错,否则数据无法进行恢复;磁盘的利用率为

    n-1/n

    ;
    rhel6.5常见的软件RAID阵列创建
  • RAID 4

    :
  • 是一种类似于

    RAID 3

    的技术,

    RAID 3

    实现的是按位进行数据的存储,读取以及计算校验码,

    RAID 4

    实现的是按照一定的数据块来进行数据的读取和存储,并且计算出校验码,以及保证数据块的完整性,不被条带化技术影响;
  • RAID 5

    :
  • 是对于

    RAID 3

    的一种改进,将数据的校验盘的值,存储在不同的磁盘上面,也就是打乱数据存储和校验码存储,解决了校验码盘存储错误的导致数据校验无法完成的缺点,至少需要三块磁盘,磁盘的利用空间为

    n-1/n

    ;
    rhel6.5常见的软件RAID阵列创建
  • 常见的RAID阵列
  • RAID

    阵列只是对于上述不同

    RAID

    进行的组合,为了应对不同的业务场景,组合出不同的

    RAID

    场景;
  • RAID 0+1

  • 表示的含义是首先进行条带化,然后进行镜像化;适合于对属于安全性要求较高场景,并且首先进行条带化,数据的写入速度高,可以保证数据的及时写入,可以同时保证数据的安全性和数据的写入性能;
  • RAID 1+0

    :
  • 表示的含义是首先进行镜像化,其次进行条带化;数据的安全性好,只需要保证镜像化的数据不会同时损坏相同的部分,但是数据的写入性能稍差;
  • RAID 5+0

    :
  • 表示首先进行的是奇偶校验,并且将校验的值和原始数据打乱,然后对这些数据进行条带化,存储在不同的磁盘上面,这种情况可以应用于对于数据的恢复以及数据的写入要求比较高的场景;
  • jbod

    :
  • 这个是名副其实的用来将多个小盘整合成为一个大空间的磁盘来使用的软件,不提供冗余能力,空间利用率高,因为这个软件就是用来提高空间利用率的,通常至少需要两块磁盘
  • raid

    阵列的实现:
    • 首先需要内核支持

      RAID

      多阵列设备,在内核中有一个

      multi disks

      模块用于对多设备的支持,首先需要模拟出一个逻辑

      RAID

      设备,设备文件通常是

      /dev/md0

      ,

      /dev/md5

      等根据识别顺序命名,应用程序提请数据请求,将请求发送给内核,内核提交给

      md

      设备,再通过

      md

      设备完成数据在真实硬盘上数据的存储;,
  • 内核的需要

    md

    模块完成这样的转换,但是如果操作系统崩溃,内核功能丧失,所以需要 md 模块会将磁盘设别标记为内核可以识别的

    fd

    类型,并且模块会存储一些元数据用于来识别 RAID 阵列;
  • 常见的RAID类型
  • 硬件实现的方式,这种方式实现的

    RAID

    阵列一点都不廉价,但是性能优异,并且为稳定;

    RAID

    芯片是十分昂贵的,

    RAID

    自带

    CPU

    以及内存,缓存等设备,设置提供电池,这些特性都是用来保证数据的安全性的,所以价格也就不会低了;
  • 软件实现方式:这种方式仅仅用来演示

    RAID

    的特性,软件

    RAID

    的实现需要满足以下要求:
    • 1.首先内核需要支持软件

      RAID

      ,软件

      RAID

      的实现是内核的

      md(multi disks)

      ;
    • 2.内核需要模拟出一个软件逻辑RAID,提供设备文件

      /dev/md#

      ;
    • 3.存储数据数据时,请求不再交给

      sda

      设备,而是交给内核

      md

      模块;
    • 4.该模块完成数据的存储;
  • md

    模块:
    • 1.根据指定配置将指定的硬盘配置称为

      RAID

      设备,软件

      RAID

      的性能,取决于

      CPU

      的能力,硬盘的能力;
    • 2.对于

      RAID

      底下的磁盘模块必须标记为内核可以识别的模块,这是为了防止操作系统崩溃之后数据被按照普通的数据格式进行读取,所以对于

      RAID

      的磁盘需要标记为内核可以识别为

      RAID

      阵列的类型称为

      fd

      类型;
    • 3.在

      RAID

      的磁盘上面存储的一些元数据,用来在操作系统重装时,用来识别

      RAID

      阵列;
  • RAID

    阵列的管理工具:
  • mdadm

    :
    • 创建模式:
      • -C[大写]

        :
        • -l

          :指定

          RAID

          阵列的级别;
        • -n

          :设备的个数;
        • -a yes | no

          :自动为其创建设备文件;
        • -c[小写]

          :指定

          chunk

          的大小,表示数据块的大小;
        • -x

          :表示用于指定空闲盘的个数,

          n+x=

          你所提供的设备数;
    • 管理模式:
      • -add

        :用于添加阵列中的磁盘;
      • --remove

        :用于移除阵列中的磁盘;
      • -fail

        :用于模拟损坏某个磁盘;
      • mdadm /dev/md# --fail /dev/vdb3

        :模拟这个阵列的

        vdb3

        损坏;
      • -S | --stop /dev/md#

        :用于停止某个阵列;
    • 监控模式:
      • -F

        :用于设定监控模式,也就是阵列出现问题的告警方式,常见的有

        mail program

        等等;
      • -D /dev/md#

        :

        Print details of one or more md devices

        ,这里必须指定阵列,而不是具体的磁盘设备;
    • 装配模式:
      • -A

        :表示用于装配一个已经存在的阵列;
    • mdadm --detail --scan > /etc/mdadm.conf

      :表示用于设置配置文件;
  • 删除阵列的正确方式,首先应该停止阵列,然后进行删除;
  • mdadm -S /dev/md#

  • rm /dev/md#

  • 扫描模式常常用来制作配置文件;
  • 1.

    mdadm –D –scan > /etc/mdadm.conf

    ;
  • 2.启动时,

    mdadm –A /dev/md1

    可以重新自动进行装配,不需要手动的配置;
  • 创建RAID
  • 创建

    RAID 0

    :
  • 1.创建一个

    2G

    RAID 0

    也就是需要使用至少两块

    1G

    的磁盘或者分区;
Disk identifier: 

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1                            +    Linux
/dev/vdb2                              Linux
           
  • 这里还需要调整类型
Device Boot      Start         End      Blocks   Id  System
/dev/vdb1                            +  fd  Linux raid autodetect
/dev/vdb2                            fd  Linux raid autodetect

           
  • 然后通知内核进行调整
[root@server23 ~]# partx /dev/vdb
# 1:        63-  2098655 (  2098593 sectors,   1074 MB)
# 2:   2098656-  4197311 (  2098656 sectors,   1074 MB)
           
  • 接下来的操作可能需要安装

    mdadm-3.2.6-7.el6.x86_64

    ,来提供

    mdadm

    命令
[[email protected] ~]# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/vdb{1,2}
mdadm: Defaulting to version  metadata
mdadm: array /dev/md0 started.
           
  • 如果出现了以下错误
[[email protected] ~]# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/vdb{1,2}
mdadm: /dev/vdb1 appears to contain an ext2fs file system
    size=K  mtime=Mon Jan  :: 
mdadm: super1.x cannot open /dev/vdb2: Device or resource busy
mdadm: /dev/vdb2 is not suitable for this array.
mdadm: create aborted
           
  • 是因为之前的进行过格式化操作,已经存在文件系统,可以删除这个分区,之后,重新进行创建;
  • 如果正常,执行下面的命令来查看创建的

    RAID

    设备
[root@server23 ~]# cat /proc/mdstat 
Personalities : [raid] 
md : active raid vdb2[] vdb1[]
       blocks super  k chunks

unused devices: <none>
           
  • 设备状态是正常的,所以可以进行格式化这个设备
[[email protected] ~]# mke2fs -j /dev/md0 
mke2fs  (-May-)
warning:  blocks unused.

Filesystem label=
OS type: Linux
Block size= (log=)
Fragment size= (log=)
Stride= blocks, Stripe width= blocks
 inodes,  blocks
 blocks (%) reserved for the super user
First data block=
Maximum filesystem blocks=
 block groups
 blocks per group,  fragments per group
 inodes per group
Superblock backups stored on blocks: 
    , , , , 

Writing inode tables: done                            
Creating journal ( blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every  mounts or
 days, whichever comes first.  Use tune2fs -c or -i to override.
           
  • 接下来可以将这个目录挂载到本地,然后进行使用
[root@server23 ~]# mount /dev/md0 /mnt/md0/
[root@server23 md0]# df
Filesystem                   K-blocks    Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root   7853764 1262644   6192172  17% /
tmpfs                                         % /dev/shm
/dev/vda1                                 % /boot
/dev/md0                                % /mnt/md0
           
  • 使用监控模式来查看

    RAID

    阵列的使用情况
[[email protected] ~]# mdadm -D /dev/md0 
/dev/md0:
        Version : 
  Creation Time : Thu Apr  :: 
     Raid Level : raid0
     Array Size :  ( GiB  GB)
   Raid Devices : 
  Total Devices : 
    Persistence : Superblock is persistent

    Update Time : Thu Apr  :: 
          State : clean 
 Active Devices : 
Working Devices : 
 Failed Devices : 
  Spare Devices : 

     Chunk Size : K

           Name : server23.com:  (local to host server23.com)
           UUID : db67d3:a553f8b3:a30596f5:d12598ea
         Events : 

    Number   Major   Minor   RaidDevice State
                                 active sync   /dev/vdb1
                                 active sync   /dev/vdb2
           
  • RAID 0

    仅仅是条带化技术,所以任何一块磁盘出现损坏,数据都无法进行访问;
  • 接下来实现

    RAID 1

  • 创建一个

    1G

    RAID 1

    ,这里需要两个相同的

    RAID

    磁盘,使用两个

    1G

    的分区,并且调整类型
Disk identifier: 

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1                            +  fd  Linux raid autodetect
/dev/vdb2                            fd  Linux raid autodetect
           
  • 通知内核重读分区表
[[email protected] mnt]# partx /dev/vdb
# 1:        63-  2098655 (  2098593 sectors,   1074 MB)
# 2:   2098656-  4197311 (  2098656 sectors,   1074 MB)
# 3:         0-       -1 (        0 sectors,      0 MB)
# 4:         0-       -1 (        0 sectors,      0 MB)
           
  • 接下来创建

    RAID 1

  • 如果在分区的过程中出现这个错误:
WARNING: Re-reading the partition table failed with error : Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe() or kpartx()
Syncing disks.
           
  • 使用命令读取新的分区表,会失败,
[[email protected] mnt]# partprobe /dev/vdb
Warning: WARNING: the kernel failed to re-read the partition table on /dev/vdb (Device or resource busy).  As a result, it may not reflect all of your changes until after reboot.
           
  • 然后划分新的分区,并且调整类型
Disk identifier: 

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1                            +  fd  Linux raid autodetect
/dev/vdb2                            fd  Linux raid autodetect
[[email protected] ~]# partx /dev/vdb
# 1:        63-  2098655 (  2098593 sectors,   1074 MB)
# 2:   2098656-  4197311 (  2098656 sectors,   1074 MB)
# 3:         0-       -1 (        0 sectors,      0 MB)
# 4:         0-       -1 (        0 sectors,      0 MB)
           
  • 接下来需要创建

    RAID 1

[[email protected] ~]# mdadm -C /dev/md1 -a yes -n  -l  /dev/vdb1 /dev/vdb2 
mdadm: /dev/vdb1 appears to be part of a raid array:
    level=raid1 devices= ctime=Thu Apr  :: 
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=
mdadm: /dev/vdb2 appears to be part of a raid array:
    level=raid1 devices= ctime=Thu Apr  :: 
Continue creating array? y
mdadm: Defaulting to version  metadata
mdadm: array /dev/md1 started.
           
  • 可以查看两个磁盘在第一次进行镜像的状态
[root@server23 ~]# cat /proc/mdstat 
Personalities : [raid0] [raid1] 
md1 : active raid1 vdb2[] vdb1[]
       blocks super  [/] [UU]
      [========>............]  resync = % (/) finish=min speed=K/sec

unused devices: <none>
[root@server23 ~]# cat /proc/mdstat 
Personalities : [raid0] [raid1] 
md1 : active raid1 vdb2[] vdb1[]
       blocks super  [/] [UU]
      [===========>.........]  resync = % (/) finish=min speed=K/sec

unused devices: <none>
           
  • 接下来进行格式化操作
[[email protected] ~]# mke2fs -j /dev/md1 
mke2fs  (-May-)
Filesystem label=
OS type: Linux
Block size= (log=)
Fragment size= (log=)
Stride= blocks, Stripe width= blocks
 inodes,  blocks
 blocks (%) reserved for the super user
First data block=
Maximum filesystem blocks=
 block groups
 blocks per group,  fragments per group
 inodes per group
Superblock backups stored on blocks: 
    , , , 
           
  • 接下来可以模拟损坏一块的磁盘,并且移除这个损坏的磁盘
[[email protected] ~]# mdadm /dev/md1 -f /dev/vdb1 
mdadm: set /dev/vdb1 faulty in /dev/md1
[[email protected] ~]# mdadm /dev/md1 --remove /dev/vdb1 
mdadm: hot removed /dev/vdb1 from /dev/md1
           
  • 为了完成镜像,这里还需要添加一块磁盘,这里的话,可以将移除的磁盘添加回来
[root@server23 ~]# mdadm /dev/md1 --add /dev/vdb1 
mdadm: added /dev/vdb1
           
  • 添加磁盘之后,还需要进行新的同步
[[email protected] ~]# cat /proc/mdstat 
Personalities : [raid0] [raid1] 
md1 : active raid1 vdb1[] vdb2[]
      1048256 blocks super 1.2 [/] [_U]
      [=====>...............]  recovery = 25.0% (262144/1048256) finish=0.4min speed=26214K/sec

unused devices: <none>
           
  • 查看配置的

    RAID 1

    的状态
[[email protected] ~]# mdadm -D /dev/md1 
/dev/md1:
        Version : 
  Creation Time : Thu Apr  :: 
     Raid Level : raid1
     Array Size :  ( MiB  MB)
  Used Dev Size :  ( MiB  MB)
   Raid Devices : 
  Total Devices : 
    Persistence : Superblock is persistent

    Update Time : Thu Apr  :: 
          State : clean 
 Active Devices : 
Working Devices : 
 Failed Devices : 
  Spare Devices : 

           Name : server23.com:  (local to host server23.com)
           UUID : aef4598c:b80129e:d946b8:c9f2a851
         Events : 

    Number   Major   Minor   RaidDevice State
                                 active sync   /dev/vdb1
                                 active sync   /dev/vdb2
           
  • 接下来如何停止一个阵列:
  • 首先需要卸载存在的挂载
[root@server23 ~]# umount /mnt/md1/
[root@server23 ~]# df
Filesystem                   K-blocks    Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root   7853764 1266712   6188104  17% /
tmpfs                                         % /dev/shm
/dev/vda1                                 % /boot
           
  • 接下来停止

    RAID

    服务
  • 然后删除

    RAID

    的设备文件
  • 然后可以看到
[root@server23 ~]# cat /proc/mdstat 
Personalities : [raid] [raid1] 
unused devices: <none>
           
  • 接下来尝试配置使磁盘具有热切换
    这里需要提供三块磁盘,使用

    RAID 1

    来进行实验
  • 首先需要准备三块分区
Device Boot      Start         End      Blocks   Id  System
/dev/vdb1                            +  fd  Linux raid autodetect
/dev/vdb2                            fd  Linux raid autodetect
/dev/vdb3                            fd  Linux raid autodetect
           
  • 接下来创建

    RAID

    阵列,使得两块磁盘在线,一块磁盘作为热备份,必要时,进行快速切换
  • 因为这里使用的分区存在前面的

    RAID

    阵列的一些元数据等信息,所以会有下面的提示
[[email protected] ~]# mdadm -C /dev/md2 -l  -n  -x  /dev/vdb1 /dev/vdb2 /dev/vdb3 
mdadm: /dev/vdb1 appears to be part of a raid array:
    level=raid1 devices= ctime=Thu Apr  :: 
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=
mdadm: /dev/vdb2 appears to be part of a raid array:
    level=raid1 devices= ctime=Thu Apr  :: 
Continue creating array? y
mdadm: Defaulting to version  metadata
mdadm: array /dev/md2 started.
           
  • 接下来进行格式化操作
[[email protected] ~]# mke2fs -j /dev/md2 
mke2fs  (-May-)
Filesystem label=
OS type: Linux
Block size= (log=)
Fragment size= (log=)
Stride= blocks, Stripe width= blocks
 inodes,  blocks
 blocks (%) reserved for the super user
First data block=
Maximum filesystem blocks=
 block groups
 blocks per group,  fragments per group
 inodes per group
Superblock backups stored on blocks: 
    , , , 
Writing inode tables: done                            
Creating journal ( blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every  mounts or
 days, whichever comes first.  Use tune2fs -c or -i to override.
           
  • 然后可以进行挂载
  • 复制文件,并且查看

    RAID

    的状态
[[email protected] md2]# cp /etc/passwd .
[[email protected] md2]# cat /proc/mdstat 
Personalities : [raid0] [raid1] 
md2 : active raid1 vdb3[2](S) vdb2[1] vdb1[0]
      1048256 blocks super 1.2 [2/2] [UU]

unused devices: <none>
           
  • 使用管理类命令查看具体的状态
[[email protected] md2]# mdadm -D /dev/md2 
/dev/md2:
        Version : 
  Creation Time : Thu Apr  :: 
     Raid Level : raid1
     Array Size :  ( MiB  MB)
  Used Dev Size :  ( MiB  MB)
   Raid Devices : 
  Total Devices : 
    Persistence : Superblock is persistent

    Update Time : Thu Apr  :: 
          State : clean 
 Active Devices : 
Working Devices : 
 Failed Devices : 
  Spare Devices : 

           Name : server23.com:  (local to host server23.com)
           UUID : a7:c1a9cdd8:ce7:be630d
         Events : 

    Number   Major   Minor   RaidDevice State
                                 active sync   /dev/vdb1
                                 active sync   /dev/vdb2

                           -      spare   /dev/vdb3
           
  • 接下来模拟一块磁盘的损坏,查看空闲磁盘是否会自动顶替
[[email protected] md2]# mdadm /dev/md2 --fail /dev/vdb1 
mdadm: set /dev/vdb1 faulty in /dev/md2
           
  • 查看磁盘切换的状态
[[email protected] md2]# cat /proc/mdstat 
Personalities : [raid0] [raid1] 
md2 : active raid1 vdb3[2] vdb2[1] vdb1[0](F)
      1048256 blocks super 1.2 [2/1] [_U]
      [======>..............]  recovery = 31.2% (327680/1048256) finish=0.4min speed=25206K/sec

unused devices: <none>
           
  • 查看相信的信息,已经正常的进行了切换
[[email protected] md2]# mdadm -D /dev/md2 
/dev/md2:
        Version : 
  Creation Time : Thu Apr  :: 
     Raid Level : raid1
     Array Size :  ( MiB  MB)
  Used Dev Size :  ( MiB  MB)
   Raid Devices : 
  Total Devices : 
    Persistence : Superblock is persistent

    Update Time : Thu Apr  :: 
          State : clean 
 Active Devices : 
Working Devices : 
 Failed Devices : 
  Spare Devices : 

           Name : server23.com:  (local to host server23.com)
           UUID : a7:c1a9cdd8:ce7:be630d
         Events : 

    Number   Major   Minor   RaidDevice State
                                 active sync   /dev/vdb3
                                 active sync   /dev/vdb2

                           -      faulty   /dev/vdb1
           
  • 通过上述配置文件的对比,发现已经进行了切换
  • 对于这种出现故障的磁盘,应该及时的移除,然后重新添加新的磁盘,用于构建冗余磁盘
[[email protected] md2]# mdadm /dev/md2 --remove /dev/vdb1 
mdadm: hot removed /dev/vdb1 from /dev/md2
           
  • 这里还是将上面模拟损坏的分区添加回去
[root@server23 md2]# mdadm /dev/md2 --add /dev/vdb1 
mdadm: added /dev/vdb1
           
  • 对于

    RAID

    的信息如果需要保存为配置文件需要执行
[[email protected] md2]# mdadm --detail --scan
ARRAY /dev/md2 metadata=1.2 spares=1 name=server23.com:2 UUID=567843a7:c1a9cdd8:08175ce7:12be630d
           
  • 将上面的输出信息重定向为

    /etc/mdadm.conf

    ;
  • 通过查询

    mdadm

    的手册,发现
Currently, Linux supports LINEAR md devices,  RAID0  (striping),  RAID1
       (mirroring),  RAID4,  RAID5, RAID6, RAID10, MULTIPATH, FAULTY, and CONTAINER.
           
  • 接下来实现的上面支持的

    RAID 5

    ,并且提供冗余磁盘,
Device Boot      Start         End      Blocks   Id  System
/dev/vdb1                            +  fd  Linux raid autodetect
/dev/vdb2                            fd  Linux raid autodetect
/dev/vdb3                            fd  Linux raid autodetect
/dev/vdc1                            +  fd  Linux raid autodetect
           
  • 接下来创建

    RAID 5

    磁盘
[[email protected] mnt]# mdadm -C /dev/md3 -l  -n  -x  /dev/vdb1 /dev/vdb2 /dev/vdb3 /dev/vdc1 
mdadm: /dev/vdb1 appears to be part of a raid array:
    level=raid1 devices= ctime=Thu Apr  :: 
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=
mdadm: /dev/vdb2 appears to be part of a raid array:
    level=raid1 devices= ctime=Thu Apr  :: 
mdadm: /dev/vdb3 appears to be part of a raid array:
    level=raid1 devices= ctime=Thu Apr  :: 
Continue creating array? y
mdadm: Defaulting to version  metadata
mdadm: array /dev/md3 started.
           
  • 查看

    RAID 5

    阵列的状态
[[email protected] mnt]# mdadm -D /dev/md3 
/dev/md3:
        Version : 
  Creation Time : Thu Apr  :: 
     Raid Level : raid1
     Array Size :  ( MiB  MB)
  Used Dev Size :  ( MiB  MB)
   Raid Devices : 
  Total Devices : 
    Persistence : Superblock is persistent

    Update Time : Thu Apr  :: 
          State : clean 
 Active Devices : 
Working Devices : 
 Failed Devices : 
  Spare Devices : 

           Name : server23.com:  (local to host server23.com)
           UUID : b58543b:fe2cf1::e600eeff
         Events : 

    Number   Major   Minor   RaidDevice State
                                 active sync   /dev/vdb1
                                 active sync   /dev/vdb2
                                 active sync   /dev/vdb3

                           -      spare   /dev/vdc1
           
  • 然后进行格式化,格式化时可以指定

    stride

    的大小
[[email protected] mnt]# mke2fs -j -E stride= -b  /dev/md3 
mke2fs  (-May-)
Filesystem label=
OS type: Linux
Block size= (log=)
Fragment size= (log=)
Stride= blocks, Stripe width= blocks
 inodes,  blocks
 blocks (%) reserved for the super user
First data block=
Maximum filesystem blocks=
 block groups
 blocks per group,  fragments per group
 inodes per group
Superblock backups stored on blocks: 
    , , , 
           
  • 对于上面指定的参数,可以根据实际的应用场景进行选择,如果大文件的场景,适当的调大上面的值;
  • 创建RAID 10
  • 首先需要四个分区,使用上面提供的分区,来完成

    RAID 10

    的创建,在创建的

    RAID 10

    的时候,需要计算的是,需要几块硬盘,手法提供空闲磁盘,空闲磁盘至少需要几块
[[email protected] mnt]# mdadm -C /dev/md10 -l  -n   /dev/vdb1 /dev/vdb2 /dev/vdb3 /dev/vdc1 
mdadm: /dev/vdb1 appears to be part of a raid array:
    level=raid1 devices= ctime=Thu Apr  :: 
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=
mdadm: /dev/vdb2 appears to be part of a raid array:
    level=raid1 devices= ctime=Thu Apr  :: 
mdadm: /dev/vdb3 appears to be part of a raid array:
    level=raid1 devices= ctime=Thu Apr  :: 
mdadm: /dev/vdc1 appears to be part of a raid array:
    level=raid1 devices= ctime=Thu Apr  :: 
Continue creating array? y
mdadm: Defaulting to version  metadata
mdadm: array /dev/md10 started.
           
  • 然后就可以就可以进行格式化操作
[[email protected] mnt]# mke2fs -j -E stride= -b  /dev/md10
mke2fs  (-May-)
Filesystem label=
OS type: Linux
Block size= (log=)
Fragment size= (log=)
Stride= blocks, Stripe width= blocks
 inodes,  blocks
 blocks (%) reserved for the super user
First data block=
Maximum filesystem blocks=
 block groups
 blocks per group,  fragments per group
 inodes per group
Superblock backups stored on blocks: 
    , , , 
           
  • 之后就可以进行挂载使用

继续阅读