在具有多个磁盘的服务器上部署mongodb的最佳策略
问题描述:
我打算设置一个由6个物理服务器组成的小型mongodb测试环境,每个服务器有4个SSD。我的期望是最大化I/O吞吐量和磁盘空间利用率。经过一些阅读和搜索之后,似乎MongoDB只能为每个实例配置一个数据文件夹。在我看来,有3种可能的解决方案:在具有多个磁盘的服务器上部署mongodb的最佳策略
- 在每个带有RAID(例如RAID5或RAID10)的服务器上创建大容量卷。
- 为每个服务器上的每个磁盘创建一个mongo分片实例(或分片的副本)。
- 用“--directoryperdb”参数启动mongo实例,将数据库存储在单独的文件夹中,然后使用Linux符号链接将数据库文件夹指向其他磁盘。
哪个部署策略是重负载的mongo生产环境中最推荐的方式?谢谢。
答
- 为每个服务器上的每个磁盘创建一个mongo分片实例(或分片的副本)。
你没有提到的RAM在您的文章,但在同一台服务器上运行多个实例蒙哥会导致他们RAM竞争。
用“--directoryperdb”参数存储在单独的文件夹中的数据库,然后使用Linux符号链接到数据库中的文件夹指向其他磁盘
开始=“3”>- 开始蒙戈实例。
无需符号链接勾搭,只是安装的磁盘到蒙戈把每个数据库的目录。
我会选择1(RAID)或选项3(数据库在不同的磁盘上),但无论哪种情况下,在投入生产之前,一些benckmarks是个好主意。
谢谢。我会先尝试RAID解决方案。 – Scott2000 2015-02-10 16:27:42