生产服务器有以下指南:
https://docs.mongodb.com/manual/administration/production-notes/#kernel-and-file-systems
它告诉我们,对于 WiredTiger 存储引擎,强烈建议针对 ext3 或 ext4 使用 XFS。但那篇文章一定很老了。现在我们使用的是 Linux 内核 4。2.6 系列的内核可以追溯到 2003 年。那是非常古老的。
那么问题来了:在过去的 14 年里有什么变化吗?(这在 IT 领域听起来是个愚蠢的问题,写下来感觉很荒谬。)XFS 仍然首选生产 MongoDb 集群吗?或者我们应该改用ext4,还是其他什么?
Ste*_*nie 13
MongoDB 生产说明上信息的出处目前尚不明确,但 WiredTiger 和使用 XFS 的建议肯定比 Linux 内核细节晚得多。生产说明分享了已知问题的集体经验,但通常是建议而不是严格的指导。大多数注释是在观察到普遍存在的问题时添加的,但情况肯定会发生变化。
它告诉我们,对于 WiredTiger 存储引擎,强烈建议针对 ext3 或 ext4 使用 XFS。
针对 ext4 的具体建议是基于许多生产用户报告的 WiredTiger 检查点期间观察到的停顿。根据SERVER-18314(2015 年 5 月),当 ext4 日志与 WiredTiger 检查点重合时,可能会出现停顿。这可能不是所有工作负载的问题,但足够重要的警告是在 MongoDB 3.4(2016 年 11 月发布)中添加了启动警告,用于使用 ext4 和 WiredTiger 的部署。没有关于 XFS 的类似报告,据观察,它通常在 MongoDB 上表现更好。
Linux 上还有其他可用的文件系统(ZFS、btrfs 等),但这些文件系统目前并未广泛用于生产(与 ext4 和 XFS 相比),因此根据测试和经验,推荐使用 XFS 文件系统。
现在我们使用的是 Linux 内核 4。2.6 系列的内核可以追溯到 2003 年。那是非常古老的。
虽然大多数发行版已经从 2.6 内核转移,但有一些像RHEL6这样的企业中坚力量在其发布支持生命周期内不会升级默认内核。Redhat 使用自己的内核颠覆进行了cherrypick 和向后移植修复,但从发布时起将保留在原始内核基础上。RHEL 有 10 年的支持政策,然后是 4 年的延长生命周期支持,因此旧版本在现场的停留时间往往比您预期的要长得多。RHEL6 将在 2020 年进入扩展支持,因此 2017 年仍有使用 2.6 内核的新部署。RHEL7 使用 3.10 Linux 内核,直到 2024 年才会获得扩展支持。