1Panel 定时备份功能错误使用系统盘临时目录导致磁盘占满
环境信息
- 操作系统:Ubuntu 22.04.1 LTS
- 1Panel版本:v1.10.29-lts
- 磁盘配置:系统盘128GB + 数据盘4TB(备份目标盘)
Problem Description
当使用1Panel的定时备份目录功能备份大文件(>128GB)时:
- 虽然指定了外部备份存储路径(如
/mnt/nvme) - 但压缩过程仍强制使用系统盘临时目录
/opt/1panel/tmp - 导致系统盘被完全占满
- 最终引发
1panel disk I/O error (4874)面板服务崩溃
Steps to Reproduce
- 配置定时目录备份任务(指向大容量数据目录,如 >128GB)
- 观察备份执行过程:
bash
关键进程展示:
root 50264 2.9 0.0 9864 3200 ? S 17:32 0:00 tar … -zcf /opt/1panel/tmp/…/directory_mnt_nvme_…tar.gz … root 50269 96.7 0.0 3528 1920 ? R 17:32 0:26 gzip
- 等待系统盘空间持续消耗至100%
- 面板服务不可用并报错
The expected correct result
- 压缩过程应在用户指定的备份存储路径(如
/mnt/nvme/backups)创建临时文件 - 或提供临时目录配置选项
- 系统盘空间不应被备份任务占用
Related log output
可以看到系统盘/dev/sda2被占满了:
arm@arm-Default-string:/mnt/hdd_4T_for_backup$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 6.3G 131M 6.2G 3% /run
/dev/sda2 117G 117G 0 100% /
tmpfs 32G 8.0K 32G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
efivarfs 128K 28K 96K 23% /sys/firmware/efi/efivars
/dev/nvme0n1p1 1.8T 122G 1.6T 7% /mnt/nvme
/dev/sda1 511M 6.1M 505M 2% /boot/efi
/dev/sdb1 1.8T 99G 1.7T 6% /mnt/hdd
tmpfs 6.3G 124K 6.3G 1% /run/user/1000
/dev/sdc1 3.6T 33G 3.4T 1% /mnt/hdd_4T_for_backup
1panel 在/opt/1panel/tmp的占用:
arm@arm-Default-string:/opt/1panel$ du -sh *
4.0K apps
4.0K backup
104K cache
12M db
8.0K docker
19M geo
du: cannot read directory 'log': Permission denied
4.0K log
4.0K mcp
1.4M resource
4.0K runtime
91G tmp
Additional Information
故障分析
- 关键错误:备份过程分两步
- 先在系统盘生成压缩包:
/opt/1panel/tmp/xxx.tar.gz - 再(可能)移动到目标存储位置
- 先在系统盘生成压缩包:
- 设计缺陷:未考虑系统盘容量限制,对大型备份操作缺乏保护机制
留下评论