软RAID0:花式折腾阿里云

folder_open
comment没有评论

0b0000:起因

最近在琢磨块链条上的东西,打算在自己的阿里云上也折腾折腾;上来就遇到了一个麻烦:磁盘IO有点小,同步速度感觉不太友善,于是就想琢磨琢磨怎么加速。

打开阿里的云盘购买界面,80G的SSD,1小时价格0.112,一年下来980多,顿时就对这个看钱的世界绝望了;冷静分析了一番,最后决定买2个40G的”高效云盘”来加做个RAID0试试(2个40G高效云盘的价格是0.04每小时,折算下来每年大概350来块,瞬间感觉自己节约了好几个亿)。

0b0001:动手开干,创建RAID设备

购买了云盘之后将其挂载到VPS上,让我们先来验证下盘是否正常,运行 ls -l /dev | grep vd ,输出

然后运行 mdadm --examine /dev/vd[b-c]来测试下(如果提示命令不存在,先 yum install mdadmapt-get install mdadm安装该工具),此时应该输出

紧接给这俩盘创建逻辑分区,运行 fdisk /dev/vdb,按下面步操作

  1. 输入“n”,创建一个新的分区
  2. 输入“p”,代表创建的是基本分区
  3. 接下来会询问分区编号和起止扇区,默认按回车即可
  4. 输入“p”来查看已创建的分区,确保下面的列表已经出现“/dev/vdb1”
  5. 输入“t”,设置分区的类型
  6. 输入“fd”,代表将该分区设置为’Linux raid autodetect’类型
  7. 输入“w”,保存更改

当然,vdc也要进行相同的操作

这时再运行 mdadm --examine /dev/vd[b-c]此时应该输出类似信息:

然后运行 mdadm --create /dev/md0 --level=stripe --raid-devices=2 /dev/vd[b-c]1或者 mdadm -C /dev/md0 -l raid0 -n 2 /dev/vd[b-c]1 此时应该输出类似信息:

此时 cat /proc/mdstat的话已经可以看到相应的raid信息:

如果再保险点的话,分别再运行一下 mdadm -E /dev/vd[b-c]1mdadm --detail /dev/md0来再次确认相关信息

确认Ok后运行 mdadm -E -s -v >> /etc/mdadm.conf将RAID配置保存下来,接着运行 update-initramfs -u(如果你的系统是Arch,则换成 mkinitcpio -p /etc/mkinitcpio.d/somekernel.preset)和 update-grub添加initrd/initramfs的hook

0b0010:格式化并挂载分区

此时的/dev/md0已经创建完成,但是还需要格式化并挂载才能使用

  • 运行 mkfs.ext4 /dev/md0将其格式化成ext4格式:
  • 接着 cp /etc/fstab /etc/fstab.bak备份一下挂载点文件
  • 然后 echo '/dev/md0 /home ext4 barrier=0 0 0' >> /etc/fstab写入新分区信息,表示将其挂载到/home,当然你也可以将其挂载到其他地方
  • 最后 mount -a重新挂载分区

0b0011:验证下效果

分别在不同的地方运行一下 fio -randrepeat=1 -ioengine=libaio -direct=1 -gtod_reduce=1 -name=test -filename=test -bs=4k -iodepth=64 -size=4G -readwrite=randrw -rwmixread=75测试4k读写

  • 双高效云盘RAID0的阿里云(3862读1235写,由于是debian系统,输出格式可能和centos下的不太一样):

  • 默认的高效云盘阿里云(1971读646写,看起来也差不多是上面的一半):

  • 阿里云“企业入门级”SSD实例(3706读1255写):

  • 阿里云“本地SSD”实例,软RAID0(3W读1W写):

  • 我自己本地的测试机(12900读4247写):

  • 至于Amazon AWS、Vultr跟DO不知为何跑不起来;Sakura的入门机型则是6046读1997写。(我开始编辑这篇文章的时候,以大坊开始同步,写道这里的时候同步已经完成,偶也!)

0b0100:结论

  • 至少在阿里云上面,2个盘的RAID0的确可以有效加快速度,相比SSD云盘,用2个一半容量的“高效云盘”做软RAID的确可以达到类似性能,Instagram也干过类似的事
  • 从价格上来说,阿里云的SSD云盘差不多比“高效云盘”贵了一倍左右,如果手上的确比较紧张,可以考虑这个方案
  • RAID0本身是非常不安全的,任何一个节点出问题整个阵列就挂,不过根据阿里云官方的说法,云盘“高性能、持久性、高可靠”,所以我认为可以先观察观察

Tags:

看看其他

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Fill out this field
Fill out this field
请输入有效的电子邮箱地址。