多块 gp3 制作 raid 0 提升磁盘性能

作者:ezmsp北京易云服公有云架构师 雷凯栋

随着业务规模的增长,单块EBS已经无法满足IO需求。本文介绍了通过RAID 0方式组合多块EBS卷,实现IO性能的水平扩展。同时也测试了修改EBS类型和调整配置后对RAID 0性能的影响。

  1. 控制台创建两块 EBS,并且挂在到指定机器。
多块 gp3 制作 raid 0 提升磁盘性能
  1. 进入操作系统查看磁盘。
  2. 通过 mdadm 命令创建 raid0. sudo mdadm –create –verbose /dev/md0 –level=0 –name=test-raid –raid-devices=2 /dev/nvme1n1 /dev/nvme2n1
多块 gp3 制作 raid 0 提升磁盘性能

如您遇到 mdadm: command not found 错误,请使用以下命令安装 mdadm:sudo yum install mdadm。

  1. 可以通过以下命令查看 raid0 卷的状态
sudo cat /proc/mdstat
多块 gp3 制作 raid 0 提升磁盘性能
  1. 在 raid阵列上创建一个文件系统。
sudo mkfs.ext4 -L test-raid /dev/md0
多块 gp3 制作 raid 0 提升磁盘性能
  1. 要确保 RAID阵列在启动时自动重组,请创建一个包含 RAID 信息的配置文件:
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm.conf
多块 gp3 制作 raid 0 提升磁盘性能
  1. 创建新的 Ramdisk Image 以为新的 RAID配置正确地预加载块储存设备模块:
sudo dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)
  1. 创建目录/mnt1,用来挂载 raid卷测试性能。
[root@ip-172-31-20-127 rocky]# mkdir /mnt1
[root@ip-172-31-20-127 rocky]# mount LABEL=test-raid /mnt1
如需永久挂载此设备参考以下文档第 10步.
https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/raid-config.html
  1. 安装 FIO 命令对 raid卷做吞吐以及带宽压测。
[root@ip-172-31-20-127 rocky]# yum install fio
通过以下命令测试 IOPS性能
[root@ip-172-31-20-127 rocky]# sudo fio --directory=/mnt1 --ioengine=psync --name fioTest-128 --direct=1 --rw=randwrite --bs=16k --size=1G --numjobs=16 --time_based --runtime=180 --group_reporting –norandomma
多块 gp3 制作 raid 0 提升磁盘性能
通过以下命令测试 吞吐性能
[root@ip-172-31-20-127 rocky]# sudo fio --directory=/mnt1 --ioengine=psync --name fioTest-128 --direct=1 --rw=randwrite --bs=128k --size=1G --numjobs=16 --time_based --runtime=180 --group_reporting –norandomma
多块 gp3 制作 raid 0 提升磁盘性能
  1. 在控制台对两块 EBS 进行修改,修改大小,磁盘,吞吐。(注意:修改之后 6 小时内,无法再对 EBS 进行修改操作。)
多块 gp3 制作 raid 0 提升磁盘性能
  1. 查看磁盘信息。
  2. 使用以下命令重新对 raid卷进行测试。吞吐测试 [root@ip-172-31-20-127 rocky]# sudo fio –directory=/mnt1 –ioengine=psync –name fioTest-128 –direct=1 –rw=randwrite –bs=128k –size=1G –numjobs=16 –time_based –runtime=180 –group_reporting –norandomma
IOPS 测试:
[root@ip-172-31-20-127 rocky]# sudo fio --directory=/mnt1 --ioengine=psync --name fioTest-128 --direct=1 --rw=randwrite --bs=16k --size=1G --numjobs=16 --time_based --runtime=180 --group_reporting –norandomma
多块 gp3 制作 raid 0 提升磁盘性能

结论

  1. 通过将两块 gps 制作成 raid 0 卷可以将性能整体提升
  2. Raid 卷一旦制作将无法进行扩容
  3. 对两块 gp3 的性能进行调整时,同样也会提升 raid 的性能。

测试结果如下统计如下:

调整前 两块 100g3000 IOPS125M 吞吐的 gp3制作的 raid Iops 达到 6000,吞吐 250M 调整后 两块 150g4000 IOPS200M 吞吐的 gp3 Iops 达到 8000,吞吐 400M

制作快照恢复数据

  1. 对制作 raid的两块 EBS 分别创建快照,目前/mnt1 下的数据
多块 gp3 制作 raid 0 提升磁盘性能
  1. 控制台分别对两块盘制作快照
多块 gp3 制作 raid 0 提升磁盘性能
  1. 将两块盘分别制作成 EBS卷,并且挂载到新的实例上。
多块 gp3 制作 raid 0 提升磁盘性能
  1. 登录新的实例,fdisk 查看当前磁盘,存在 raid 0盘。
多块 gp3 制作 raid 0 提升磁盘性能
  1. 查看当前 raid状态

[root@ip-172-31-16-26 rocky]# cat /proc/mdstat

Personalities : [raid0]

md127 : active raid0 nvme2n1[1] nvme1n1[0]

209582080 blocks super 1.2 512k chunks

  1. 创建/mnt1 目录将 raid 0挂载到/mnt1 下面查看文件
多块 gp3 制作 raid 0 提升磁盘性能
  1. 对比恢复后数据量
多块 gp3 制作 raid 0 提升磁盘性能

通过将两块EBS制作成RAID 0,可以显著提高IOPS和吞吐量。修改EBS类型和配置后,RAID 0的性能也会相应提升。EBS支持快照备份,可以通过快照恢复RAID阵列。RAID 0方式可以水平扩展EBS性能,适合IO密集型应用。

发表评论

您的电子邮箱地址不会被公开。