ZFS w Proxmox

Print Friendly, PDF & Email

Dzisiaj przyjrzymy się ZFS, zaawansowanemu systemowi plików dostępnym w Proxmox. Porozmawiamy o tym, skąd się wziął, czym jest i dlaczego jest tak popularny wśród Administratorów GNU/Linux oraz Proxmox.

Historia ZFS

System plików Z (ZFS) został stworzony przez Matthew Ahrensa i Jeffa Bonwicka w 2001 roku. ZFS został zaprojektowany jako system plików nowej generacji dla OpenSolaris firmy Sun Microsystems. W 2008 roku ZFS został przeniesiony do FreeBSD. W tym samym roku rozpoczęto projekt przeniesienia ZFS na Linuksa. Ponieważ jednak ZFS jest objęty licencją Common Development and Distribution License, która jest niezgodna z Powszechną Licencją Publiczną GNU, nie można go włączyć do jądra Linuksa. Aby obejść ten problem, większość dystrybucji Linuksa oferuje metody instalacji ZFS.

Wkrótce po tym, jak Oracle kupił Sun Microsystems, OpenSolaris stał się oprogramowaniem typu „close source”. Cały dalszy rozwój ZFS również stał się zamkniętym źródłem. Wielu twórców ZFS było niezadowolonych z takiego obrotu spraw. Dwie trzecie głównych programistów ZFS, w tym Ahrens i Bonwick, opuściło Oracle z powodu tej decyzji. Dołączyli do innych firm i we wrześniu 2013 roku stworzyli projekt OpenZFS. Projekt zainicjował rozwój ZFS typu open source.

Wróćmy do wspomnianej wyżej kwestii licencji. Ponieważ projekt OpenZFS jest niezależny od Oracle, niektórzy prawdopodobnie zastanawiają się, dlaczego nie zmieniają licencji na coś zgodnego z GPL, aby można było włączyć ją do jądra Linuksa. Według strony internetowej OpenZFS zmiana licencji wymagałaby skontaktowania się z każdym, kto wniósł kod do obecnej implementacji OpenZFS (w tym początkowy, wspólny kod ZFS do OpenSolaris) i uzyskania zgody na zmianę licencji. Ponieważ ta praca jest prawie niemożliwa (ponieważ niektórzy współpracownicy mogą nie żyć lub być trudni do znalezienia), postanowili zachować posiadaną licencję.

ZFS w Proxmox

Począwszy od Proxmox VE 3.4, natywny port jądra Linuksa systemu plików ZFS, został wprowadzony jako opcjonalny system plików i również jako dodatkowy wybór dla głównego systemu plików. Nie ma potrzeby ręcznej kompilacji modułów ZFS. Korzystając z ZFS, możliwe jest osiągnięcie maksymalnych funkcji korporacyjnych za pomocą niskobudżetowego sprzętu, ale także systemów o wysokiej wydajności, wykorzystując buforowanie SSD, a nawet konfiguracje tylko z dyskami SSD. ZFS może zastąpić kosztowne sprzętowe karty RAID dzięki umiarkowanemu obciążeniu procesora i pamięci w połączeniu z łatwym zarządzaniem.

ZALETY ZFS:
• Łatwa konfiguracja i zarządzanie dzięki interfejsowi GUI i CLI Proxmox VE,
• Niezawodny,
• Ochrona przed uszkodzeniem danych,
• Kompresja danych na poziomie systemu plików,
• Migawki,
• Klon kopiowania przy zapisie,
• Różne poziomy rajdów: RAID0, RAID1, RAID10, RAIDZ-1, RAIDZ-2, RAIDZ-3, dRAID, dRAID2, dRAID3,
• Może używać dysku SSD jako pamięci podręcznej,
• Samo leczenie,
• Ciągłe sprawdzanie integralności,
• Zaprojektowany do przechowywania o dużej pojemności,
• Replikacja asynchroniczna przez sieć,
• Otwarte źródło,
• Szyfrowanie

Sprzęt w ZFS

Nie używaj ZFS jako nakładki dla sprzętowego kontrolera RAID, który ma własne zarządzanie pamięcią podręczną. ZFS musi komunikować się bezpośrednio z dyskami. Bardziej odpowiedni jest adapter HBA.

Jeśli eksperymentujesz z instalacją Proxmox VE wewnątrz maszyny wirtualnej (wirtualizacja zagnieżdżona), nie używaj virtio dla dysków tej maszyny wirtualnej, ponieważ nie są one obsługiwane przez ZFS. Zamiast tego użyj IDE lub SCSI (działa również z typem kontrolera virtio SCSI).

Instalacja jako główny system plików

Podczas instalacji za pomocą instalatora Proxmox VE możesz wybrać ZFS jako główny system plików. Musisz wybrać typ RAID podczas instalacji:

  • RAID0 – nazywany również „stripingiem”. Pojemność takiej objętości jest sumą pojemności wszystkich dyski. RAID0 nie dodaje żadnej redundancji, więc awaria pojedynczego dysku sprawia, że wolumin jest bezużyteczny.
  • RAID1 – nazywany również „dublowaniem”. Dane są zapisywane identycznie na wszystkich dyskach. Ten tryb wymaga co najmniej 2 dyski o tym samym rozmiarze. Wynikowa pojemność jest pojemnością pojedynczego dysku.
  • RAID10 – połączenie RAID0 i RAID1. Wymaga co najmniej 4 dysków.
  • RAIDZ-1 – odmiana RAID-5, pojedyncza parzystość. Wymaga co najmniej 3 dysków.
  • RAIDZ-2 – odmiana RAID-5, podwójna parzystość. Wymaga co najmniej 4 dysków.
  • RAIDZ-3 – odmiana RAID-5, potrójna parzystość. Wymaga co najmniej 5 dysków.

RAID ZFS

Przy wyborze układu puli ZFS należy wziąć pod uwagę kilka czynników. Podstawowym elementem konstrukcyjnym puli ZFS jest urządzenie wirtualne – vdev. Wszystkie vdev w puli są używane jednakowo, a dane są rozłożone między nimi (RAID0).

Wydajność

Każdy typ vdev ma inną wydajność. Dwa interesujące parametry to IOPS (operacje wejścia/wyjścia na sekundę) oraz przepustowość, z jaką dane mogą być zapisywane lub odczytywane.
Mirror vdev (RAID1) będzie w przybliżeniu zachowywał się jak pojedynczy dysk w odniesieniu do obu parametrów podczas zapisu danych. Podczas odczytu danych wydajność będzie skalować się liniowo wraz z liczbą dysków w grupie.
Częstą sytuacją jest posiadanie 4 dysków. Po skonfigurowaniu jako 2 lustrzane vdev (RAID10) pula będzie miała charakterystykę zapisu jak dwa pojedyncze dyski pod względem IOPS i przepustowości. Dla operacji odczytu będzie przypominał 4 pojedyncze dyski.
RAIDZ o dowolnym poziomie nadmiarowości będzie w przybliżeniu zachowywać się jak pojedynczy dysk pod względem IOPS z dużą przepustowością. Jego przepustowość zależy od rozmiaru vdev RAIDZ i poziomu nadmiarowości.
W przypadku uruchomionych maszyn wirtualnych IOPS jest ważniejszą metryką w większości sytuacji.

Rozmiar, wykorzystanie miejsca i nadmiarowość

Podczas gdy pula złożona z lustrzanych vdev będzie miała najlepszą charakterystykę wydajności, użyteczna przestrzeń będzie wynosić 50% dostępnych dysków. Mniej, jeśli lustrzany vdev składa się z więcej niż 2 dysków.
Aby pula działała, potrzebny jest co najmniej jeden zdrowy dysk na serwer lustrzany, aby w przypadku awarii pierwotnego, natychmiast macierz została odbudowana.
Użyteczna przestrzeń vdev typu RAIDZ N dysków to mniej więcej N-P, gdzie P to poziom RAIDZ. Poziom RAIDZ wskazuje, ile dowolnych dysków może ulec awarii bez utraty danych. Szczególnym przypadkiem jest 4-dyskowa pula z RAIDZ2. W tej sytuacji zwykle lepiej jest użyć 2 lustrzanych vdev, aby uzyskać lepszą wydajność, ponieważ użyteczna przestrzeń będzie taka sama.
Innym ważnym czynnikiem przy korzystaniu z dowolnego poziomu RAIDZ jest zachowanie zestawów danych ZVOL, które są używane dla dysków maszyn wirtualnych. Dla każdego bloku danych pula potrzebuje danych parzystości, które mają co najmniej rozmiar minimalnego rozmiaru bloku określonego przez wartość przesunięcia puli. Przy przesunięciu równym 12 wielkość bloku puli wynosi 4k. Domyślny
rozmiar bloku dla ZVOL wynosi 8k. Dlatego w RAIDZ2 każdy zapisany blok 8k spowoduje zapisanie dwóch dodatkowych bloków parzystości 4k, 8k + 4k + 4k = 16k.

ZFS dRAID

W ZFS dRAID (declustered RAID) dyski typu hot-spare uczestniczą w konfiguracji macierzy RAID. Ich wolna pojemność jest zarezerwowana i wykorzystywana do odbudowy w przypadku awarii jednego z dysków. Zapewnia to, w zależności od konfiguracji, szybszą odbudowę w porównaniu z RAIDZ gdy awarii ulegnie jeden z dysków.

dRAID jest przeznaczony dla więcej niż 10-15 dysków w dRAID. W większości przypadków konfiguracja RAIDZ powinna być lepsza dla mniejszej liczby dysków.

dRAID1: wymaga co najmniej 2 dysków, jeden może ulec awarii przed utratą danych,
dRAID2: wymaga co najmniej 3 dysków, dwa mogą ulec awarii przed utratą danych,
dRAID3: wymaga co najmniej 4 dysków, trzy mogą ulec awarii przed utratą danych

Dyski typu Spares

Liczba dysków zapasowych (spares) mówi systemowi, ile dysków powinien zachować w gotowości na wypadek awarii dysku. Wartość domyślna to 0. Bez dysków zapasowych przebudowa nie przyniesie żadnych korzyści w zakresie szybkości.
Data określa liczbę urządzeń w grupie redundancji. Wartością domyślną jest 8. Z wyjątkiem sytuacji, gdy dyski -parzystość-zapasy są równe mniej niż 8, używana jest niższa liczba. Ogólnie rzecz biorąc, mniejsza liczba urządzeń danych prowadzi do wyższych IOPS, lepszych współczynników kompresji i szybszego ponownego srebrzenia (resilvering, odtwarzanie RAID1), ale definiuje mniej urządzeń danych zmniejsza dostępną pojemność pamięci puli.

Podsumowanie

ZFS daje duże możliwości, które można wykorzystać nie tylko w odniesieniu do Proxmox’a. Zapewnienie odpowiedniej wydajności oraz zabezpieczenie danych pozwoli spać spokojniej.

Print Friendly, PDF & Email

Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.

Link do formularza tutaj: https://beitadmin.pl/pomysly

Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).

Dodaj komentarz

beitadmin.pl - Droga Administratora IT