记一次阿里云服务器ECS磁盘扩容的过程
公司有一台阿里云主机ECS,线上磁盘扩容了500G,但是一直没有生效,主机是Cent OS 系统,问了下阿里云的技术,原来在线扩容还不行的,还要在主机上进行命令扩容。

首先网上的教程,发现大部分的方法都是,先把磁盘卸载下来,重新分区,通过resize2fs 命令扩大。于是我按照网上的教程去做。
在卸载分区的时候,出现了问题,卸载不了,富勒OMS用的是MySql数据库,磁盘被这个线程占用了:
查看线程占用的命令是:
fuser -m -v /dev/vdb --查看系统磁盘被什么线程占用
fuser -m -v -k -i /dev/vdb --杀掉线程,也可以不加-i,-i 的作用是杀掉一个进程会有提示让你确认
但是以上命令杀不掉mysql的进程,我只好想办法把MySql先停掉,由于白天是订单生产时间,要到晚上项目停了再搞。经过和富勒的技术沟通,同意,同时他还提醒我,停掉MySql重启后,要记得把定时器开启;
同时要检查下把 Nginx,MYSQL,PHP都开启,我查看了下,发现这就是典型的LNMP 架构啊,心中有些小激动。什么是LNMP 架构呢?
L Linux 系统
N nginx网站服务 接收用户的访问,并进行处理(静态请求)
P PHP网站服务 接收用户的访问,并进行处理(动态请求)
M MySQL 数据库服务
由于是生产库,很怕出错,所以,我决定先在虚拟机模拟操作,避免出错,我计划把Nginx,MYSQL,PHP先停了,再操作扩容。计划的操作步骤如下:
1停止MySql
service mysql status --查看状态
service mysql stop lnmp mysql stop --停止
service mysql start --开启
拓展阅读:https://www.cnblogs.com/linjiqin/archive/2014/02/11/3544472.html
2停止Nginx
service nginx status --查看状态
cd /usr/local/webserver/nginx/sbin --找到安装目录
./nginx -s stop --停止Nginx
3停止PHP
service php-fpm status --查看状态
pkill php-fpm --停止
/usr/local/php5/sbin/php-fpm --/usr/local/php5/为php-fpm的安装地址 开启php-fpm
4扩容成功后开启OMS(富勒的订单管理系统)的定时器
cd /data/wwwroot/oms
./cron_start.sh
我踌躇满志,做好了计划,准备晚上按照计划去做。但是这时,阿里云的技术也发给我一份官方的教程文档:阿里云官方磁盘扩容教程
阿里云的教程建议我们做磁盘扩容,要先创建快照,创建的教程如下:
创建磁盘快照的教程
于是,我创建一个快照,万一出了差错可以回滚。
这里特别要提醒的是:快照创建后是会收取存储费用的,如果不需要,可以删掉,避免后续产生费用
阿里云官方操作教程的操作步骤如下:
1 yum install cloud-utils-growpart --根据操作系统安装growpart或者xfsprogs扩容格式化工具
2 fdisk -l --查看磁盘大小
3 df -h --查看磁盘分区大小
4 growpart /dev/vda 1 --命令调用growpart为需要扩容的云盘和对应的第几个分区扩容,示例命令表示为系统盘的第一个分区扩容
5 resize2fs /dev/vda1 --命令调用resize2fs扩容文件系统
我按照操作1、2、3都没有问题,但是在第四步出了一些差错,我根据系统的磁盘,输入命令:growpart /dev/vdb 1 出现报错,报错的提示是:没有找到目录/dev/vdb的分区,也就是说,在第一个图片所示的系统磁盘里,并没有 /dev/vdb1 的分区,所以,如果要扩容为查看有 /dev/vdb1的分区,大家要先创建分区。
创建分区的操作如下:
fdisk /dev/vdb #进入 fdisk 界面
d #并按回车键,删除原来的分区,删除分区不会造成数据盘内数据的丢失
n #并按回车键,开始创建新的分区
p #并按回车键,选择创建主分区
1 #输入分区编号并按回车键,因为这里仅创建一个分区,所以输入 1
wq #并按回车键,开始分区
这时候再次查看,就会有/dev/vdb1的分区出现了
但是,我没有重新分区,我再次输入命令:growpart /dev/vdb,注意没有“1” ,然后系统没有报错,紧接着,我又输入resize2fs /dev/vdb 命令,系统等待了好久,我以为出差错了,没想到过一会系统返回 :The filesystem on /dev/vdb is now 一串数字 blocks long.说明我的扩容是成功了,非常兴奋!
然后我df -h 再次查看磁盘大小,果真是成功了!
这次磁盘扩容给我的启示是:1,先认真读懂操作教程,再去做,如果没有读懂教程就去做,容易机械的照搬方法,遇到错误自己不知道怎么去改。
2,遇到问题多请教别人,多联系相关技术人员,问下他们有没有建议和需要注意的事项。例如这次如果没有联系富勒的技术同事,我就不知道MYSQL重启后,还需要开启定时器;如果没有联系阿里云的技术,我就不知道官方的在线扩容的教程了。
3,不熟悉的操作,先在测试服务器模拟下,到了正式库操作才会有把握,有底气。
来源:CSDN
作者:lcd_csdn
链接:https://blog.csdn.net/lcd_csdn/article/details/103781526