V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kyonn
V2EX  ›  程序员

btrfs raid1 是不是不具备可用性?

  •  
  •   kyonn · 17 天前 · 1021 次点击

    查了些资料, btrfs raid1 特性本身已经达到稳定状态, 但是不能跟 nocow 配合使用(异常 case 数据会损坏). 问题是 cow 碰到数据库或者 vm 性能就会非常差, 推荐做法就是关闭 cow.

    难不成用 btrfs raid1 的就不用数据库了? 那局限性也太大了. 还是说顶着 cow 上数据库,但是每天 balance?

    再加上 btrfs 的 raid1 跟 madam 还不一样, 只是保证数据在 2 个盘都有,不是镜像的概念, 如果一个盘挂了, 必须先 降级挂载才能恢复, 感觉 raid 的好处半点没捞着, 除了校验和能提前发现文件系统问题外, 感觉一无是处了.

    先做 madam raid1,再在上面用 /dev/md0 做 btrfs 感觉更复杂了, 可不可靠也不知道.

    ps: 只讨论 raid 的服务可持续, 备份由其他机制完成.

    12 条回复    2025-07-19 22:47:23 +08:00
    busier
        1
    busier  
       17 天前 via Android
    md 是一个很成熟的方案 怎么就不敢用了
    kyonn
        2
    kyonn  
    OP
       17 天前
    @busier 不确定 md 搭配 btrfs 有没有坑. md 搭配 ext4 当然很成熟了.
    busier
        3
    busier  
       17 天前 via Android
    在文件系统视角 不管看 md ,还是分区,还是裸磁盘都是块设备而已 没区别的

    但是 md 终究没有 btrfs 内置的 raid 灵活

    首选 btrfs 内置 raid1 (但不推荐更高级别的 raid )

    但是你的需求需要 md+btrfs 也是没问题
    msg7086
        4
    msg7086  
       17 天前
    数据库可以不用 btrfs 啊。很多系统会偏向使用单独的 db server 。
    我司是 btrfs 重度用户,不过我们也不用 btrfs 内建 RAID ,都是下层分布式块存储,上面直接开 basic btrfs 。
    你不考虑一下 zfs 吗? zfs on linux 也不错的。
    YsHaNg
        5
    YsHaNg  
       17 天前 via iPhone
    保证两个盘都有不比镜像更好吗
    kyonn
        6
    kyonn  
    OP
       16 天前 via Android
    @busier 从分层角度看没错的,实际两者总有个配合问题,查找资料过程也发现即使 btrfs raid 和裸磁盘搭配,也有个时钟问题需要保证的。分层总可能有不理想的情况会产生些许耦合。

    似乎群晖的 raid 就是 mdam raid+btrfs 的形式,如果有大量的实践过就能放心一些。
    kyonn
        7
    kyonn  
    OP
       16 天前
    @msg7086 没那么大规模, 单独 db server 不太现实.

    我司是 btrfs 重度用户,不过我们也不用 btrfs 内建 RAID ,都是下层分布式块存储,上面直接开 basic btrfs 。
    你不考虑一下 zfs 吗? zfs on linux 也不错的。
    -- 那你们公司跟 cow 冲突的业务(比如 db/vm)是在分布式块存储的基础上开 basic btrfs + 禁用 cow ? 还是直接用了其他文件系统? 还是顶着 cow 用, 定期做碎片整理?


    zfs on linux 没用过, 不熟悉, 之前了解到的唯一缺点是不方便扩容? 必须一次性把存储规模定下来建好?
    kyonn
        8
    kyonn  
    OP
       16 天前
    @YsHaNg 镜像的话掉了一块还能继续用的, btrfs 那种方式挂了一块, 必须停机修复, 就失去了 raid 的作用. 不过了解到
    YsHaNg
        9
    YsHaNg  
       16 天前 via iPhone
    @kyonn 我印象里可以 online rebalance 转换成 single 可以继续用
    msg7086
        10
    msg7086  
       15 天前
    @kyonn 我司 db server 是单独的机子,btrfs 上只放普通文件。
    kyonn
        11
    kyonn  
    OP
       15 天前 via Android
    @msg7086 了解了,我试试 zfs 。
    kyonn
        12
    kyonn  
    OP
       15 天前 via Android
    @YsHaNg 了解了
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   893 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:15 · PVG 06:15 · LAX 15:15 · JFK 18:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.