在法国用二手 Dell 跑 Proxmox,备份别只放同一块盘
去年从 LeBonCoin 上花 90 欧收了一台二手 Dell OptiPlex 3070,i5-9500T、16G 内存,装了 Proxmox VE 8.1。上面跑着 Home Assistant、一个 Debian 小鸡做 DNS 和反代、还有个 Ubuntu 容器跑 Wekan——纯属自娱自乐,但数据丢了也会烦。
一开始图省事,PVE 安装时只选了一块 256G 的 NVMe,所有 VM 和容器都放在 local-lvm。备份计划设成每天凌晨 3 点,vzdump 落在一个从旧笔记本拆下来的 500G 机械盘上,用 USB 3.0 转接线挂着。跑了一个月相安无事,直到有天早上发现备份目录里只剩最近两天的文件,之前的一概不见。
先看日志:
INFO: creating vzdump archive '/mnt/usb-backup/dump/vzdump-qemu-101-2024_05_12-03_00_02.vma.zst'
ERROR: Backup of VM 101 failed - job failed with err -5 - Input/output error
USB 盘掉了。dmesg 里刷了一屏 reset high-speed USB device,lsblk 还能看到盘,但挂载点已经空了。重新插拔后盘回来了,文件系统是 ext4,fsck 扫了一遍没大毛病,但丢失的备份找不回来。
后来的做法:
# /etc/pve/jobs.cfg 里加前置检查
#!/bin/bash
if ! mountpoint -q /mnt/usb-backup; then
echo "USB backup not mounted" >&2
exit 1
fi
# 用 storage.cfg 限制保留数量,别让旧备份无限堆积
# dir: usb-backup
# path /mnt/usb-backup
# content backup
# maxfiles 3
同时在 /etc/cron.d/vzdump-check 里加一条每天 2:50 的 mountpoint 检测,失败就给我发邮件(用 msmtp 走 Gmail)。另外把备份目标拆成两个:USB 盘只留最近 3 份,每周日往另一台远程机器(朋友家的树莓派,走 WireGuard)再推一份 vzdump 的 zst 包。
为什么这样:USB 转接芯片在持续写入下容易掉线,尤其是便宜货。vzdump 默认不会检查挂载点是否存在,失败就失败,不报警。加前置检查是成本最低的兜底,但代价是 cron 里多一个脚本、得维护邮件通道。
会失效的地方:如果 USB 盘在备份中途掉线,前置检查拦不住,vzdump 可能留下不完整的文件;maxfiles 只按数量轮转,不校验完整性,所以远程那份一定要保留更长时间。另外 PVE 8.1 的 storage.cfg 里 maxfiles 对目录存储有效,但如果你用 PBS 就另说。
你们在法国这边用二手小主机跑 PVE 的,备份盘一般怎么接?USB 还是直接上 SATA?有没有遇到过类似掉盘的情况?
0 条评论
还没有评论,写下第一条。