
# 使用mdadm工具创建云硬盘RAID阵列
#### 操作场景
本章节指导用户通过mdadm工具创建RAID阵列，以RAID10为例。
本文以云服务器的操作系统为"CentOS 7.5 64bit "为例。不同云服务器的操作系统的配置可能不同，本文仅供参考，具体操作步骤和差异请参考对应操作系统的产品文档。
#### 操作步骤
1. 使用root用户登录云服务器。 
   登录弹性云服务器请参见[登录弹性云服务器](https://support.huaweicloud.com/ecs_faq/ecs_faq_0632.html)。
   
   
2. 执行以下命令，查看磁盘并记录设备名称。
   
   **fdisk -l \| grep /dev/vd \| grep -v vda**
   回显类似如下信息：
   ```
   [root@ecs-raid10 ~]# fdisk -l | grep /dev/vd | grep -v vda
   Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
   Disk /dev/vdc: 10.7 GB, 10737418240 bytes, 20971520 sectors
   Disk /dev/vdd: 10.7 GB, 10737418240 bytes, 20971520 sectors
   Disk /dev/vde: 10.7 GB, 10737418240 bytes, 20971520 sectors
   ```
   可以看到云服务器上挂载的4块磁盘，设备名称分别为"/dev/vdb"、"/dev/vdc"、"/dev/vdd"和"/dev/vde"。
   
   
3. 执行以下命令，安装mdadm工具。 
   **yum install mdadm -y**
   ![](https://support.huaweicloud.com/bestpractice-evs/public_sys-resources/note_3.0-zh-cn.png)
   mdadm是Linux下的RAID管理工具，务必确保安装mdadm工具的云服务器已开通弹性公网IP。
   回显类似如下信息：
   ```
   [root@ecs-raid10 ~]# yum install mdadm -y
   ......
   Installed:
     mdadm.x86_64 0:4.0-13.el7
   Dependency Installed:
     libreport-filesystem.x86_64 0:2.1.11-40.el7.centos
   Complete!
   ```
   
   
4. 执行以下命令，使用[2]中查到的4块磁盘创建RAID阵列。
   
   **mdadm -Cv** *RAID阵列设备名* **-a yes -n** *磁盘数量* **-l** *RAID级别* *磁盘1设备名 磁盘2*设备名* 磁盘3*设备名* 磁盘4* *设备名*...
   参数说明如下：
   - RAID阵列设备名：可自定义，此处以/dev/md0为例。
   
   - 磁盘数量：根据实际情况填写，此处RAID10至少为4块。 不同的RAID阵列要求的最小磁盘数量不同，具体说明请参见[使用云硬盘组建RAID磁盘阵列概述](https://support.huaweicloud.com/bestpractice-evs/evs_02_0014.html)。
     
   
   - RAID级别：根据实际情况填写，此处以RAID10为例。
   
   - 磁盘设备名：此处需要填写待组建RAID阵列的所有磁盘设备名，中间以空格隔开。
    
   命令示例：
   **mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/vdb /dev/vdc /dev/vdd /dev/vde**
   回显类似如下信息：
   ```
   [root@ecs-raid10 ~]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/vdb /dev/vdc /dev/vdd /dev/vde
   mdadm: layout defaults to n2
   mdadm: layout defaults to n2
   mdadm: chunk size defaults to 512K
   mdadm: size set to 10476544K
   mdadm: Defaulting to version 1.2 metadata
   mdadm: array /dev/md0 started.
   ```
   
   
5. 执行以下命令，格式化新建的RAID阵列。 
   **mkfs.** *文件格式* *RAID阵列* *设备名*
   命令示例：
   **mkfs.ext4 /dev/md0**
   回显类似如下信息：
   ```
   [root@ecs-raid10 ~]# mkfs.ext4 /dev/md0
   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
   1310720 inodes, 5238272 blocks
   261913 blocks (5.00%) reserved for the super user
   First data block=0
   Maximum filesystem blocks=2153775104
   160 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, 2654208,
           4096000
   Allocating group tables: done
   Writing inode tables: done
   Creating journal (32768 blocks): done
   Writing superblocks and filesystem accounting information: done
   ```
   
   
6. 执行以下命令，创建挂载目录。 
   **mkdir** *挂载目录*
   命令示例：
   **mkdir /RAID10**
   
   
7. 执行以下命令，挂载RAID阵列设备名。 
   **mount** *R* *AID阵列设备名* *挂载目录*
   命令示例：
   **mount /dev/md0 /RAID10**
   
   
8. 执行以下命令，查看RAID阵列的挂载结果。 
   **df -h**
   回显类似如下信息：
   ```
   [root@ecs-raid10 ~]# df -h
   Filesystem      Size  Used Avail Use% Mounted on
   /dev/vda2        39G  1.5G   35G   5% /
   devtmpfs        911M     0  911M   0% /dev
   tmpfs           920M     0  920M   0% /dev/shm
   tmpfs           920M  8.6M  911M   1% /run
   tmpfs           920M     0  920M   0% /sys/fs/cgroup
   /dev/vda1       976M  146M  764M  17% /boot
   tmpfs           184M     0  184M   0% /run/user/0
   /dev/md0         20G   45M   19G   1% /RAID10
   ```
   
   
9. 执行以下步骤，设置云服务器系统启动时自动挂载RAID阵列。 
   1. 执行以下命令，打开"/etc/fstab"文件。 **vi /etc/fstab**
      
   
   2. 按"i"进入编辑模式。
      回显类似如下信息：
      ```
      [root@ecs-raid10 ~]# vi /etc/fstab
      #
      # /etc/fstab
      # Created by anaconda on Tue Nov  7 14:28:26 2017
      #
      # Accessible filesystems, by reference, are maintained under '/dev/disk'
      # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
      #
      UUID=27f9be47-838b-4155-b20b-e4c5e013cdf3 /                       ext4    defaults        1 1
      UUID=2b2000b1-f926-4b6b-ade8-695ee244a901 /boot                   ext4    defaults        1 2
      ```
      
   
   3. 参考以下示例，在文件的最后一行添加如下配置：
      ```
      /dev/md0                                  /RAID10                 ext4    defaults        0 0
      ```
      
   
   4. 按"Esc"，输入":wq!"，并按"Enter"。 保存设置并退出vi编辑器。
      
   
   
   
   
10. 执行以下命令，查看磁盘RAID阵列的信息。 
    **mdadm -D** *R* *AID阵列设备名*
    命令示例：
    **mdadm -D /dev/md0**
    回显类似如下信息：
    ```
    [root@ecs-raid10 ~]# mdadm -D /dev/md0
    /dev/md0:
               Version : 1.2
         Creation Time : Thu Nov  8 15:49:02 2018
            Raid Level : raid10
            Array Size : 20953088 (19.98 GiB 21.46 GB)
         Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
          Raid Devices : 4
         Total Devices : 4
           Persistence : Superblock is persistent
           Update Time : Thu Nov  8 16:15:11 2018
                 State : clean
        Active Devices : 4
       Working Devices : 4
        Failed Devices : 0
         Spare Devices : 0
                Layout : near=2
            Chunk Size : 512K
    Consistency Policy : resync
                  Name : ecs-raid10.novalocal:0  (local to host ecs-raid10.novalocal)
                  UUID : f400dbf9:60d211d9:e006e07b:98f8758c
                Events : 19
        Number   Major   Minor   RaidDevice State
           0     253       16        0      active sync set-A   /dev/vdb
           1     253       32        1      active sync set-B   /dev/vdc
           2     253       48        2      active sync set-A   /dev/vdd
           3     253       64        3      active sync set-B   /dev/vde
    ```
    
    
 
