我想在EC2上为我的生产部署mongoDB。但是,我无法在网上找到足够的信息来帮助解答我的架构问题。在EC2上部署MongoDB进行生产的建议做法?
- 一般来说,什么应该是初始簇w/N碎片?
- 添加额外碎片的部署计划应该是什么?
- 什么应该是故障转移策略(当一个或多个节点发生故障时会发生什么)?
- 灾难恢复策略应该是什么?我正在考虑在美国东部和美国西部的其他节点设立一些节点,如this powerpoint file说。
回答非常感谢。
我想在EC2上为我的生产部署mongoDB。但是,我无法在网上找到足够的信息来帮助解答我的架构问题。在EC2上部署MongoDB进行生产的建议做法?
回答非常感谢。
附加说明:
温斯顿,克里斯蒂娜·乔多罗的 “缩放MongoDB的” 是你想要什么:
http://oreilly.com/catalog/0636920018308
据我了解,
1)你想副本集的3个或更多(一些奇数)每个分片的实例,加上每个分片中的一些时间延迟实例作为备份
2)简单地将它们添加到集群中 - Mongo将缓慢地将分片移动到新节点上,直到集群被重新平衡
3)副本集通常会很好地处理故障转移;但是,您可能需要将Mongo的仲裁实例添加到运行应用程序前端的服务器 - 这些仲裁者将投票支持其余实例成为初选,以防许多节点停止运行,并且有助于确保任何可以访问的Mongo实例您的前端服务器将能够接管主要角色
4)将时间延迟实例添加到每个副本集是一个好主意,尤其是如果(如您所说)在地理上分布,或者如果它们在几个托管服务提供商(例如,如果您的主服务器在亚马逊上,您可能需要在Rackspace上进行备份)。如果副本集的大部分发生故障,剩余的节点将不会自动选择新的主节点,但是您可以在发生这种灾难时手动执行此操作。
myNoSQL是我最喜欢的NoSQL博客,最近发布了一篇名为Running MongoDB in the Cloud的文章,列出了几篇关于在Amazon云中部署MongoDB的文章。
1)我想用几个碎片,除非你知道你肯定需要更多的开始。
2)添加更多分片的棘手部分是重新平衡所花费的时间。根据您的数据和负载情况,整个分片可能需要几天才能重新平衡。因此,您希望在低负载时间安排分片添加
3)每个分片应至少有一个2 + 1副本集,副本分布在可用区域内。
4)如果您对灾难恢复感兴趣,应该在各个区域而不是跨可用区域分布副本。更多信息在这里 - EC2 best practices。另外请记住,如果您在各地区分发副本,请正确配置副本集的优先级。