Moose File System

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
Moose File System
Rozproszony system plików
Logo Moose File System
Logo programu
Autor Jakub Kruszona-Zawadzki[1] / Core Technology[2]
System operacyjny Linux, Solaris, OS X, FreeBSD, OpenIndiana[3]
Język programowania C
Pierwsze wydanie 2006
Aktualna wersja stabilna 3.0.97-1[4][5][6] / 1 sierpnia 2017; 18 dni temu
Aktualna wersja testowa 3.0.97-1[7][8][9] / 1 sierpnia 2017; 18 dni temu
Licencja GPL v2 / własnościowa
Strona internetowa

Moose File System (MooseFS) – odporny na awarie, wysoko dostępny rozproszony system plików stworzony w 2005 roku w przedsiębiorstwie Core Technology. Od 5 maja 2008 roku MooseFS udostępniany jest na licencji GNU General Public License. Dostępna jest również wersja PRO na licencji właśnościowej[10]. Sieciowy system plików MooseFS działa w ten sposób, że dystrybuuje dane na wiele maszyn wchodzących w skład danej instancji MooseFS. Wszystkie pliki są dostępne dla każdej z maszyn a jakakolwiek modyfikacja pliku jest odnotowana w całym systemie. Dane są od razu widoczne dla użytkownika w formie jednego zasobu (jak w olbrzymim dysku/katalogu). MooseFS wraz z OpenNebula tworzą wysoce niezawodną chmurę obliczeniową[11].

Dla typowych operacji plikowych MooseFS zachowuje się tak samo jak inne uniksowe systemy plików:

  • przechowuje atrybuty POSIX: uprawnienia, czasy dostępu i modyfikacji
  • posiada hierarchiczną strukturę: drzewo katalogów
  • obsługuje pliki specjalne: blokowe, urządzenia znakowe, gniazda i potoki (ang. pipes)
  • linki symboliczne: nazwy plików mogą wskazywać na pliki docelowe, które niekoniecznie znajdują się na MooseFS
  • hard linki: różne nazwy plików, które odnoszą się do tych samych danych na MooseFS

Możliwe jest również ograniczenie dostępu do systemu plików na podstawie adresu IP i/lub hasła.

Ponadto MooseFS obsługuje następujące mechanizmy, wyróżniające go wśród innych rozproszonych systemów plików[12]:

  • Locki (POSIX locks, flocks).
  • Quoty "projektowe" (per katalog).
  • Kosz z modyfikowalnym (per plik, per katalog, per poddrzewo) czasem przetrzymywania w nim plików.
  • Atomowe snapshot'y poddrzew, z zastosowaniem metody copy-on-write.
  • Rozszerzanie dostępnego miejsca odbywa się przez podłączenie nowego node'a (chunkserver'a), nie są konieczne dodatkowe akcje.

Architektura[13][edytuj]

MooseFS jest rozszerzeniem takich systemów storage’owych jak Google File System, Lustre lub Ceph. MooseFS składa się z czterech elementów:

  • Master serwer (serwer zarządzający) – pojedyncza maszyna kierująca całym systemem, przechowuje metadane dla każdego pliku (informacje o rozmiarze, atrybutach i lokalizacji pliku, uwzględniając wszystkie informacje dotyczące nieregularnych plików, takich jak: blokowe, urządzenia znakowe, gniazda i potoki).
  • Chunk serwery – dowolna liczba serwerów przechowująca pliki z danymi i synchronizująca całość ze sobą (jeśli niektóre pliki powinny istnieć w więcej niż w jednej kopii).
  • Metalogger serwery – dowolna liczba serwerów, wszystkie z nich przechowują changelog metadanych oraz okresowe pobierają plik metadanych; te serwery mogą przyjąć rolę Master serwera kiedy Master przestanie pracować.
  • Klient – dowolna liczba komputerów używających procesu MooseFS do komunikacji z zarządzającym serwerem (otrzymuje i zmienia pliki z metadanymi) i z chunkserwerami (wymienia się aktualnymi danymi).

Dodatkowe funkcje w MooseFS[14][edytuj]

  • Monitoring – pozwala na wygodny podgląd pracy całego systemu, jest dostępny przez przeglądarkę internetową. Interfejs ma formę wykresów, na których umieszczone są takie informacje jak: stan dysków/błędy dysków zużycie zasobów serwerów stan replikacji danych wydajność systemu.
  • Przezroczysty kosz – dane umieszczone w koszu są przechowywane na czas ustalony przez użytkownika i dopiero po jego upływie są fizycznie usuwane.
  • Replikacja – każdy plik posiada atrybut o nazwie goal informuje on system w ilu kopiach ma być przechowywany dany plik, ta funkcja podnosi bezpieczeństwo danych.
  • Dynamiczna pojemność – węzeł MooseFS można rozszerzać poprzez dołączanie nowych komputerów lub dysków (o różnej ilości i wielkości) które automatycznie integrują się z całą siecią odpowiednimi operacjami kopiowania i usuwania.
  • Spójne snapshoty – fragmenty plików, które użytkownik modyfikuje są bardzo szybko duplikowane.
  • Locki (POSIX locks, flocks)
  • Quoty "projektowe" (per katalog)

MooseFS w liczbach[15][edytuj]

  • Maksymalny rozmiar storage’u: 264 bajtów = 16 eksbibajtów = 16384 pebibajtów
  • Maksymalny rozmiar pojedynczego pliku: 257 bajtów = 128 pebibajtów
  • Maksymalna liczba plików w jednej instancji MooseFS: 231 = ponad 2,1 miliarda (wersje 2.0.x i 3.0.x) / 229 = ponad 536 milionów (wersja 1.6.x)
  • Liczba aktywnych połączeń klientów jest nieograniczona i zależy od liczby deskryptorów plików w systemie.

Użytkownicy, ciekawostki[edytuj]

MooseFS ma użytkowników na całym świecie[16]. W Polsce od 4 lat jest używany przez ipla – interaktywną telewizję internetową i serwis świadczący usługi filmów na życzenie.

Gemius SA – przedsiębiorstwo, które zajmuje się badaniem rynku internetowego – używa MooseFS od początku powstania, czyli od 2006 roku.

Przypisy