Wenn ich einen einzelnen MongoDB-Server in einen Sharded-Cluster verschieben möchte, weiß ich, dass ich drei Konfigurationsserver benötige. Da wir alles auf einem einzigen EXSi-Server haben, möchte ich nur fragen, ob es wirklich die bevorzugte Methode ist, drei kleine Konfigurationsserver-VMs und zwei zusätzliche VMs für die MongoDB-Server einzurichten. Ist das sinnvoll, da das Betriebssystem auf dem Konfigurationsserver allein 300 MB RAM (oder so) verbraucht? Ist es eine gute Idee, stattdessen eine VM und drei Docker-Container für die Konfigurationsserver zu verwenden? Und sollte ich die MongoDB-Router auf den beiden Datenknoten oder auf dem Server installieren, auf dem sich die Konfigurationsserver befinden? Lassen Sie mich die Frage zusammenfassen: Wie viele VMs benötige ich wirklich mindestens für einen Sharded-MongoDB-Cluster?
Oder ist Ubuntu Snappy Core eine Option?
Antwort1
Wenn Sie einLaborumgebungSie können den Ressourcenverbrauch so weit einsparen, wie Sie möchten. Die Idee, Container/Docker zu verwenden, klingt vernünftig für einLaborumgebung(und sogar für eine Produktionsumgebung, sofern Sie die Container auf verschiedene physische Hosts verteilen).
DerDie Mindestanzahl an mongod
Prozessen für eine Sharded-Umgebung beträgt 9. 3 für den Konfigurationsreplikatsatz und 3 für jeden der (mindestens) 2 Replikatsätze im Shard.
„Verteilt“ bedeutet, dass es auf verschiedenen Maschinen ausgeführt werden kann, aber das ist nicht zwingend erforderlich. Sie könnten alle 9 Mongod-Prozesse auf einem einzigen physischen Host über verschiedene Ports ausführen ...
Die mongos
Routerprozesse sollten so nah wie möglich an den Client-Apps ausgeführt werden. Das heißt, platzieren Sie mongos
auf jeder VM einen mit einer Anwendung, die Mongo verwendet.
Schlussbemerkung. Bitte beachten Sie die Betonung aufLaborumgebung. Wenn Sie mit einem einzelnen ESXi-Knoten etwas anderes als eine Lernumgebung erstellen, müssen Sie Ihre Annahmen überprüfen.