2015-02-10 52 views
1

我打算設置一個由6個物理服務器組成的小型mongodb測試環境,每個服務器有4個SSD。我的期望是最大化I/O吞吐量和磁盤空間利用率。經過一些閱讀和搜索之後,似乎MongoDB只能爲每個實例配置一個數據文件夾。在我看來,有3種可能的解決方案:在具有多個磁盤的服務器上部署mongodb的最佳策略

  1. 在每個帶有RAID(例如RAID5或RAID10)的服務器上創建大容量卷。
  2. 爲每個服務器上的每個磁盤創建一個mongo分片實例(或分片的副本)。
  3. 用「--directoryperdb」參數啓動mongo實例,將數據庫存儲在單獨的文件夾中,然後使用Linux符號鏈接將數據庫文件夾指向其他磁盤。

哪個部署策略是重負載的mongo生產環境中最推薦的方式?謝謝。

回答

0
  1. 爲每個服務器上的每個磁盤創建一個mongo分片實例(或分片的副本)。

你沒有提到的RAM在您的文章,但在同一臺服務器上運行多個實例蒙哥會導致他們RAM競爭。

用「--directoryperdb」參數存儲在單獨的文件夾中的數據庫,然後使用Linux符號鏈接到數據庫中的文件夾指向其他磁盤
  • 開始蒙戈實例。
  • 無需符號鏈接勾搭,只是安裝的磁盤到蒙戈把每個數據庫的目錄。

    我會選擇1(RAID)或選項3(數據庫在不同的磁盤上),但無論哪種情況下,在投入生產之前,一些benckmarks是個好主意。

    +0

    謝謝。我會先嚐試RAID解決方案。 – Scott2000 2015-02-10 16:27:42