有在生产环境使用 btrfs 的请进 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
redsonic
V2EX    Linux

有在生产环境使用 btrfs 的请进

  •  
  •   redsonic 2016-06-30 19:39:19 +08:00 12716 次点击
    这是一个创建于 3390 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看中了 btrfs 的 COW 特性,有部署过的说一下这个文件系统实际中有哪些坑。我知道的好像软 raid6 有问题,但这个不用提,我也不用软 raid 。

    30 条回复    2016-07-01 16:06:33 +08:00
    cnxh
        1
    cnxh  
       2016-06-30 19:56:11 +08:00 via iPhone
    pubby
        3
    pubby  
       2016-06-30 20:16:10 +08:00
    全部 zfs mirror 或者 raidz1
    likuku
        4
    likuku  
       2016-06-30 20:25:59 +08:00
    3 年前就放弃再踩 btrfs 这个坑,安心继续用 zfs (freebsd)
    msg7086
        5
    msg7086  
       2016-06-30 21:03:07 +08:00
    btrfs 似乎并不是一个可以完全免维护的文件系统。
    JamesRuan
        6
    JamesRuan  
       2016-06-30 21:11:02 +08:00
    软 RAID 没问题,有问题的是 BTRFS 自带的文件系统层面的 RAID 。
    JamesRuan
        7
    JamesRuan  
       2016-06-30 21:12:31 +08:00
    踩过一个坑,就是把 EXT4 转 BTRFS ,结果删除 EXT4subvolum 后系统挂了……
    后来才看到有报道说,某几个内核版本的 btrfs-convert 有问题。
    zeac
        8
    zeac  
       2016-06-30 22:04:28 +08:00
    忘记是多久以前了 曾经折腾 ArchLinux 的时候 在 VirtualBox 里面安装 Arch 选的 btrfs 最后一步安装 grub 就是装不上 回去换别的 fs 就能安装了 也不知道是不是 btrfs 的问题 反正从此不选这个 fs 还是 ext4 好
    chareice
        9
    chareice  
       2016-06-30 22:10:04 +08:00
    其实不太懂,就是觉得扩容太方便了。。
    ryd994
        10
    ryd994  
       2016-06-30 22:35:12 +08:00
    @carmark LVM 不是最高,我有点惊讶
    fool
        11
    fool  
       2016-06-30 23:00:29 +08:00   1
    我在我笔记本上是 btrfs 根分区,后来一次误操作删除了 /home
    发现以前经常用的 extundelete 不支持,只有用 btrfs rescue
    发现 quota 只能用 btrfs quota
    发现速度确实是没有 ext4 快
    有一次恢复快照后多次启动会内核崩溃(具体的原因不清楚,快照用的很少)

    可能没有什么帮助。。
    mko0okmko0
        12
    mko0okmko0  
       2016-07-01 00:01:47 +08:00
    快照是神器,
    压缩是福利.
    不要遇到断电和当机,修复麻烦.我说的是真实结构毁损连带快照都挂的.
    就算能修复的问题也需要手动确认.麻烦.
    btrfs 内预设延迟写入是 30 秒.
    怕问题,改成 1 秒.变慢但不怕故障.而且这才是真实性能.30 秒测出的读写速度根本骗自己.
    预设 30 秒是大部分异常之后出问题的原因.因为 30 秒内有太多关键资料没写入.

    suse 预设有用 btrfs 了.
    不过预设值和使用方法超低能的.

    我是手动分割 /挂载 /格式化.
    redsonic
        13
    redsonic  
    OP
       2016-07-01 01:20:28 +08:00
    @mko0okmko0 开 COW 写入延迟 30 秒内当机原文件还完整吧?
    xuan880
        14
    xuan880  
    &nsp;  2016-07-01 05:55:21 +08:00 via Android
    不如 lvm 开启 thin 功能,然后使用 ext 分区。
    ladyv2
        15
    ladyv2  
       2016-07-01 06:36:59 +08:00   1
    只用 FB+ZFS 的飘过。。。
    dudesun
        16
    dudesun  
       2016-07-01 09:19:59 +08:00
    笔记本上用在 nvme 的 ssd 上面。出现几次只读。然后重启就好。但是还是不敢用了
    mko0okmko0
        17
    mko0okmko0  
       2016-07-01 09:26:15 +08:00
    @redsonic 写入延迟 30 秒是说最久 30 秒要写入至少一次.
    其实不一定都到 30 秒这样久.
    原子性的档案读写都是要求档案系统"确实"写入完成后返回 TRUE 这样的模式.
    所以原子性的读写通常损失都很小.但需要等待,而且一般人可能没注意到自己是否用了原子写入.

    如果执行的程式用的代码不是原子性的,比较容易发生问题,因为真实写入时间就由 BTRFS 控制了.
    COW 的优点应该是
    A 有快照功能
    B 就算不使用快照也有大量历史版本可修复,但修复失败你就全死了,珍惜生命,要有 2 备,最好 3 备.
    C 除非明确使用 NOCOW 参数,这样就跟 EXT3/4 差不多了,如果跟 EXT3/4 差不多干嘛要换 BTRFS,当机后修复要手动很累.
    D 好吧 NOCOW 之后的优点是透明压缩,尤其程式码这种零碎小文字档读写很厉害的.BT 这种碎流档案写入也很优.但为什么主流资料库高负载读写性能很低很好笑?法克.
    mko0okmko0
        18
    mko0okmko0  
       2016-07-01 09:31:41 +08:00
    另外,几乎所有的档案系统都有延迟写入的参数,但多少人知道?
    zfs 很好很强大,但其实他也是延迟写入大户.只是他用的主要是 RAM,SSD 快取.
    所以限制 ZFS 的可用 RAM,拿掉 SSD 快取区,他的表现还能高大上吗?
    大概只剩 lz4 这个我超想要但 BTRFS 没有的透明压缩选项了.
    kelvin0431
        19
    kelvin0431  
       2016-07-01 09:52:02 +08:00
    没用过 BTFS ,曾经被 ZFS on linux 折磨了半年多...
    aivier
        20
    aivier  
       2016-07-01 10:42:02 +08:00
    记得 BTRFS 的官方文档用很显眼的方式标明:"使用 BTRFS 一定要尽可能的使用新的内核", 例如 4.6....服务器上敢随便升级么
    pubby
        21
    pubby  
       2016-07-01 10:45:16 +08:00 via Android
    @mko0okmko0 zfs 的内存还是值得的,一般我都给 4g ,跑数据库的我都给 8g 再加 SSD 的 cache 和 log 设备
    jianyunet
        22
    jianyunet  
       2016-07-01 10:50:44 +08:00
    搭车问下, ubuntu 1604 据说支持 zfs ,有人用过吗?
    47jm9ozp
        23
    47jm9ozp  
       2016-07-01 11:11:14 +08:00   1
    在几台机器上用 btrfs ,家里的 nas btrfs raid10 跑了一年多了


    不要在硬件 raid 上搭 btrfs ,软 raid 很好用
    snapper 是神器
    为了避免手贱删除 subvolume ,可以在里面建立一个.开头的隐藏 subvolume ,因为 subvolume 删除不是递归的……
    mko0okmko0
        24
    mko0okmko0  
       2016-07-01 11:22:07 +08:00
    @pubby 目前我用自己的旧主机跟家用光纤线路营运,所以很难要求设备高大上,只好想办法压榨旧主机.
    其实设备性能很强或资金充裕的时候很多人不会在乎这些细节,因为赶时间去赚钱.
    我总共才 16G 还要开 KVM/AS/eclipse/vs2015 等多项开发工具,舍不得给档案系统太多 RAM,
    所以我用 ZFS 的时候是用 64MB 看性能的.
    SSD 我也才一块 256,都用于真实档案系统上了,不是给 ZFS 当快取 /日志碟.
    kamikat
        25
    kamikat  
       2016-07-01 14:24:52 +08:00
    btrfs 时不时要 balance 一下,遇到过好几次 metadata 空间不足的情况,多 balance 几次才救过来。
    likuku
        26
    likuku  
       2016-07-01 14:32:39 +08:00
    @ladyv2 是的,要玩快照,只敢用 ZFS
    likuku
        27
    likuku  
       2016-07-01 14:34:45 +08:00
    @mko0okmko0 [所以限制 ZFS 的可用 RAM,拿掉 SSD 快取区,他的表现还能高大上吗? ]

    小内存(2G-4G)机器上限制 ARC (ZFS 可用 RAM),没钱用 SSD ,一直玩的很好。
    likuku
        28
    likuku  
       2016-07-01 14:38:40 +08:00
    参考我以前吐槽 btrfs 吧:

    引用:
    likuku 2015-04-15 23:40:02 +08:00
    btrfs 的坑,去年又被狠狠坑了一次,还是公司的开发机,搞得 站点和 svn 库所在的分区没法写入,也基本没法读取(几十 KB/sec 的读取速度),折腾了两天才导出数据火速切换成默认的 Ext4 。

    以为这么多年过去了终于能用了吧。。。也是指望用它的 snapshot 。

    t/183689


    btrfs 的效能真不是一个“烂”字可以形容~! - V2EX :
    t/25686
    circsqua
        29
    circsqua  
       2016-07-01 15:35:38 +08:00
    除了这个还有什么能实现存储池很简单的扩容缩容的?
    uztyzrxd
        30
    uztyzrxd  
       2016-07-01 16:06:33 +08:00
    Btrfs 添加删除硬盘, RAID 格式转来换去还真是挺方便的。

    但虚拟机和数据库之类的应用需要禁用掉 COW, 否则性能极差。
    我还碰到一个最无法忍受的问题,在略早的一对 2T 硬盘 RAID1 上执行 scrub , io 优先级尽管调到最低,系统停止响应,必须等到 scrub 完成,才恢复响应。另在 4x3T 的 RAID10 上执行 scrub, 虽然系统没有完全无响应,但系统开销也是极高的,响应时间大大降低。
    我这还是家用系统,如果是生产系统,这肯定是无法接受的。

    上 ZFS 吧,真的挺好的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2723 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 08:36 PVG 16:36 LAX 01:36 JFK 04:36
    Do have faith in what you're doing.
    ubao 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