Zadania konserwacji Apache Cassandra

W tej sekcji opisano okresowe zadania konserwacyjne dotyczące Cassandry.

Konserwacja antyentropijna

Węzły pierścienia Apache Cassandra wymagają okresowej konserwacji, aby zapewnić spójność we wszystkich węzłach. Aby przeprowadzić tę konserwację, użyj tego polecenia:

apigee-service apigee-cassandra apigee_repair -pr

Podczas uruchamiania tego polecenia Apigee zaleca:

  • Uruchom na każdym węźle Cassandra (we wszystkich regionach lub centrach danych).
  • Aby sprawdzić, czy zadanie naprawy węzła zostało zakończone, poszukaj w pliku system.log węzła wpisu z identyfikatorem UUID ostatniej sesji naprawy i wyrażeniem „sesja zakończona pomyślnie”. Oto przykładowy wpis logu:

    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
  • Uruchamiaj narzędzie w okresach stosunkowo niskiego obciążenia (narzędzie znacznie obciąża system).
  • Uruchamiaj co najmniej raz na 7 dni, aby wyeliminować problemy związane z „zapomnianymi usunięciami” w Cassandra.
  • Uruchamiaj go na różnych węzłach w różne dni lub zaplanuj jego uruchamianie na każdym węźle w odstępie kilku godzin.
  • Użyj opcji -pr (zakres partycjonera), aby określić tylko podstawowy zakres partycjonera węzła.

Jeśli uwierzytelnianie JMX jest włączone dla Cassandry, podczas wywoływania nodetool musisz podać nazwę użytkownika i hasło. Na przykład:

apigee-service apigee-cassandra apigee_repair -u username -pw password -pr

Możesz też uruchomić to polecenie, aby sprawdzić obsługiwane opcje apigee_repair::

apigee-service apigee-cassandra apigee_repair -h

Uwaga: apigee_repair to kod wokół narzędzia nodetool repair w Cassandra, który wykonuje dodatkowe kontrole przed naprawą Cassandra.

Więcej informacji znajdziesz w tych materiałach:

Konserwacja plików dziennika

Logi Cassandra są przechowywane w katalogu /opt/apigee/var/log/cassandra na każdym węźle. Domyślnie można utworzyć maksymalnie 50 plików dziennika, każdy o maksymalnym rozmiarze 20 MB. Po osiągnięciu tego limitu starsze dzienniki są usuwane, gdy tworzone są nowsze.

Jeśli okaże się, że pliki dziennika Cassandra zajmują zbyt dużo miejsca, możesz zmienić ilość miejsca przydzielonego na pliki dziennika, edytując ustawienia log4j.

  1. Edytuj /opt/apigee/customer/application/cassandra.properties, aby ustawić te właściwości. Jeśli ten plik nie istnieje, utwórz go:
    conf_logback_maxfilesize=20MB
    # max file size
    conf_logback_maxbackupindex=50 # max open files
  2. Uruchom ponownie system Cassandra za pomocą tego polecenia:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart

Konserwacja miejsca na dysku

Należy regularnie sprawdzać wykorzystanie dysku Cassandra, aby upewnić się, że co najmniej 50% każdego dysku jest wolne. Jeśli wykorzystanie dysku przekroczy 50%, zalecamy dodanie miejsca na dysku, aby zmniejszyć odsetek wykorzystania.

Cassandra automatycznie wykonuje te operacje, aby zmniejszyć wykorzystanie dysku:

  • Usuwanie tokenów uwierzytelniania po ich wygaśnięciu. Jednak w zależności od konfiguracji zwolnienie miejsca na dysku, które było używane przez tokeny, może potrwać kilka tygodni. Jeśli automatyczne usuwanie nie wystarcza do utrzymania wystarczającej ilości miejsca na dysku, skontaktuj się z zespołem pomocy, aby dowiedzieć się, jak ręcznie usuwać tokeny w celu odzyskania miejsca.
  • Uwaga dotycząca kompaktowania danych: począwszy od Edge dla chmury prywatnej w wersji 4.51.00, nowe instalacje Apigee Cassandra będą tworzyć przestrzenie kluczy ze strategią kompaktowania Leveled Compaction Strategy.

    Instalacje starszych wersji Edge dla chmury prywatnej, które zostały uaktualnione do wersji 4.51.00, zachowają poprzednią strategię kompaktowania. Jeśli obecna strategia kompaktowania to SizeTieredCompactionStrategy, zalecamy zmianę na LeveledCompactionStrategy, która zapewnia lepsze wykorzystanie dysku.

Uwaga: gdy Cassandra wykonuje kompaktowanie danych, może to wymagać znacznej liczby cykli procesora i pamięci. Wykorzystanie zasobów powinno jednak wrócić do normy po zakończeniu kompaktowania. Aby sprawdzić, czy kompaktowanie jest uruchomione, możesz uruchomić polecenie 'Nodetool compactionstats' w każdym węźle. Dane wyjściowe polecenia compactionstats informują, czy są jakieś oczekujące kompaktowania do wykonania, i podają szacowany czas ich zakończenia.