SYSTEM PLIKÓW ZFS

System plików ZFS

ZFS to lokalny system plików i menedżer woluminów logicznych stworzony przez firmę Sun Microsystems Inc., który kieruje i kontroluje umieszczanie, przechowywanie i pobieranie danych w komputerowych w systemach klasy korporacyjnej.

System plików ZFS i menedżer woluminów charakteryzują się integralnością danych, dużą skalowalnością i wbudowanymi funkcjami pamięci masowej, takimi jak:

  • Replikacja – proces tworzenia repliki (kopia) czegoś.
  • Deduplikacja – proces, który eliminuje nadmiarowe kopie danych i redukuje koszty przechowywania.
  • Kompresja – zmniejszenie liczby bitów potrzebnych do reprezentacji danych.
  • Migawki – zestaw znaczników odniesienia dla danych w określonym momencie.
  • Klony – identyczna kopia czegoś.
  • Ochrona danych – proces zabezpieczania ważnych informacji przed korupcją i / lub stratą.

Historia of ZFS

Inżynierowie firmy Sun rozpoczęli prace nad programem ZFS w 2001 roku w systemie operacyjnym Solaris firmy Unix. W 2005 r. Firma Sun wydała kod źródłowy ZFS w ramach wspólnej licencji na rozwój i dystrybucję (CDDL) w ramach otwartego systemu OpenSolaris. Społeczność programistów, w tym przedstawiciele firmy Sun i innych dostawców, pracowała nad ulepszeniami kodu źródłowego i przeniesieniu ZFS do dodatkowych systemów operacyjnych, takich jak FreeBSD, Linux i Mac OS X.

Projekt Open Source Open Source z udziałem ZFS zakończył się po tym, jak firma Oracle Corp. przejęła firmę Sun w 2010 roku i zarejestrowała znak towarowy ZFS. Inżynierowie firmy Oracle nadal zwiększają i dodają funkcje do ZFS na Solaris. Oracle używa własnego kodu ZFS jako podstawy dla Oracle Solaris, urządzenia Oracle ZFS Storage Appliance i innych technologii Oracle.

syneto_storage_osSpołeczność programistyczna rozpoczęła nowy projekt open source, zwany OpenZFS, oparty o kod źródłowy ZFS w końcowym wydaniu OpenSolaris-a. Otwarta społeczność działa w oparciu o nowe funkcje, ulepszenia i poprawki błędów do kodu OpenZFS. Systemy operacyjne obsługujące OpenZFS obejmują Apple OS X, FreeBSD, illumos (oparte na systemie OpenSolaris) i Linux, takie jak Debian, Gentoo i Ubuntu. OpenZFS działa na wszystkich dystrybucjach Linuksa, ale tylko niektóre komercyjne dostawców udostępniają je jako część ich dystrybucji. Firmy z komercyjnymi produktami zbudowanymi na platformie OpenZFS to Cloudscaling, Datto, Delphix, Joyent, Nexenta, SoftNAS i Spectra Logic.

ZFS i OpenZFS mają tendencję do odwołania się do przedsiębiorstw, które muszą zarządzać dużą ilością danych i zapewnić integralność danych. Użytkownicy to instytucje naukowe, krajowe laboratoria, agencje rządowe, firmy finansowe, telekomunikacja, media i rozrywka.

ZFS początkowo stał się systemem plików Zettabyte, ale słowo zettabyte nie ma już żadnego znaczenia w kontekście systemu plików. Jako 128-bitowy system plików ZFS ma możliwość skalowania do 256 quadrillion zettabytes.

zfs

Jak działa ZFS

ZFS jest przeznaczony do pracy na jednym serwerze, potencjalnie z setkami, jeśli nie tysiącami podłączonych pamięci masowych. ZFS udostępnia dostępną pamięć masową i zarządza wszystkimi dyskami jako jedną jednostkę. Użytkownik może dodać do magazynu więcej pamięci masowych, jeśli system plików potrzebuje dodatkowej pojemności. ZFS jest bardzo skalowalny i obsługuje duży rozmiar pliku.

ZFS przechowuje co najmniej dwie kopie metadanych za każdym razem, gdy dane są zapisywane na dysku. Metadane zawierają informacje, takie jak sektory dysków, w których przechowywane są dane, rozmiar bloków danych i suma kontrolna cyfr binarnych fragmentu danych. Gdy użytkownik żąda dostępu do pliku, algorytm sumy kontrolnej wykonuje obliczenia w celu sprawdzenia, czy pobrane dane pasują do oryginalnych bitów zapisanych na dysku. Jeśli suma kontrolna wykryje niespójność, oznacza to złe dane. W systemach z lustrzaną pamięcią masową lub wersją RAID ZFS, ZFS może pobierać poprawną kopię z innego dysku i naprawić uszkodzoną kopię danych.

ZFS jest powszechnie określany jako system plików typu copy-on-write, chociaż Oracle opisuje go jako przekierowanie podczas zapisu. Kiedy ZFS zapisuje dane na dysku, nie zastępuje danych na miejscu. ZFS zapisuje nowy blok w innym miejscu na dysku i aktualizuje metadane, aby wskazać nowo napisany blok, a jednocześnie zachowywał starsze wersje danych.

Prawidłowy system plików do skopiowania zapisywał dokładną replikę bloku danych w osobnym miejscu przed nadpisaniem pierwotnego bloku. Przed nadpisaniem danych system będzie musiał zapoznać się z poprzednią wartością bloku. System plików typu copy-on-write wymaga trzech operacji we / wy – czytania, modyfikowania i zapisywania – dla każdego zapisu danych. Natomiast system redirect-on-write wymaga tylko jednej operacji we/wy, ułatwiającej większą wydajność i wyższą wydajność.

ZFS jest popularnym rozwiązaniem dla systemów pamięci masowej podłączonych do sieci, uruchamiających system plików NFS w górnej części systemu plików, a także w środowiskach serwera wirtualnego. Innym częstym scenariuszem wdrażania jest scalenie systemu plików klastrowanych, takich jak system plików równoległych (GPFS) lub Luster, na szczycie ZFS, aby umożliwić skalowanie dodatkowych węzłów serwera. Użytkownicy OpenStack mogą wdrożyć ZFS jako bazowy system plików dla przechowywania bloku Cinder i przechowywania obiektów Swift.

Główne cechy ZFS

Migawki i klony:  ZFS i OpenZFS mogą tworzyć kopie zapasowe systemu plików w punkcie czasu z dużą wydajnością i szybkością, ponieważ system zachowuje wszystkie kopie danych. Migawki są niezmiennymi kopiami systemu plików, a klony mogą być modyfikowane. Migawki i klony są zintegrowane w środowiskach rozruchowych z systemem ZFS w systemie Solaris, co pozwala użytkownikom cofnąć się na migawkę, jeśli coś się nie powiedzie podczas aktualizacji systemu. Inną potencjalną korzyścią ZFS jest technika odzyskiwania przed ransomware.

ZFS RAIDRAID-Z:  RAID-Z umożliwia przechowywanie tych samych danych w wielu miejscach w celu zwiększenia odporności na błędy i poprawy wydajności. System rekonstruuje dane utraconego dysku za pomocą informacji zapisanych na innych dyskach systemu. Podobnie jak w przypadku RAID 5, informacje o parzystości paska RAID-Z na każdym z napędów umożliwiają funkcjonowanie systemu pamięci masowej, nawet jeśli jeden z nich nie powiedzie się. Jednak w przypadku RAID-Z, paskowe dane są pełnym blokiem o zmiennej wielkości. Chociaż RAID-Z jest zazwyczaj porównywany z macierzą RAID 5, wykonuje pewne operacje inaczej w celu rozwiązania pewnych długotrwałych problemów z tradycyjną macierzą RAID. Jedna z kwestii, że adresy macierzy RAID-Z są znane jako efekt “otwór zapisu”, gdzie system nie może ustalić, które klucze danych lub parytetów zostały zapisane na dysku z powodu awarii zasilania lub katastrofalnej przerwy w pracy systemu. Sprzedawcy systemów używających tradycyjnej macierzy RAID zazwyczaj rozwiązują problem poprzez użycie nieprzerwanego zasilania lub dedykowanego sprzętu.

RAID-Z2 obsługuje utratę dwóch dysków pamięci, podobnie jak RAID 6, a RAID-Z3 może tolerować utratę trzech urządzeń pamięci masowej. Użytkownicy mają możliwość układania dysków w grupach, podobnie jak w przypadku konwencjonalnej macierzy RAID. Na przykład system z dwiema grupami sześciu dysków skonfigurowanych jako RAID-Z3 może tolerować utratę trzech dysków w każdej grupie.

Kompresja: Kompresja danych wbudowanych to wbudowana funkcja w systemach ZFS i OpenZFS w celu zmniejszenia liczby bitów niezbędnych do przechowywania danych. ZFS i OpenZFS obsługują wiele algorytmów kompresji. Użytkownicy mają możliwość włączenia lub wyłączenia wbudowanej kompresji.

Deduplikacja: deduplikacja danych wbudowanych to wbudowana funkcja w systemach ZFS i OpenZFS, która umożliwia efektywność pamięci masowej poprzez eliminację nadmiarowych danych. ZFS i OpenZFS znajdują duplikaty danych, sprawdzając sumę kontrolną dla bloku, który może różnić się wielkością. Użytkownicy mogą włączyć lub wyłączyć wbudowaną deduplikację.

ZFS wyślij/odbierz: ZFS i OpenZFS umożliwiają migrację systemu plików do wysyłanego do innego węzła serwera, co umożliwia użytkownikowi replikację danych do osobnego systemu w celu tworzenia kopii zapasowych lub migracji danych do przechowywania w chmurze.

Bezpieczeństwo: ZFS i OpenZFS obsługują delegowane uprawnienia i drobniejsze listy kontroli dostępu w celu zarządzania użytkownikami, którzy mogą wykonywać zadania administracyjne. Użytkownicy mają możliwość ustawienia ZFS jako tylko do odczytu, więc nie można zmieniać danych. Oracle obsługuje szyfrowanie w ZFS na Solaris.

Oracle-ZFS-Cloud

ZFS zalety i ograniczenia

ZFS integruje system plików i kontroler woluminów, dzięki czemu użytkownicy nie muszą uzyskiwać i uczenia się osobnych narzędzi i zestawów poleceń. ZFS oferuje bogaty zestaw funkcji i usługi danych bez żadnych kosztów, ponieważ jest wbudowany w system operacyjny Oracle. Open source OpenZFS jest dostępny bezpłatnie. System plików może zostać rozszerzony przez dodanie napędów do puli pamięci masowej. Tradycyjne systemy plików wymagają zmiany rozmiaru partycji dysku w celu zwiększenia pojemności, a użytkownicy często potrzebują produktów do zarządzania woluminami, aby im pomóc.

zfs-lastwordZFS jest ograniczony do pracy na pojedynczym serwerze w przeciwieństwie do rozproszonych lub równoległych systemów plików, takich jak GPFS i Luster, które można skalibrować na wiele serwerów.

Bogaty zestaw funkcji oferowany w ZFS może sprawić, że oprogramowanie jest skomplikowane w obsłudze i zarządzaniu. Funkcje takie jak zintegrowane algorytmy sum kontrolnych ZFS mogą wymagać dodatkowej mocy przetwarzania i wpływać na wydajność.

W społeczności Linux istnieją różne opinie na temat licencjonowania w odniesieniu do redystrybucji kodu ZFS i modułów binarnych. Na przykład Red Hat uważa za problematyczne rozpowszechnianie kodu chronionego na podstawie CDDL z kodem chronionym na podstawie ogólnej licencji publicznej (GPL). Natomiast Canonical, który dystrybuuje Ubuntu, stwierdził, że jest zgodny z warunkami licencji CDDL i GPL.

ZFS vs. OpenZFS

Oracle’s ZFS i open source Open Source pochodzą z tego samego kodu źródłowego ZFS. W odrębnych utworach firma Oracle i społeczność open source dodały rozszerzenia i osiągnęły znaczące poprawy wydajności dla systemów ZFS i OpenZFS. Aktualizacje Oracle ZFS są zastrzeżone i dostępne tylko w technologiach firmy Oracle. Aktualizacje otwartego kodu OpenZFS są swobodnie dostępne.

Lista ulepszeń, które firma Oracle przekazała firmie ZFS od 2010 roku, obejmuje:

  • szyfrowanie;
  • wsparcie w utrzymywaniu skompresowanych danych podczas ponownego uruchamiania systemu operacyjnego w adaptacyjnej pamięci podręcznej L2 (ARC);
  • rozruchowe etykiety interfejsu sprzętowego, które obsługują dyski fizyczne i wirtualne dyski o rozmiarze większym niż 2 TB;
  • domyślne kwoty użytkowników i grup
  • monitorowanie systemu plików

Lista aktualizacji społeczności open source została udostępniona OpenZFS:

  • dodatkowe algorytmy kompresji
  • wznowione wysyłanie/odbieranie, co pozwala na długotrwałą operację wysyłania/odbierania ZFS, aby zrestartować się ponownie z punktu przerwania systemu
  • skompresowane wysyłanie/odbieranie, co pozwala na przesyłanie skompresowanych danych z jednego zbioru ZFS do innego bez konieczności dekompresowania / ponownego kompresji danych podczas przenoszenia z węzła wysyłającego do miejsca przeznaczenia
  • skompresowany ARC, który pozwala ZFS na zachowywanie skompresowanych danych w pamięci, umożliwiając większą liczbę danych roboczych w pamięci podręcznej
  • maksymalny rozmiar bloku zwiększa się z 128 KB do 16 MB w celu zwiększenia wydajności podczas pracy z dużymi plikami i szybkiego odtwarzania danych podczas odzyskiwania danych z awarii napędu