很多时候,我们会发现自己的服务器或者VPS主机会出现后台无法登录,或者是数据库连接错误,严重一点甚至连FTP和S-S-H都无法登录,但是查看主机系统负载正常,流量和带宽也一切正常,这时候就要怀疑是不是你的主机硬盘空间已经占用了100%了。
挖站否以前就遇到过好几次这样的情况,在一筹莫展之时猛然醒悟是因为硬盘空间用完导致的,常见的就是日志文件过多过大导致的。曾经见过有超过50GB以上的日志文件,真得让人汗颜!扩容硬盘推荐使用LVM动态扩容,后期可以多次“无痛”给硬盘扩容,方便快捷。
本篇文章就来分享一下如何在VPS主机和服务器磁盘挂载与动态扩容硬盘,如果你的VPS主机或者是独立服务器磁盘占用100%,可以通过以下方法查找问题并实现动态扩容:
一般来说,VPS主机商支持直接扩容硬盘和挂载扩容硬盘,如果你用的是SolusVM面板的VPS(例如:其云否主机),你可以直接扩容硬盘了,SolusVM支持直接给硬盘增加容量。
如果你用的是阿里云、腾讯云等云主机则可以直接挂载硬盘,来给自己的VPS主机增加硬盘容量,参考:Linux挂载硬盘扩容方法-阿里云,腾讯云和Linode VPS挂载硬盘扩容。
无法是直接扩容还是挂载硬盘,扩大后的硬盘容量都是需要分区并挂载后才可以使用的。用df -h命令查看硬盘的容量等于用fdisk -l命令查看硬盘分区的容量,但是小于fdisk的总空间, 如下图:
这时候我们就可采用新建分区然后挂载给硬盘达到扩容的目的了。执行命令:fdisk /dev/vda(根据实际调整硬盘路径),进入fdisk分区,依次输入n(新建分区)→p(主分区)→1.2.3(分区号)→回车→p(查看分区)→w(保存)。点击放大:
为了达到动态扩容的目的,我们还需要将硬盘分区转化成LVM格式,我们还需要再次进入到fdisk命令,然后输入:t(转换格式)→分区号1.2.3→8e(LVM)→p(查看分区)→w(保存)。如下图:
利用上面的方法,我们将多出来的3GB硬盘新建了一个sda3的分区,并设置为LVM格式。重启VPS主机生效,或者执行命令(该命令在CentOS 6可能会不支持):partprobe。(如果提示该命令不存在,先执行安装:yum -y install parted)
新的硬盘分区已经创建并设置为LVM格式完成了,现在我们就需要将新的硬盘分区挂载到某一个目录下使用了,使用以下命令创建物理卷、逻辑卷,说明如下:
操作如下图:
假设你要将硬盘挂载在/home2目录下,你需要先创建好该目录。
现在使用以下命令将新的分区挂载到/home2目录下:
操作如下图:
现在我们再次使用命令:df -h就可以看到新硬盘分区已经成功挂载并可以使用了。
打开/home2,我们就可以往里面存储了。
假设后期我们又给硬盘增加了容量,如下图:
由于我们之前用了LVM格式的硬盘分区,现在我们可以将新的硬盘容量直接增加到原来的硬盘空间上而不损坏数据。首先,还是按照上面的方法继续新建一个分区,并设置为LVM格式,这里是/dev/vda4。
创建好的新的分区不要挂载,而是按照下面的方法,给新的分区创建物理卷,并加入/dev/vda3所属的逻辑卷组,将逻辑卷组的空间全部扩容到原来的硬盘分区即可,操作如下:
如下图:
最后,我们可以看到硬盘分区动态扩容成功了,而原来的数据依然保留没有损坏。
如果你遇到了错误:“resize2fs: Operation not permitted While trying to add group #1024”,一般来说是由于是由于以下原因导致的:
我们可以通过以下方法来解决:
如果上面还是无法解决问题,请直接将/dev/vda3卸载了,离线扩容,然后再挂载,如下:
DirectAdmin磁盘空间不足的问题一般是由于默认的目录/home存储文件太多的原因导致的,因为DirectAdmin默认的用户所有的网站文件都是放在/home里。解决DirectAdmin磁盘空间不足,我们只需要给DirectAdmin再指定一个新的目录/home2即可。
操作基本流程:按照上面的方法新建/home2目录,然后新建分区并挂载在该目录下,记得使用LVM动态扩容挂载,后期有扩容需要直接在/home2上操作,一劳永逸!命令如下:
操作如下图:
现在, DirectAdmin面板新建的用户的存储都会放在/home2目录下,后期如果存储空间再次不足的话可以用LVM动态扩容的方法将/home目录再次扩容。
硬盘动态扩容最关键的就是要使用LVM格式,挂载和扩容硬盘是一个比较有风险的操作,在扩容前一定要备份好自己的数据,不要有任何的侥幸心理。
网站搭建好了再给目录挂载新的分区会存在很多的问题,建议大家在建站前就要尽早规划好存储容量,例如可以提前建立LVM分区,自定义存储路径等等。
挖站否以前就遇到过好几次这样的情况,在一筹莫展之时猛然醒悟是因为硬盘空间用完导致的,常见的就是日志文件过多过大导致的。曾经见过有超过50GB以上的日志文件,真得让人汗颜!扩容硬盘推荐使用LVM动态扩容,后期可以多次“无痛”给硬盘扩容,方便快捷。
本篇文章就来分享一下如何在VPS主机和服务器磁盘挂载与动态扩容硬盘,如果你的VPS主机或者是独立服务器磁盘占用100%,可以通过以下方法查找问题并实现动态扩容:
- Linux系统磁盘空间占满的解决方法-No Space Left on Device错误
- Linux独立服务器和VPS主机硬盘动态扩容-LVM逻辑卷扩大缩小方法
- Linux VPS主机硬盘扩容方法-VPS新硬盘分区挂载和硬盘动态扩容
一、扩大服务器硬盘容量
一般来说,VPS主机商支持直接扩容硬盘和挂载扩容硬盘,如果你用的是SolusVM面板的VPS(例如:其云否主机),你可以直接扩容硬盘了,SolusVM支持直接给硬盘增加容量。
如果你用的是阿里云、腾讯云等云主机则可以直接挂载硬盘,来给自己的VPS主机增加硬盘容量,参考:Linux挂载硬盘扩容方法-阿里云,腾讯云和Linode VPS挂载硬盘扩容。
二、给硬盘分区并挂载
无法是直接扩容还是挂载硬盘,扩大后的硬盘容量都是需要分区并挂载后才可以使用的。用df -h命令查看硬盘的容量等于用fdisk -l命令查看硬盘分区的容量,但是小于fdisk的总空间, 如下图:
这时候我们就可采用新建分区然后挂载给硬盘达到扩容的目的了。执行命令:fdisk /dev/vda(根据实际调整硬盘路径),进入fdisk分区,依次输入n(新建分区)→p(主分区)→1.2.3(分区号)→回车→p(查看分区)→w(保存)。点击放大:
为了达到动态扩容的目的,我们还需要将硬盘分区转化成LVM格式,我们还需要再次进入到fdisk命令,然后输入:t(转换格式)→分区号1.2.3→8e(LVM)→p(查看分区)→w(保存)。如下图:
利用上面的方法,我们将多出来的3GB硬盘新建了一个sda3的分区,并设置为LVM格式。重启VPS主机生效,或者执行命令(该命令在CentOS 6可能会不支持):partprobe。(如果提示该命令不存在,先执行安装:yum -y install parted)
三、将新分区挂载使用
新的硬盘分区已经创建并设置为LVM格式完成了,现在我们就需要将新的硬盘分区挂载到某一个目录下使用了,使用以下命令创建物理卷、逻辑卷,说明如下:
- fdisk /dev/vda
- pvcreate /dev/vda3 //创建物理卷
- vgcreate qyfouda /dev/vda3 //创建逻辑卷组
- vgchange -ay qyfouda //激活逻辑卷组
- vgdisplay qyfouda | grep "Total PE" //查看该卷组所有的PE
- lvcreate -l 30719 -n qimm qyfouda //创建逻辑卷
- mkfs.ext4 /dev/qyfouda/qimm //格式化逻辑卷
操作如下图:
假设你要将硬盘挂载在/home2目录下,你需要先创建好该目录。
现在使用以下命令将新的分区挂载到/home2目录下:
- vim /etc/fstab
- /dev/qyfouda/qimm /home2 ext4 defaults 0 0
- #全部挂载
- mount -a
操作如下图:
现在我们再次使用命令:df -h就可以看到新硬盘分区已经成功挂载并可以使用了。
打开/home2,我们就可以往里面存储了。
四、动态扩容原硬盘分区
4.1 LVM动态扩容
假设后期我们又给硬盘增加了容量,如下图:
由于我们之前用了LVM格式的硬盘分区,现在我们可以将新的硬盘容量直接增加到原来的硬盘空间上而不损坏数据。首先,还是按照上面的方法继续新建一个分区,并设置为LVM格式,这里是/dev/vda4。
创建好的新的分区不要挂载,而是按照下面的方法,给新的分区创建物理卷,并加入/dev/vda3所属的逻辑卷组,将逻辑卷组的空间全部扩容到原来的硬盘分区即可,操作如下:
- pvs
- pvcreate /dev/vda4 //创建新的物理卷
- vgextend qyfouda /dev/vda4 //将新硬盘加入原来的卷组,可通过PVS查看
- vgdisplay qyfouda | grep "Total PE" //查看所有PE
- lvresize -l 107517 /dev/qyfouda/qimm //重新规定大小
- resize2fs /dev/qyfouda/qimm //扩容
如下图:
最后,我们可以看到硬盘分区动态扩容成功了,而原来的数据依然保留没有损坏。
4.2 扩容遇到问题
如果你遇到了错误:“resize2fs: Operation not permitted While trying to add group #1024”,一般来说是由于是由于以下原因导致的:
这个问题是由于文件系统预留的Journal size太小导致,可以通过dumpe2fs /dev/test_vg/lvol0 |grep -i Journal查看。(Journal size大小默认由e2fsprogs工具自动根据文件系统大小来计算,也可以认为指定。越大Journal size,对文件系统性能越好,Ext4最大Journal size是400M。)
我们可以通过以下方法来解决:
- #解决步骤:
- #查看
- dumpe2fs /dev/qyfouda/qimm | grep -i Journal
- e2fsck -C 0 /dev/qyfouda/qimm
- #删除原来的journal空间
- tune2fs -O ^has_journal /dev/qyfouda/qimm
- tune2fs 1.40.2 (12-Jul-2007)
- #自动生成新的journal
- tune2fs -j /dev/qyfouda/qimm
- tune2fs 1.40.2 (12-Jul-2007)
- Creating journal inode: done
- This filesystem will be automatically checked every 33 mounts or
- 180 days, whichever comes first. Use tune2fs -c or -i to override.
- #也可以指定大小
- #tune2fs -j -J size=400 /dev/mapper/${name_of_your_logical_volume}
- #例如
- #tune2fs -j -J size=400 /dev/qyfouda/qimm
- e2fsck -C 0 /dev/qyfouda/qimm
- e2fsck 1.40.2 (12-Jul-2007)
- /dev/os/test: clean, 11/524288 files, 24822/524288 blocks
如果上面还是无法解决问题,请直接将/dev/vda3卸载了,离线扩容,然后再挂载,如下:
- umount -v /home2
- /dev/mapper/qyfouda-qimm umounted
- resize2fs /dev/qyfouda/qimm //扩容
五、DirectAdmin磁盘问题
DirectAdmin磁盘空间不足的问题一般是由于默认的目录/home存储文件太多的原因导致的,因为DirectAdmin默认的用户所有的网站文件都是放在/home里。解决DirectAdmin磁盘空间不足,我们只需要给DirectAdmin再指定一个新的目录/home2即可。
操作基本流程:按照上面的方法新建/home2目录,然后新建分区并挂载在该目录下,记得使用LVM动态扩容挂载,后期有扩容需要直接在/home2上操作,一劳永逸!命令如下:
- #编辑directadmin.conf 文件,添加一行代码
- ext_quota_partitions=/home2
- #有多个存储目录也可以这样写
- #ext_quota_partitions=/home2,/home3,/home4
- #编辑useradd文件
- vim /etc/default/useradd
- #修改调整此行
- HOME=/home2
- #保存,并重启
- service directadmin restart
操作如下图:
现在, DirectAdmin面板新建的用户的存储都会放在/home2目录下,后期如果存储空间再次不足的话可以用LVM动态扩容的方法将/home目录再次扩容。
六、总结
硬盘动态扩容最关键的就是要使用LVM格式,挂载和扩容硬盘是一个比较有风险的操作,在扩容前一定要备份好自己的数据,不要有任何的侥幸心理。
网站搭建好了再给目录挂载新的分区会存在很多的问题,建议大家在建站前就要尽早规划好存储容量,例如可以提前建立LVM分区,自定义存储路径等等。