在具有多个磁盘的服务器上部署mongodb的最佳策略

时间:2015-02-10 09:38:53

标签: performance mongodb deployment

我打算设置一个小型的mongodb测试环境,它由6个物理服务器组成,每个服务器有4个SSD。我的期望是最大化I / O吞吐量和磁盘空间利用率。经过一些阅读和搜索,似乎MongoDB只能为每个实例配置一个数据文件夹。我脑子里有三种可能的解决方案:

  1. 使用RAID(例如,RAID5或RAID10)在每台服务器上创建一个大卷。
  2. 为每台服务器上的每个磁盘创建一个mongo分片实例(或分片的副本)。
  3. 使用"启动mongo实例 - directoryperdb"用于在单独的文件夹中存储数据库的参数,然后使用Linux符号链接将数据库文件夹指向其他磁盘。
  4. 在重负荷的mongo生产环境中,哪种部署策略是最推荐的方式?感谢。

1 个答案:

答案 0 :(得分:0)

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

你在帖子中没有提到RAM,但是在同一台服务器上运行多个Mongo实例会导致它们竞争RAM。

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

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

我会选择选项1(RAID)或选项3(不同磁盘上的数据库),但无论是哪种情况,在投入生产之前都会有一些好主意。