Zurück zum Blog

Wie man MongoDB in Ubuntu in der Public Cloud einrichtet & optimiert

Wie man MongoDB in Ubuntu in der Public Cloud einrichtet & optimiert

Unternehmen bringen große Datenmengen mit sich, was die Handhabung und Verwaltung erschwert. Traditionell nutzt die Branche seit Jahrzehnten RDBMS-Systeme, aber mit dem Aufkommen von Big Data im 21. Jahrhundert traten NoSQL-Datenbanken (Not only SQL) für unstrukturierte und semistrukturierte Daten in großem Maßstab auf den Plan.

In diesem Beitrag werde ich einen MongoDB-Cluster einrichten.

MongoDB ist eine kostenlose und quelloffene NoSQL-Dokumentendatenbank, die aufgrund ihrer hohen Skalierbarkeit und Flexibilität weit verbreitet ist.

Um MongoDB in der Produktion einzusetzen, empfiehlt es sich, Replica Sets zu verwenden. Replica Sets sind das MongoDB-Äquivalent zu einem Master/Slave-Setup in der relationalen Welt, aber im Gegensatz dazu sind sie sehr unkompliziert einzurichten, da alles integriert ist. Weitere Informationen zu Replica Sets finden Sie unter TutorialsPoint’s Definition des Replikationsprozesses.

Planung Ihres MongoDB-Cloud-Server-Clusters

Ich werde einen Cluster mit 3 Nodes erstellen. Es ist wichtig, ihnen die gleichen Ressourcen zuzuweisen, da jeder von ihnen zum primären (d. h. Master-) Server werden kann. Diese Nodes oder Maschinen können auf jedem Betriebssystem laufen, aber in diesem Tutorial werde ich Ubuntu 18.04 LTS verwenden. Wie Sie das vorinstallierte Image aus der Bibliothek von CloudSigma’s einbinden und einrichten, erfahren Sie in diesem Tutorial.

Da der Sinn eines Replica Sets darin besteht, dass der Cluster den Ausfall eines einzelnen Nodes übersteht, wäre es ziemlich witzlos, wenn alle Ihre Server auf demselben physischen Host befänden. Glücklicherweise bietet CloudSigma etwas an, das sich Verfügbarkeitsgruppen. Das bedeutet, dass Sie das System anweisen können, alle drei Server in verschiedenen Gruppen zusammenzufassen. Auf diese Weise werden sie sich niemals auf demselben physischen Host befinden. Weitere Informationen hierzu sowie zu anderen Sicherheits- und Business-Continuity-Funktionen finden Sie hier.

Es ist auch wichtig, eine 64-Bit-Version von Linux zu verwenden. Der Grund dafür ist schlichtweg, dass MongoDB auf 32-Bit-Systemen nicht gut läuft (mehr dazu hier).

Installation von MongoDB in der Cloud

Dieser Abschnitt ist ziemlich unkompliziert. Verwenden Sie entweder eines der vorkonfigurierten Ubuntu 18.04 Images oder installieren Sie es selbst.

Die CPU-, RAM- und Festplattenkonfiguration ist sehr individuell und hängt von Ihrer Auslastung ab. Für eine kleinere Installation sollten eine 4-GHz-CPU, 4 GB RAM und eine 10-GB-Festplatte (für das System) ausreichen. Wenn Sie Ihre Laufwerke anschließen, stellen Sie sicher, dass Sie VirtIO verwenden. Wenn Sie IDE verwenden, leidet die Leistung erheblich. Da Sie außerdem ein Replica Set erstellen, müssen sich alle Nodes (und App-Server) im selben VLAN befinden.

Im Gegensatz zu vielen anderen Cloud-Anbietern ist es nicht erforderlich, Ihren Speicher mit RAID10 oder ähnlichem zu konfigurieren, um die Leistung zu verbessern. Wie viele unserer Kunden berichten, erhalten Sie bei CloudSigma durch die Verwendung von sowohl SSDs als auch Magnetspeicherplatten direkt eine hervorragende Leistung.

Ich empfehle dennoch, die MongoDB-Daten auf einem separaten Laufwerk zu speichern. Der Grund dafür ist einfach, dass Sie irgendwann möglicherweise Optimierungen am Dateisystem vornehmen müssen, die Sie nicht auf Ihr gesamtes Dateisystem anwenden möchten.

Vor diesem Hintergrund ist es am einfachsten, dieses Laufwerk erst nach der Einrichtung der Server hinzuzufügen. Konzentrieren wir uns für den Moment auf die Systeminstallation. Wenn Sie die Installation selbst vornehmen (anstatt die vorkonfigurierten Systeme zu verwenden), empfehle ich Ihnen, im Boot-Menü F4 zu drücken und ‘Eine minimale virtuelle Maschine installieren’.

Ich erstelle 3 Maschinen mit jeweils folgenden Spezifikationen:

  • CPU: 4 GHz
  • RAM: 4 GB
  • SSD: 10 GB (Ubuntu 18.04 LTS), 20 GB (zusätzliches Laufwerk)

Wie im SSD-Teil aufgeführt, schließe ich ein Laufwerk mit einer Größe von 10 GB an, auf dem Ubuntu 18.04 LTS installiert ist.

Darüber hinaus schließe ich ein weiteres leeres Laufwerk mit einer Größe von 20 GB an, um MongoDB-Daten zu speichern. Die Größe hängt stark von Ihrer Nutzung ab, aber für ein kleines System sollten 20 GB wahrscheinlich ausreichen. Da es jedoch manchmal schwer vorherzusagen ist, wie viele Daten Sie speichern werden, verwenden wir LVM. Dies ermöglicht es Ihnen, später einfach ein weiteres Laufwerk hinzuzufügen und das Volume zu erweitern, ohne von vorne beginnen zu müssen. Alternativ können Sie ein einzelnes Laufwerk verwenden und es später vergrößern mitresize2fs.

Um die Festplatte hinzuzufügen, gehen Sie einfach in den Bereich ‘Drives’, klicken Sie oben auf das Symbol ‘Create a new drive’, geben Sie der neuen Festplatte einen Namen und legen Sie die Größe auf 20 GB fest. Sobald sie gespeichert ist, gehen Sie zu der einzelnen Maschine, an die Sie sie anschließen möchten, und unter dem Bereich „Drives“ der Details dieser Maschine können Sie auf ‘Attach a drive’ klicken und die Festplatte auswählen.

Da Sie nun drei Maschinen haben, können Sie dazu übergehen, die zusätzliche Festplatte, die Sie für Ihren MongoDB-Datenspeicher hinzugefügt haben, an jeder Maschine zu mounten. Ich empfehle, diese Festplatte als Partition hinzuzufügen. Die Verwendung von Partitionierung ermöglicht es dem Betriebssystem, Informationen in jedem Bereich separat zu verwalten. Um die Festplatte als Partition hinzuzufügen, werde ich zuerst alle an unsere Maschine angeschlossenen Festplatten überprüfen. Dazu werde ich den folgenden Befehl ausführen:

Wenn ich den Befehl ausführe, erhalte ich die Ausgabe, die die Festplatten und Geräte auf meiner Maschine auflistet.

MongoDB

In dem Bild habe ich eine 10-GB-Festplatte als diejenige markiert, auf der unser Betriebssystem installiert ist. Dann gibt es eine weitere Festplatte mit 20 GB, die nun angeschlossen wurde. Der Speicherort der Festplatte ist /dev/vdb. Sie können auf dieser Festplatte mit den folgenden Befehlen eine Partition erstellen:

Es öffnet das fdisk-Dienstprogramm, ein Befehlszeilen-Dienstprogramm, das Festplattenpartitionierungsfunktionen bereitstellt, mit denen Sie Partitionen auf unserer Festplatte erstellen können. Es erscheint die Eingabeaufforderung “Command (m for help):”, in der Sie n eingeben müssen, um eine neue Partition zu erstellen, und dann einfach die Eingabetaste drücken, um die Standardwerte zu akzeptieren. Und nachdem die Partition erstellt wurde, geben Sie w ein, um die Änderungen zu schreiben. Es würde so aussehen:

Es wurde eine neue Partition 1 vom Typ ‘Linux’ und der Größe 20 GiB erstellt. Da die Partition nun erstellt ist, erstellen wir einen LVM-Pool:

Ich habe ‘19.5g’ eingegeben, da meine Partitionsgröße 20g beträgt. Führen Sie als Nächstes den folgenden Befehl aus, um den Namen der Festplatte herauszufinden:

Formatieren Sie danach die Festplatte mit dem folgenden Befehl im ext4-Format:

Als Nächstes erstellen wir einen Ort zum Einhängen der Festplatte und einen Ordner, in dem Ihre MongoDB-Daten gespeichert werden.

Um einen Eintrag in der fstab für Ihre neu einzuhängende Festplatte hinzuzufügen, können Sie direkt den folgenden Befehl verwenden:

In dem Befehl liefert blkid Ihnen eine UUID – Universally Unique Identifier (universell eindeutige Identifikationsnummer) für jede Festplatte. Hier filtere ich diejenige für die MongoDB-Festplatte heraus und kombiniere diese UUID jeweils mit dem Speicherort des Einhängeordners, dem Dateisystemtyp und anderen Optionen für die Festplatte. Ich füge diese Zeile zu /etc/fstab hinzu. Wenn Sie das nicht tun, erhalten Sie beim Einhängen der Festplatte eine Fehlermeldung. Der Eintrag sieht wie folgt aus:

UUID=”695a62e6-021d-4fc0-945c-cc51a92d86da” /mongodb ext4 auto,noexec,rw,sync,nouser 0 0

Jetzt können Sie die Festplatte am Speicherort /mongodb einhängen:

MongoDB installieren

Nachdem das System vorbereitet ist, fahren wir mit der Installation von MongoDB fort. Obwohl Ubuntu eine Version von MongoDB in seinem eigenen Repository anbietet, empfehle ich Ihnen, stattdessen die offizielle MongoDB-Version zu verwenden. Der Grund dafür ist, dass das Ubuntu-Repository bei den Veröffentlichungen ziemlich weit hinterherhinkt. Wenn Sie also das Beste aus MongoDB herausholen wollen, müssen Sie auf die offiziellen Releases zurückgreifen.

Da MongoDB ein eigenes Repository anbietet, können Sie dieses einfach zu Ihrem System hinzufügen und MongoDB dann ganz normal installieren. Hier sind die folgenden Schritte:

Importieren Sie zunächst den öffentlichen Schlüssel, der vom Paketverwaltungssystem verwendet wird:

Dann erstelle ich eine Listendatei. Diese enthält das Repository, in dem sich MongoDB befindet, sodass Ihr System es von dort herunterladen kann:

Jetzt aktualisiere ich meine lokale Paketdatenbank, um die Änderungen zu berücksichtigen.

Jetzt kann ich das Paket einfach mit dem folgenden Befehl installieren:

Ich habe MongoDB auf jeder der Maschinen installiert.

Jetzt läuft MongoDB und die Daten auf dem erstellten Laufwerk sind vorhanden. Wenn eine hohe Last und/oder viele Verbindungen erwartet werden, müssen Sie möglicherweise die ulimit-Werte erhöhen.

Wenn Sie mehr Einblick in Ihre Daten erhalten möchten, können Sie sich auch für MongoDBs MMS registrieren, einen kostenlosen cloudbasierten Überwachungsdienst für MongoDB.

Erstellen des Replica Sets für Ihre MongoDB Cloud

Lassen Sie uns nun ein Replica Set erstellen. Zuvor müssen Sie sicherstellen, dass alle Maschinen miteinander kommunizieren können. Fügen Sie dazu diese Einträge in /etc/hosts hinzu

Zur Überprüfung können Sie versuchen, die Maschinen über den Hostnamen anzupingen. Wenn also die IP meiner Maschine 1 IP-1 ist, sagen wir 213.189.123.12, dann schreiben Sie statt

schreibe ich,

Wenn Sie die Firewall aktiviert haben (was Sie wirklich tun sollten), stellen Sie sicher, dass die Nodes TCP-Verkehr auf den Ports 28017 und 27017 auf der internen Schnittstelle senden und empfangen können.

Starten Sie nun auf jeder der Maschinen den mongod-Dienst mit den folgenden Befehlen.

Auf Maschine m1,

Als Nächstes auf Maschine m2,

Auf Maschine m3,

Hier

mongod ist der Name des Dienstes

dbpath ist der Speicherort unseres Datenbankverzeichnisses

replSet ist der Name unseres Replikationssets. Er sollte für jede der Maschinen im selben Replica-Set identisch sein

bind_ip ist der Hostname der Maschine, auf der Sie es ausführen.

Sobald Sie den mongod-Dienst gestartet haben, gehen Sie zum primären Server (in meinem Fall habe ich m1 gewählt) und führen Sie mongo aus.

Dadurch wird das MongoDB-Terminal gestartet. Initiieren Sie im Terminal das replicaSet mit dem folgenden Befehl. Es erstellt das replicaSet mit Standardkonfigurationen:

Fügen wir nun einfach die anderen beiden Maschinen als Replikate mit den folgenden Befehlen hinzu:

Sie können den Status mit folgendem Befehl überwachen:

Das ist auch schon alles. Sie sollten nun mit Ihrem MongoDB-Cluster in CloudSigma’s blitzschneller Cloud startklar sein.

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.