Neu bei Elasticsearch? Nehmen Sie an unserem Webinar „Erste Schritte mit Elasticsearch“ teil. Sie können jetzt auch eine kostenlose Cloud-Testversion starten oder Elastic auf Ihrem Rechner testen.
Die Verwaltung von Datenträgern ist in jeder Datenbank wichtig, und Elasticsearch bildet da keine Ausnahme. Wenn nicht genügend Speicherplatz zur Verfügung steht, stellt Elasticsearch die Zuweisung von Shards an den Knoten ein. Dies wird Sie letztendlich daran hindern, Daten in den Cluster zu schreiben, wodurch das Risiko eines Datenverlusts in Ihrer Anwendung entsteht. Wenn Sie hingegen zu viel Speicherplatz haben, bezahlen Sie für mehr Ressourcen, als Sie benötigen.
Hintergrundinformationen zu Wasserzeichen
In Ihrem Elasticsearch-Cluster gibt es verschiedene „Wasserzeichen“-Schwellenwerte, die Ihnen helfen, den verfügbaren Speicherplatz zu überwachen. Wenn der Speicherplatz auf einem Knoten fast aufgebraucht ist, wird als erstes der Schwellenwert „niedriger Speicherplatz“ überschritten. Der zweite Schwellenwert wird dann der „hohe Festplatten-Wasserzeichen-Schwellenwert“ sein. Schließlich wird das Stadium der „Scheibenflutung“ erreicht. Sobald dieser Schwellenwert überschritten ist, blockiert der Cluster das Schreiben in ALLE Indizes, die einen Shard (primär oder Replikat) auf dem Knoten haben, der den Schwellenwert überschritten hat. Lesevorgänge (Suchanfragen) bleiben weiterhin möglich.
Wie man Fälle von zu voller Festplatte (Überauslastung) verhindert und damit umgeht
Es gibt verschiedene Methoden, um mit Fällen umzugehen, in denen Ihre Elasticsearch-Festplatte zu voll ist:
- Alte Daten löschen : Daten sollten in der Regel nicht unbegrenzt aufbewahrt werden. Eine Möglichkeit, einer zu vollen Festplatte vorzubeugen und das Problem zu lösen, besteht darin, sicherzustellen, dass Daten, sobald sie ein bestimmtes Alter erreichen, zuverlässig archiviert und gelöscht werden. Eine Möglichkeit hierfür ist die Verwendung von ILM.
- Speicherkapazität hinzufügen: Wenn Sie die Daten nicht löschen können, sollten Sie möglicherweise weitere Datenknoten hinzufügen oder die Festplattengrößen erhöhen, um alle Daten zu erhalten, ohne die Leistung negativ zu beeinflussen. Wenn Sie die Speicherkapazität des Clusters erhöhen müssen, sollten Sie überlegen, ob Sie nur die Speicherkapazität allein oder auch RAM- und CPU-Ressourcen im entsprechenden Verhältnis hinzufügen müssen (siehe Abschnitt zum Verhältnis von Festplattengröße, RAM und CPU weiter unten).
So fügen Sie Ihrem Elasticsearch-Cluster Speicherkapazität hinzu
- Erhöhen Sie die Anzahl der Datenknoten: Denken Sie daran, dass die neuen Knoten die gleiche Größe wie die vorhandenen Knoten und die gleiche Elasticsearch-Version haben sollten.
- Vergrößerung der vorhandenen Knoten: In Cloud-basierten Umgebungen ist es in der Regel einfach, die Festplattengröße und den Arbeitsspeicher/die CPU auf vorhandenen Knoten zu erhöhen.
- Erhöhen Sie nur die Festplattengröße: In Cloud-basierten Umgebungen ist es oft relativ einfach, die Festplattengröße zu erhöhen.
- Schnappschuss Und Wiederherstellung: Wenn Sie es zulassen, dass alte Daten auf Anfrage in einem automatisierten Prozess aus Backups wiederhergestellt werden, können Sie alte Indizes als Snapshots speichern, diese löschen und die Daten auf Anfrage temporär aus den Snapshots wiederherstellen.
- Reduzierung der Replikate pro Shard: Eine weitere Möglichkeit zur Datenreduzierung besteht darin, die Anzahl der Replikate jedes Shards zu verringern. Für eine hohe Verfügbarkeit ist es wünschenswert, pro Shard eine Replik zu haben. Wenn die Daten jedoch älter werden, kann man unter Umständen auch ohne Replikate arbeiten. Das funktioniert in der Regel, wenn die Daten persistent sind oder Sie über eine Datensicherung verfügen, die Sie bei Bedarf wiederherstellen können.
- Benachrichtigungen erstellen: Um zu verhindern, dass die Festplatte in Zukunft voll wird und um proaktiv handeln zu können, sollten Sie Benachrichtigungen auf Basis der Festplattennutzung erstellen, die Sie benachrichtigen, wenn die Festplatte sich zu füllen beginnt.
Wie man Fälle von unzureichender Festplattenauslastung verhindert und behandelt
Wenn Ihre Festplattenkapazität nicht voll ausgelastet ist, gibt es verschiedene Möglichkeiten, das Speichervolumen in Ihrem Cluster zu reduzieren.
Wie man das Speichervolumen eines Elasticsearch-Clusters reduziert
Es gibt verschiedene Methoden, um das Speichervolumen eines Clusters zu reduzieren.
1. Die Anzahl der Datenknoten reduzieren
Wenn Sie den Datenspeicherbedarf reduzieren und gleichzeitig RAM- und CPU-Ressourcen im gleichen Verhältnis einsparen möchten, dann ist dies die einfachste Strategie. Die Stilllegung nicht benötigter Knotenpunkte dürfte die größten Kosteneinsparungen ermöglichen.
Vor der Außerbetriebnahme des Knotens sollten Sie Folgendes beachten:
- Stellen Sie sicher, dass der außer Betrieb zu nehmende Knoten nicht als MASTER-Knoten benötigt wird. Sie sollten immer mindestens drei Knoten mit der MASTER-Knotenrolle haben.
- Die Datenfragmente müssen von dem außer Betrieb zu nehmenden Knoten migriert werden.
2. Ersetzen Sie die vorhandenen Knoten durch kleinere Knoten.
Wenn Sie die Anzahl der Knoten nicht weiter reduzieren können (normalerweise wären 3 die Mindestkonfiguration), dann sollten Sie die vorhandenen Knoten verkleinern. Denken Sie daran, dass es ratsam ist, sicherzustellen, dass alle Datenknoten über den gleichen Arbeitsspeicher und die gleiche Festplattengröße verfügen, da der Shard-Ausgleich auf der Grundlage der Anzahl der Shards pro Knoten erfolgt.
Der Ablauf wäre wie folgt:
- Fügen Sie dem Cluster neue, kleinere Knoten hinzu.
- Die Shards von den außer Betrieb zu nehmenden Knoten migrieren
- Schalten Sie die alten Knoten ab.
3. Verringern Sie die Festplattengröße auf den Knoten.
Wenn Sie NUR die Festplattengröße auf den Knoten reduzieren möchten, ohne den gesamten RAM oder die CPU des Clusters zu verändern, dann können Sie die Festplattengröße für jeden Knoten reduzieren. Die Reduzierung der Festplattengröße auf einem Elasticsearch-Knoten ist kein trivialer Prozess.
Am einfachsten ginge das in der Regel so:
- Shards vom Knoten migrieren
- Stoppe den Knoten
- Hängen Sie ein neues Datenvolume mit geeigneter Größe an den Knoten an.
- Kopieren Sie alle Daten vom alten Datenträger auf den neuen Datenträger.
- Altes Volume A abtrennen
- Startknoten und Shards zurück zum Knoten migrieren
Dies setzt voraus, dass auf den anderen Knoten ausreichend Kapazität vorhanden ist, um die zusätzlichen Shards des Knotens während dieses Prozesses vorübergehend zu speichern. In vielen Fällen können die Kosten für die Verwaltung dieses Prozesses die potenziellen Einsparungen bei der Festplattennutzung übersteigen. Aus diesem Grund ist es unter Umständen einfacher, den Knoten komplett durch einen neuen Knoten mit der gewünschten Festplattengröße zu ersetzen (siehe oben „Ersetzen vorhandener Knoten durch kleinere Knoten“).
Wenn man für unnötige Ressourcen bezahlt, können die Kosten offensichtlich durch eine Optimierung der Ressourcennutzung reduziert werden.
Das Verhältnis zwischen Festplattengröße, RAM und CPU
Das ideale Verhältnis von Festplattenkapazität zu Arbeitsspeicher in Ihrem Cluster hängt von Ihrem jeweiligen Anwendungsfall ab. Aus diesem Grund sollten Sie bei der Überlegung von Änderungen Ihrer Speicherkapazität auch berücksichtigen, ob Ihre aktuellen Verhältnisse von Festplatte, Arbeitsspeicher und CPU angemessen ausbalanciert sind und ob Sie infolgedessen auch Arbeitsspeicher und CPU im gleichen Verhältnis hinzufügen oder reduzieren müssen.
Der Bedarf an RAM und CPU hängt vom Umfang der Indizierungsaktivität , der Anzahl und Art der Abfragen sowie der Menge der zu durchsuchenden und zu aggregierenden Daten ab. Dies steht oft im Verhältnis zur Menge der auf dem Cluster gespeicherten Daten und sollte daher auch mit der Festplattengröße in Zusammenhang stehen.
Das Verhältnis zwischen Festplattenkapazität und Arbeitsspeicher kann je nach Anwendungsfall variieren. Hier einige Beispiele:
| Indexaktivität | Aufbewahrung | Suchaktivität | Festplattenkapazität | RAM | |
|---|---|---|---|---|---|
| Unternehmenssuch-App | Mäßige Holzaufnahme | Lang | Licht | 2 TB | 32 GB |
| App-Überwachung | Intensive Holzverarbeitung | Kurz | Licht | 1 TB | 32 GB |
| E-Commerce | Light-Datenindexierung | Unbestimmt | Schwer | 500 GB | 32 GB |
Denken Sie daran, dass Änderungen an der Konfiguration von Node-Maschinen mit Vorsicht vorgenommen werden müssen, da dies zu Ausfallzeiten der Nodes führen kann und Sie sicherstellen müssen, dass Shards nicht auf Ihre anderen, bereits überlasteten Nodes migriert werden.




