W pierwszej części artykułu Jak zbudować wydajny klaster Ceph? Testy, optymalizacja, architektura – część 1 skupiliśmy się na kryteriach optymalizacji klastra Ceph i przedstawiliśmy przykładową konfigurację sprzętową dla węzłów OSD.
W tej części skupimy się na optymalnym doborze rodzaju, wielkości oraz ilości dysków dla węzła OSD.
Często przy wyborze sprzętu zastanawiamy się, jaka konfiguracja sprzętowa najlepiej spełni nasze potrzeby. Z pomocą przychodzą dostawcy sprzętu, którzy posiadają dedykowany sprzęt pod rozwiązania oparte o klaster Ceph. Niektórzy producenci dostarczają biuletyny zawierające przykładową architekturę rozwiązania oraz przeprowadzają szczegółowe testy, które mogą pomóc nam w doborze optymalnej konfiguracji.
W tym artykule skupię się na wynikach testów, które przeprowadził Red Hat wraz z Supermicro. Pokazują one, jak ilość węzłów OSD wpływa na przepustowość zapisu oraz odczytu w klastrze Ceph.
Producent do budowy klastra wykorzystał serwery o następującej konfiguracji sprzętowej:
- CPU: Dual Intel Xeon E5-2630v2 CPUs
- RAM: 128 GB DDR3-1333,
- SSD: Seagate ST200FM0053 200GB
- PCIe (NVMe): Intel DC P3700 NVMe flash SSD
W zależności od ilości dysków skorzystano z różnych przepustowości interfejsów sieciowych:
- 12 x 4TB (1 x PCIe): Intel 2x 10 GbE
- 12 x 6TB (1 x PCIe): Intel 2x 10 GbE
- 30 x 4TB (6 x SSD): Intel 2x 10 GbE
- 36 x 4TB (2 x PCIe): Mellanox 40 GbE
- 36 x 6TB (2 x PCIe): Mellanox 40 GbE
- 60 x 4TB (12 x SSD): Mellanox 40 GbE
- 72 x 6TB: 2x 10Gb/s: Mellanox 40 GbE
Podczas testu wykorzystano łącznie dwa interfejsy sieciowe 10GbE: pierwszy dla ruchu “public” oraz drugi dla ruchu sieciowego “cluster”. W przypadku interfejsów 40GbE ruch dla sieci “public” oraz “cluster” był obsługiwany przez jeden interfejs sieciowy. W teście wykorzystano filestore jako backing store oraz zabezpieczenie danych w postaci 3 x replik per HDD.
Poniższa tabela prezentuje różne konfiguracje, dla których był wykonywany test. W pierwszym etapie został wykonany test sprawdzający odczyt i zapis sekwencyjny dla poszczególnych konfiguracji. Najlepszą wydajność w tym teście osiągnął węzeł 4U z 60 x 4TB dyskami HDD oraz 12 x SSD z 80 TB dostępnej przestrzeni dla użytkownika. Odczyt na poziomie 2,202 MB/s zapis 601 MB/s z 40GbE interfejsem sieciowym. Węzły w konfiguracji 12 x 4-6TB (1 x PCIe) osiągają podobne rezultaty.
Kolejny test dla klastra o wielkości 50TB został przeprowadzony tylko dla konfiguracji czterech serwerów 2U 12 x 4TB (1x PCIe) ze względu na zabezpieczenie danych w postaci 3 x repliki per HDD. W tej konfiguracji klaster Ceph osiągnie odczyt na poziomie 3540 MB/s oraz zapis na poziomie 1118 MB/s. W przypadku gdy potrzebujemy 500TB przestrzeni, najlepszą konfiguracją będzie wykorzystanie serwerów 2U 12 x 4TB (1 x PCIe) z interfejsem 2 x 10 GbE. Serwery 12 x 4-6TB (1 x PCIe), które różnią się jedynie wielkością dysku HDD, w przypadku większej ilości osiągają zupełnie inne rezultaty niż w indywidualnym teście. Odczyt dla konfiguracji 12 x 6TB (1 x PCIe) jest blisko mniejszy o 10 000 MB/s.
W klastrze o wielkości 1PB najlepsze rezultaty osiąga konfiguracja węzłów 2U 12 x 4TB (1 x PCIe), osiągając szybkość odczytu na poziomie 55 GB/s i zapisu na poziomie 18 GB/s. Niestety węzły wypadają najgorzej, jeżeli chodzi o ilość wykorzystanych węzłów do stworzenia klastra.
Najwydajniejszą konfiguracją przy 500TB – 1PB klastrach jest wykorzystanie serwerów 2U składających się z 12 x 4TB dysków HDD i jednego dysku SSD NVMe (PCIe). Zaskakujący może być dość wysoki spadek odczytu i zapisu dla identycznej konfiguracji, z tym że wykorzystującej 6 TB dyski HDD. Powyższa tabela pozwala na zobrazowanie i dobranie najlepszej konfiguracji sprzętowej dla naszego środowiska.
W kolejnej części Co możemy zrobić aby poprawić wydajność klastra Ceph omówię elementy rozwiązania, na których warto się skupić podczas optymalizacji istniejącego klastra Ceph.