Moose File System

rozproszony system plików

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łasnościowej[9]. 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ą[10].

Moose File System
Logo Moose File System
Logo programu
Autor Jakub Kruszona-Zawadzki[1] / Core Technology[2]
Pierwsze wydanie 30 maja 2008; ponad 15 lat temu[4] (v. 1.5.0[5])
Aktualna wersja stabilna 3.0.116-1[6][7][8] / 12 sierpnia 2021; ponad 2 lata temu
Aktualna wersja testowa 3.0.116-1[6][7][8] / 12 sierpnia 2021; ponad 2 lata temu
Język programowania C
System operacyjny Linux, Solaris, macOS, FreeBSD, NetBSD, OpenIndiana[3]
Rodzaj Rozproszony system plików
Licencja GPL v2 / własnościowa
Strona internetowa

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[11]:

  • 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[12] 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[13] 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[14] 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[15]. W Polsce od 2008 roku[16] 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 2005 roku[16].

Przypisy edytuj

  1. Contributors to moosefs/moosefs · GitHub [online], github.com [dostęp 2017-11-15] (ang.).
  2. About – MooseFS [online], moosefs.com [dostęp 2017-11-15] (ang.).
  3. "We also successfully compiled MooseFS from sources on OpenIndiana Hipster." https://moosefs.com/download.html
  4. "Date of the first public release: 2008-05-30" https://github.com/moosefs/moosefs/blob/master/README.md
  5. "MooseFS 1.5 (2008-05-30)" https://github.com/moosefs/moosefs/blob/master/NEWS
  6. a b Support – documentation, status and best practices – MooseFS [online] (ang.).
  7. a b moosefs/NEWS at master · moosefs/moosefs [online] (ang.).
  8. a b Releases · moosefs/moosefs [online] (ang.).
  9. Bob, MooseFS - Open source, fault tolerant, highly available, network distributed file system [online], moosefs.com [dostęp 2017-04-10].
  10. OpenNebula shared storage with MooseFS – OpenNebula
  11. About – MooseFS [online], moosefs.com [dostęp 2017-11-15] (ang.).
  12. Opis architektury MooseFS znajduje się na http://www.moosefs.org/
  13. Download – MooseFS [online], www.moosefs.org [dostęp 2017-11-15] [zarchiwizowane z adresu 2012-03-17] (ang.).
  14. MooseFS Factsheet [online], moosefs.com [dostęp 2017-11-15].
  15. MooseFS – Open source, fault tolerant, highly available, network distributed file system [online], www.moosefs.org [dostęp 2017-11-25] [zarchiwizowane z adresu 2012-04-24] (ang.).
  16. a b https://moosefs.com/testimonials