In diesem Abschnitt werden regelmäßige Wartungsaufgaben für Cassandra beschrieben.
Anti-Entropie-Wartung
Die Apache Cassandra-Ringknoten müssen regelmäßig gewartet werden, um die Konsistenz auf allen Knoten zu gewährleisten. Führen Sie diese Wartung mit dem folgenden Befehl aus:
apigee-service apigee-cassandra apigee_repair -pr
Apigee empfiehlt beim Ausführen dieses Befehls Folgendes:
- Führen Sie den Befehl auf jedem Cassandra-Knoten (in allen Regionen oder Rechenzentren) aus.
Führen Sie den Befehl jeweils auf einem Knoten aus, um die Konsistenz auf allen Knoten im Ring zu gewährleisten. Wenn Sie Reparaturjobs auf mehreren Knoten gleichzeitig ausführen, kann dies die Integrität von Cassandra beeinträchtigen.
Wenn Sie prüfen möchten, ob ein Reparaturjob auf einem Knoten erfolgreich abgeschlossen wurde, suchen Sie in der Datei
system.logdes Knotens nach einem Eintrag mit der UUID der letzten Reparatursitzung und dem Ausdruck „session completed successfully“. Hier ein Beispiel für einen Logeintrag:INFO [AntiEntropySessions:1] 2015-03-01 10:02:56,245 RepairSession.java (line 282) [repair #2e7009b0-c03d-11e4-9012-99a64119c9d8] session completed successfully" Ref: https://support.datastax.com/hc/en-us/articles/204226329-How-to-check-if-a-scheduled-nodetool-repair-ran-successfully
- Führen Sie das Tool in Zeiten mit relativ geringer Arbeitslast aus, da es das System erheblich belastet.
- Führen Sie die Reparatur mindestens alle sieben Tage aus, um Probleme im Zusammenhang mit „vergessenen Löschvorgängen“ von Cassandra zu vermeiden.
- Führen Sie das Upgrade an verschiedenen Tagen auf verschiedenen Knoten aus oder planen Sie es so, dass zwischen der Ausführung auf den einzelnen Knoten mehrere Stunden liegen.
- Verwenden Sie die Option
-pr(Partitioner-Bereich), um nur den primären Partitioner-Bereich des Knotens anzugeben.
Wenn Sie die JMX-Authentifizierung für Cassandra aktiviert haben, müssen Sie beim Aufrufen von nodetool den Nutzernamen und das Passwort angeben. Beispiel:
apigee-service apigee-cassandra apigee_repair -u username -pw password -pr
Sie können auch den folgenden Befehl ausführen, um die unterstützten Optionen von apigee_repair: zu prüfen:
apigee-service apigee-cassandra apigee_repair -h
Hinweis: apigee_repair ist ein Wrapper für die nodetool-Reparatur von Cassandra, der zusätzliche Prüfungen durchführt, bevor die Reparatur von Cassandra ausgeführt wird.
Weitere Informationen finden Sie in den folgenden Ressourcen:
Wartung von Logdateien
Cassandra-Logs werden im Verzeichnis /opt/apigee/var/log/cassandra auf jedem Knoten gespeichert. Standardmäßig können maximal 50 Logdateien mit einer maximalen Größe von jeweils 20 MB erstellt werden. Wenn dieses Limit erreicht ist, werden ältere Logs gelöscht, wenn neuere Logs erstellt werden.
Wenn Sie feststellen, dass Cassandra-Logdateien zu viel Speicherplatz belegen, können Sie den für Logdateien zugewiesenen Speicherplatz ändern, indem Sie die log4j-Einstellungen bearbeiten.
- Bearbeiten Sie
/opt/apigee/customer/application/cassandra.properties, um die folgenden Attribute festzulegen. Wenn diese Datei nicht vorhanden ist, erstellen Sie sie:conf_logback_maxfilesize=20MB # max file size conf_logback_maxbackupindex=50 # max open files
- Starten Sie Cassandra mit dem folgenden Befehl neu:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
Speicherplatzverwaltung
Sie sollten die Cassandra-Laufwerksauslastung regelmäßig überwachen, um sicherzustellen, dass mindestens 50 % jedes Laufwerks verfügbar sind. Wenn die Laufwerksauslastung über 50 % steigt, empfehlen wir, mehr Speicherplatz hinzuzufügen, um den Prozentsatz der Nutzung zu reduzieren.
Cassandra führt automatisch die folgenden Vorgänge aus, um die eigene Laufwerksauslastung zu reduzieren:
- Löschen von Authentifizierungstokens, wenn diese ablaufen. Je nach Konfiguration kann es jedoch einige Wochen dauern, bis der von den Tokens belegte Speicherplatz freigegeben wird. Wenn das automatische Löschen nicht ausreicht, um genügend Speicherplatz zu erhalten, wenden Sie sich an den Support, um zu erfahren, wie Sie Tokens manuell löschen können, um Speicherplatz freizugeben.
Datenkomprimierung Wir empfehlen, die Komprimierungsstrategie für Keyspaces in
LeveledCompactionStrategyzu ändern. Diese bietet bessere Strategien für die Laufwerksauslastung als die StandardstrategieSizeTieredCompactionStrategy. Weitere Informationen finden Sie unter Leveled Compaction Strategy.
Hinweis: Wenn Cassandra Datenkomprimierungen durchführt, kann dies eine erhebliche Menge an CPU-Zyklen und Arbeitsspeicher in Anspruch nehmen. Die Ressourcenauslastung sollte sich jedoch nach Abschluss der Komprimierungen wieder normalisieren.
Sie können den Befehl 'Nodetool compactionstats' auf jedem Knoten ausführen, um zu prüfen, ob die Komprimierung ausgeführt wird. Die Ausgabe von compactionstats informiert Sie darüber, ob ausstehende Komprimierungen ausgeführt werden müssen, und gibt die geschätzte Zeit bis zum Abschluss an.