Klaster Ceph (ukryty materiał dla Subskrybentów)
Cześć
Dziś przedstawię obecnie najlepsze wg. mnie narzędzie do budowania klastra i przechowywania danych.
Od lat poszukiwane są rozwiązania które ograniczą ilość wykorzystanych zasobów, czasu czy też wprowadzą jakiś rodzaj automatyzacji po to, aby nie było konieczności częstej ingerencji. Myślę, że nikomu nie muszę udowadniać, że większość biznesów prowadzi się przez internet, dlatego rozwój w tym zakresie stał się priorytetem. Często bywa, że dane które posiada firma obecnie liczone są w terabajtach dlatego istotne jest odpowiednie zarządzanie wspomnianymi danymi jak i przestrzenią dla nich przydzieloną. I w tym miejscu pojawia się Ceph…
Czym jest Ceph?
Wspomniane oprogramowanie jest udostępnione na zasadzie Open Sorce, czyli o otwartym kodzie za darmo. Ceph lepiej określić można jako platformę służącą do magazynowania danych. Dzięki swojej strukturze wykorzystywać może setki komputerów. Zyskujemyzatem ogromną ilość pamięci rozproszonej po wielu urządzeniach! Do zalet zaliczamy obsługę wielu typów pamięci masowej w ramach jednego klastra dzięki czemu nie ma potrzeby stosowania specjalistycznego sprzętu co przyczynia się do oszczędności w tym zakresie. Jak wspomniałem w poprzednim zdaniu Ceph sprawia, że znacznie zmniejszają się koszty ze względu na brak potrzeby stosowania różnych zasobów sprzętowych oraz zarządzania nimi.
Jak działa Ceph?
Ceph dzieli wszystkie dane na małe fragmenty które są rozproszone w kilku miejscach, na kilku urządzeniach, utrzymując przy tym odpowiednią ilość kopii bezpieczeństwa. Następnie korzystając z algorytmów hashujących wie gdzie znajdują się potrzebne dane i może je pobrać. Pomimo swojej obiektowości może być zamontowany jako wolumen czyli jako urządzenie blokowe.
Elementy Ceph
Ceph magazynuje dane jako obiekty w logicznych pulach pamięci. Każdy z klastrów może mieć wiele takich pól gdzie każde z nich jest inne, może być do czego innego użyte. Wykorzystać takie pule możemy w celu zwiększenia wydajności lub pojemności. W celu poprawnego zagospodarowania wspomnianego mechanizmu, Ceph dzieli pule na grupy. Algorytm CRUSH o którym powiemy więcej w dalszej części artykułu, wyznacza grupę do przechowania obiektu oraz miejsce gdzie powinno się znaleźć.
Wspomniałem w jaki sposób Ceph działa oraz dzieli, natomiast teraz chciałbym skupić się na samym podziale klastra. Wiesz już, że dzieli on na grupy, a następnie określa gdzie poszczególne elementy mają się znaleźć. Te miejsca w klastrze określamy jako demony i możemy je sklasyfikować w poniższy sposób:
● ceph-mon – przechowują mapę stanu klastra, śledząc jego aktywne i uszkodzone węzły, konfigurację oraz informacje o rozmieszczeniu danych i zarządzaniu uwierzytelnianiem;
● ceph-mgr – zapisuje metryki środowiska uruchomieniowego klastra, umożliwia tworzenie kokpitów i zapewnia interfejs dla zewnętrznych systemów monitorowania
● ceph-osd – przechowuje dane w klastrze i obsługuje tworzenie kopii danych, wymazywanie kodu oraz odzyskiwanie;
● ceph-rgw – udostępniają interfejsy API obiektowej pamięci masowej (swift i S3) za pośrednictwem http/https;
● ceph-mds – przechowują metadane dla systemów plików Ceph, mapują nazwy plików i katalogów systemu plików do obiektów RADOS, o których powiemy w dalszej części artykułu i umożliwiają korzystanie z semantyki POSIX w celu uzyskania dostępu do plików;
● ceph-iscsi – zapewniają odpowiedni adres iSCSI dla tradycyjnych bloków magazynowania danych, takich jak VMware lub Windows Server.
Algorytmy CRUSH i RADOS
W poprzednim paragrafie wspominałem o obiektach RADOS jak i CRUSH. Teraz chciałbym rozwinąć te dwie idee wykorzystywane przez oprogramowanie Ceph. Zacznijmy od wyjaśnienia CRUSH.
CRUSH czyli Controlled Replication Under Scalable Hashing jest to algorytm służący do umieszczania danych w tak zwanych wyliczonych miejscach. Dzięki niemu jeżeli znamy mapę klastra jesteśmy w stanie określić gdzie znajduje się obiekt który przesłaliśmy. W ten sposób nie powstaje żaden zastój czy też lepiej określany efekt wąskiego gardła.
RADOS czyli Reliable Autonomic Distributed Object Storage jest zbiorem algorytmów polegającym na sposobie dostępu do danych, wykrywaniu awarii oraz odzyskiwaniu danych.
Dlaczego warto korzystać z Ceph
Nie wiem czy udało mi się w poprzednich paragrafach przekonać Cię do Ceph dlatego chciałbym poświęcić temu zagadnieniu jeszcze chwilę.
Otóż jeżeli dotrwałeś do tego miejsca to wiesz już, że nie ma znaczenia jakiego typu dysku użyjesz do przechowywania danych. Ceph wszystkie te urządzenia oznaczy jako blokowe stąd też ich obsługa wygląda identycznie. Jak wspomniałem wiąże się to z mniejszym zapotrzebowaniem sprzętowym jak i konfiguracyjnym. Czyli wykonywane jest raz i działa niezależnie od zastosowanego nośnika pamięci. Jednak prawdziwą wartością jest elastyczność którą umożliwia. Dane mogą być przechowywane w zależności od możliwości finansowych jak i wymagań. Jeżeli nie zależy na szybkości można korzystać z tańszych rozwiązań czyli dysków HDD co znacznie powinno obniżyć koszty.
Drugim ogromnym plusem jest możliwość integracji z maszynami wirtualnymi które jak sam wiesz są obecnie powszechnie stosowane. Ma to związek z funkcjami które umożliwiają obsługę każdego systemu plików jak i również mogą być używane jako woluminy startowe i rozszerzone.
Trzecim i to wydaje mi się, że najważniejszym powodem korzystania z Cepha jest bezpieczeństwo. Jeżeli uważnie czytałeś to wspominałem, że wykonywane są automatycznie kopie dzięki czemu Ceph zapewnia bezpieczeństwo naszych danych niezależnie od awarii jaka miała miejsce. Gdy uszkodzi się dysk na którym znajdowały się dane automatycznie są przywracane ponieważ ich kopia znajduje się w innym miejscu. Wykonywane są również czynności porządkowe dzięki którym naprawiane są uszkodzone bloki danych. Posiada funkcje szyfrowania danych czy też zarządzania prawami dostępu jak i system uwierzytelniania użytkowników.
Podsumowanie
Ceph jest oprogramowaniem które może przysłużyć się jako narzędzie znacznie obniżające koszty. Posiada bardzo obszerną dokumentację znajdującą się pod adresem https://docs.ceph.com/en/quincy/. Samych rozwiązań instalacyjnych jest bardzo dużo dlatego myślę, że niezależnie od środowiska na jakim pracujesz będziesz w stanie zainstalować opisywany program. W jakim stopniu przyda się to Tobie? Musisz zadać sam sobie takie pytanie ponieważ jeżeli musisz magazynować dużą ilość danych i chcesz to robić w bezpieczny sposób to Ceph będzie idealnym narzędziem dla Ciebie.
Dodaj komentarz