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.81-1[4][5] / 25 lipca 2016; 3 miesiące temu
Aktualna wersja testowa 3.0.81-1[6][7][8] / 25 lipca 2016; 3 miesiące temu
Licencja GPL v2
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 kod źródłowy MooseFS oparty jest na licencji GNU General Public License. Sieciowy system plików MooseFS polega na tym, że dystrybuuje on 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ą niezawodną chmurę obliczeniową[9]. 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[10]:

  • 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[11][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 – 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[12][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.
  • Przeźroczysty 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[13][edytuj]

  • Maksymalny rozmiar storage’u: 264 = 16 EksbiBajtów = 16384 PebiBajtów
  • Maksymalny rozmiar pojedynczego pliku: 257 = 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 tysiące użytkowników na całym świecie[14]. 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 MFS, czyli od 2006 roku.

W AdOcean jest używany od 2010[15] roku. Działalność AdOcean polega głównie na gromadzeniu oraz przechowywaniu danych z sieci reklamowych, firma jest liderem w zakresie zaawansowanych technologii emisji i pomiaru reklam w internecie w kilkunastu krajach Europy Środkowo-Wschodniej.

Przypisy