Aktualizacja Apache Cassandra do nowszej wersji to znaczące zadanie, które administratorzy baz danych podejmują, aby ich systemy korzystały z nowych funkcji, ulepszonych środków bezpieczeństwa i poprawionej wydajności. Ten przewodnik dostarcza szczegółowych instrukcji dotyczących aktualizacji Apache Cassandra z wersji 3.1.15 i wyższych do najnowszej wersji 4.1.x, specjalnie na Ubuntu 20.04.5 LTS, ze szczególnym naciskiem na operacje czyszczenia przed aktualizacją, aby efektywnie zarządzać przestrzenią dyskową.
Przygotowanie przed aktualizacją
Kopia zapasowa katalogu konfiguracyjnego:
Przed rozpoczęciem aktualizacji kluczowe jest wykonanie kopii zapasowej katalogu konfiguracyjnego Cassandry. To zabezpieczenie umożliwia szybkie przywrócenie konfiguracji, jeśli podczas procesu aktualizacji pojawią się jakiekolwiek problemy. Wykorzystaj poniższe polecenie, aby stworzyć kopię zapasową, włączając do nazwy folderu bieżącą datę dla łatwej identyfikacji:
1 |
# cp -r /etc/cassandra/ /root/cassandra-conf-bkp-$(date +%Y%m%d) |
Operacje czyszczenia przed aktualizacją
Przygotowanie jest kluczem do płynnej aktualizacji. Zacznij od poleceń konserwacyjnych, aby zagwarantować integralność danych i zoptymalizować wykorzystanie przestrzeni, co jest szczególnie ważne dla systemów z ograniczoną przestrzenią dyskową.
Oczyszczanie danych:
Wykonaj nodetool scrub
, aby oczyścić i zreorganizować dane na dysku. Biorąc pod uwagę, że ta operacja może być czasochłonna, zwłaszcza dla baz danych z dużą ilością danych lub ograniczoną przestrzenią dyskową, jest to kluczowy krok dla zdrowego procesu aktualizacji.
Usuwanie snapshota:
Aby dalej zarządzać przestrzenią dyskową, użyj nodetool clearsnapshot
do usunięcia istniejących snapshota, zwalniając miejsce na proces aktualizacji. Aby usunąć wszystkie migawki na węźle, po prostu użyj tej metody, jeśli kończy Ci się miejsce:
1 |
# nodetool clearsnapshot --all |
Czyszczenie danych:
Wykonaj nodetool cleanup
, aby usunąć zbędne dane. W scenariuszach, gdzie przestrzeń dyskowa jest na wagę złota, zaleca się wykonanie operacji oczyszczania bez tworzenia migawki, aby oszczędzić miejsce:
1 |
# nodetool scrub --no-snapshot |
Opróżnianie i zatrzymywanie Cassandry
Opróżnienie węzła:
Przed zatrzymaniem usługi Cassandra, upewnij się, że wszystkie dane w pamięci są zapisane na dysku za pomocą nodetool drain
.
1 |
# nodetool drain |
Zatrzymaj usługę Cassandry:
Zatrzymaj działające usługi Cassandry, aby bezpiecznie przystąpić do aktualizacji:
1 |
# systemctl stop cassandra.service |
Aktualizacja Cassandry
Aktualizacja listy źródeł:
Edytuj źródła repozytorium, aby wskazywały na nową wersję Cassandry, dostosowując plik cassandra.sources.list
:
1 |
# echo "deb https://debian.cassandra.apache.org 41x main" > /etc/apt/sources.list.d/cassandra.sources.list |
Aktualizacja pakietów:
Przy zaktualizowanych źródłach repozytorium, odśwież listę pakietów i zaktualizuj pakiety. Podczas wykonywania polecenia apt upgrade
, możesz kontynuować naciskając Enter, ponieważ domyślna opcja to 'N’ (Nie):
1 |
# apt update && apt upgrade |
Modyfikacja konfiguracji:
Dostosuj konfigurację Cassandry dla wersji 4.1.x, komentując lub usuwając przestarzałe opcje:
1 |
# for var in thrift_prepared_statements_cache_size_mb start_rpc rpc_port rpc_server_type thrift_framed_transport_size_in_mb request_scheduler; do sed -i "/$var:/s/^/#/" /etc/cassandra/cassandra.yaml; done |
Aktualizacja biblioteki JAMM:
Upewnij się, że biblioteka Java Agent Memory Manager (JAMM) jest zaktualizowana, aby poprawić wydajność:
1 |
# sed -i 's|jamm-0.3.0.jar|jamm-0.3.2.jar|g' /etc/cassandra/cassandra-env.sh |
Zapasowa kopia i aktualizacja pliku opcji JVM:
Jest dobrą praktyką tworzenie kopii zapasowych plików konfiguracyjnych przed dokonaniem zmian. Ten krok zmienia nazwę istniejącego pliku jvm-server.options
na jvm-server.options.orig
jako kopię zapasową. Następnie kopiuje plik jvm.options
do jvm-server.options
, stosując standardowe opcje JVM dla serwerów Cassandry.
1 2 |
# cd /etc/cassandra/ # mv jvm-server.options jvm-server.options.orig && cp -p jvm.options jvm-server.options |
Optymalizacja i weryfikacja
Optymalizacja wykorzystania pamięci:
Po aktualizacji warto ocenić i zoptymalizować wykorzystanie pamięci i przestrzeni wymiany, aby zapewnić efektywne działanie Cassandry:
1 |
# swapoff -a && swapon -a |
Uruchom ponownie usługę Cassandry:
1 |
# systemctl start cassandra.service |
Weryfikacja aktualizacji:
Potwierdź sukces aktualizacji, sprawdzając topologię i stan klastra, upewniając się, że wszystkie węzły są funkcjonalne:
1 2 |
# nodetool describecluster # nodetool status |
Przestrzegając tego szczegółowego przewodnika, administratorzy baz danych mogą skutecznie aktualizować Apache Cassandra do wersji 4.1.x, wykorzystując najnowsze postępy i optymalizacje, które platforma ma do zaoferowania, jednocześnie zapewniając integralność danych i wydajność systemu dzięki starannym przygotowaniom przed aktualizacją.
Optymalizacja i weryfikacja
Po pomyślnej aktualizacji Apache Cassandra do wersji 4.1.x i upewnieniu się, że klaster jest w pełni operacyjny, kluczowe jest przeprowadzenie konserwacji po aktualizacji, aby zoptymalizować wydajność i bezpieczeństwo systemu bazy danych. Ta sekcja przedstawia niezbędne kroki i rozważania, aby utrzymać zdrowe i efektywne środowisko Cassandry.
Monitorowanie wydajności i dzienników
Bezpośrednio po aktualizacji ściśle monitoruj wydajność systemu, w tym użycie procesora, pamięci i I/O dysków, aby zidentyfikować wszelkie nieoczekiwane zachowania lub wąskie gardła. Dodatkowo, przejrzyj dzienniki systemowe Cassandry pod kątem ostrzeżeń lub błędów, które mogą wskazywać na potencjalne problemy wymagające uwagi.
Regulacja i optymalizacja
Na podstawie wglądu w monitorowanie wydajności, możesz potrzebować dostosować ustawienia konfiguracyjne Cassandry dla optymalnej wydajności. Rozważ regulację parametrów związanych z opcjami JVM, kompaktacją i wydajnością odczytu/zapisu, mając na uwadze specyficzne obciążenie i wzorce danych Twojej aplikacji.
Uruchom nodetool upgradesstables
Aby upewnić się, że wszystkie SSTables są zaktualizowane do najnowszego formatu, wykonaj nodetool upgradesstables
na każdym węźle w klastrze. Ta operacja przepisze SSTables, które nie są jeszcze w bieżącym formacie, co jest niezbędne do pełnego wykorzystania ulepszeń i funkcji w Cassandra 4.1.x (Sprawdź przestrzeń i w razie potrzeby usuń wszystkie migawki, jak pokazano powyżej.):
1 |
# time nodetool upgradesstables |
Ten proces może być obciążający dla zasobów i powinien być zaplanowany poza godzinami szczytu, aby zminimalizować wpływ na ruch na żywo.
Wdrożenie ulepszeń bezpieczeństwa
Cassandra 4.1.x zawiera kilka ulepszeń bezpieczeństwa. Przejrzyj najnowsze funkcje bezpieczeństwa i najlepsze praktyki, takie jak włączenie szyfrowania klient-serwer, szyfrowanie węzeł-węzeł oraz zaawansowane mechanizmy uwierzytelniania, aby poprawić poziom bezpieczeństwa klastra Cassandry.
Przegląd i aktualizacja strategii tworzenia kopii zapasowych
Z nową wersją na miejscu, ponownie ocen swoje strategie tworzenia kopii zapasowych, aby upewnić się, że są nadal skuteczne i spełniają Twoje cele odzyskiwania. Zweryfikuj, czy Twoje procedury tworzenia kopii zapasowych i przywracania są zgodne z Cassandra 4.1.x oraz rozważ wykorzystanie nowych narzędzi lub funkcji, które mogły zostać wprowadzone w tej wersji dla bardziej efektywnego zarządzania danymi.