Apache Cassandra-Wartungsaufgaben

In diesem Abschnitt werden regelmäßige Wartungsaufgaben für Cassandra beschrieben.

Entropieschutz

Die Apache Cassandra-Ringknoten erfordern eine regelmäßige Wartung, um für Konsistenz in allen Knoten zu sorgen. Verwenden Sie den folgenden Befehl, um diese Wartung durchzuführen:

apigee-service apigee-cassandra apigee_repair -pr

Apigee empfiehlt beim Ausführen dieses Befehls Folgendes:

  • Ausführung auf jedem Cassandra-Knoten (in allen Regionen oder Rechenzentren)
  • Führen Sie sie jeweils nur auf einem Knoten aus, um für Konsistenz auf allen Knoten im Ring zu sorgen. Wenn Reparaturjobs auf mehreren Knoten gleichzeitig ausgeführt werden, 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.log des Knotens nach einem Eintrag mit der UUID der letzten Reparatursitzung und dem Ausdruck „Sitzung erfolgreich abgeschlossen“. 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
  • Ausführung in Zeiträumen relativ geringer Arbeitslast (das Tool stellt eine erhebliche Auslastung des Systems dar).
  • Führen Sie das Skript mindestens alle sieben Tage aus, um Probleme im Zusammenhang mit „vergessenen Löschungen“ von Cassandra zu vermeiden.
  • Führen Sie den Vorgang auf verschiedenen Knoten an verschiedenen Tagen aus oder planen Sie ihn so, dass zwischen der Ausführung auf jedem Knoten mehrere Stunden liegen.
  • Verwenden Sie die Option -pr (Partitionerbereich), um nur den Bereich der primären Partitionierer 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 um die Nodetool-Reparatur von Cassandra, die vor der Reparatur von Cassandra zusätzliche Prüfungen durchführt.

Weitere Informationen finden Sie in den folgenden Ressourcen:

Wartung von Protokolldateien

Cassandra-Logs werden auf jedem Knoten im Verzeichnis /opt/apigee/var/log/cassandra gespeichert. Standardmäßig können maximal 50 Logdateien mit jeweils einer maximalen Größe von 20 MB erstellt werden. Sobald diese Grenze erreicht ist, werden ältere Logs gelöscht, wenn neuere Logs erstellt werden.

Wenn Sie feststellen sollten, dass Cassandra-Protokolldateien übermäßig viel Speicherplatz belegen, können Sie den für die Protokolldateien zugewiesenen Speicherplatz ändern, indem Sie die log4j-Einstellungen bearbeiten.

  1. Bearbeiten Sie /opt/apigee/customer/application/cassandra.properties, um die folgenden Attribute festzulegen. Wenn die Datei nicht vorhanden ist, erstellen Sie sie:
    conf_logback_maxfilesize=20MB
    # max file size
    conf_logback_maxbackupindex=50 # max open files
  2. Starten Sie Cassandra mit dem folgenden Befehl neu:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart

Speicherplatzwartung

Sie sollten die Cassandra-Laufwerksauslastung regelmäßig überwachen, um sicherzustellen, dass mindestens 50 % der einzelnen Laufwerke kostenlos sind. Wenn die Laufwerksauslastung über 50 % steigt, sollten Sie mehr Speicherplatz hinzufügen, um den belegten Prozentsatz zu reduzieren.

Cassandra führt automatisch die folgenden Vorgänge aus, um die eigene Laufwerksauslastung zu reduzieren:

  • Löschung von Authentifizierungstokens bei Ablauf von Tokens Je nach Konfiguration kann es jedoch einige Wochen dauern, bis der von den Tokens verwendete Speicherplatz freigegeben wird. Wenn das automatische Löschen nicht ausreicht, um genügend Speicherplatz zur Verfügung zu haben, wenden Sie sich an den Support, um zu erfahren, wie Sie Tokens manuell löschen, um Speicherplatz freizugeben.
  • Datenverdichtung Wir empfehlen, die Komprimierungsstrategie für Schlüsselbereiche in LeveledCompactionStrategy zu ändern. Dadurch sind bessere Strategien zur Laufwerksauslastung als der Standard-SizeTieredCompactionStrategy möglich. Weitere Informationen finden Sie unter Gezielte Verdichtungsstrategie.

Hinweis: Wenn Cassandra die Datenverdichtungen ausführt, kann dies eine erhebliche Menge an CPU-Zyklen und Arbeitsspeicher in Anspruch nehmen. Die Ressourcenauslastung sollte sich jedoch wieder normalisieren, sobald die Verdichtungen abgeschlossen sind. Mit dem Befehl 'Nodetool compactionstats' können Sie auf jedem Knoten prüfen, ob die Verdichtung ausgeführt wird. Die Ausgabe von compactionstats informiert Sie, wenn noch Verdichtungen ausgeführt werden müssen, sowie die geschätzte Zeit für den Abschluss.