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

2013-08-20 11:25:35 +08:00
 oldcai
ZFS和BTRFS都是“写时复制(copy-on-write (COW))”的文件系统。

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

是不是意味着- -#每次写入都会将数据库文件复制一份然后加入数据,然后删除原数据。。。
5193 次点击
所在节点    问与答
10 条回复
phuslu
2013-08-20 11:30:06 +08:00
一般用 xfs 并且 mount noatime
oldcai
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
2013-08-20 12:40:15 +08:00
@oldcai 这个之前在 Amazon EC2 的 EBS 测过,需要关掉。
oldcai
2013-08-20 14:53:06 +08:00
@phuslu 能具体一点么,比如告诉我下为什么要关掉。谢谢。
lixm
2013-08-20 16:18:38 +08:00
楼主对写时复制的理解有误吧, 写时复制是用来做快照的
pubby
2013-08-20 16:28:35 +08:00
不一定是复制整个文件,ZFS那么先进的文件系统没那么脑残。
oldcai
2013-08-20 16:32:56 +08:00
@lixm
@pubby 恩,可能是以block为单位的吧。但是这样不是会有很多碎片了。
pubby
2013-08-20 16:42:30 +08:00
@oldcai 碎片。。。。太深奥了,我觉得要不实际测试一下看看性能吧。
oldcai
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
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.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/79621

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX