VPS主机和服务器磁盘挂载与动态扩容方法-附解决DirectAdmin磁盘空间不足问题

很多时候,我们会发现自己的服务器或者VPS主机会出现后台无法登录,或者是数据库连接错误,严重一点甚至连FTP和S-S-H都无法登录,但是查看主机系统负载正常,流量和带宽也一切正常,这时候就要怀疑是不是你的主机硬盘空间已经占用了100%了。

挖站否以前就遇到过好几次这样的情况,在一筹莫展之时猛然醒悟是因为硬盘空间用完导致的,常见的就是日志文件过多过大导致的。曾经见过有超过50GB以上的日志文件,真得让人汗颜!扩容硬盘推荐使用LVM动态扩容,后期可以多次“无痛”给硬盘扩容,方便快捷。

VPS主机和服务器磁盘挂载与动态扩容方法-附解决DirectAdmin磁盘空间不足问题

本篇文章就来分享一下如何在VPS主机和服务器磁盘挂载与动态扩容硬盘,如果你的VPS主机或者是独立服务器磁盘占用100%,可以通过以下方法查找问题并实现动态扩容:

  1. Linux系统磁盘空间占满的解决方法-No Space Left on Device错误
  2. Linux独立服务器和VPS主机硬盘动态扩容-LVM逻辑卷扩大缩小方法
  3. Linux VPS主机硬盘扩容方法-VPS新硬盘分区挂载和硬盘动态扩容

PS:更新记录。

1、想要购买独立服务器的朋友,可以查看专题:国内外独立服务器/独服整理汇总-国外主要机房独立服务器列表。2022.5.8

一、扩大服务器硬盘容量

一般来说,VPS主机商支持直接扩容硬盘和挂载扩容硬盘,如果你用的是SolusVM面板的VPS(例如:其云否主机),你可以直接扩容硬盘了,SolusVM支持直接给硬盘增加容量。

VPS主机和服务器扩容方法

如果你用的是阿里云、腾讯云等云主机则可以直接挂载硬盘,来给自己的VPS主机增加硬盘容量,参考:Linux挂载硬盘扩容方法-阿里云,腾讯云和Linode VPS挂载硬盘扩容

二、给硬盘分区并挂载

无法是直接扩容还是挂载硬盘,扩大后的硬盘容量都是需要分区并挂载后才可以使用的。用df -h命令查看硬盘的容量等于用fdisk -l命令查看硬盘分区的容量,但是小于fdisk的总空间, 如下图:

VPS主机和服务器扩容容量不一样

这时候我们就可采用新建分区然后挂载给硬盘达到扩容的目的了。执行命令:fdisk /dev/vda(根据实际调整硬盘路径),进入fdisk分区,依次输入n(新建分区)→p(主分区)→1.2.3(分区号)→回车p(查看分区)→w(保存)。点击放大:

VPS主机和服务器扩容新建分区

为了达到动态扩容的目的,我们还需要将硬盘分区转化成LVM格式,我们还需要再次进入到fdisk命令,然后输入:t(转换格式)→分区号1.2.38e(LVM)→p(查看分区)→w(保存)。如下图:

VPS主机和服务器扩容转换格式

利用上面的方法,我们将多出来的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 //格式化逻辑卷

操作如下图:

VPS主机和服务器扩容创建物理卷

假设你要将硬盘挂载在/home2目录下,你需要先创建好该目录。

VPS主机和服务器扩容新建目录

现在使用以下命令将新的分区挂载到/home2目录下:

vim /etc/fstab 

/dev/qyfouda/qimm     /home2           ext4    defaults        0 0

#全部挂载
mount -a

操作如下图:

VPS主机和服务器挂载目录

现在我们再次使用命令:df -h就可以看到新硬盘分区已经成功挂载并可以使用了。

VPS主机和服务器成功挂载完成

打开/home2,我们就可以往里面存储了。

VPS主机和服务器扩容存储文件

四、动态扩容原硬盘分区

4.1 LVM动态扩容

假设后期我们又给硬盘增加了容量,如下图:

VPS主机和服务器扩容后期

由于我们之前用了LVM格式的硬盘分区,现在我们可以将新的硬盘容量直接增加到原来的硬盘空间上而不损坏数据。首先,还是按照上面的方法继续新建一个分区,并设置为LVM格式,这里是/dev/vda4

VPS主机和服务器扩容再新建一个分区

创建好的新的分区不要挂载,而是按照下面的方法,给新的分区创建物理卷,并加入/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 //扩容

如下图:

VPS主机和服务器扩容到原来的分区

最后,我们可以看到硬盘分区动态扩容成功了,而原来的数据依然保留没有损坏。

VPS主机和服务器扩容保留原来的数据

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即可。

DirectAdmin磁盘空间不足问题

PS:20230416更新,新版Directadmin支持在directadmin.conf直接添加参数,让新建用户的网站目录都存放在新的默认存储路径上。打开directadmin.conf添加:create_user_home_override=/home2,或者如果你有多个存储路径可以改成这样:home_override_list=/home:/home2:/home3。这样会在套餐包比前面一个多出一个选择,相对来说比create_user_home_override=/home2这样灵活一些。参考:https://www.directadmin.com/features.php?id=2060

操作基本流程:按照上面的方法新建/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磁盘空间不足问题指定目录

现在, DirectAdmin面板新建的用户的存储都会放在/home2目录下,后期如果存储空间再次不足的话可以用LVM动态扩容的方法将/home目录再次扩容。

DirectAdmin磁盘扩容成功

六、总结

硬盘动态扩容最关键的就是要使用LVM格式,挂载和扩容硬盘是一个比较有风险的操作,在扩容前一定要备份好自己的数据,不要有任何的侥幸心理。

网站搭建好了再给目录挂载新的分区会存在很多的问题,建议大家在建站前就要尽早规划好存储容量,例如可以提前建立LVM分区,自定义存储路径等等。

文章出自:挖站否 https://wzfou.com/disk-kuorong/,版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。


分享到:
Avatar for Qi
关于站长(Qi),2008年开始混迹于免费资源圈中,有幸结识了不少的草根站长。之后自己摸爬滚打潜心学习Web服务器、VPS、域名等,兴趣广泛,杂而不精,但愿将自己经验与心得分享出来与大家共勉。
已有 3 条评论
  1. Avatar for Their Their

    当初装DA的时候就遇到这种情况

    2020年5月31日 20:03来自移动端 回复
  2. Avatar for zn zn

    LVM格式后就数据没了。

    2020年2月12日 18:51 回复
  3. Avatar for Noie Noie

    DA还是不错的。

    2020年2月11日 19:05 回复