一位 DevOps 同事建议我们开始将生产环境转换为使用 btrfs。我们主要使用 ext4 文件系统,但一些使用率较低的服务器使用 ZFS(在 Linux 上)。作为决策者之一,以及负责我们整体环境的人,我犹豫不决,因为网络上关于 btrfs 在生产中的评论和文章数量很多。为了反驳这一论点,Oracle 发布了支持 btrfs 的 Enterprise Linux,即 SLES 12 (https://www.suse.com/releasenotes/x86_64/SUSE-SLES/12/) 也表示将使用 btrfs,并且有证据表明 Facebook 等公司也在受控生产环境中使用它。
有很多论据可以说明为什么朝这个方向发展(采用 btrfs)是一件好事,我总体上同意这些论据,但是,我希望谨慎行事,进行尽职调查,在“小规模生产”或暂存环境中获得更多操作熟悉度和记录时间,然后再进行更大规模的推进。是否有任何工具可以帮助我建立案例 - 比如压力测试,然后进行数据完整性检查或类似的事情?除了在 btrfs wiki 上看不到诸如“问:btrfs 稳定吗?简短回答:不,它仍被视为实验性的。”之类的陈述之外,我还能做些什么来获得更温暖的感觉?
答案1
我已经在这里给出了详细的答案:btrfs 可以投入生产了吗?
简而言之:Btrfs 并不是您在生产文件服务器上想要的。
原因如下:如果空间耗尽,情况将变得不可预测,尽管大多数核心功能都被认为是稳定的,但其他功能尚未稳定,而且它仍然是一个快速变化的目标。快速变化的目标意味着您应该始终使用最新最好的内核,而这在服务器上是不可取的。
另外,即使使用内核 3.16,也会产生死锁,这肯定是你不希望在生产服务器上发生的事情(http://marc.merlins.org/perso/btrfs/post_2014-10-05_Btrfs-Tips_-Catch-Btrfs-Deadlocks.html)。此外,一些 RAID 仍处于试验阶段,例如 RAID5/6。您可以使用它们,但还不能清除其中的数据和其他内容。
Fedora 希望最终使 Btrfs 成为 v23 的默认文件系统,这将在 2015 年底实现。Red Hat 现在已将默认文件系统从 Ext4 切换到 XFS。
如果您确实需要一个可用于生产的 COW 文件系统,请帮自己一个忙并使用 ZFS,无论是 Linux 上的 ZFS 还是 FreeBSD 下的 ZFS。
并阅读 Russel Coker 关于他使用 Btrfs 的经验的博客。http://etbe.coker.com.au/
答案2
我会坚持使用像 XFS 这样的主流文件系统(由 Red Hat 推广),并依靠 ZFS 来满足高级文件系统需求。
这主要是因为:
- 思想共享:Linux、FreeBSD 和 Solaris/OpenIndiana 社区掌握着 ZFS 知识。
- 到期:ZFS 代码库已经过验证并且已经存在了一段时间。最佳实践已经发展我不记得看到过有关数据丢失的恐怖故事。
- 可移植性:我确实更换了平台并始终保留了 ZFS 兼容性。
除了与 Linux 容器的特定集成外,我不知道 BtrFS 是否比 ZFS 提供更多功能今天。如果您对使用 BtrFS 犹豫不决,请听从您的直觉。我认为我不会把生意押在这上面,但事情会随着时间的推移而改变。评估您的具体需求。BtrFS 中是否有引人注目的功能可供您的环境利用?
以示例视图为例有关 BtrFS 的服务器故障问题了解人们经常面临的问题。