×

PVE 9 爽到飞起?先看完这篇“升级劝退指南”再决定

hqy hqy 发表于2025-10-20 20:08:44 浏览4 评论0

抢沙发发表评论

PVE 9 爽到飞起?先看完这篇“升级劝退指南”再决定

单节点可冲,集群慎入;附完整命令和回滚脚本,复制就能跑。


0. 前言:别把 Homelab 的运气当成生产环境

我家里一台小钢炮当 All-in-One
上周把家里的单节点从 8.4.1 升到 9.0,全程 18 min,回滚 4 min

同事看完说也想跟着点 dist-upgrade,我开玩笑说着
集群要是这么干,明早就可以写事故报告了

于是有了这篇“劝退指南”:告诉你单节点怎么无痛、集群为什么禁止。


1. 升级前的 Checklist(一条不能少)

步骤
命令 / 操作
备注
1. 确认当前版本
pveversion
输出必须 ≥ pve-manager/8.4-1
2. 关机做快照
qm shutdown 100 && pct shutdown 200
zfs snapshot -r rpool/ROOT@pre-pve9
把所有 VM/CT 打到 stopped 状态,在线快照回滚会丢数据
3. 跑预审脚本
pve8to9 --full
官方自带,FAIL 不为 0 就别继续
4. 检查自定义源
grep -r bookworm /etc/apt/sources.list*
有第三方 GlusterFS、Ceph 源先注释掉
5. 开 screen
screen -S pve9
防止 SSH 断线升级半截卡死



2. 单节点 7 行命令升级(copy & paste 版)

# 0. 进入 screen
screen -S pve9

# 1. 升到 8 最新小版本
apt update && apt dist-upgrade -y

# 2. 备份旧源
cp -a /etc/apt/sources.list /root/sources.bookworm

# 3. 全局替换 Debian 代号
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/*.list

# 4. 指向 PVE 9 仓库(举例清华,自己换)
cat > /etc/apt/sources.list.d/pve9.list <<'EOF'
deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/pve trixie pve-no-subscription
EOF

# 5. 刷新索引并一次性全量升级
apt update
apt full-upgrade -y

# 6. 重启
reboot

重启后执行:

uname -r          # 期望 6.14.8-2-pve
pveversion        # 期望 pve-manager/9.0-x

两行都命中就升级完成,整个过程比编译个 AUR 包还快


3. 升级后 5 个“彩蛋”坑(附单行修复)

  1. 1. 接口漂移 → 失联
    现象:eno1 变 enp2s0,重启后 Web 连不上。
    修复:
    udevadm info /sys/class/net/enp2s0 | grep ID_NET_NAME_PATH
    echo 'SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME="eno1"' > /etc/udev/rules.d/70-persistent-net.rules
  2. 2. ZFS 性能掉 30 %
    原因:2.3.3 默认 dnodesize=auto,老 512B 扇区盘随机写放大。
    修复:
    zfs set dnodesize=legacy <pool>
  3. 3. virtio-net MTU 继承桥 9000
    VM 启动报 mtu > dev mtu,Windows 蓝屏,Linux 掉包。
    修复:在 .conf 里写死
    net0: virtio=XX:XX:XX:XX:XX:XX,bridge=vmbr0,mtu=1500
  4. 4. Web 端 502
    pveproxy 依赖新 libc6 但 apt 没装全。
    修复:
    apt install -f && systemctl restart pveproxy
  5. 5. HA 资源“飘”走
    单节点没 HA,但很多人先 pvecm add 自己玩,升级后报 lost quorum
    修复:
    systemctl stop pve-ha-lrm pve-ha-crm
    systemctl disable pve-ha-lrm pve-ha-crm

4. 回滚方案(4 分钟跑完)

升级前已经 ZFS 快照,回滚只要三步:

# 1. 用 LiveCD 或 IPMI 挂载 ISO 启动
# 2. 导入 zpool
zpool import -f rpool

# 3. 回滚 + 重启
zfs rollback -r rpool/ROOT@pre-pve9
reboot

经验:快照回滚 10 秒,剩下的 3 分 50 秒是等待 BIOS + IPMI 自检。



5. 为什么集群不能这么玩(官方未支持)

组件
8 → 9 变化
滚动升级风险
Corosync
3.x → 4.x 选票算法重写
混合版本集群直接脑裂
pmxcfs
sqlite 格式升级
旧节点无法识别新锁
Ceph
Squid 默认需要 cephadm
旧 ceph-volume 不兼容
QEMU
8.x → 10.x 机器类型 pc-q35-9.0
跨节点迁移报 machine type not found

结论:集群升级目前只有“全停-全升-全启”一条路
官方文档白纸黑字写着 "Cluster rolling upgrade is NOT supported yet"
敢 rolling 的,第二天早会就是 RCA 复盘。


6. 时间表建议(个人 vs 企业)

场景
建议动作
时间节点
Homelab / 单节点
快照后备份完直接升
现在就能玩
企业生产集群
等官方 9.1 + 集群白皮书
至少 Q4 底
新业务节点
用 9.0 ISO 全新装,再逐台迁移 VM
随时


7. 结语:把运气留给彩票,把流程留给生产

单节点升级就像给开发机换 Fedora 最新 beta,
快照在手,错了就回滚,爽是真的爽

集群升级等于给 几十台 台服务器换心脏,
官方没发话之前,谁升谁背锅。


打赏

本文链接:https://kinber.cn/post/5731.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客