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

时间:2013-10-03 18:06:25

标签: mongodb amazon-web-services

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

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

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

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

2 个答案:

答案 0 :(得分:6)

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

  1. 首先,如果你打算使用RAID,他说只是做条带化,因为无论如何EBS模块在幕后被镜像,所以raid 10对他来说似乎有些过分。

  2. 标准EBS卷倾向于很好地处理尖峰流量(它可能能够处理1K-2K iops几秒钟),但最终它将平均减少100个iops。一个建议是使用许多小的EBS卷并对其进行条带化以获得更好的iops吞吐量。

  3. 他的一些客户只使用EC2图像上的短暂存储,但在可用性集中有多个(3-5)节点。短暂存储是物理机器上的存储。显然,如果您将EC2实例与SSD存储一起使用,则最多可以获得20K iops。

  4. 有些客户会为主服务器执行一个巨大的EC2映像w / ssd,然后为辅助服务器执行更小的EC2 w / EBS。主计算机性能良好,但故障转移可用,但性能下降。

  5. 确保在启动实例时检查“EBS Optimized”。这意味着您有一个专用的EBS存储通道(任何类型),而不是共享网卡。


  6. 重要!预配置的IOPS EBS很昂贵,当您关闭它们所连接的EC2实例时,账单不会关闭。 (这在测试时很糟糕)他的建议是拍摄EBS卷的快照,然后删除它们。当您再次需要它们时,只需创建新的预配置IOPS EBS卷,还原快照,然后重新配置EC2实例以附加新存储。 (它的工作量应该超出应有的水平,但值得一提的是不要让笨蛋被淘汰IOPS法案。

答案 1 :(得分:0)

我有同样的问题。亚马逊和Mongodb都试图在配置的IOP上大肆宣传其优于标准EBS卷的优势。我们在m2.4xlarge aws实例上运行prod实例,每个服务设置1个主服务器和2个辅助服务器。在利用率最高的服务集群中,除了一些缓慢的查询之外,监控图表根本不会显示任何性能下降。页面错误很少发生,每天一次或两次也会发生0.0001到0.0004次错误。后台刷新以毫秒为单位,锁和队列到目前为止处于可管理的级别。 I / O在主节点上等待0到2%之间的任何时间,大多数小于1,并且%idle空闲稳定地保持在90%以上。我是否仍需要考虑配置的IOP,因为我们仍有预算可以改善任何潜在的性能拖累?任何指导将不胜感激。