天天看点

阿里云磁盘扩容踩坑总结

    公司半年前上线一个新的项目,采购了一批阿里云主机,磁盘组成是40G系统盘+100G的数据盘,数据库采用MariaDB Galera Cluster集群部署,由于业务数据量快速增长,导致磁盘存储空间剩余量很少,急需要扩容,先总结整个项目规划中埋下的坑;

1、没有DBA对数据库的容量规划,而前期的运维人员采购时选用100G的SSD云盘;

2、数据库默认使用共享表空间,缺点是删除数据后不释放空间,当数据快速增长后,我们采取了先删除临时表数据的方式来尽量避免暴力扩容,争取在春节期间稳定,删除部分数据后,容量还是那么的大,只能考虑扩容;

3、整个项目的部署上存在弊端,当初为了更好的利用服务器资源采取了将redis和mysql交叉部署的方式,如示例:

序号 服务器 配置 部署应用 其他应用
1 MariaDB Galera Cluster 1 8核16G 100G SSD云盘 mysql  节点1  redis备
2 MariaDB Galera Cluster 2 mysql  节点2 redis主
3 MariaDB Galera Cluster 3 8核16G 100G 普通云盘 mysql  节点3 接口程序、短信、彩信程序

弊端:应用耦合性比较高,而采取的方式必须要重启服务器,由于耦合性太高,导致真个扩容难度太大,重启服务器期间不仅数据库受影响,应用程序也会受影响。

具体操作:

由于节点3是整个系统的 接口程序和登录程序的一个节点,在SLB后端切掉流量后,先用此设备扩容测试,测试成功后再扩容其他服务器。

(1)、在控制台找到示例的磁盘扩容,一般在产生快照的过程中不能扩容,等扩容订单完成后,在阿里云控制台重启服务器,不是远程连接客户端重启,此处踩坑 晚上12点多给阿里云打电话、提工单,最后发现是必须在控制台重启。

以下步骤和截图复制阿里云帮助文档

如果主机之前并未划分过分区,只是使用裸盘格式化使用,那么可以使用如下方法进行原地扩容。

  1. 查看当前挂载信息,可以看到是裸盘挂载,磁盘大小 5G。
    阿里云磁盘扩容踩坑总结
  2. 运行 umount /dev/xvdb 取消挂载。
    阿里云磁盘扩容踩坑总结
  3. 控制台进行磁盘扩容,然后重新挂载(按量付费的云盘);或者控制台重启服务器(普通云盘)。
  4. 系统内查看磁盘,已经是升级后的 6G 了。
    阿里云磁盘扩容踩坑总结
  5. 依次运行如下命令。

    e2fsck -f /dev/xvdb

    阿里云磁盘扩容踩坑总结
    resize2fs /dev/xvdb
    阿里云磁盘扩容踩坑总结
  6. mount /dev/xvdb/mnt 重新挂载磁盘。可以看到磁盘已经扩容成功。
    阿里云磁盘扩容踩坑总结

在扩容SSD的时候,遇到了一部分问题,但是由于时间紧急并未截图,也过去好几周了忘记了整个过程,所以在此不做详细的描述,注意事项: