btrfs 出现 corrupt leaf 的原因如何排查? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
PhaSelEza
V2EX    Linux

btrfs 出现 corrupt leaf 的原因如何排查?

  •  
  •   PhaSelEza 2023 年 2 月 20 日 3025 次点击
    这是一个创建于 1069 天前的主题,其中的信息可能已经有所发展或是发生改变。

    入手一台 Xiaomi Book Air 13 ,装 Debian testing 并使用 btrfs 作为文件系统。SSD 为 KIOXIA KBG50ZNV512G 。

    短时间内出现了两次 corrupt leaf ,文件系统被挂载为只读。

    重启后一切正常,btrfs scrub 或 btrfs check 均检测不到错误,smartctl 显示的 SMART 数据也没有错误。

    请教下各位,这种情况该如何排查故障原因?需要换硬盘吗?

    17 条回复    2023-10-25 14:27:03 +08:00
    tangbao
        1
    tangbao  
       2023 年 2 月 20 日   1
    没有遇到过,文件系统只读我只在一台树莓派上碰到过,排查后是长时间写入导致卡坏了进入保护了
    yanqiyu
        2
    yanqiyu  
       2023 年 2 月 20 日   1
    有没有完整的 log ,比如出现错误之前的没有完成的事务。
    可能是内存上的数据还没写回去就出错放弃了
    v2wtf
        3
    v2wtf  
       2023 年 2 月 20 日   2
    还真有人敢用 btrfs 啊?想要这些高级文件系统特性的,老老实实上 ZFS 吧,性能是差一些,但是那种坚如磐石的感觉是多少性能都换不来的。
    feedcode
        4
    feedcode  
       2023 年 2 月 20 日   3
    corrupt leaf 后面会跟原因的,如果是 invalid root item size 可以尝试更新下内核,之前有个 false alarm 被修掉了
    https://github.com/torvalds/linux/commit/1465af12e254#diff-21b5c65ce5cabfab40b020cac0ef6a62950d31ccc43859879bf7981e3e0135ff
    pagxir
        5
    pagxir  
       2023 年 2 月 20 日 via Android   1
    我遇到过,用的上 5.15.29 的 kernel ,原因是磁盘(用了两年的叠瓦盘)问题。不过,btrfs 不稳定是真的,老版本内核遇到过 CPU 100%问题,遇到过数据莫名其妙全盘消失问题(只是执行 remount ),所以数据盘尽量不用 btrfs 。
    anytk
        6
    anytk  
       2023 年 2 月 20 日   1
    挂载选项开了 autodefrag 没?开了建议关掉。
    我 btrfs 用在 U 盘系统上,也出现过只读挂载,发现跟休眠有关,后来卸载了 tlp 就好了。
    autodefrag 建议关掉,这个目前经常出现问题,现象是持续写入。
    anytk
        7
    anytk  
       2023 年 2 月 20 日
    U 盘系统上 btrfs 用了两年多了,目前感觉还好,优势还是有的,比如透明压缩 zstd
    kkocdko
        8
    kkocdko  
       2023 年 2 月 20 日 via Android
    @feedcode +1 ,之前很多人碰到过这个 bug
    PhaSelEza
        9
    PhaSelEza  
    OP
       2023 年 2 月 20 日
    @yanqiyu @feedcode
    感谢,下次出现时我记录下具体的日志。刚用 stress-ng 测了一小时没有复现出这个问题。

    @anytk
    Debian 应该是没有开这个选项的:
    /dev/nvme0n1p3 on / type btrfs (rw,relatime,ssd,space_cache,subvolid=256,subvol=/@rootfs)
    ProPh3t
        10
    ProPh3t  
       2023 年 2 月 20 日
    别的不说,“文件系统被挂载为只读后重启”这个操作很不安全,给你挂成只读就是为了让你能够赶紧备份数据,你直接重启了,搞不好直接和数据说拜拜了。
    wellerman
        11
    wellerman  
       2023 年 2 月 20 日
    老实用 EXT4 吧,就算把数据整没了,恢复也方便。
    MeteorCat
        12
    MeteorCat  
       2023 年 2 月 20 日 via Android
    别用 btrfs ,家里常常断电之后引导错误再也无法启动,这文件系统就是坑人的
    deorth
        13
    deorth  
       2023 年 2 月 20 日 via Android
    我用 btrfs_win 写入几十 g 后分区直接炸了
    zfs 虽好,内核没合并啊,有时要用个 liveCD 救引导的时候怎么办
    qdk0901
        14
    qdk0901  
       2023 年 2 月 20 日
    zfs 也给我惹过大麻烦,差点把我公司的代码全干掉,搞了 2 天 2 夜,用尽了所有方法都不能成功挂载也不能恢复到之前的点
    最后终于以某种方式只读挂载成功了,幸运的把数据读了回来
    zfs 并非坚如磐石,它出问题的时候能帮你的人很少,你能找到的资料也很少,而且 zfs 的代码很少更新,看起来常年没人维护一样
    darrh00
        15
    darrh00  
       2023 年 2 月 20 日
    好久之前用过一段时间的 btrfs ,中间出现过好几次错误,都恢复了。
    最后出现了某个错误(忘记具体错误是什么了),
    然后在网上找了一圈断断续续搞了一个礼拜没搞定就放弃了,
    没有备份,数据全丢,后来就老老实实 ext4 了。
    ferstar
        16
    ferstar  
       2023 年 2 月 21 日
    这题我会啊,前阵子才修了一发,见: https://blog.ferstar.org/post/issue-75/
    Rorysky
        17
    Rorysky  
       2023 年 10 月 25 日
    @qdk0901 linux 的 zfs 就是移植的 bsd 的,所以不怎么更新
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2831 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 13:04 PVG 21:04 LAX 05:04 JFK 08:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86