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

  • RAID(Redundant Array of Independent Disk) ,经常被翻译为链接磁盘冗余阵列,最早的思想是用来组合小磁盘,代替大容量的磁盘,并且尽量的提供磁盘冗余能力,提供磁盘在硬件损毁时,提供对于数据一定的冗余能力;
  • 这里通过软件来实现RAID阵列,软件RAID和硬件RAID的性能相差特别大,但是可以通过软件RAID来了解RAID的特性
  • RAID的几种技术:
    • 条带化技术:如何将数据分散存储在多块盘上面,将数据按照一定的大小划分称为一定的数量然后将这些划分好的数据按照一定的位置进行存放;
    • 磁盘镜像化技术:用于实现将数据划分成为相同的几份;
    • 检验码技术:数据在进行条带化的存储的时候,将等长的数据,计算校验码的值,用于在数据出错时,进行数据的检错和恢复;校验技术例如奇偶校验;
  • RAID阵列的级别
  • 级别仅仅是不同的功能的划分,和性能等无关
  • RAID 0 :
  • 仅仅使用条带化技术,可以改善数据的存入和读取性能,但是不提供数据的冗余能力,至少需要两块磁盘来构建RAID 0阵列
    RAID0
  • RAID 1:
  • 仅仅使用镜像技术,写性能提升,读性能提升,写性能下降,存在冗余能力,磁盘利用率为1/2,至少需要两块磁盘;
    RAID1
  • RAID 2:
  • 使用汉明码的方式将需要存储的数据进行编码,并且使用条带化技术进行存储,在进行数据读取时,要求具有共轴同步技术,对于大文件读取性能优秀,对于小文件,频繁的读取不足一个扇区的数据,导致性能下降,较少应用于PC机等小文件操作频繁的技术;
  • `RAID 3:
  • 使用条带化和校验码技术,通过条带化技术将原始数据划分成为两份,分别存储在不同磁盘上面相同位置,并且根据校验码技术计算出校验和,将校验和保存在独立的第三块磁盘上面,通过这种技术,磁盘保证了数据的读取和写入性能,并且数据具有一定的冗余能力,数据的校验以及恢复能力有限,仅仅允许单块磁盘出错,否则数据无法进行恢复;磁盘的利用率为n-1/n;
    这里写图片描述
  • RAID 4:
  • 是一种类似于RAID 3的技术,RAID 3实现的是按位进行数据的存储,读取以及计算校验码,RAID 4实现的是按照一定的数据块来进行数据的读取和存储,并且计算出校验码,以及保证数据块的完整性,不被条带化技术影响;
  • RAID 5:
  • 是对于RAID 3的一种改进,将数据的校验盘的值,存储在不同的磁盘上面,也就是打乱数据存储和校验码存储,解决了校验码盘存储错误的导致数据校验无法完成的缺点,至少需要三块磁盘,磁盘的利用空间为n-1/n;
    这里写图片描述
  • 常见的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.创建一个2GRAID 0也就是需要使用至少两块1G的磁盘或者分区;
Disk identifier: 0x58fcb7a0

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1               1        2082     1049296+  83  Linux
/dev/vdb2            2083        4164     1049328   83  Linux
  • 这里还需要调整类型
   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1               1        2082     1049296+  fd  Linux raid autodetect
/dev/vdb2            2083        4164     1049328   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命令
[root@server23 ~]# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/vdb{1,2}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
  • 如果出现了以下错误
[root@localhost ~]# 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=1048576K  mtime=Mon Jan 22 22:56:18 2018
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 : [raid0] 
md0 : active raid0 vdb2[1] vdb1[0]
      2098176 blocks super 1.2 512k chunks

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

Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
131328 inodes, 524288 blocks
26227 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8208 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912

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

This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
  • 接下来可以将这个目录挂载到本地,然后进行使用
[root@server23 ~]# mount /dev/md0 /mnt/md0/
[root@server23 md0]# df
Filesystem                   1K-blocks    Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root   7853764 1262644   6192172  17% /
tmpfs                           251136       0    251136   0% /dev/shm
/dev/vda1                       495844   33457    436787   8% /boot
/dev/md0                       2064144   68676   1890560   4% /mnt/md0
  • 使用监控模式来查看RAID阵列的使用情况
[root@server23 ~]# mdadm -D /dev/md0 
/dev/md0:
        Version : 1.2
  Creation Time : Thu Apr 12 11:11:29 2018
     Raid Level : raid0
     Array Size : 2098176 (2.00 GiB 2.15 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Thu Apr 12 11:11:29 2018
          State : clean 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

     Chunk Size : 512K

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

    Number   Major   Minor   RaidDevice State
       0     252       17        0      active sync   /dev/vdb1
       1     252       18        1      active sync   /dev/vdb2
  • RAID 0仅仅是条带化技术,所以任何一块磁盘出现损坏,数据都无法进行访问;

  • 接下来实现RAID 1

  • 创建一个1GRAID 1,这里需要两个相同的RAID磁盘,使用两个1G的分区,并且调整类型
Disk identifier: 0x58fcb7a0

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1               1        2082     1049296+  fd  Linux raid autodetect
/dev/vdb2            2083        4164     1049328   fd  Linux raid autodetect
  • 通知内核重读分区表
[root@server23 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 16: 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(8) or kpartx(8)
Syncing disks.
  • 使用命令读取新的分区表,会失败,
[root@server23 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: 0x58fcb7a0

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1               1        2082     1049296+  fd  Linux raid autodetect
/dev/vdb2            2083        4164     1049328   fd  Linux raid autodetect
[root@server23 ~]# 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
[root@server23 ~]# mdadm -C /dev/md1 -a yes -n 2 -l 1 /dev/vdb1 /dev/vdb2 
mdadm: /dev/vdb1 appears to be part of a raid array:
    level=raid1 devices=2 ctime=Thu Apr 12 12:58:25 2018
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: /dev/vdb2 appears to be part of a raid array:
    level=raid1 devices=2 ctime=Thu Apr 12 12:58:25 2018
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
  • 可以查看两个磁盘在第一次进行镜像的状态
[root@server23 ~]# cat /proc/mdstat 
Personalities : [raid0] [raid1] 
md1 : active raid1 vdb2[1] vdb1[0]
      1048256 blocks super 1.2 [2/2] [UU]
      [========>............]  resync = 43.7% (458752/1048256) finish=0.2min speed=38229K/sec

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

unused devices: <none>
  • 接下来进行格式化操作
[root@server23 ~]# mke2fs -j /dev/md1 
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262064 blocks
13103 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376
  • 接下来可以模拟损坏一块的磁盘,并且移除这个损坏的磁盘
[root@server23 ~]# mdadm /dev/md1 -f /dev/vdb1 
mdadm: set /dev/vdb1 faulty in /dev/md1
[root@server23 ~]# 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
  • 添加磁盘之后,还需要进行新的同步
[root@server23 ~]# cat /proc/mdstat 
Personalities : [raid0] [raid1] 
md1 : active raid1 vdb1[2] vdb2[1]
      1048256 blocks super 1.2 [2/1] [_U]
      [=====>...............]  recovery = 25.0% (262144/1048256) finish=0.4min speed=26214K/sec

unused devices: <none>
  • 查看配置的RAID 1的状态
[root@server23 ~]# mdadm -D /dev/md1 
/dev/md1:
        Version : 1.2
  Creation Time : Thu Apr 12 12:58:54 2018
     Raid Level : raid1
     Array Size : 1048256 (1023.86 MiB 1073.41 MB)
  Used Dev Size : 1048256 (1023.86 MiB 1073.41 MB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Thu Apr 12 13:06:32 2018
          State : clean 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

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

    Number   Major   Minor   RaidDevice State
       2     252       17        0      active sync   /dev/vdb1
       1     252       18        1      active sync   /dev/vdb2
  • 接下来如何停止一个阵列:
  • 首先需要卸载存在的挂载
[root@server23 ~]# umount /mnt/md1/
[root@server23 ~]# df
Filesystem                   1K-blocks    Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root   7853764 1266712   6188104  17% /
tmpfs                           251136       0    251136   0% /dev/shm
/dev/vda1                       495844   33457    436787   8% /boot
  • 接下来停止RAID 服务
[root@server23 ~]# mdadm -S /dev/md1 
  • 然后删除RAID的设备文件
  • 然后可以看到
[root@server23 ~]# cat /proc/mdstat 
Personalities : [raid0] [raid1] 
unused devices: <none>
  • 接下来尝试配置使磁盘具有热切换
    这里需要提供三块磁盘,使用 RAID 1来进行实验
  • 首先需要准备三块分区
   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1               1        2082     1049296+  fd  Linux raid autodetect
/dev/vdb2            2083        4164     1049328   fd  Linux raid autodetect
/dev/vdb3            4165        6246     1049328   fd  Linux raid autodetect
  • 接下来创建RAID阵列,使得两块磁盘在线,一块磁盘作为热备份,必要时,进行快速切换
  • 因为这里使用的分区存在前面的RAID阵列的一些元数据等信息,所以会有下面的提示
[root@server23 ~]# mdadm -C /dev/md2 -l 1 -n 2 -x 1 /dev/vdb1 /dev/vdb2 /dev/vdb3 
mdadm: /dev/vdb1 appears to be part of a raid array:
    level=raid1 devices=2 ctime=Thu Apr 12 12:58:54 2018
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: /dev/vdb2 appears to be part of a raid array:
    level=raid1 devices=2 ctime=Thu Apr 12 12:58:54 2018
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.
  • 接下来进行格式化操作
[root@server23 ~]# mke2fs -j /dev/md2 
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262064 blocks
13103 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 38 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
  • 然后可以进行挂载
[root@server23 ~]# mount /dev/md2 /mnt/md2/
  • 复制文件,并且查看RAID的状态
[root@server23 md2]# cp /etc/passwd .
[root@server23 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>
  • 使用管理类命令查看具体的状态
[root@server23 md2]# mdadm -D /dev/md2 
/dev/md2:
        Version : 1.2
  Creation Time : Thu Apr 12 16:46:59 2018
     Raid Level : raid1
     Array Size : 1048256 (1023.86 MiB 1073.41 MB)
  Used Dev Size : 1048256 (1023.86 MiB 1073.41 MB)
   Raid Devices : 2
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Thu Apr 12 16:51:27 2018
          State : clean 
 Active Devices : 2
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 1

           Name : server23.com:2  (local to host server23.com)
           UUID : 567843a7:c1a9cdd8:08175ce7:12be630d
         Events : 17

    Number   Major   Minor   RaidDevice State
       0     252       17        0      active sync   /dev/vdb1
       1     252       18        1      active sync   /dev/vdb2

       2     252       19        -      spare   /dev/vdb3
  • 接下来模拟一块磁盘的损坏,查看空闲磁盘是否会自动顶替
[root@server23 md2]# mdadm /dev/md2 --fail /dev/vdb1 
mdadm: set /dev/vdb1 faulty in /dev/md2
  • 查看磁盘切换的状态
[root@server23 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>
  • 查看相信的信息,已经正常的进行了切换
[root@server23 md2]# mdadm -D /dev/md2 
/dev/md2:
        Version : 1.2
  Creation Time : Thu Apr 12 16:46:59 2018
     Raid Level : raid1
     Array Size : 1048256 (1023.86 MiB 1073.41 MB)
  Used Dev Size : 1048256 (1023.86 MiB 1073.41 MB)
   Raid Devices : 2
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Thu Apr 12 16:58:50 2018
          State : clean 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 1
  Spare Devices : 0

           Name : server23.com:2  (local to host server23.com)
           UUID : 567843a7:c1a9cdd8:08175ce7:12be630d
         Events : 36

    Number   Major   Minor   RaidDevice State
       2     252       19        0      active sync   /dev/vdb3
       1     252       18        1      active sync   /dev/vdb2

       0     252       17        -      faulty   /dev/vdb1
  • 通过上述配置文件的对比,发现已经进行了切换

  • 对于这种出现故障的磁盘,应该及时的移除,然后重新添加新的磁盘,用于构建冗余磁盘

[root@server23 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 的信息如果需要保存为配置文件需要执行
[root@server23 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               1        2082     1049296+  fd  Linux raid autodetect
/dev/vdb2            2083        4164     1049328   fd  Linux raid autodetect
/dev/vdb3            4165        6246     1049328   fd  Linux raid autodetect
/dev/vdc1               1        2082     1049296+  fd  Linux raid autodetect
  • 接下来创建RAID 5 磁盘
[root@server23 mnt]# mdadm -C /dev/md3 -l 1 -n 3 -x 1 /dev/vdb1 /dev/vdb2 /dev/vdb3 /dev/vdc1 
mdadm: /dev/vdb1 appears to be part of a raid array:
    level=raid1 devices=2 ctime=Thu Apr 12 16:46:59 2018
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: /dev/vdb2 appears to be part of a raid array:
    level=raid1 devices=2 ctime=Thu Apr 12 16:46:59 2018
mdadm: /dev/vdb3 appears to be part of a raid array:
    level=raid1 devices=2 ctime=Thu Apr 12 16:46:59 2018
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md3 started.
  • 查看RAID 5阵列的状态
[root@server23 mnt]# mdadm -D /dev/md3 
/dev/md3:
        Version : 1.2
  Creation Time : Thu Apr 12 17:16:06 2018
     Raid Level : raid1
     Array Size : 1048256 (1023.86 MiB 1073.41 MB)
  Used Dev Size : 1048256 (1023.86 MiB 1073.41 MB)
   Raid Devices : 3
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Thu Apr 12 17:17:15 2018
          State : clean 
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1

           Name : server23.com:3  (local to host server23.com)
           UUID : 7b58543b:37fe2cf1:07102435:e600eeff
         Events : 17

    Number   Major   Minor   RaidDevice State
       0     252       17        0      active sync   /dev/vdb1
       1     252       18        1      active sync   /dev/vdb2
       2     252       19        2      active sync   /dev/vdb3

       3     252       33        -      spare   /dev/vdc1
  • 然后进行格式化,格式化时可以指定stride的大小
[root@server23 mnt]# mke2fs -j -E stride=16 -b 4096 /dev/md3 
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=16 blocks, Stripe width=0 blocks
65536 inodes, 262064 blocks
13103 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376
  • 对于上面指定的参数,可以根据实际的应用场景进行选择,如果大文件的场景,适当的调大上面的值;
  • 创建RAID 10
  • 首先需要四个分区,使用上面提供的分区,来完成RAID 10的创建,在创建的RAID 10的时候,需要计算的是,需要几块硬盘,手法提供空闲磁盘,空闲磁盘至少需要几块
[root@server23 mnt]# mdadm -C /dev/md10 -l 10 -n 4  /dev/vdb1 /dev/vdb2 /dev/vdb3 /dev/vdc1 
mdadm: /dev/vdb1 appears to be part of a raid array:
    level=raid1 devices=3 ctime=Thu Apr 12 17:16:06 2018
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: /dev/vdb2 appears to be part of a raid array:
    level=raid1 devices=3 ctime=Thu Apr 12 17:16:06 2018
mdadm: /dev/vdb3 appears to be part of a raid array:
    level=raid1 devices=3 ctime=Thu Apr 12 17:16:06 2018
mdadm: /dev/vdc1 appears to be part of a raid array:
    level=raid1 devices=3 ctime=Thu Apr 12 17:16:06 2018
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md10 started.
  • 然后就可以就可以进行格式化操作
[root@server23 mnt]# mke2fs -j -E stride=16 -b 4096 /dev/md10
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=16 blocks, Stripe width=0 blocks
65536 inodes, 262064 blocks
13103 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376
  • 之后就可以进行挂载使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值