mongodb - 在 Amazon EBS 上使用预置 IOPS 时是否需要在 Mongo 上运行 RAID 10?

标签 mongodb amazon-web-services

我正在尝试在 Amazon 上设置一个生产 mongo 系统,用作实时指标系统的数据存储,

我最初在 Marketplace 中使用 MongoDB AMI[1],但我很困惑,因为只有一个数据 EBS。我读过 Mongo 建议在 EBS 存储上使用 RAID 10(每台服务器上 8 个 EBS)。此外,我读到生产的最低要求是带有仲裁器的主要/次要设备。 RAID 10 仍然是推荐的设置,还是一个预置的 IOPS EBS 就足够了?

请指教。我们是一家小商店,那么我们可以逃脱并仍然相当安全的最低限度是什么?

[1] 1000 IOPS 的 MongoDB 2.4 - 数据:200 GB @ 1000 IOPS,日志:25 GB @ 250 IOPS,日志:10 GB @ 100 IOPS

最佳答案

所以,我刚刚与一位亚马逊系统工程师通了电话,他对这个问题有一些有趣的见解。

  1. 首先,如果你要使用 RAID,他说简单地进行 strip 化,因为 EBS block 无论如何都会在幕后镜像,所以 raid 10 对他来说似乎有点矫枉过正。

  2. 标准 EBS 卷往往可以很好地处理尖峰流量(它可能能够在几秒钟内处理 1K-2K iops),但最终它会逐渐减少到平均 100 iops。一个建议是使用许多小型 EBS 卷并将它们 strip 化以获得更好的 iops 吞吐量。

  3. 他的一些客户仅使用 EC2 镜像上的临时存储,但随后在可用性集中拥有多个 (3-5) 节点。临时存储是物理机上的存储。显然,如果您将 EC2 实例与 SSD 存储一起使用,您可以获得高达 20K 的 iops。

  4. 一些客户会为主服务器制作一个带有 ssd 的巨大 EC2 镜像,然后为辅助服务器制作一个带有 EBS 的较小 EC2。主机性能良好,但故障转移可用但性能下降。

  5. 确保在启动实例时选中“EBS 优化”。这意味着您拥有通往 EBS 存储(任何类型)的专用 channel ,而不是共享 NIC。


  6. 重要!预置的 IOPS EBS 很昂贵,并且当您关闭它们所连接的 EC2 实例时,账单不会关闭。 (在测试时这很糟糕)他的建议是拍摄 EBS 卷的快照,然后删除它们。当您再次需要它们时,只需创建新的预置 IOPS EBS 卷,恢复快照,然后重新配置您的 EC2 实例以附加新存储。 (这比应有的工作量要多,但不被 IOPS 账单打得一头雾水是值得的。

关于mongodb - 在 Amazon EBS 上使用预置 IOPS 时是否需要在 Mongo 上运行 RAID 10?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19166100/

相关文章:

mongodb - 大量插入mongoid

mongodb - Mongo 聚合 : add field derived from another field

python - 使用示例代码时出现 Pymongo pymongo.errors.ServerSelectionTimeoutError

linux - 在 AWS ec2 上提供新卷

amazon-web-services - AWS CloudFormation 删除资源

amazon-web-services - Cloudwatch 登录终端

node.js - Electron 桌面应用程序与远程 NoSql 服务器通信

mysql - 如何选择MongoDB和Cassandra数据库

amazon-web-services - 在 Amazon CloudFront 中为特定文件类型添加内容类型?

amazon-web-services - 检索 Amazon ECS Fargate 公共(public) IP