在具有多个磁盘的服务器上部署MongoDB的最佳策略是什么?

3
我计划建立一个小型mongoDB测试环境,包括6台物理服务器,每个服务器有4个SSD。我的期望是最大化I/O吞吐量和磁盘空间利用率。经过一些阅读和搜索,似乎MongoDB只能为每个实例配置单个数据文件夹。我心中有三个可能的解决方案:
  1. 在每个服务器上创建一个大型RAID卷(例如RAID5或RAID10)。
  2. 对于每个服务器上的每个磁盘,创建一个Mongo分片实例(或分片副本)。
  3. 使用“-directoryperdb”参数启动mongo实例以将数据库存储在单独的文件夹中,然后使用Linux符号链接将数据库文件夹指向其他磁盘。
在高负载的Mongo生产环境中,哪种部署策略是最推荐的?谢谢。
1个回答

1
  1. 对于每个服务器上的每个磁盘,创建一个mongo分片实例(或分片的副本)。

您在帖子中未提到RAM,但在同一服务器上运行多个Mongo实例将导致它们竞争RAM。

  1. 使用“--directoryperdb”参数启动mongo实例以将数据库存储在单独的文件夹中,然后使用Linux符号链接将数据库文件夹指向其他磁盘。

不需要搞符号链接,只需将磁盘挂载到Mongo放置每个数据库的目录即可。

我会选择选项1(RAID)或选项3(单独的磁盘上的数据库),但在进入生产之前进行一些基准测试是一个好主意。


谢谢。我会先尝试RAID解决方案。 - Scott2000

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接