Jak zauważyliśmy w zeszłym tygodniu, Ubuntu 19.10 oficjalnie przybył i przynosi ze sobą wiele naprawdę ekscytujących funkcji. Chociaż większość z tych nowych opcji jest skierowana do użytkowników komputerów stacjonarnych, jest jedna szczególnie ekscytująca funkcja, która przyniesie korzyści zarówno użytkownikom komputerów stacjonarnych, jak i serwerów. Tą funkcją jest obsługa ZFS.
Pierwotnie opracowany przez Sun Microsystems dla swojego uniksowego systemu dystrybucji Solaris, ZFS jest połączeniem 128-bitowego systemu plików i menedżera woluminów logicznych, który oferuje następujące funkcje:
- Jest skalowalny.
- Oferuje obsługę dużej pojemności pamięci masowej i bardziej wydajnej kompresji danych.
- Zawiera snapshoty i rollbacks.
- Obsługuje klony copy-on-write.
- Do ciągłego sprawdzania integralności i automatycznej naprawy.
- 128-bitowe adresowanie
- I wiele więcej.
Pytaj każdego administratora, a oni zgodzą się, że dodanie ZFS to wielka sprawa dla Ubuntu. Dlaczego? Same migawki i funkcje rollback są warte ceny wejścia (która, nawiasem mówiąc, jest darmowa). Dzięki tej funkcji, administratorzy mogą przywrócić system do stanu pracy (lub stanu, który zawierał przypadkowo usunięte dane). To całkiem spora sprawa.
Oczywiście migawki i cofanie nie są czymś nowym. W rzeczywistości, wiele platform zawiera to narzędzie od lat. Więc może Ubuntu jest trochę za krzywą na ten temat. Ale dla każdego, kto używa Ubuntu to jest przypadek „lepiej późno niż wcale.”
Ale jak ZFS działa na Ubuntu? Cieszę się, że o to zapytałeś. Pozwól, że ci pokażę.
Zastrzeżenie
Zanim się w to zagłębisz, wiedz, że wsparcie ZFS w Ubuntu 19.10 jest eksperymentalne. Chociaż uważam, że jest niezwykle stabilny, możesz pomyśleć dwa razy o użyciu go w środowisku produkcyjnym (dopóki nie jest już wymieniony jako „eksperymentalny”).
Zauważ również, że wsparcie ZFS jest obecnie oferowane tylko podczas instalacji wersji desktopowej. Nie oznacza to, że nie możesz dodać wsparcia dla systemu plików w wersji serwerowej, ale nie jest to takie proste. Z tego powodu, będę demonstrował na desktopowej wersji Ubuntu 19.10.
Instalacja
Pierwszym krokiem jest włączenie ZFS w czasie instalacji Ubuntu 19.10. Podczas instalacji znajdziesz nową opcję w fazie Typ instalacji (Rysunek 1).
Rysunek 1: Wybieranie opcji ZFS podczas instalacji.
Po zakończeniu instalacji uruchom ponownie komputer i zaloguj się.
Jeśli korzystasz z serwerowej wersji Ubuntu 19.10, zawsze możesz zainstalować obsługę ZFS za pomocą polecenia:
1
|
sudo apt-get install zfsutils-linux
|
Oczywiście, jeśli pójdziesz tą drogą, będziesz musiał wykonać kilka dodatkowych kroków (takich jak tworzenie zbiorów danych). W przypadku instalacji na pulpicie, cała hierarchia katalogów składa się ze zbiorów danych ZFS, więc jest znacznie mniej pracy do wykonania.
Pierwsze kroki z ZFS
Po zalogowaniu się na pulpit, będziesz chciał otworzyć okno terminala i uzyskać listę swoich zbiorów danych. W instalacjach Ubuntu, które nie używają ZFS, zazwyczaj pracujesz ze ścieżkami do katalogów takich jak /home/jack lub /usr/local/. Nie jest tak w przypadku systemów z ZFS. Zamiast tego, pracują one z zestawami danych. Zbiór danych jest typem systemu plików, który współdzieli pulę pamięci (najbardziej podstawowy element składowy ZFS).
Aby znaleźć swoje zbiory danych, wydaj polecenie:
1
|
zfs list
|
Jak widać (na rysunku 2), każdy katalog znajduje się albo w puli bpool (boot), albo rpool (root).
Rysunek 2: Nasza lista zbiorów danych.
Pracujmy z katalogiem domowym użytkownika. W tym przypadku jest to zbiór danych rpool/USERDATA/jack_bwcn4u.
Tworzenie migawki
Pierwszą rzeczą, jaką zrobimy, będzie utworzenie nowej migawki katalogu /home/jack (który, pamiętajmy, jest zbiorem danych rpool/USERDATA/jack_bwcn4u). Załóżmy, że chcemy utworzyć snapshot oznaczony dzisiejszą datą. Polecenie do tego byłoby następujące:
1
|
sudo zfs snapshot rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
Of you could include the date command like so:
1
|
sudo zfs rollback rpool/USERDATA/jack_bwcn4u@`date +%F`
|
Aby zweryfikować, czy Twój snapshot został wykonany, wydaj polecenie:
1
|
zfs list -t snapshot
|
Powinieneś zobaczyć wszystkie bieżące snapshoty wymienione na liście (Rysunek 3).
Rysunek 3: Nasza nowa migawka została utworzona.
Wracanie migawki
Powiedzmy, że z jakiegokolwiek powodu katalog został przypadkowo usunięty z katalogu domowego. Co robisz? Na szczęście zrobiłeś migawkę i możesz ją cofnąć, tak aby usunięty katalog powrócił.
Na początek usuńmy katalog ~/Documents za pomocą polecenia:
1
|
rm -rf /home/jack/Documents
|
Wykonaj polecenie ls i możesz zobaczyć, że katalog Documents zniknął (Rysunek 4).
Nasz katalog Documents został usunięty.
Teraz cofniemy piątkową migawkę, aby odzyskać ten katalog. Aby to zrobić, wydaj polecenie:
1
|
sudo zfs rollback rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
Po zakończeniu działania polecenia, wydaj ponownie polecenie ls, aby sprawdzić, czy dokumenty powróciły (Rysunek 5).
Rysunek 5: Dokumenty powróciły.
Usuwanie migawek
Przypuśćmy, że utworzyłeś kilka migawek lub konkretna migawka ma uszkodzone lub brakujące dane. Możesz chcieć usunąć ten snapshot. Załóżmy, że chcemy usunąć migawkę rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19. Aby to zrobić, polecenie brzmiałoby:
1
|
sudo zfs destroy rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
Po zniszczeniu snapshota nie można go odzyskać, więc używaj tego polecenia z ostrożnością. Jeśli masz szczególnie ważny snapshot, którego nie chcesz zniszczyć, możesz go zatrzymać. Aby zatrzymać nasz snapshot rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19, wydasz polecenie:
1
|
sudo zfs hold keep rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
Teraz, jeśli spróbujesz zniszczyć ten snapshot, pojawi się błąd (Rysunek 6).
Rysunek 6: Nie można zniszczyć tej migawki.
Aby zniszczyć przechowywany snapshot, należy dodać opcję -d w następujący sposób:
1
|
<i>sudo zfs destroy -d.d rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19</i>
|
To wszystko, trzymany snapshot zniknął.
I to są podstawy tworzenia i niszczenia snapshotów z nowo dodaną funkcją ZFS w Ubuntu 19.10. Wypróbuj to na środowisku testowym i zobacz jak dobrze to działa. Do tej pory odkryłem tylko jeden problem, że podczas próby cofnięcia migawki, musiałem zrestartować maszynę, zanim polecenie cofnięcia zostanie pomyślnie uruchomione. Poza tym jednym problemem, praca z ZFS i Ubuntu 19.10.
przebiega bezproblemowo.