Klaster GlusterFS
Niezależnie od tego czy zamierzamy korzystać z chmury świadomie czy nie, stajemy się często jej użytkownikami zupełnie nie mając świadomości co działa pod spodem danej aplikacji czy usługi. Stale rosnąca ilość przechowywanych danych powoduje zainteresowanie w innych niż dotychczasowe sposobach i metodach ich przechowywania prowadząc do rozproszenia systemów plików. Rozproszony system plików można sobie zwizualizować jako system plików działający na kilku serwerach komunikujących się przez sieć. Niewątpliwie rozproszone systemy plików są podstawą do budowania chmury przez wielkich komercyjnych dostawców, ale i również do chmur prywatnych. Rozproszone systemy plików dzięki swojej skalowalności są przyszłością w przechowywaniu danych, obecnie wielcy dostawcy korzystają już z tych rozwiązań, powodując ich ciągły rozwój. Lecz nie tylko, coraz więcej małych firm decyduje się na uruchomienie swojego klastra na przechowywanie danych. Nieistotne, który system plików zostanie wybrany GlusterFS, XtreemFS czy Ceph, każdy z nich ma swoje wady i zalety i każdorazowo należy dopasować oprogramowanie do potrzeb. Implementacja klastra GlusterFS na czterech węzłach została zakończona pomyślnie, choć na początkowym etapie rozważane były różne konfiguracje - finalnie wybrane zostały dostępne pod ręką urządzenia, zalegające na magazynie, w które zostało tchnięte nowe życie. Na pierwszy rzut oka wystarczyło zaprojektować koncepcję klastra, dokupić potrzebne urządzenia – karty sieciowe i obudowy. Przy projekcie konceptu należało się na chwilę zatrzymać, gdyż dobrze zaprojektowane rozwiązania są wstanie wynagradzać nam swoim prawidłowym działaniem w przyszłości, dlatego zwrócono szczególną uwagę na możliwość rozbudowy, proste aktualizacje, bezpieczeństwo danych i wysoką dostępność. W ten sposób uzyskano z czterech lowendowych komputerów prawdziwy, niczym nie odbiegający od profesjonalnych klaster z redundancją danych. Skalowalne systemy plików i możliwość żonglowania danymi pomiędzy jednostkami jest kluczowa do budowania przyszłościowych rozwiązań.
Spośród największych zalet wymienić można skalowalność, bezpieczeństwo danych, brak opłat licencyjnych, przejrzystą i czytelną dokumentację. Jeśli chodzi o wady rozwiązań rozproszonych systemów plików to
z pewnością będzie to, że skonfigurowanie jest czasochłonne i wymaga odpowiedniego przygotowania, zarówno sprzętowego jak i kompetencyjnego, odpowiedniej wiedzy. Wykorzystanie wszystkich funkcji wymaga stworzenia kompleksowej sieci zawierającej różne komponenty – to są odpowiednie swiche pozwalające na agregację interfejsów, zasilacze awaryjne podtrzymujące zasilanie w przypadku awarii. Redundancję, odporność na awarię określić musimy już na etapie planowania konfiguracji klastra. Na koniec z wad na pewno będzie też to, że tego typu klaster wymaga aktualizacji i jego nadzorowanie musi przebiegać przez osoby posiadające odpowiedni do tego zestaw kompetencji i wiedzy, nie jest to proste jak w przypadku macierzy sprzętowych.
Na czym opiera się funkcjonalność GlusterFS?
Esencją funkcjonowania GlusterFS jest operowanie na dystrybucyjnym systemie plików. To jednak ma realny sens, jeśli ma miejsce połączenie ze sobą kilku komputerów. Zgodnie z opublikowaną przez GlusterFS dokumentacją na ten temat zalecane jest utworzenie przynajmniej trzech serwerów rozumianych niedosłownie. Dlaczego niedosłownie? W praktyce bowiem niema każdy rodzaj fizycznego lub emulowanego sprzętu z powodzeniem może się zintegrować w ramach systemu GlusterFS. Oznacza to, że nie musimy korzystać wyłącznie z rzeczywistych komputerów, ale możemy wzmocnić działanie systemu dzięki maszynom wirtualnym. To z kolei oznacza, że system ten ma wyjątkową wręcz elastyczność i oferuje szereg korzyści. A jak w praktyce wygląda integrowanie ze sobą serwerów?
Zintegrowane serwery działają na zasadzie węzłów połączonych ze sobą siecią TCP/IP. To sprawia, że zintegrowane urządzenia tworzą tzw. zaufaną pulę pamięci. Ta postać przyjmuje postać cegiełek, które przyczyniają się do tworzenia kolejnych woluminów. Te z kolei mogą być zintegrowane i używane na zasadzie zwyczajnych nośników danych. Warto przy tym zaznaczyć, że komputery z dostępem są identyfikowani jako klienci, ale nic nie stoi na przeszkodzie, aby komputer był równocześnie traktowany jako klient i serwer.
W tym miejscu warto zaznaczyć szczególną cechę oprogramowania GlusterFS, która opiera się na wyjątkowej wręcz, ogromnej skalowalności. W praktyce bowiem węzły i cegły mogą być dodawane w dowolnej liczbie, a przestrzeń magazynowa dostosuje się do pojawiających się nowych wymagań. Wynika to z faktu, że maksymalny rozmiar przestrzeni do zarządzania wynosi kilka petabajtów.
Niezawodność GlusterFS – na czym się opiera?
Specyficzną gwarancją niezawodności działania GlucsterFS jest redundancja. Dzięki rozłożeniu ryzyka awarii na kilka systemów oddzielonych od siebie przestrzennie można wykorzystać to, że jakiś ulegnie awarii, aby korzystać z plików systemowych dzięki pozostałym, działającym systemom. Jest to dodatkowo wzmacniane poprzez możliwość skonfigurowania sieci RAID. Ta opiera się na dwukrotnym zapisywaniu plików, co jest przeciwstawne do standardowego działania woluminów dystrybuowanych.
Korzystanie z GlusterFS wiąże się m.in. z możliwością wykorzystywania dziesięciu predefiniowanych translatorów tłumaczących polecenia wydawane przez użytkowników. Takie translatory mogą np. przechowywać dane w lokalnym systemie plików, kontrolując przy tym do nich dostęp, a także szyfrować te dane. Na uwagę z pewnością zasługuje jeszcze jedna specyficzna funkcja GlusterFS.
Dzięki replikacji geograficznej możliwe jest przeprowadzenie skutecznej, asynchronicznej dystrybucji danych pomiędzy serwerami mającymi odmienne lokalizacje. Jest to działanie skoncentrowane na zadbaniu o maksymalną ochronę serwerów przed czynnikami zewnętrznymi. Dotyczy to zarówno działania ludzkiego (kradzieży, zniszczenia), jak i działania żywiołu (np. pożaru). W tej specyficznej fuzji dochodzi do działania systemów na zasadzie wskazania ról, gdzie jeden komputer to „master”, a drugi „slave”. Tu transfer danych jest zabezpieczony przez SSH.
Jakie typy woluminów tworzy GlusterFS?
W tym miejscu warto wyróżnić kilka typów woluminów tworzonych przez GlusterFS. Wybór pomiędzy nimi oznacza wybór określonych aspektów wydajności, pojemności i odporności na uszkodzenia oraz awarie. Jakie warto więc wyróżnić?
Pierwszym typem woluminu jest tzw. distributed. Jego działanie opiera się na dążeniu do maksymalnego zwiększenia wielkości zasobności dysku. W przypadku skonfigurowania dwóch cegiełek np. o wielkości 100 GB każda, łącznie zagwarantują one dysk o wielkości aż 200 GB, a plik będzie zapisany tylko w jednej z tych cegiełek. W tym przypadku algorytm zadba tak równomierne wykorzystywanie istniejących węzłów, jak tylko jest to możliwe. Ten typ jednak nie jest zbyt odporny na awarie i jego uszkodzenie blokuje dostęp do całego dysku, a nawet utratę danych.
Odpowiedzią na ten problem jest typ „replicated”, który opiera się na jednoczesnym zapisywaniu plików na wszystkich cegłach kreujących wolumin. Tego typu rozwiązanie umożliwia lepszą ochronę i dostępność danych nawet wtedy, gdyby jakaś część połączonego systemu uległa awarii. Jednocześnie jednak pojemność danych jest ograniczona do pojedynczej cegły tworzącej dany wolumin.
Oba powyższe typy łączy tzw. distributed replicated. W myśl jego działania wybiera się większą liczbę parzyście połączonych cegiełek, które tworzą odrębne woluminy w trybie replicated. Dopiero potem powstałe pary są łączone w ramach woluminu distributed. W efekcie powstałe pary zwiększają istniejącą pojemność danych, a jednocześnie zapewniają dostępność danych nawet po awarii cegiełek z różnych par. Choć mowa jest tu o parach, nic nie stoi na przeszkodzie, aby w ramach łączenia par woluminu „replicated” łączyć większą (również nieparzystą) liczbę cegiełek. Im więcej ich będzie, tym większa będzie odporność na awarie.
Typ woluminu dispersed zapewnia dostępność danych pomimo awarii nawet kilku tworzących wolumin cegiełek. Dzięki umieszczeniu na każdej z cegiełek zakodowanego fragmentu klików GlusterFS ma możliwość odtworzenia całych plików. Do tego potrzebuje on jedynie kodu oraz dostępnych fragmentów.
Ostatnim typem woluminów, które są w pełni wspierane jest distributed dispersed. Ten typ woluminów stanowi fuzję wersji dispersed oraz distributed i pozwala na zwiększenie pojemności tego pierwszego dzięki zestawowi cegiełek o identycznej konfiguracji.
Warto przy tym wspomnieć, że dwa typy woluminów, które są przestarzałe, są wspierane w ograniczonym zakresie. Mowa tu o striped oraz Distributed striped. GlusterFS w ich przypadku dzieli plik do zapisu na fragmenty, aby następnie zapisać je równocześnie na cegiełkach tworzących dany zasób. Opcja striped jest wykorzystywana w przypadku dużych plików, a połączenie tego woluminu z rozwiązaniem distributed pozwala na zwiększenie wydajności pracy na tych woluminach.
Wady i zalety GlusterFS
W tym miejscu warto wskazać, jakie wady i zalety cechuje dystrybucyjny system plików GlusterFS przy porównaniu z konwencjonalną pamięcią sieciową, która stosowana jest w zwyczajnych warunkach. Zaczynając od zalet, można śmiało powiedzieć, że GlusterFS dobrze wykorzystuje istniejące, dostępne pojemności dysku, a także znakomicie rozkłada obciążenie sieci. Jednocześnie system ten cechuje się zwiększoną niezawodnością i ma bardzo dobrą skalowalność, co znacząco wyróżnia go przy porównaniu do zwyczajnych pamięci sieciowych.
Nie zmienia to jednak faktu, że jak każdy system, również i GlusterFS ma swoje wady, jeśli chcemy go porównywać z konwencjonalnymi pamięciami sieciowymi. Tu wymienia się m.in. tworzenie bardzo złożonej struktury sieciowej, co jednocześnie łączy się ze zwiększeniem wysiłku administracyjnego, jaki ma miejsce podczas konfigurowania sieci. Co więcej, dla realnego korzystania z GlusterFS potrzebna jest bardzo szybka infrastruktura sieciowa, a zadbanie o bezpieczeństwo techniczne również wymaga dodatkowego wysiłku.
Gdzie można zastosować GlusterFS?
Można wyszczególnić konkretne przestrzenie, w których zdecydowanie dobrym pomysłem będzie postawienie właśnie na GlusterFS. W związku z tym, że urządzenia są ze sobą łączone przy użyciu protokołu internetowego, korzystanie z dystrybucyjnego systemu plików GlusterFS jest wskazane np. w przypadku łączenia struktur firmowych obejmujących kilka odrębnych oddziałów. Nic jednak nie stoi na przeszkodzie, aby korzystać z tego systemu również w przestrzeni lokalnej np. w ramach jednego, rozległego biura. Oznacza to, że mniejsze struktury geograficzne również z łatwością mogą korzystać z GlusterFS, aby w ten sposób powiększyć własną przestrzeń służącą do przechowywania danych w sieci.
Czy istnieją alternatywy dla GlusterFS?
Na koniec warto spojrzeć na to, czy istnieją jakieś rzeczywiste alternatywy dla GlusterFS. Analiza wskazuje na to, że faktycznie można je znaleźć, choć tu warto zaznaczyć, że część z tych rozwiązań jest w jakimś stopniu ograniczona bądź ma własne wady i zalety. Warto jednak spojrzeć m.in. na Ceph. Ten system jest dostępny całkowicie za darmo i w dużym stopniu powiela zalety i wady GlusterFS. Inną alternatywą może być np. BeeGFS, który został opracowany przez Towarzystwo Fraunhofera w Niemczech. Jest to bezpłatny i łatwy w obsłudze system przeznaczony konkretnie do potężnych systemów komputerowych.
Z kolei na rynku komercyjnym możemy znaleźć S2D, czyli Storage Spaces Direct. Jest to system wprowadzony przez Microsoft i jego wykorzystywanie jest oparte na płatnych licencjach serwerów Windows.