公司半年前上线一个新的项目,采购了一批阿里云主机,磁盘组成是40G系统盘+100G的数据盘,数据库采用MariaDB Galera Cluster集群部署,因为业务数据量快速增加,致使磁盘存储空间剩余量不多,急须要扩容,先总结整个项目规划中埋下的坑;html
一、没有DBA对数据库的容量规划,而前期的运维人员采购时选用100G的SSD云盘;mysql
二、数据库默认使用共享表空间,缺点是删除数据后不释放空间,当数据快速增加后,咱们采起了先删除临时表数据的方式来尽可能避免暴力扩容,争取在春节期间稳定,删除部分数据后,容量仍是那么的大,只能考虑扩容;redis
三、整个项目的部署上存在弊端,当初为了更好的利用服务器资源采起了将redis和mysql交叉部署的方式,如示例:sql
序号 | 服务器 | 配置 | 部署应用 | 其余应用 |
1 | MariaDB Galera Cluster 1 | 8核16G 100G SSD云盘 | mysql 节点1 | redis备 |
2 | MariaDB Galera Cluster 2 | 8核16G 100G SSD云盘 | mysql 节点2 | redis主 |
3 | MariaDB Galera Cluster 3 | 8核16G 100G 普通云盘 | mysql 节点3 | 接口程序、短信、彩信程序 |
弊端:应用耦合性比较高,而采起的方式必需要重启服务器,因为耦合性过高,致使真个扩容难度太大,重启服务器期间不只数据库受影响,应用程序也会受影响。数据库
具体操做:后端
因为节点3是整个系统的 接口程序和登陆程序的一个节点,在SLB后端切掉流量后,先用此设备扩容测试,测试成功后再扩容其余服务器。服务器
(1)、在控制台找到示例的磁盘扩容,通常在产生快照的过程当中不能扩容,等扩容订单完成后,在阿里云控制台重启服务器,不是远程链接客户端重启,此处踩坑 晚上12点多给阿里云打电话、提工单,最后发现是必须在控制台重启。运维
如下步骤和截图复制阿里云帮助文档ide
若是主机以前并未划分过度区,只是使用裸盘格式化使用,那么能够使用以下方法进行原地扩容。测试
查看当前挂载信息,能够看到是裸盘挂载,磁盘大小 5G。
运行 umount /dev/xvdb 取消挂载。
控制台进行磁盘扩容,而后从新挂载(按量付费的云盘);或者控制台重启服务器(普通云盘)。
系统内查看磁盘,已是升级后的 6G 了。
依次运行以下命令。
e2fsck -f /dev/xvdb
resize2fs /dev/xvdb
mount /dev/xvdb/mnt 从新挂载磁盘。能够看到磁盘已经扩容成功。
在扩容SSD的时候,遇到了一部分问题,可是因为时间紧急并未截图,也过去好几周了忘记了整个过程,因此在此不作详细的描述,注意事项:
一、扩容前先作磁盘快照,二、扩容过程当中不要格式化硬盘。