最近571免费资源小编在宝塔论坛上看到一篇关于宝塔面板下磁盘扩容的无损操作,觉得非常不错,转载过来。
当网站的业务量越来越多的时候,会发现数据盘已经容不下了,于是打算对数据盘进行扩容,由于以前照着阿里云的教程操作,导致网站一百多G的数据全部丢失,当时没有做备份和快照,导致后来手工操作7天7夜不休不眠的发布数据,流量下降了,数据也丢了,人也受累了,于是在今夜奋发学习,终于学得无损磁盘扩容的教程,以下图片来自于阿里云创建的抢占式实例。
注:
1、本教程只针对数据盘(文中绿色字体代表要输入的命令,紫色代表重点)
2、数据提前做好备份和快照
3、阿里云磁盘,宝塔面板,Centos 7的系统
4、我的服务器现有系统盘 /dev/vda1,数据盘/dev/vdb1,在远程连接中输入:df -h 回车
步骤:
一,阿里云后台在数据盘更多处点击磁盘扩容,选中在线扩容,我的原来是78G,扩充后154G,提交订单。发现在阿里云后台显示是154G,宝塔面板还是77G,文件系统约占1G。
二,停止相关的服务
1,停止宝塔的所有任务,在宝塔面板中计划任务中新建shell脚本任务,名称随便写,点击保存并点击执行。脚本内容如下:
<font size="4" color="#2e8b57">#!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH stop_service(){ /etc/init.d/bt stop if [ -f "/etc/init.d/nginx" ]; then /etc/init.d/nginx stop > /dev/null 2>&1 fi if [ -f "/etc/init.d/httpd" ]; then /etc/init.d/httpd stop > /dev/null 2>&1 fi if [ -f "/etc/init.d/mysqld" ]; then /etc/init.d/mysqld stop > /dev/null 2>&1 fi if [ -f "/etc/init.d/pure-ftpd" ]; then /etc/init.d/pure-ftpd stop > /dev/null 2>&1 fi if [ -f "/etc/init.d/tomcat" ]; then /etc/init.d/tomcat stop > /dev/null 2>&1 fi if [ -f "/etc/init.d/redis" ]; then /etc/init.d/redis stop > /dev/null 2>&1 fi if [ -f "/etc/init.d/memcached" ]; then /etc/init.d/memcached stop > /dev/null 2>&1 fi if [ -f "/www/server/panel/data/502Task.pl" ]; then rm -f /www/server/panel/data/502Task.pl if [ -f "/etc/init.d/php-fpm-52" ]; then /etc/init.d/php-fpm-52 stop > /dev/null 2>&1 fi if [ -f "/etc/init.d/php-fpm-53" ]; then /etc/init.d/php-fpm-53 stop > /dev/null 2>&1 fi if [ -f "/etc/init.d/php-fpm-54" ]; then /etc/init.d/php-fpm-54 stop > /dev/null 2>&1 fi if [ -f "/etc/init.d/php-fpm-55" ]; then /etc/init.d/php-fpm-55 stop > /dev/null 2>&1 fi if [ -f "/etc/init.d/php-fpm-56" ]; then /etc/init.d/php-fpm-56 stop > /dev/null 2>&1 fi if [ -f "/etc/init.d/php-fpm-70" ]; then /etc/init.d/php-fpm-70 stop > /dev/null 2>&1 fi if [ -f "/etc/init.d/php-fpm-71" ]; then /etc/init.d/php-fpm-71 stop > /dev/null 2>&1 fi fi swapoff /www/swap } stop_service</font>
2,登陆SSH到服务器
(1)关闭swap分区:
swapoff -a
(2)卸载主机监控(部分主机商有):
/usr/local/cloudmonitor/wrapper/bin/cloudmonitor.sh remove && \ rm -rf /usr/local/cloudmonitor
(3)解除占用(把占用 /dev/vdb1 的进程杀死):
fuser -m -k /dev/vdb1
(4)卸载主分区:
umount /dev/vdb1
使用 df -h 查看是否卸载成功,如果看不到 /dev/vdb1 的信息表示卸载成功。
提示:如果还看得到/dev/vdb1 则重复依次操作停止宝塔任务,关闭swap分区,卸载主机监控,解除占用,卸载主分区。
三,重点来了,操作磁盘
1,运行fdisk -l 命令,
上图中disk /dev/vda:64.4GB,说明系统盘是65G左右,disk /dev/vdb:165.4GB与阿里云后台的容量对应。
另外看/dev/vdb1 后面的相关信息,在中间一行End信息中为163577855,我的个人理解是163G的意思,系统也占几G。
2,运行fdisk /dev/vdb命令进入磁盘操作,为什么是/dev/vdb而不是图中的/dev/vdb1,这vdb代表一个磁盘的名称,与阿里云后台磁盘
名称是对应的,而vdb1则代表vdb磁盘的第1个分区(个人理解)
3,输入 d 并按回车键,删除原来的分区(删除分区不会造成数据盘内数据的丢失)
输入 n 并按回车键,开始创建新的分区
输入 p 并按回车键,选择创建主分区
输入 1 代表后default默认是1,应该也可以直接回车
然后就发现First sector (2048-322961407,deffault 2048),其中322961407大于上图中End中的163577855,则代表分区大于原来的分区。
当看到“… size 154GiB is set” 说明已经成功建立新的主分区
输入 wq 并按回车键,开始保存之前对分区的操作
四:更新文件系统信息
1,查文系统,命令为:e2fsck -f /dev/vdb1
2,变更文件系统大小,命令为:resize2fs /dev/vdb13,将扩容完成的文件系统挂载到原来的挂载点(如本示例中的用宝塔官方挂载的第一块磁盘位置 /www),命令为:mount /dev/vdb1 /www4,输入命令 df -h 查看信息
看图中的信息,Size 是152G,应该是可用的空间,Avail 是145G。
五,收尾
执行完后扩容好磁盘后重新挂载上去后执行以下两条命令
swapon /www/swap
echo "True" > /www/server/panel/data/502Task.pl
最后别忘了启动宝塔服务
/etc/init.d/bt start
登陆宝塔后台,刷新一下看看空间是不是变成了可用的空间152G呢?
收工。【点此去看原文】
571免费资源小编再次提醒,这些步骤之前,一定一定一定要先备份数据。
联系人:徐经理
手机:13907330718
电话:0731-22222718
邮箱:hniatcom@163.com
地址: 湖南省株洲市石峰区联诚路79号轨道智谷2号倒班房6楼603室