206
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
阿里云服务器ECS使用教程-创建RAID阵列(Linux)

产品推荐:

1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>

2、高防物理服务器20核/16G/50M/500G防御仅350元,点击抢购>>>

3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>>

4、阿里云服务器2核2G3M仅99元/年、2核4G5M仅199元/年,新老同享,点击抢购>>> 

5、腾讯云服务器2核2G4M仅99元/年、新老同享,点击抢购>>>   


本文以Ubuntu系统ECS实例为例,介绍如何使用Linux系统内置的mdadm命令为多块数据盘创建一个200 GiB的RAID阵列。

前提条件

您已经创建并挂载了多块数据盘。建议您创建具有相同容量和相同类型的数据盘。创建并挂载数据盘的具体操作,请参见创建云盘和挂载数据盘。

背景信息

独立冗余磁盘阵列RAID(Redundant Array of Independent Disks)是将多块云盘按一定的方式组成一个磁盘阵列组。相比单块云盘,RAID能够有效的提高磁盘的容量、读写带宽、可靠性和可用性。

建议您使用RAID0或者RAID1模式,每块云盘采用相同大小的分区,从而减少云盘空间浪费。由于RAID5或者RAID6模式的奇偶校验数据会占用云盘IOPS,带来性能阻碍,因此不推荐使用RAID5或者RAID6模式。

下表对比了RAID0和RAID1模式的优缺点以及适用场景。

模式

优势

劣势

适用场景

RAID0

I/O在存储卷内以条带化的方式分布在各云盘上。增加云盘空间会直接增加吞吐量,阵列中的容量和带宽等于各个云盘容量和带宽之和。

单块云盘的损坏有可能造成整个虚拟盘数据丢失,缺乏数据冗余能力。

对I/O性能要求很高,并且已通过其他方式备份数据,或者不需要备份数据的应用。

RAID1

数据以镜像的方式存储在各云盘上,可以获取更高的数据冗余性。阵列中的容量和带宽等于阵列中容量和带宽最小的云盘。

因为要同时向多块云盘写入数据,写性能较差。

容错能力比I/O性能更重要,例如在关键应用程序中。

操作步骤

  1. 远程连接ECS实例。
    关于连接方式的介绍,请参见连接方式概述。
  2. 运行以下命令,查看ECS实例上所有云盘信息。

    lsblk

    结果如下所示。

    image.png
  3. 使用mdadm命令创建RAID阵列/dev/md0。

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

    说明
    • 以下示例中/dev/vd[bcdef]表示为/dev/vdb、/dev/vdc、/dev/vdd、/dev/vde和/dev/vdf五块云盘组成RAID阵列。如果您使用其他云盘,需要修改成对应的云盘。

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

    RAID0模式
    RAID1模式
    mdadm --create /dev/md0 --level=0 --raid-devices=5 /dev/vd[bcdef]
    • --level=0:表示用于将阵列条带化的RAID0模式。

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

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

    结果如下所示。

    image.png
  4. 运行以下命令,查看创建的RAID阵列/dev/md0信息。

    mdadm --detail /dev/md0

    结果如下所示。

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

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

    mkfs.ext4 /dev/md0

    结果如下所示。

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

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

    1. (可选)运行以下命令,创建挂载点,例如/media/raid0

      mkdir /media/raid0
      说明

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

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

      mount /dev/md0 /media/raid0


    3. 运行以下命令,查看RAID阵列的挂载信息。

      df -h

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

      image.png
  8. 配置开机自动挂载。

    如果您需要设置开机自动挂载RAID阵列,需要在/etc/fstab中添加RAID阵列的挂载信息。

    1. 运行以下命令,向/etc/fstab配置文件写入RAID阵列信息。

      echo `blkid /dev/md0 | awk '{print $2}' | sed 's/\"//g'` /media/raid0 ext4 defaults 0 0 >> /etc/fstab
      • /dev/md0:磁盘阵列名称。

      • /media/raid0:挂载点信息,您需要根据实际环境进行替换。如果需要挂载到其他路径,您需要修改成对应路径。

      • ext4:RAID阵列的文件系统类型,您需要根据已创建的文件系统类型修改。

      说明

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

    2. 运行以下命令,查询RAID阵列的挂载信息是否添加成功。

      cat /etc/fstab

      结果如下所示,返回结果里出现了/media/raid0的信息,说明已添加挂载信息至/etc/fstab文件。

      image.png
    3. 运行以下命令,挂载/etc/fstab配置文件中的所有文件系统。如果无报错输出,表示您的/etc/fstab配置无误。

      mount -a
    4. 运行以下命令,检查挂载结果是否符合您的预期。

      df -Th

      结果如下所示,出现新建文件系统的信息,表示文件系统挂载成功。

      image.png


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!