Wprowadzenie do systemu plików Z (ZFS) dla systemu Linux
ZFS jest powszechnie używany przez hakerów danych, miłośników NAS i innych maniaków, którzy wolą zaufać systemowi redundantnemu, a nie chmurnemu. Jest to świetny system plików do zarządzania wieloma dyskami danych i rywalami w jednych z największych konfiguracji RAID.
Zdjęcie: Kenny Louie.
Co to jest ZFS i dlaczego powinienem go używać?
System plików Z to wolny i oparty na otwartym kodzie źródłowym menedżer woluminów zbudowany przez firmę Sun Microsystems do użytku w systemie operacyjnym Solaris. Niektóre z najbardziej atrakcyjnych funkcji obejmują:
Nieograniczona skalowalność
Cóż, nie jest technicznie nieskończony, ale jest to 128-bitowy system plików, który jest w stanie zarządzać zettabajtami (miliard terabajtów) danych. Bez względu na to, ile masz miejsca na dysku twardym, ZFS będzie odpowiednie do zarządzania nim.
Maksymalna integralność
Wszystko, co robisz w ZFS, używa sumy kontrolnej, aby zapewnić integralność plików. Możesz być pewny, że twoje pliki i ich nadmiarowe kopie nie będą spotykać się z cichym uszkodzeniem danych. Ponadto, podczas gdy ZFS jest zajęty, po cichu sprawdzając dane pod kątem integralności, wykona automatyczne naprawy w dowolnym momencie.
Łączenie dysków
Twórcy ZFS chcą, abyś myślał, że jest podobny do sposobu, w jaki twój komputer korzysta z pamięci RAM. Kiedy potrzebujesz więcej pamięci w swoim komputerze, wkładasz inny pendrive i gotowe. Podobnie w przypadku ZFS, kiedy potrzebujesz więcej miejsca na dysku twardym, wkładasz inny dysk twardy i gotowe. Nie musisz tracić czasu na partycjonowanie, formatowanie, inicjowanie lub robienie czegokolwiek innego na dyskach - kiedy potrzebujesz większej "puli", po prostu dodaj dyski.
NALOT
ZFS może obsługiwać wiele różnych poziomów RAID, zapewniając jednocześnie wydajność porównywalną ze sprzętowymi kontrolerami RAID. Pozwala to zaoszczędzić pieniądze, ułatwić konfigurację i uzyskać dostęp do wyższych poziomów RAID, które zostały ulepszone przez ZFS.
Instalowanie ZFS
Ponieważ opisujemy tylko podstawy tego przewodnika, nie będziemy instalować ZFS jako głównego systemu plików. W tej sekcji założono, że używasz ext4 lub jakiegoś innego systemu plików i chciałbyś użyć ZFS do niektórych dodatkowych dysków twardych. Oto polecenia do instalowania ZFS w niektórych najpopularniejszych dystrybucjach Linuksa.
Solaris i FreeBSD powinny już być wyposażone w ZFS zainstalowany i gotowy do użycia.
Ubuntu:
$ sudo add-apt-repository ppa: zfs-native / stable
$ sudo apt-get update
$ sudo apt-get install ubuntu-zfs
Debian:
$ su -
# wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_2%7Ewheezy_all.deb
# dpkg -i zfsonlinux_2 ~ wheezy_all.deb
# apt-get update
# apt-get install debian-zfs
RHEL / CentOS:
$ sudo yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release-1-3.el6.noarch.rpm
$ sudo yum zainstaluj zfs
Jeśli masz inną dystrybucję, sprawdź zfsonlinux.org i kliknij swoją dystrybucję pod listą "Pakiety", aby uzyskać instrukcje, jak zainstalować ZFS.
Kontynuując ten przewodnik, zamierzamy użyć Ubuntu, ponieważ wydaje się to być najlepszym wyborem dla maniaków Linuksa. Nadal powinieneś być w stanie śledzić niezależnie od tego, jak komendy ZFS nie zmienią się w różnych dystrybucjach.
Instalacja zajmuje sporo czasu, ale po jej zakończeniu uruchom $ sudo zfs list
aby upewnić się, że jest poprawnie zainstalowany. Powinieneś otrzymać wyjście takie jak to:
Używamy teraz nowej instalacji serwera Ubuntu z tylko jednym dyskiem twardym.
Konfigurowanie ZFS
Załóżmy teraz, że włożyliśmy sześć dodatkowych dysków twardych do naszego komputera.
$ sudo fdisk -l | grep Błąd
pokaże nam sześć dysków twardych, które właśnie zainstalowaliśmy. Obecnie nie można ich używać, ponieważ nie zawierają one żadnej tabeli partycji.
Jak wspomnieliśmy wcześniej, jedną z miłych rzeczy na temat ZFS jest to, że nie musimy przejmować się partycjami (chociaż możesz, jeśli chcesz). Zacznijmy od pobrania trzech dysków twardych i umieszczenia ich w puli pamięci, uruchamiając następujące polecenie:
$ sudo zpool twórz -f geek1 / dev / sdb / dev / sdc / dev / sdd
zpool twórz
to polecenie użyte do utworzenia nowej puli pamięci, -fa
zastępuje wszelkie błędy, które występują (np. jeśli dysk (y) mają już informacje na ich temat), geek1
jest nazwą puli pamięci i / dev / sdb / dev / sdc / dev / sdd
są dyski twarde, które umieściliśmy w puli.
Po utworzeniu puli powinieneś być w stanie zobaczyć ją za pomocą df
polecenie lub Lista sudo zfs
:
Jak widać, / geek1 zostało już zamontowane i jest gotowe do użycia.
Jeśli chcesz zobaczyć, które trzy dyski zostały wybrane dla Twojej puli, możesz uruchomić status sudo zpool
:
Do tej pory stworzyliśmy pulę dynamicznych pasków 9 TB (efektywnie RAID 0). Jeśli nie wiesz, co to oznacza, wyobraź sobie, że utworzyliśmy plik 3 KB na / geek1. 1 KB automatycznie przejdzie do sdb, 1 KB do sdc i 1 KB do sdd. Potem, kiedy przejdziemy do odczytu pliku 3 KB, każdy dysk twardy przedstawi nam 1 KB, łącząc prędkość trzech dysków. Powoduje to szybkie zapisywanie i odczytywanie danych, ale oznacza także, że mamy pojedynczy punkt awarii. Jeśli tylko jeden dysk ulegnie awarii, utracimy plik 3 KB.
Zakładając, że ochrona danych jest ważniejsza niż szybki dostęp do nich, rzućmy okiem na inne popularne konfiguracje. Najpierw usuniemy utworzone zpool, abyśmy mogli użyć tych dysków w bardziej zbędnej konfiguracji:
$ sudo zpool destroy geek1
Bam, nasz zpool zniknął. Tym razem użyjmy naszych trzech dysków do stworzenia puli RAID-Z. RAID-Z jest w zasadzie ulepszoną wersją RAID 5, ponieważ pozwala uniknąć "zapisu" za pomocą funkcji "kopiuj przy zapisie". RAID-Z wymaga co najmniej trzech dysków twardych i jest rodzajem kompromisu między RAID 0 i RAID 1. W puli RAID-Z nadal będziesz mieć prędkość blokowania na poziomie bloków, ale będziesz miał również rozproszoną parzystość. Jeśli pojedynczy dysk w puli zginie, po prostu wymień ten dysk, a ZFS automatycznie przebuduje dane na podstawie informacji o parzystości z innych dysków. Aby utracić wszystkie informacje w puli pamięci, dwa dyski musiałyby umrzeć. Aby uczynić rzeczy jeszcze bardziej niepotrzebnymi, możesz użyć RAID 6 (RAID-Z2 w przypadku ZFS) i mieć podwójną parzystość.
Aby to osiągnąć, możemy użyć tego samego zpool twórz
komenda jak poprzednio, ale określ raidz
po nazwie puli:
$ sudo zpool twórz -f geek1 raidz / dev / sdb / dev / sdc / dev / sdd
Jak widzisz, df -h
pokazuje, że nasza pula 9 TB została zredukowana do 6 TB, ponieważ do przechowywania informacji o parzystości używa się 3 TB. Z status zpool
polecenie, widzimy, że nasza pula jest w większości taka sama jak poprzednio, ale używa teraz RAID-Z.
Aby pokazać, jak łatwo jest dodać więcej dysków do naszej puli pamięci, dodajmy pozostałe trzy dyski (kolejne 9 TB) do naszej puli geek1 jako kolejną konfigurację RAID-Z:
$ sudo zpool add -f geek1 raidz / dev / sde / dev / sdf / dev / sdg
Kończymy z:
Saga trwa ...
Ledwie udało nam się zeskrobać powierzchnię ZFS i jego możliwości, ale korzystając z tego, czego nauczyłeś się w tym artykule, powinieneś teraz móc tworzyć nadmiarowe pule pamięci danych. Sprawdź z nami kolejne artykuły na temat ZFS, zobacz strony man i przeszukaj niekończące się niszowe przewodniki i filmy z Youtube obejmujące funkcje ZFS.