Raid磁盘阵列并管理

  • Post author:
  • Post category:其他


RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列。简单地说, RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。 RAID 是一类多磁盘管理技术,其向主机环境提供了成本适中、数据可靠性高的高性能存储。 SNIA 对 RAID 的定义是 [2] :一种磁盘阵列,部分物理存储空间用来记录保存在剩余空间上的用户数据的冗余信息。当其中某一个磁盘或访问路径发生故障时,冗余信息可用来重建用户数据。磁盘条带化虽然与 RAID 定义不符,通常还是称为 RAID



优点:

a. 提高传输速率。

b. 通过数据校验提供容错功能。



缺点

c. RAID0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都无法使用。

d. RAID1磁盘的利用率最高只能达到50%(使用两块盘的情况下),是所有RAID级别中最低的。

e. RAID0+1以理解为是RAID 0和RAID 1的折中方案。RAID 0+1可以为系统提供数据安全保障,但保障程度要比 Mirror低而磁盘空间利用率要比Mirror高。



命令



创建raid 0

首先使用lsblk命令查看当前虚拟机的硬盘情况,命令如下(如果vdb已经挂载需要先卸载):

[root@bcc-onlinestu02-553554-5hiap ~]# lsblk
NAME  MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda  253:0  0 40G 0 disk 
└─vda1 253:1  0 40G 0 part /
vdb  253:16  0 20G 0 disk /mnt
[root@bcc-onlinestu02-553554-5hiap ~]# umount /mnt   // 取消挂载

可以看见,当前存在一个硬盘vdb,大小为20 GB,接下来使用这个硬盘完成实验。

利用fdisk磁盘分区命令,对vdb这块磁盘进行分区操作,新建2个磁盘分区,每个大小为5 GB。用这2个5 GB的分区来模拟1个10 GB的硬盘。

[root@bcc-onlinestu02-553554-5hiap ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).
 

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
 

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x04dc8119.
 

Command (m for help): n   //输入n为新建一个分区
Partition type:
  p  primary (0 primary, 0 extended, 4 free)
  e  extended
Select (default p): p   //设置分区类型,p代表创建主分区,e代表扩展分区
Partition number (1-4, default 1): 1   //设置分区号,可默认直接按Enter键
First sector (2048-41943039, default 2048): 2048  //设置起始字节数,可默认直接按Enter键
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +5G //设置分区大小
Partition 1 of type Linux and of size 5 GiB is set
 

Command (m for help): n
Partition type:
  p  primary (1 primary, 0 extended, 3 free)
  e  extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (10487808-41943039, default 10487808): 10487808
Last sector, +sectors or +size{K,M,G} (10487808-41943039, default 41943039): +5G
Partition 2 of type Linux and of size 5 GiB is set
 

Command (m for help): p   //此处为查看创建后的分区
 

Disk /dev/vdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x04dc8119
 

  Device Boot   Start     End        Blocks   Id System
/dev/vdb1       2048      10487807   5242880  83 Linux
/dev/vdb2       10487808  20973567   5242880  83 Linux
 
Command (m for help): w   //对创建后的分区进行保存
The partition table has been altered!
 

Calling ioctl() to re-read partition table.
Syncing disks.
创建一个RAID 0设备:这里使用/dev/vdb1和/dev/vdb2做实验。
将/dev/vdb1和/dev/vdb2建立RAID等级为RAID 0的md0(设备名)。
[root@bcc-onlinestu02-553554-5hiap ~]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/vdb1 /dev/vdb2
mdadm: chunk size defaults to 512K
mdadm: Fail create md0 when using /sys/module/md_mod/parameters/new_array
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

命令解析:

-C v:创建设备,并显示信息。

-l 0:RAID的等级为RAID 0。

-n 2:创建RAID的设备为2块。

查看系统上的RAID,命令及返回结果如下。

[root@bcc-onlinestu02-553554-5hiap ~]# cat /proc/mdstat
Personalities : [raid0] 
md0 : active raid0 vdb2[1] vdb1[0]
   10475520 blocks super 1.2 512k chunks
   

unused devices: <none>

查看RAID详细信息,命令及返回结果如下。

[root@bcc-onlinestu02-553554-5hiap ~]# mdadm -Ds
ARRAY /dev/md0 metadata=1.2 name=bcc-onlinestu02-553554-5hiap:0 UUID=f4f9af83:15a773a4:6f0c9727:09d145ce
[root@bcc-onlinestu02-553554-5hiap ~]# mdadm -D /dev/md0
/dev/md0:
      Version : 1.2
   Creation Time : Mon Mar 9 10:43:06 2020
     Raid Level : raid0
    Array Size : 10475520 (9.99 GiB 10.73 GB)
   Raid Devices : 2
   Total Devices : 2
    Persistence : Superblock is persistent
 

    Update Time : Mon Mar 9 10:43:06 2020
       State : clean 
  Active Devices : 2
  Working Devices : 2
  Failed Devices : 0
   Spare Devices : 0
 

    Chunk Size : 512K


Consistency Policy : unknown
 

       Name : bcc-onlinestu02-553554-5hiap:0 (local to host bcc-onlinestu02-553554-5hiap)
       UUID : f4f9af83:15a773a4:6f0c9727:09d145ce
      Events : 0
 

  Number  Major  Minor  RaidDevice State
    0     253    17     0          active sync  /dev/vdb1
1     253    18     1          active sync  /dev/vdb2
生成配置文件mdadm.conf,命令如下。
[root@localhost ~]# mdadm -Ds > /etc/mdadm.conf
对创建的RAID进行文件系统创建并挂载,命令如下。
[root@bcc-onlinestu02-553554-5hiap ~]# mkfs.xfs -f /dev/md0
log stripe unit (524288 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/md0        isize=256  agcount=16, agsize=163712 blks
     =           sectsz=512  attr=2, projid32bit=1
     =           crc=0    finobt=0
data   =           bsize=4096  blocks=2618880, imaxpct=25
     =           sunit=128  swidth=256 blks
naming  =version 2        bsize=4096  ascii-ci=0 ftype=0
log   =internal log       bsize=4096  blocks=2560, version=2
     =            sectsz=512  sunit=8 blks, lazy-count=1
realtime =none           extsz=4096  blocks=0, rtextents=0
[root@bcc-onlinestu02-553554-5hiap ~]# mkdir /raid0/
[root@bcc-onlinestu02-553554-5hiap ~]# mount /dev/md0  /raid0/
[root@bcc-onlinestu02-553554-5hiap ~]# df -Th  /raid0/
Filesystem   Type Size Used Avail Use% Mounted on
/dev/md0    xfs  10G  33M  10G  1% /raid0
删除RAID操作,命令如下:
[root@bcc-onlinestu02-553554-5hiap ~]# umount /raid0/
[root@bcc-onlinestu02-553554-5hiap ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
[root@bcc-onlinestu02-553554-5hiap ~]# rm -rf /etc/mdadm.conf
[root@bcc-onlinestu02-553554-5hiap ~]# rm -rf /raid0/
[root@bcc-onlinestu02-553554-5hiap ~]# mdadm --zero-superblock /dev/vdb1
[root@bcc-onlinestu02-553554-5hiap ~]# mdadm --zero-superblock /dev/vdb2

删除完成后进行查看,命令如下:

[root@bcc-onlinestu02-553554-5hiap ~]# lsblk 
NAME  MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda  253:0  0 40G 0 disk 
└─vda1 253:1  0 40G 0 part /
vdb  253:16  0 20G 0 disk 
├─vdb1 253:17  0  5G 0 part   //vdb1、vdb2分区以还原成制作raid前状态
└─vdb2 253:18  0  5G 0 part

运维操作



raid 5运维操作

利用fdisk磁盘分区命令,继续对vdb这块磁盘剩余空间进行分区操作,新建2个磁盘主分区,每个大小为5 GB。用3个5 GB的分区来模拟raid 5,加一个热备盘。

[root@bcc-onlinestu02-553554-5hiap ~]# mdadm -Cv /dev/md5 -l5 -n3 /dev/vdb1 /dev/vdb2 /dev/vdb3 --spare-devices=1 /dev/vdb4 

//创建raid5时需要有大概4分钟左右的过程,此过程可使用cat /proc/mdstat来查询

mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 5236736K
mdadm: Fail create md5 when using /sys/module/md_mod/parameters/new_array
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.

查看RAID的详细信息,命令如下。

[root@bcc-onlinestu02-553554-5hiap ~]# mdadm -D /dev/md5
/dev/md5:
      Version : 1.2
   Creation Time : Mon Mar 9 11:08:14 2020
    Raid Level : raid5
    Array Size : 10473472 (9.99 GiB 10.72 GB)
   Used Dev Size : 5236736 (4.99 GiB 5.36 GB)
   Raid Devices : 3
   Total Devices : 4
    Persistence : Superblock is persistent
 

    Update Time : Mon Mar 9 11:09:07 2020
       State : clean, degraded, recovering 
  Active Devices : 2
  Working Devices : 4
  Failed Devices : 0
   Spare Devices : 2
 

      Layout : left-symmetric
    Chunk Size : 512K
 

Consistency Policy : unknown
 

  Rebuild Status : 31% complete
 

       Name : bcc-onlinestu02-553554-5hiap:5 (local to host bcc-onlinestu02-553554-5hiap)
       UUID : 6a66ae76:ba5f0310:615e8829:2bcc7fdc
      Events : 6


  Number  Major  Minor  RaidDevice State
    0    253    17       0        active sync  /dev/vdb1
    1    253    18       1        active sync  /dev/vdb2
    4    253    19       2        spare rebuilding  /dev/vdb3 
   3    253    20       -        spare  /dev/vdb4

模拟硬盘故障

[root@bcc-onlinestu02-553554-5hiap ~]# mdadm -f /dev/md5 /dev/vdb1
mdadm: set /dev/vdb1 faulty in /dev/md5

//模拟磁盘故障时重建需要有大概4分钟左右的过程,此过程可使用cat /proc/mdstat来查询

查看RAID的详细信息,命令如下。

[root@bcc-onlinestu02-553554-5hiap ~]# mdadm -D /dev/md5
/dev/md5:
      Version : 1.2
   Creation Time : Mon Mar 9 11:08:14 2020
    Raid Level : raid5
    Array Size : 10473472 (9.99 GiB 10.72 GB)
   Used Dev Size : 5236736 (4.99 GiB 5.36 GB)
   Raid Devices : 3
   Total Devices : 4
    Persistence : Superblock is persistent
 

    Update Time : Mon Mar 9 11:12:20 2020
       State : clean, degraded, recovering 
  Active Devices : 2
  Working Devices : 3
  Failed Devices : 1
   Spare Devices : 1
 

     Layout : left-symmetric
    Chunk Size : 512K
 
Consistency Policy : unknown
 
  Rebuild Status : 23% complete

       Name : bcc-onlinestu02-553554-5hiap:5 (local to host bcc-onlinestu02-553554-5hiap)
       UUID : 6a66ae76:ba5f0310:615e8829:2bcc7fdc
      Events : 23


  Number  Major  Minor  RaidDevice   State
    3    253    20      0           spare rebuilding  /dev/vdb4
    1    253    18      1           active sync  /dev/vdb2
    4    253    19      2           active sync  /dev/vdb3
0    253    17      -           faulty  /dev/vdb1

从以上结果可以发现原来的热备盘/dev/vdb4正在参与RAID 5的重建,而原来的/dev/vdb1变成了坏盘。

热移除故障盘,命令如下:

[root@bcc-onlinestu02-553554-5hiap ~]# mdadm -r /dev/md5 /dev/vdb1
mdadm: hot removed /dev/vdb1 from /dev/md5

查看RAID的详细信息,命令如下:

[root@bcc-onlinestu02-553554-5hiap ~]# mdadm -D /dev/md5
/dev/md5:
      Version : 1.2
   Creation Time : Mon Mar 9 11:08:14 2020
    Raid Level : raid5
    Array Size : 10473472 (9.99 GiB 10.72 GB)
   Used Dev Size : 5236736 (4.99 GiB 5.36 GB)
   Raid Devices : 3
   Total Devices : 3
    Persistence : Superblock is persistent
 

    Update Time : Mon Mar 9 11:14:44 2020
       State : clean 
  Active Devices : 3
  Working Devices : 3
  Failed Devices : 0
   Spare Devices : 0


      Layout : left-symmetric
    Chunk Size : 512K


Consistency Policy : unknown


       Name : bcc-onlinestu02-553554-5hiap:5 (local to host bcc-onlinestu02-553554-5hiap)
       UUID : 6a66ae76:ba5f0310:615e8829:2bcc7fdc
      Events : 38
 

  Number  Major  Minor  RaidDevice State
    3   253    20    0   active sync  /dev/vdb4
    1   253    18    1   active sync  /dev/vdb2
    4   253    19    2   active sync  /dev/vdb3

格式化RAID并进行挂载,命令如下:

[root@bcc-onlinestu02-553554-5hiap ~]# mkfs.ext4 /dev/md5
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label= OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
655360 inodes, 2618368 blocks
130918 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2151677952
80 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
 

Allocating group tables: done              
Writing inode tables: done              
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
[root@bcc-onlinestu02-553554-5hiap ~]# mount /dev/md5 /mnt/
[root@bcc-onlinestu02-553554-5hiap ~]# df -h
Filesystem   Size   Used Avail Use% Mounted on
/dev/vda1    40G    11G  30G   26%  /
devtmpfs     2.0G   0    2.0G  0%   /dev
tmpfs        2.0G   0    2.0G  0%   /dev/shm
tmpfs        2.0G   17M  2.0G  1%   /run
tmpfs        2.0G   0    2.0G  0%   /sys/fs/cgroup
/dev/md5     9.8G   37M  9.2G  1%   /mnt



版权声明:本文为m0_67818525原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。