一、方案核心逻辑(贴合局域网环境)
因主力机与备份机处于同一局域网(无需 WireGuard 隧道),备份全程内网传输,速度更快、更稳定,核心不变:主力机自动备份,备份机接收存储,全程自动执行,无需手动干预。
主力机(新多盘 PVE):定时打包虚拟机、数据库、网站文件,压缩后推送至备份机;
备份机(旧单盘 PVE):只接收备份,不跑业务,专注存储,避免占用主力机资源;
触发方式:PVE 定时任务 + 脚本,全程自动,无需手动操作。
二、前期准备(必做,5 分钟搞定)
1. 确认局域网互通(关键)
主力机 IP(如 192.168.29.10)、备份机 IP(如 192.168.29.11),在两台机器分别执行 ping 命令,确保互通:
bash
运行
# 主力机ping备份机
ping 192.168.29.11 -c 3
# 备份机ping主力机
ping 192.168.29.10 -c 3
确保两者都能 ping 通,局域网无中断(若不通,检查防火墙,开放内网互通权限)。
2. 主力机免密登录备份机(核心,避免脚本输密码)
在主力机(新多盘 PVE)执行以下命令,实现免密 SSH 登录备份机:
bash
运行
# 1. 主力机生成SSH密钥(一路回车,不设密码)
ssh-keygen -t ed25519
# 2. 把密钥推送到备份机(替换备份机IP)
ssh-copy-id root@192.168.29.11
# 3. 测试免密登录(无需输密码即进入备份机,说明成功)
ssh root@192.168.29.11
3. 备份机创建专用备份目录(统一路径)
登录备份机,执行命令,创建分类目录(方便管理,避免混乱):
bash
运行
mkdir -p /backup/pve-vm # 存放主力机虚拟机备份
mkdir -p /backup/mysql # 存放MySQL数据库备份
mkdir -p /backup/website # 存放网站文件备份
# 授权,避免推送失败
chmod -R 775 /backup
三、自动备份脚本(主力机执行,定时触发)
在主力机创建备份脚本,实现「虚拟机 + 数据库 + 网站文件」全备份,自动推送至备份机,脚本可直接复制使用(替换 IP 和路径即可):
bash
运行
#!/bin/bash
# 定义参数(替换成自己的IP和路径)
BACKUP_HOST="192.168.29.11" # 备份机IP
BACKUP_DIR="/backup" # 备份机存储目录
VM_IDS="100 101" # 主力机上需要备份的虚拟机ID(PVE后台可查)
MYSQL_USER="root" # MySQL用户名
MYSQL_PASS="你的MySQL密码" # 替换成自己的MySQL密码
# 1. 备份PVE虚拟机(全量备份,可直接恢复)
for vm in $VM_IDS; do
qm export $vm /tmp/vm-$vm-backup.tar.gz
done
# 2. 备份MySQL数据库(单独备份,双重保障)
mysqldump -u $MYSQL_USER -p$MYSQL_PASS --all-databases > /tmp/mysql-all-backup.sql
# 3. 压缩备份文件(节省空间,加快传输)
tar -zcvf /tmp/all-backup-$(date +%Y%m%d).tar.gz /tmp/vm-* /tmp/mysql-all-backup.sql
# 4. 推送备份到备份机(局域网传输,速度极快)
scp /tmp/all-backup-$(date +%Y%m%d).tar.gz root@$BACKUP_HOST:$BACKUP_DIR
# 5. 清理主力机临时备份(避免占满空间)
rm -rf /tmp/vm-* /tmp/mysql-* /tmp/all-backup-*.tar.gz
echo "备份完成!备份文件已推送至备份机:$BACKUP_HOST:$BACKUP_DIR"
给脚本授权(主力机执行)
bash
运行
chmod +x /root/pve-auto-backup.sh # 脚本放在/root目录,方便管理
四、设置 PVE 定时任务(自动触发备份)
利用 PVE 自带的定时任务,每天自动执行备份脚本,无需手动操作:
bash
运行
# 1. 编辑定时任务配置
crontab -e
# 2. 添加一行(每天凌晨2点执行备份,避开使用高峰)
0 2 * * * /root/pve-auto-backup.sh
# 保存退出(按esc,输入:wq)
说明:每天凌晨 2 点,主力机会自动完成备份、压缩、推送,备份机接收后自动存储,全程无需干预。
五、备份机维护(简单易操作)
定期清理备份机旧备份(避免硬盘满),在备份机执行:
bash
运行
# 删除超过30天的备份文件
find /backup -name "all-backup-*.tar.gz" -mtime +30 -delete
每周检查一次备份是否成功(主力机执行):
bash
运行
ssh root@192.168.29.11 "ls /backup | grep $(date +%Y%m%d)"
若能看到当天的备份文件,说明备份正常。
六、关键注意事项(局域网专属)
确保局域网稳定,避免主力机 / 备份机断网(断网会导致备份推送失败);
备份机只做备份,不跑业务,避免占用资源影响备份稳定性;
若主力机重启,重启后定时任务会自动恢复,无需重新配置;
每月手动验证一次备份恢复(比如恢复一个虚拟机测试),确保备份可用。
七、补充:PVE 主力机 RAID1(ZFS Mirror)后期加硬盘说明
针对你提出的 “主力机做好 RAID1 后,后加硬盘是否只能两块一起加” 的疑问,结合你主力机采用的 ZFS Mirror(PVE 原生推荐),明确结论及操作逻辑如下,贴合你的多盘主力机架构:
1. 核心结论
不是必须两块一起加,分两种常用场景(均适配 PVE ZFS RAID1,无需复杂操作)。
2. 场景 1:给现有 ZFS RAID1 池扩容(单块添加即可)
若你主力机已做好 ZFS RAID1(比如 sda+sdb),后续只想加 1 块新硬盘(如 sdc),无需再找第二块,可以直接将这 1 块硬盘加入现有 RAID1 池,实现扩容且保持镜像保护。操作命令(主力机执行):
bash
运行
# 1. 清空新硬盘(以sdc为例,务必确认硬盘编号,避免误操作)
sgdisk --zap-all /dev/sdc
wipefs -a /dev/sdc
# 2. 复制现有RAID1硬盘的分区表(以sda为原有硬盘为例)
sgdisk -R /dev/sdc /dev/sda
sgdisk -G /dev/sdc # 生成新UUID,避免冲突
# 3. 将新硬盘加入现有ZFS RAID1池(假设池名为rpool,系统默认池名)
zpool attach rpool /dev/sda3 /dev/sdc3
# 4. 查看同步进度(同步完成后,即实现扩容且保持RAID1镜像)
zpool status
3. 场景 2:新增一组独立的 ZFS RAID1(需两块一起加)
若你不想给现有 RAID1 池扩容,而是想新增一组独立的 RAID1(比如用于单独存放虚拟机镜像、备份文件),则需要两块硬盘一起添加,创建新的 ZFS Mirror 池,操作命令(主力机执行):
bash
运行
# 1. 清空两块新硬盘(以sdc、sdd为例)
sgdisk --zap-all /dev/sdc
sgdisk --zap-all /dev/sdd
wipefs -a /dev/sdc
wipefs -a /dev/sdd
# 2. 创建新的ZFS RAID1池(池名自定义,比如new-vm-pool)
zpool create -f -o ashift=12 -o compression=lz4 new-vm-pool mirror /dev/sdc /dev/sdd
# 3. 将新池添加到PVE Web界面(方便管理虚拟机存储)
# 操作:Datacenter → Storage → Add → ZFS,选择new-vm-pool即可
4. 场景 2 新增 RAID1 与原 RAID1 的操作区别
场景 2 中新增的独立 ZFS RAID1(新 RAID1),与原先已有的 ZFS RAID1(原 RAID1),在 PVE 操作中核心区别是「独立管理、存储隔离」,具体如下:
创建操作区别:原 RAID1(如 rpool)通常自动关联 PVE 系统盘,无需手动添加到存储列表;新 RAID1 需手动创建池,再手动添加到 PVE 存储列表才能使用。
存储与管理区别:两者是独立的 ZFS 池,存储空间互不占用,可分别设置权限、压缩模式;扩容需单独操作对应池,互不干扰。
日常操作区别:备份、维护需针对对应池操作(如查看状态需区分池名),但核心操作逻辑一致,均支持图形界面和命令行。
5. 关键说明与纠正
优先推荐场景 1(单块加硬盘扩容),贴合你 “后期加硬盘” 的需求,无需额外找第二块硬盘,且不影响现有 RAID1 的稳定性;
纠正认知:不能在 ZFS 池里任意添加硬盘,也无法实现 “任意添加即自动组成 RAID1 扩容”。只有将新硬盘附加到现有 ZFS Mirror 的虚拟设备(vdev),才能自动加入镜像组;若新增独立 vdev,不会自动组成 RAID1。
ZFS Mirror 本质是 “两两镜像”,单块添加时,会自动与现有 RAID1 中的硬盘形成新的镜像关系,同步完成后形成多向镜像,始终保持 RAID1 保护;
新增硬盘建议与现有硬盘同容量、同型号,避免因性能差异影响同步速度,若容量不同,镜像 vdev 可用容量以最小硬盘为准。
八、补充:所有操作的图形界面(PVE Web)实现方法
上述所有命令行操作,均可以通过 PVE Web 图形界面(浏览器访问,默认地址:https:// 主力机 IP:8006)完成,操作更直观,无需输入命令:
1. 确认局域网互通(图形界面验证)
登录主力机 PVE Web 界面,点击左侧「Datacenter」→「Nodes」→ 选中主力机节点 → 顶部「Shell」,在网页终端中执行 ping 命令,或直接访问备份机 PVE Web 界面,能正常打开即说明互通。
2. 主力机免密登录备份机(图形界面操作)
主力机 Web 界面进入「Shell」→ 右上角「齿轮」→「SSH Keys」→「Generate」,生成无密码密钥;
复制公钥,登录备份机 Web 界面,进入「Shell」→「SSH Keys」→「Add」,粘贴公钥保存;
主力机终端执行
ssh root@备份机IP,无需输密码即成功。
3. 备份机创建备份目录(图形界面操作)
备份机 Web 界面进入「Shell」→「File Manager」,在根目录逐层创建backup、backup/pve-vm、backup/mysql、backup/website目录,选中backup目录设置权限为 775。
4. 自动备份脚本相关(图形界面替代方案)
虚拟机备份:主力机 Web 界面选中虚拟机 →「Backup」→「Backup Now」,选择全量、压缩,批量备份可在「Datacenter」→「Backup」→「Add」设置;
MySQL 备份:虚拟机内通过 phpMyAdmin 导出,或 PVE 主机终端执行 mysqldump 命令;
备份推送:可通过 File Manager 手动上传,或设置备份机共享存储,主力机直接将备份存储到共享位置。
5. 定时任务设置(图形界面操作)
主力机 Web 界面「Datacenter」→「Backup」→「Add」,选择备份存储、执行时间(如每天凌晨 2 点)、需备份的虚拟机,设置全量、压缩,点击「Create」即可。
6. 备份机维护(图形界面操作)
清理旧备份:备份机 File Manager 中手动删除过期文件,或在「Backup」中设置保留 30 天自动清理;
检查备份:查看备份机 /backup 目录是否有当天文件,或主力机「Backup」中查看任务状态为「OK」。
7. ZFS RAID1 后期加硬盘(图形界面操作)
场景 1(现有池扩容):主力机「Datacenter」→「Storage」→ 选中现有 ZFS 池 →「Edit」→「Add Disk」,选择新硬盘,等待同步完成;
场景 2(新增独立池):「Datacenter」→「Storage」→「Add」→「ZFS」,设置池名、选择 Mirror 模式、勾选两块新硬盘,开启压缩,创建后添加到存储列表。
九、补充:网站服务器与显卡性能的关联说明
结合你 “做网站服务器” 的需求,明确结论:绝大多数常规网站服务器,与显卡性能完全无关,无需额外配置独立显卡:
网站服务器核心任务是处理 HTTP 请求、数据库读写、静态文件传输,完全由 CPU 和内存承担,不依赖显卡图形计算能力;
常规网站(企业官网、博客、小型电商等),CPU 集成显卡完全足够,独立显卡无法被网站服务利用,属于资源浪费;
仅当网站涉及在线图片渲染、视频转码、AI 生成内容等特殊需求时,才需要独立显卡,常规场景无需考虑;
部署网站服务器时,优先保证 CPU 多核性能(如 Ryzen 9 HX 系列)和充足内存,搭配 ZFS RAID1 保障数据安全,CPU 集成显卡即可满足所有需求。
十、补充:Ryzen 9 9955HX vs Intel i9-14900HX 适配 PVE 重载主力机对比
核心结论:Ryzen 9 9955HX 更适配你的 PVE 重载主力机(多虚拟机、网站服务器、多盘 ZFS RAID1 场景),详细对比如下:
表格