具有MongoDB副本集的AWS EFS Elastic文件系统

时间:2016-10-03 20:17:35

标签: mongodb amazon-ec2 aws-elasticfilesystem

我有三个EC2实例,每个实例都有自己的MongoDB,它们连接在一个副本集中。

因为EFS可以跨多个EC2实例共享,我想知道三件事......

  1. 如果磁盘上的数据实际上已在所有三个实例之间共享,那么MongoDB实例是否仍需要连接到副本集? (我关心的是Mongo DB的RAM中的内容,并且每个Mungo数据库实例都不会'知道',它有什么数据,或者直接将数据写入磁盘会省略重要的'索引'步骤)

  2. 从性能的角度来看,最好不要让MongoDB向N写入相同的N次,如果我们只需要向文件系统写一次就会有不同的实例?

  3. 为确保一切都“安全”,我是否应该将每个EC2实例安装到自己的EFS上,而不关心上述两个问题? (在这种情况下,成本将是每GB成本的N倍)

1 个答案:

答案 0 :(得分:0)

  1. 首先,永远不要这样做。数据库系统通常会锁定它们正在使用的数据文件。这样他们就可以控制数据实际写入磁盘的时间和方式。您可以通过使用网络文件系统来解决此锁定机制,但您不应该这样做。您将打开自己的数据损坏。如果你甚至可以在第一时间开始工作。

  2. 请参阅第1点,您将损坏您的数据。副本旨在提高数据的读取性能和可用性。

  3. 你真的不需要为Mongo使用EFS。如果需要更高的写入性能,可以使用副本和/或分片。