V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vone
V2EX  ›  程序员

[有偿咨询]zfs 的 pve 服务器无法启动

  •  
  •   vone · 21 天前 · 1201 次点击

    具体情况

    1 、通过 pve 自带的 zfs ,使用两块 nvme 做软 raid1

    2 、系统也安装在 zfs 的分区上

    3 、今天启动后,提示 PANIC: rpool :blkptr at 00000000ac54239? DUA 0 has inualid OFFSET 72058398811901952

    5 、执行 zpool import rpool 或者类似命令,会无响应

    6 、pve 上跑的都是开发环境的虚拟机,虽然没有影响生产,但是数据丢了也很糟心。

    目前尝试的方案有:

    1 、使用 ubuntu live cd 进入 ubuntu 桌面后,手动挂载,结果:系统无响应

    2 、windows 平台安装 open zfs for windows ,挂载磁盘后系统蓝屏

    3 、分别拆除 raid1 其中一块硬盘后,重新启动,结果:与原故障情况一致

    4 、分别将 raid1 其中一块硬盘安装在其他机器上启动,,结果:与原故障情况一致

    怀疑触发的原因:

    1 、磁盘之上部署了 sentry ,最近两个月写入了大量数据,大概在 180T

    2 、机房温度较高,无空调

    github 类似报错:

    https://github.com/openzfs/zfs/issues/12019

    图片:

    alt text

    第 1 条附言  ·  21 天前
    @ooxxcc 提供的解决方案:

    1 、zpool import -f rpool -o readonly=on 以只读模式进入 pve 系统

    2 、zfs list 列出虚拟机磁盘

    3 、zfs send rpool/data/vm-xxxxx | ssh root@另一台主机 "zfs recevie rpool/data/vm-xxxxx-new"

    4 、在新 pve 主机上建立新虚拟机,不添加硬盘

    5 、新 pve 主机 shell 中执行 qm set 虚拟机 id -scsi0 local-zfs:vm-xxxxx-new
    14 条回复    2024-04-15 20:02:29 +08:00
    NessajCN
        1
    NessajCN  
       21 天前
    > 使用 ubuntu live cd 进入 ubuntu 桌面后,手动挂载,结果:系统无响应

    这具体啥意思?
    ls /dev 有盘在吗?
    有的话 mount /dev/md0 /mnt 啥结果?
    vone
        2
    vone  
    OP
       21 天前 via iPhone
    @NessajCN 盘是正常的,但是没办法挂载。
    使用 ubuntu live cd 的意思是,pve 的磁盘挂了以后是没办法正常引导进入系统的。只能通过另外一个系统加载后执行命令。
    ooxxcc
        3
    ooxxcc  
       21 天前
    ubuntu live cd 的 zfs 版本可能比较低,尝试用 proxmox 的 live cd 引导尝试能否挂载

    参考 https://pve.proxmox.com/wiki/Root_Password_Reset 中 method 2 对于挂载 zpool 的描述
    ooxxcc
        4
    ooxxcc  
       21 天前
    应该无效,试一下这里的方法能否把数据倒出来

    https://niziak.spox.org/wiki/linux:fs:zfs:issues:dva_0_has_invalid_offset
    vone
        5
    vone  
    OP
       21 天前 via iPhone
    @ooxxcc 好,感谢,正在试
    vone
        6
    vone  
    OP
       21 天前 via iPhone
    @ooxxcc 有效,通过最后一个命令,加载出 pve 主机的磁盘了,但是还没找到虚拟机对应的磁盘。
    ooxxcc
        7
    ooxxcc  
       21 天前
    @vone 截图一下 zfs list 命令的输出
    vone
        10
    vone  
    OP
       21 天前
    @ooxxcc 使用只读模式进入 pve 系统了,但是目前没能挂载出虚拟机的磁盘。
    ooxxcc
        11
    ooxxcc  
       21 天前
    @vone 不需要挂载,/rpool/data 下面就是虚拟机磁盘的 zvol ,备份出来就好
    yanest
        12
    yanest  
       21 天前 via Android
    以前用过一阵 zfs ,现在基本弃用。劝大家还是尽量别用了。用阵列或分布式吧
    bkmi
        13
    bkmi  
       21 天前 via Android
    是 zfs 问题还是硬盘问题,两块盘一起坏也太背了吧
    vone
        14
    vone  
    OP
       14 天前 via iPhone
    @bkmi 单块硬盘故障后没有发现,然后卡了什么 bug 吧,正常的硬盘也没办法加载哪个故障的卷了。

    zfs 加载池的代码一直报错。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3457 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 04:41 · PVG 12:41 · LAX 21:41 · JFK 00:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.