V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
oldcai
V2EX  ›  问与答

ZFS和BTRFS是不是不适合做比如mongodb的文件系统

  •  
  •   oldcai · 2013-08-20 11:25:35 +08:00 · 5287 次点击
    这是一个创建于 4116 天前的主题,其中的信息可能已经有所发展或是发生改变。
    ZFS和BTRFS都是“写时复制(copy-on-write (COW))”的文件系统。

    而比如mongodb的数据库文件通常是一整个文件。

    是不是意味着- -#每次写入都会将数据库文件复制一份然后加入数据,然后删除原数据。。。
    10 条回复    1970-01-01 08:00:00 +08:00
    phuslu
        1
    phuslu  
       2013-08-20 11:30:06 +08:00   ❤️ 2
    一般用 xfs 并且 mount noatime
    oldcai
        2
    oldcai  
    OP
       2013-08-20 12:07:18 +08:00
    @phuslu
    http://xfs.org/index.php/XFS_FAQ
    说没必要mount noatime。读的时候不记录atime是可以避免读的时候的写操作,但是写不一定是马上写到硬盘上的,应该对io的影响方面,关系不大吧。
    不过如果只用作mongodb的文件系统,也确实没必要记录atime
    引用:
    The default atime behaviour is relatime, which has almost no overhead compared to noatime but still maintains sane atime values. All Linux filesystems use this as the default now (since around 2.6.30), but XFS has used relatime-like behaviour since 2006, so no-one should really need to ever use noatime on XFS for performance reasons.
    phuslu
        3
    phuslu  
       2013-08-20 12:40:15 +08:00   ❤️ 1
    @oldcai 这个之前在 Amazon EC2 的 EBS 测过,需要关掉。
    oldcai
        4
    oldcai  
    OP
       2013-08-20 14:53:06 +08:00
    @phuslu 能具体一点么,比如告诉我下为什么要关掉。谢谢。
    lixm
        5
    lixm  
       2013-08-20 16:18:38 +08:00   ❤️ 1
    楼主对写时复制的理解有误吧, 写时复制是用来做快照的
    pubby
        6
    pubby  
       2013-08-20 16:28:35 +08:00   ❤️ 1
    不一定是复制整个文件,ZFS那么先进的文件系统没那么脑残。
    oldcai
        7
    oldcai  
    OP
       2013-08-20 16:32:56 +08:00
    @lixm
    @pubby 恩,可能是以block为单位的吧。但是这样不是会有很多碎片了。
    pubby
        8
    pubby  
       2013-08-20 16:42:30 +08:00   ❤️ 1
    @oldcai 碎片。。。。太深奥了,我觉得要不实际测试一下看看性能吧。
    oldcai
        9
    oldcai  
    OP
       2013-08-20 16:48:59 +08:00
    @pubby
    性能影响是有的,但是程度还未知,所以还是试试 @phuslu 推荐的xfs先,看了下,支持超大文件,支持快照,支持碎片整理,还是不错的。
    https://groups.google.com/forum/#!topic/mongodb-user/HWLECIxg9ug

    That said, there may be ways to disable COW on ZFS since most
    databases expect in-place updates. However I am not enough of an
    expert in ZFS to know how to do this. You may already have it set up
    that way for MySQL.
    oldcai
        10
    oldcai  
    OP
       2013-08-20 16:50:22 +08:00
    少复制了一段。。
    We've heard reports of slowdowns due to it's copy-on-write behavior
    leading to objects being out-of-order on disk and needing more
    seeking. To some extent, MongoDB's performance (both read and write)
    relies on in-place updating.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3141 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:16 · PVG 22:16 · LAX 06:16 · JFK 09:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.