Co możemy zrobić aby poprawić wydajność klastra Ceph ? - część 3
Podziel się

7 sposobów na poprawę wydajności klastra Ceph

Istnieje wiele technik i rozwiązań poprawiających wydajność oraz szybkość pracy klastra Ceph. Poniżej postaram się przedstawić pokrótce najbardziej popularne rozwiązania, które mogą pomóc w optymalizacji klastra.

Zachęcam też do lektury wcześniejszych artykułów poświęconych Ceph:

Jak zbudować wydajny klaster Ceph? Testy, optymalizacja, architektura
Jaka konfiguracja jest optymalna dla klastra Ceph?

1. Optymalizacja OS oraz NICs

Jedną z technik, która jest bardzo często stosowana do optymalizacji. Polega ona na dobraniu odpowiednich profili systemowych, modyfikacji parametrów kernela czy też modułów poprawiających zarówno wydajność pracy systemu, jak i interfejsów sieciowych.

2. System plików

W przypadku gdy wykonywana jest konfiguracja agentów OSD, stosuje się techniki poprawiające wydajność poprzez dobór parametrów takich jak inode size czy directory size. Również ważną rolę odgrywają tutaj flagi montowania, których używa się do montowania systemu plików.

3. Jumbo frames

Jedną z technik, które znacznie zwiększają wydajność działania klastra to zmiana rozmiaru MTU ze standardowych wartości MTU na 9000 w przypadku sieci Ethernet i odpowiednio na 4096 bajty w przypadku sieci Infiniband. Maksymalna wielkość MTU jest w dużej mierze uzależniona od sprzętu.

4. Backing store

Ceph od niedawna umożliwia konfigurację agentów OSD do działania z różnymi “storage backend” aktualnie z BlueStore oraz Filestore. Obecnie instalując najnowsza wersję Cepha, wykorzystywane jest nowsze i wydajniejsze rozwiązanie, które nosi nazwę  BlueStore. Filestore w odróżnieniu od BlueStore wykorzystuje dodatkowo klasyczny system plików taki jak np. xfs, który wprowadza dodatkową nadmiarowość. Oczywiście, jeżeli korzystamy obecnie z Filestore, możemy w łatwy sposób wykonać migrację agentów OSD do BlueStore.

5. RDMA

Karty sieciowe Mellanox ConnectX posiadają wiele zalet. Jedną z nich jest możliwość skonfigurowania interfejsu sieciowego do pracy w sieci Ethernet lub Infiniband – w zależności od zastosowanego switcha mamy możliwość wyboru technologii. Myślę, że jedną z bardzo istotnych funkcji jest RDMA, czyli “remote direct memory access”, które w skrócie dość znacznie odciąża układ CPU oraz pozwala usprawnić przepływ danych wymienianych pomiędzy buforami poszczególnych serwerów. W zależności od modelu, który wybierzemy, rozwiązanie nosi różne nazwy – dla Infiniband jest to RDMA, a dla sieci Ethernet RoCE (RDMA over Converged Ethernet). Niestety aplikacja musi wspierać obsługę RDMA i wymaga dodatkowej niestandardowej konfiguracji.

6. Crush mapa

Odpowiednia optymalizacja reguł oraz stworzenie właściwej mapy, dostosowanej do środowiska, w którym działa klaster Ceph pozwala na poprawę wydajności. Często poprzez zastosowanie odpowiednich wag dla OSD lub zdefiniowanie grupy szybszych dysków, które będa wybierane przez crush pod funkcje OSD master może mieć wpływ na wydajność.

7. Intel Cache Acceleration Software

Jedną z możliwości optymalizacji agentów OSD jest wykorzystanie rozwiązania, jakie oferuje Intel. CAS jest rozwiązaniem w pełni programowym, do działania wymaga dowolnych dysków ssd oraz hdd. Technologia wykorzystuje szybszy dysk ssd jako cache oraz wolniejszy do zapisu danych. Pozwala to na przyspieszenie operacji I/O na małych obiektach (64K) oraz zmniejszenie czasów opóźnień.

Firmy Red Hat oraz Intel przeprowadziły testy polegające na porównaniu różnych opcji konfiguracyjnych i ich wpływu na wydajność oraz opóźnienie w klastrze Ceph. Skupiono się na następujących opcjach konfiguracyjnych:

  • domyślna konfiguracja Ceph OSD z filestore (Default filestore);
  • zoptymalizowana konfiguracja Ceph OSD z filestore (Tuned filestore);
  • domyślna konfiguracja Ceph OSD z filestore oraz Intel CAS (Default filestore + Intel CAS);
  • zoptymalizowana konfiguracja Ceph OSD z filestore (Tuned filestore + Intel CAS).

Zoptymalizowana konfiguracja polegała na ustawieniu wyższych wartości dla parametrów “merge threshold”. Poniższe wyniki testów pokazują, że wykorzystanie domyślnej konfiguracji Ceph OSD z Intel CAS powoduje wzrost wydajności operacji IOPS dla obiektów o wielkości 64KB w stosunku do domyślnej konfiguracji węzłów OSD w niektórych momentach nawet o 400%.

Operacje zapisu 64KB obiektów dla klastrów o różnej konfiguracji (więcej znaczy lepiej)
Operacje zapisu 64KB obiektów dla klastrów o różnej konfiguracji (więcej znaczy lepiej)

Wykorzystanie technologii Intel CAS również wpłynęło na zmniejszenie czasów opóźnień w klastrze. Na poniższym wykresie można zauważyć, że wykorzystanie technologii CAS powoduje zmniejszenie o 50% czasów opóźnień.

Operacje zapisu 64KB obiektów dla klastrów o różnej konfiguracji (mniej znaczy lepiej)
Operacje zapisu 64KB obiektów dla klastrów o różnej konfiguracji (mniej znaczy lepiej)

Intel CAS tworzy dodatkową logiczną warstwę pod systemem plików, która jest odpowiedzialna za odpowiednią optymalizację i poprawę wydajności. Poniższy schemat przedstawia architekturę rozwiązania opartego o technologię Intel CAS.

Architektura rozwiązania opartego o technologii Intel CAS
Architektura rozwiązania opartego o technologii Intel CAS

Podsumowanie

Niewątpliwie Ceph posiada wiele możliwości poprawy wydajności, które mają kluczowe znaczenie na pracę całego środowiska już na etapie wyboru konfiguracji sprzętowej. Istotnymi elementem jest wykorzystanie dysków NVMe SSD, które wpływają na poprawę operacji zapisu oraz IOPS. Oczywiście sprzęt to nie wszystko. Jest również wiele innych elementów, które należy odpowiednio dobrać i skonfigurować, aby wydajność klastra była na wysokim poziomie. Najważniejszym pytaniem, na które należy sobie odpowiedzieć to przeznaczenie i zastosowanie klastra Ceph. Jeżeli środowisko ma być wykorzystywane jako backup dla dużej ilości danych, nie ma sensu stosowania szybkich dysków ssd oraz wydzielania osobnych dysków pod metadata/journal. Tak więc wszystko zależy od potrzeb.

Subscribe
Powiadom o
guest
Ocena
Jednocześnie potwierdzam zapoznanie się z informacjami nt przetwarzania danych osobowych oraz regulaminem świadczenia usług drogą elektroniczną.
Wyrażam zgodę na przetwarzanie danych osobowych podanych w formularzu kontaktowym oraz kontakt przedstawicieli Linux Polska Sp. z o.o. w celu otrzymywania newslettera oraz innych informacji marketingowych drogą elektroniczną na podany adres email.
0 komentarzy
Inline Feedbacks
View all comments

Skontaktuj się z nami