LizardFS

rozproszony, skalowalny i wysoko dostępny systemem plików

LizardFS – rozproszony, skalowalny i wysoko dostępny systemem plików. Pozwala użytkownikowi na konsolidację pamięci masowej z dysków wielu serwerów w pojedynczą przestrzeń widoczną na systemach typu Unix oraz Windows w ten sam sposób jak każdy inny system plików. LizardFS udostępniany jest na licencji GNU General Public License wersja 3[2]. Został wydany w 2013 roku jako fork MooseFS[3].

Lizardfs
Logo Lizardfs
Logo programu
Autor Skytechnology Sp. z o.o.[1]
Pierwsze wydanie 2013
System operacyjny Linux, FreeBSD, Mac OS X, Solaris
Rodzaj Sieciowy system plików
Licencja GPLv3[2]
Strona internetowa

LizardFS to rozproszony, skalowalny, odporny na błędy i wysoko dostępny system plików. Pozwala użytkownikowi na konsolidację pamięci masowej z dysków wielu serwerów w pojedynczą przestrzeń widoczną na systemach typu Unix oraz Windows w ten sam sposób jak każdy inny system plików. LizardFS sprawia, iż dane są bezpieczne poprzez trzymanie plików w wielu replikach rozproszonych po dostępnych serwerach.

LizardFS obsługuje awarie dysków i serwerów na bieżąco, bez przestojów w działaniu systemu czy też straty danych. W razie zwiększenia potrzeby na pojemność pamięci masowej, możliwe jest dodanie nowych serwerów do instalacji LizardFS. Odbywa się to bez zatrzymywania pracy systemu automatycznie przenoszącego część danych na nowe serwery, na których balansowanie zużycia odbywane jest w sposób ciągły[4].

Wymagania sprzętowe

edytuj

LizardFS jest w pełni obojętny wobec sprzętu. Można go zaimplementować na podstawowych komponentach sprzętowych, aby zbudować przystępny cenowo klaster. W instalacji wymagane są co najmniej dwa węzły, ale zalecane są przynajmniej trzy, co pozwala na wykorzystanie takich cech LizardFS jak m.in. wysoka dostępność[5].

Architektura

edytuj

LizardFS przechowuje metadane (jak nazwy plików, modyfikacje timestamp, drzewo katalogów) i odpowiadające im dane oddzielnie. Te pierwsze trzymane są na serwerach metadanych, podczas gdy dane trzymane są na maszynach zwanych chunkserwerami. Typowa instalacja składa się z:

  • Przynajmniej dwóch serwerów metadanych pracujących w trybie master-slave w razie potrzeby odzyskania danych z powodu awarii. Ich rolą jest także zarządzanie całą instalacją, dlatego aktywny serwer metadanych nosi nazwę serwera-mistrza (master server). Rolą pozostałych serwerów metadanych jest synchronizacja z aktywnym serwerem-mistrzem, toteż nazywa się je serwerami-cieniami (shadow master servers). Każdy serwer-cień jest gotowy przejąć rolę aktywnego serwera-mistrza przez cały czas. Rekomendowaną konfiguracją serwera metadanych jest maszyna z szybkim procesorem, przynajmniej 32 GB pamięci RAM, przynajmniej jednym dyskiem (w miarę możliwości SSD), który zawierał będzie kilkadziesiąt gigabajtów metadanych.
  • Zestawu chunkserverów, które zawierają dane. Każdy plik dzielony jest na bloki zwane chunkami (każdy wielkości do 64 MB), które przetrzymywane są na chunkserverach. Rekomendowaną konfiguracją chunkservera jest maszyna z dużą przestrzenią masową dostępna w konfiguracji JBOD lub RAID, w zależności od potrzeb. Parametry procesora oraz RAM w przypadku chunkservera nie są bardzo istotne. Możliwa jest instalacja na 2 chunkserverach (minimum, przy którym dane są odporne na awarię któregokolwiek z dysków) lub setkach chunkserverów. Typowy chunkserver wyposażony jest w 8, 12, 16 lub nawet więcej dysków twardych.
  • Klientów używających danych przechowywanych na LizardFS. Te maszyny używają mounta LizardFS, aby mieć dostęp do plików w instalacji i przetwarzać je tak jak te na lokalnych dyskach twardych. Liczba klientów, którzy mogą mieć dostęp i przetwarzać dane zawarte na instalacji LizardFS, jest nieograniczona.

Szczególne cechy

edytuj
  • Kopie migawkowe (snapshots) – Jedną z unikalnych cech LizardFS jest możliwość tworzenia szybkich snapshotów i drzew katalogów. Snapshot stanowi kopię zgodną z plikiem lub katalogiem. Może zostać stworzony nawet wtedy, kiedy dane są ciągle zmieniane. Kopia migawkowa zajmuje tylko powierzchnię dyskową stanowiącą różnicę pomiędzy kopią migawkową i aktualnym stanem pliku.
  • QoS – LizardFS oferuje mechanizm pozwalający administratorom ustawić ograniczenie poziomu zapisu/odczytu dla całego ruchu generowanego przez dany mountpoint, jak również dla poszczególnych grup procesów będących w użyciu przez wiele maszyn i mountpointów.
  • Replikacja danych – Pliki w systemie LizardFS przechowywane są w blokach zwanych chunkami, a każdy z nich ma do 64 MB wielkości. Chunki przechowywane są na chunkserverach, a administratorzy mogą wybrać, jak dużą ilość kopii każdego chunka system ma utrzymywać. W przypadku stworzenia 3 kopii (nazywamy to konfiguracją goal=3), wszystkie dane będą dostępne pomimo awarii 2 dysków lub chunkserverów, ponieważ LizardFS nie trzyma 2 kopii tego samego chunka na tym samym serwerze. Poziom zabezpieczenia (ilość kopii) może zostać ustalony indywidualnie dla każdego pliku i drzewa katalogowego.
  • Georeplikacja – Custom goal jest cechą sprawiającą, iż administrator może zdecydować, gdzie chunki powinny być przetrzymywane, a funkcja topologii sprawia, iż możliwe jest zasugerowanie, skąd kopia powinna być czytana przez danego klienta, jeśli istnieje więcej niż jedna replika. Na przykład w przypadku, gdy użytkownik przechowuje dane w dwóch centrach danych, np. w Londynie i Paryżu, istnieje możliwość przydzielenia oznaczenia “londyn” do jednego z serwerów w pierwszej lokacji oraz “paris” do serwera w drugiej.
  • Replikacja metadanychMetadane przechowywane są na serwerze metadanych. W każdym momencie serwery metadanych zarządzają całą instalacją, często zwaną też serwerem-mistrzem (master server). Inne serwery metadanych zsynchronizowane są z nim i nazwane są serwerami-cieniami (shadow masters). Każdy działający serwer metadanych przetrzymuje wszystkie metadane w swojej pamięci RAM oraz na lokalnym dysku twardym.
  • Wysoka dostępność – Serwery-cienie zapewniają instalacji wysoką dostępność. Jeśli działa przynajmniej jeden serwer-cień, to w przypadku gdy stracony jest serwer-mistrz, jeden z serwerów-cieni przejmuje jego rolę.
  • Limity (quotas) – LizardFS wspiera mechanizmy limitów dla dysków, znane z innych systemów POSIX. Umożliwia to ustawienie twardych i miękkich limitów dla liczby plików i ogólnej pojemności dostępnej dla poszczególnych użytkowników lub ich grup. Użytkownik, który przekroczy twardy próg, nie będzie w stanie zapisać nowych danych na LizardFS.

Przypisy

edytuj
  1. Skytechnology Sp. z o.o. [online] [dostęp 2020-02-21] [zarchiwizowane z adresu 2020-08-09].
  2. a b GitHub – lizardfs/lizardfs: LizardFS is an Open Source Distributed File System licensed under GPLv3 [online], github.com [dostęp 2020-07-09] (ang.).
  3. About LizardFS [online], lizardfs.com [dostęp 2020-02-24] [zarchiwizowane z adresu 2020-02-07] (ang.).
  4. LizardFS un sistema de archivos distribuido [online], laboratoriolinux.es (hiszp.).
  5. SDS with LizardFS [online], admin-magazine.com (ang.).

Linki zewnętrzne

edytuj