ECS上linux创建RAID阵列

作者:佚名 来源:网络 点击数: 发布时间:2022年07月08日
模式优势劣势适用场景
RAID0I/O在存储卷内以条带化的方式分布在各云盘上。增加云盘空间会直接增加吞吐量,阵列中的容量和带宽等于各个云盘容量和带宽之和。单块云盘的损坏有可能造成整个虚拟盘数据丢失,缺乏数据冗余能力。对I/O性能要求很高,并且已通过其他方式备份数据,或者不需要备份数据的应用。
RAID1数据以镜像的方式存储在各云盘上,可以获取更高的数据冗余性。阵列中的容量和带宽等于阵列中容量和带宽最小的云盘。因为要同时向多块云盘写入数据,写性能较差。容错能力比 I/O 性能更重要,例如在关键应用程序中。



操作步骤

  • 以root权限远程连接ECS实例。连接方式请参见连接方式概述

  • 运行以下命令查看ECS实例上所有云盘信息。

    lsblk

    结果如下所示。lsblk

  • 使用mdadm命令创建RAID阵列/dev/md0

    请根据您的实际情况,创建RAID0或RAID1模式。

    说明

    • --level=1表示用于将阵列镜像化的RAID1模式。

    • --raid-devices=5:表示RAID阵列由五块云盘组成。

    • /dev/vd[bcdef]:表示使用/dev/vdb、/dev/vdc、/dev/vdd、/dev/vde和/dev/vdf五块云盘组成一个RAID阵列。

    • --level=0:表示用于将阵列条带化的RAID0模式。

    • --raid-devices=5:表示RAID阵列由五块云盘组成。

    • /dev/vd[bcdef]:表示使用/dev/vdb、/dev/vdc、/dev/vdd、/dev/vde和/dev/vdf五块云盘组成一个RAID阵列。

    • 创建RAID0模式,运行以下命令。

      mdadm --create /dev/md0 --level=0 --raid-devices=5 /dev/vd[bcdef]

      结果如下所示。mdadm_raid0

    • 创建RAID1模式,运行以下命令。

      mdadm --create /dev/md0 --level=1 --raid-devices=5 /dev/vd[bcdef]
    • 以下示例中/dev/vd[bcdef]表示为/dev/vdb、/dev/vdc、/dev/vdd、/dev/vde和/dev/vdf五块云盘组成RAID阵列。如果您使用其他云盘,需要修改成对应的云盘。

    • 如果提示未安装mdadm,请先运行apt-get install mdadm命令安装mdadm工具。

  • 运行以下命令查看创建的RAID阵列/dev/md0信息。

    mdadm --detail /dev/md0

    结果如下所示。raid0

  • 运行以下命令在RAID阵列上创建一个文件系统,例如,ext4文件系统。

    您也可以创建其他类型的文件系统。

    mkfs.ext4 /dev/md0

    结果如下所示。mkfs

  • 运行以下命令,创建一份包含RAID信息的配置文件,设置RAID阵列在启动ECS实例时自动重组。

    sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
  • 挂载RAID阵列的文件系统。

  • 运行以下命令,创建挂载点,例如/media/raid0

    mkdir /media/raid0

    说明 您也可以将云盘挂载到已有目录下,例如/mnt

  • 运行以下命令挂载文件系统,例如将/dev/md0挂载至/media/rad0。

    mount /dev/md0 /media/raid0
  • 运行以下命令查看RAID阵列的挂载信息。

    df -h

    结果如下所示,返回信息中,文件系统已经挂载到指定的挂载点。挂载信息

后续步骤

如果您需要在每次启动ECS实例时设置自动加载RAID阵列,可以在/etc/fstab配置文件中添加如下信息。

  • 运行以下命令,向/etc/fstab配置文件写入自启动设置。

    echo `blkid /dev/md0 | awk '{print $2}' | sed 's/\"//g'` /media/raid0 ext4 defaults 0 0 >> /etc/fstab

    说明 如果您需要在未挂载RAID阵列的情况下启动ECS实例,可以添加nofail配置。即使在安装云盘时出现错误,nofail配置也允许启动ECS实例。如果您使用的是Ubuntu系统,还需要额外添加nobootwait配置。

    • /dev/md0:磁盘阵列名称。

    • /media/raid0:挂载点信息,如果需要挂载到其他路径,您需要修改成对应路径。

  • 运行以下命令挂载/etc/fstab配置文件中的所有文件系统。

    mount -a