Koncepcje i samouczek ZFS

Koncepcje i samouczek ZFS

ZFS: koncepcje i samouczek

W dążeniu do integralności danych za pomocą OpenZFS jest nieuniknione. W rzeczywistości byłoby to dość niefortunne, gdybyś używał czegokolwiek oprócz ZFS do przechowywania cennych danych. Jednak wiele osób niechętnie go wypróbowuje. Powód jest to, że system plików klasy korporacyjnej z wbudowaną w niego szeroką gamą funkcji, ZFS musi być trudny w użyciu i administrowania. Nic nie może być dalej od prawdy. Używanie ZFS jest tak proste, jak to tylko możliwe. Z garstką terminologii i jeszcze mniej poleceń, które jesteś gotowy do użycia ZFS w dowolnym miejscu - od przedsiębiorstwa po domowe/biurowe NAS.

Według słów twórców ZFS: „Chcemy, aby dodanie pamięci do systemu były tak proste, jak dodanie nowych patyk RAM."

Zobaczymy później, jak to się dzieje. Będę używał FreeBSD 11.1 Aby wykonać poniższe testy, polecenia i architektura podstawowa są podobne dla wszystkich rozkładów Linux, które obsługują OpenZFS.

Cały stos ZFS może być umieszczony w następujących warstwach:

  • Dostawcy pamięci - wirujący dyski lub dysk SSD
  • VDEV - Grupa dostawców pamięci masowej w różne konfiguracje RAID
  • ZPOOLS - Agregacja VDEV w pojedyncze pule magazynowe
  • Z -FileSystems - Zestawy danych o fajnych funkcjach, takich jak kompresja i rezerwacja.

ZPOOL Utwórz

Na początek zacznij od konfiguracji miejsca, w którym mamy sześć dysków 20 GB Ada [1-6]

$ ls -al /dev /ada?

ADA0 jest tam, gdzie instalowany jest system operacyjny. Reszta zostanie użyta do tej demonstracji.

Nazwy twoich dysków mogą się różnić w zależności od rodzaju używanego interfejsu. Typowe przykłady obejmują: DA0, ADA0, ACD0 I płyta CD. Rozglądanie się w środku/Devda ci wyobrażenie o tym, co jest dostępne.

A Zpool jest tworzony przez ZPOOL Utwórz Komenda:

$ ZPOOL Utwórz Ourstzpool ADA1 ADA2 ADA3
#, A następnie uruchom następujące polecenie:
Status $ ZPOOL

Zobaczymy schludne wyjście, co daje nam szczegółowe informacje o puli:

To jest najprostszy zpool bez nadmiarowości lub tolerancji błędów… Każdy dysk jest własnym VDEV.

Nadal jednak otrzymasz wszystkie dobroć ZFS, takie jak SUMSKESKESKI DLA BLOKU DANYCH, abyś mógł przynajmniej wykryć, czy przechowywane dane są uszkodzone.

Systemy plików, a.k.Zestawy danych można teraz utworzyć na tej puli w następujący sposób:

$ zfs Utwórz nasz FirstzPool/DataSet1

Teraz użyj swojego znajomego df -h polecenie lub uruchom:

Lista $ ZFS

Aby zobaczyć właściwości nowo utworzonego systemu plików:

Zauważ, w jaki sposób cała przestrzeń oferowana przez trzy dyski (VDEV) jest dostępna dla systemu plików. Będzie to prawdziwe dla wszystkich systemów plików, które tworzysz w puli, chyba że określamy inaczej.

Jeśli chcesz dodać nowy dysk (VDEV), ADA4, Możesz to zrobić, biegając:

$ ZPOOL Dodaj Ourstzpool Ada4

Teraz, jeśli zobaczysz stan swojego systemu plików

Dostępny rozmiar wzrósł już bez dodatkowych problemów z uprawą partycji lub tworzenia kopii zapasowej i przywracania danych na systemie plików.


Urządzenia wirtualne - VDEVS

VDEV to elementy składowe zpool, większość nadmiarowości i wydajności zależy od sposobu, w jaki twoje dyski są grupowane w nich, tzw. VDEV . Spójrzmy na niektóre z najważniejszych rodzajów VDEV:

1. RAID 0 lub paski

Każdy dysk działa jak własny VDEV. Brak redundancji danych, a dane rozprzestrzeniły się na wszystkie dyski. Znany również jako paski. Awaria pojedynczego dysku oznaczałaby, że cała ZPool jest bezużyteczna. Użyteczne przechowywanie jest równe sumie wszystkich dostępnych urządzeń pamięci masowej.

Pierwszym ZPool, który utworzyliśmy w poprzedniej sekcji, to tablica pamięci RAID 0 lub w paski.

2. RAID 1 lub lustro

Dane są odzwierciedlone pomiędzy Ndyski. Rzeczywista pojemność VDEV jest ograniczona przez surową pojemność najmniejszego dysku N-Tablica dysków. Dane są odzwierciedlone pomiędzy N dyski, oznacza to, że możesz wytrzymać niepowodzenie n-1 dyski.

Aby utworzyć lustrzaną tablicę, użyj lustra słowa kluczowego:

$ ZPOOL Utwórz lustro zbiorników ADA1 ADA2 ADA3

Dane zapisane do czołg ZPOOL będzie odzwierciedlony wśród tych trzech dysków, a faktyczna dostępna pamięć jest równa rozmiarowi najmniejszego dysku, który w tym przypadku wynosi około 20 GB.

W przyszłości możesz dodać więcej dysków do tej puli i są dwie możliwe rzeczy, które możesz zrobić. Na przykład ZPOOL czołg Ma trzy dyski odzwierciedlające dane jako pojedyncze VDEV Mirror-0:

Możesz dodać dodatkowy dysk, powiedzmy ADA4, Aby odzwierciedlić te same dane. Można to zrobić, uruchamiając polecenie:

$ ZPOOL Załącz zbiornik ADA1 ADA4

To dodałoby dodatkowy dysk do VDEV, który ma już dysk ADA1 w nim, ale nie zwiększaj dostępnego przechowywania.

Podobnie możesz odłączyć się od lustra, uruchamiając:

$ ZPOOL DEETAL Tank ADA4

Z drugiej strony możesz dodać dodatkowy VDEV, aby zwiększyć pojemność ZPOOL. Można to zrobić za pomocą polecenia ZPOOL Add:

$ ZPOOL Dodaj lusterko zbiornika ADA4 ADA5 ADA6


Powyższa konfiguracja pozwoliłaby na rozkładanie danych w VDEVS Mirror-0 i Mirror-1. W tym przypadku możesz stracić 2 dyski na VDEV, a twoje dane będą nadal nienaruszone. Całkowita przestrzeń użyteczna wzrasta do 40 GB.

3. RAID-Z1, RAID-Z2 i RAID-Z3

Jeśli VDEV jest typu RAID-Z1, musi użyć co najmniej 3 dysków, a VDEV może tolerować upadek jednego z tych dysków. Konfiguracje RAID-Z nie pozwalają na dołączanie dysków bezpośrednio do VDEV. Ale możesz dodać więcej VDEV, używając ZPOOL Dodaj, tak, aby pojemność puli mogła stale rosnąć.

RAID-Z2 wymagałby co najmniej 4 dysków na VDEV i może tolerować do 2 awarii dysku, a jeśli trzeci dysk nie powiedzie się, zanim 2 dyski zostaną utracone, cenne dane. To samo następuje dla RAID-Z3, który wymaga co najmniej 5 dysków na VDEV, z maksymalnie 3 dyskami tolerancji awarii, zanim powrót do zdrowia stanie się beznadziejny.

Stwórzmy pulę RAID-Z1 i wyhodujmy:

$ ZPOOL Utwórz czołg RaIdz1 ADA1 ADA2 ADA3

Basen używa trzech dysków 20 GB, które mają 40 GB.

Dodanie innego VDEV wymagałoby 3 dodatkowych dysków:

$ ZPOOL Dodaj zbiornik RaIDZ1 ADA4 ADA5 ADA6


Całkowite użyteczne dane wynoszą teraz 80 GB i możesz stracić do 2 dysków (jeden z każdego VDEV) i nadal mieć nadzieję na odzyskanie.

Wniosek

Teraz wiesz wystarczająco dużo o ZFS, aby zaimportować wszystkie dane do niego z pewnością. Odtąd możesz sprawdzić różne inne funkcje, które ZFS zapewnia, takie jak używanie NVME z dużą prędkością do przeczytania i zapisu, używając wbudowanej kompresji dla swoich zestawów danych i zamiast być przytłoczonym wszystkimi dostępnymi opcjami, po prostu poszukaj tego, czego potrzebujesz Szczególny przypadek użycia.

Tymczasem istnieje kilka bardziej pomocnych wskazówek dotyczących wyboru sprzętu, którego powinieneś przestrzegać:

  1. Nigdy nie używaj sprzętu do sterownika RAID z ZFS.
  2. Zaleca się, aby RAM korygowanie błędów (ECC), ale nie obowiązkowe
  3. Funkcja deduplikacji danych zużywa dużo pamięci, zamiast tego użyj kompresji.
  4. Redundancja danych nie jest alternatywą dla tworzenia kopii zapasowych. Mieć wiele kopii zapasowych, przechowuj te kopie zapasowe za pomocą ZFS!