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