我有一个运行了很长时间的 VPS。它用于一些小型网站以及我自己和家人的私人邮件。根据 directadmin 的说法,我只使用了 10 GB 的空间,而 VPS 应该有 50 GB。
上周我在测试 SQL 查询。昨天我遇到了第一个错误,phpmyadmin 无法执行一条 SQL,原因是:没有剩余空间。小查询确实有效。我将我的 VPS 计划从 50gb 更新为 150gb,并进行了更新:
yum check-update
yum update -y
/usr/local/directadmin/custombuild/build update
/usr/local/directadmin/custombuild/build update_versions
reboot
重启后,Apache、Exim、MariaDB 和 Named 停止运行。Directadmin 正在运行,所以我可以访问它,但我的所有网站和电子邮件现在都无法访问。
当我表演时:
[root@server domains]# systemctl status httpd.service
● httpd.service - The Apache HTTP Server
Loaded: loaded (/etc/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: failed (Result: resources)
Jun 20 21:53:32 server.intermagic.nl systemd[1]: httpd.service failed to run 'start' task: No space left on device
Jun 20 21:53:32 server.***.nl systemd[1]: Failed to start The Apache HTTP Server.
Jun 20 21:53:32 server.***.nl systemd[1]: Unit httpd.service entered failed state.
Jun 20 21:53:32 server.***.nl systemd[1]: httpd.service failed.
Jun 20 21:57:43 server.***.nl systemd[1]: httpd.service failed to run 'start' task: No space left on device
Jun 20 21:57:43 server.***.nl systemd[1]: Failed to start The Apache HTTP Server.
Jun 20 21:57:43 server.***.nl systemd[1]: httpd.service failed.
经过多次重启后我现在得到:
[admin@server tmp]$ systemctl status httpd.service
● httpd.service - The Apache HTTP Server
Loaded: loaded (/etc/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: failed (Result: resources)
这可能是什么原因造成的?真的是太多错误的 SQL 查询了吗?我该怎么办?我可以重新安装所有内容,但是……
编辑1:
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 89M 1.8G 5% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/vg_directadmin-lv_root 48G 20G 28G 42% /
/dev/vda1 497M 262M 236M 53% /boot
/dev/mapper/vg_directadmin-lv_tmp 1014M 1014M 0 100% /tmp
答案1
从df -h
输出中可以很容易地发现使用 100%
和可用性 0
。
您的/tmp
已满。增加容量并/
不能解决这个问题。
问题如何增加 directadmin tmp在 DirectAdmin 论坛上进行了讨论。
答案2
使用以下命令检查系统是否具有足够的可用范围(PFree
列):
sudo pvs
如果您有足够的可用 LVM 扩展,您可以通过运行以下命令来扩展/tmp
卷:300MB
sudo lvextend -L +300m --resizefs /dev/mapper/vg_directadmin-lv_tmp
如果没有足够的可用区:
- 您需要查看哪个 /dev/vd[ab][0-9] 块设备上有 /tmp。
lsblk
将帮助您识别这一点。 - 扩展存储 /dev/vd[ab][0-9] 块设备的虚拟机的磁盘。这可以在现代云和虚拟化平台中在线完成。
- 让虚拟机重新扫描块设备以查看大小是否发生变化。以
root
用户身份运行以下命令,确保使用正确的vd...
设备:echo 1 > /sys/block/vd..../device/rescan
- 扩展LVM物理磁盘:
pvresize /dev/vd....
- 扩展 LV 和文件系统:
lvextend -L +300m --resizefs /dev/mapper/vg_directadmin-lv_tmp
- 无需重启
您还可以使用这个脚本asroot
它将生成扩展/tmp
卷的命令:sudo bash vol_resize.sh --block-device /dev/mapper/vg_directadmin-lv_tmp