Aby skonfigurować pule pamięci masowej ZFS na Ubuntu, należy przeprowadzić instalację ZFS, przygotować dyski oraz utworzyć pulę, a następnie skonfigurować zestawy danych i opcje ochrony danych. Poniżej znajduje się szczegółowy, krok po kroku poradnik stworzony z myślą o publikacji na stronie WWW poświęconej Linuksowi.
1. Wymagania wstępne
Zanim rozpoczniesz –
- Upewnij się, że masz dystrybucję Ubuntu wspierającą ZFS (zalecane są najnowsze wersje, min. 20.04).
- Potrzebujesz uprawnień root/sudo.
- Przygotuj minimum jeden wolny dysk (najlepiej SSD/HDD klasy serwerowej).
- ZFS jest zasobożerny – zalecane minimum to 4 GB RAM, najlepiej 8 GB lub więcej, zwłaszcza dla zastosowań produkcyjnych.
- Zaleca się pamięć ECC dla maksymalnej integralności danych.
Możesz sprawdzić dostępne dyski poleceniem:
sudo lshw -class disk sudo lsblk -o NAME,SIZE,MODEL,SERIAL
2. Instalacja ZFS na Ubuntu
Aktualizuj system:
sudo apt update && sudo apt upgrade -y
Zainstaluj ZFS:
sudo apt install zfsutils-linux -y
Dla niestandardowych jąder (np. własny build, custom kernel) użyj:
sudo apt install zfs-dkms -y
Zweryfikuj instalację:
zfs --version modinfo zfs zpool version
3. Tworzenie puli pamięci masowej ZFS (zpool)
Przygotowanie dysków – Upewnij się, że dyski nie zawierają ważnych danych – ZFS sformatuje je! Jeśli chcesz utworzyć pulę o nazwie tank
z dwoma dyskami (/dev/sdb
i /dev/sdc
):
sudo zpool create tank /dev/sdb /dev/sdc
lub dla mirroringu (RAID 1):
sudo zpool create tank mirror /dev/sdb /dev/sdc
lub dla ZFS RAIDZ (ekwiwalent RAID5):
sudo zpool create tank raidz /dev/sdb /dev/sdc /dev/sdd
Uwagi –
- ZFS domyślnie ustawia wszelkie potrzebne parametry, ale możesz korzystać z aliasów dysków (np.
/dev/disk/by-id/...
) dla większego bezpieczeństwa nazw dysków. - Nazwa puli (
tank
) może być dowolna.
Sprawdź status:
zpool status
Wyświetl dostępne pule:
zpool list
4. Konfiguracja zbiorów danych ZFS (datasets)
Zestawy danych pozwalają tworzyć podkatalogi na pulach do różnych celów (backup, baza danych, multimedia).
Przykład utworzenia zestawu danych:
sudo zfs create tank/backups
Włączenie kompresji:
sudo zfs set compression=on tank/backups
Ograniczenie tylko do odczytu:
sudo zfs set readonly=on tank/backups
Sprawdź dostępne zestawy:
zfs list
5. Migawki (snapshots) i replikacja
Tworzenie migawek:
sudo zfs snapshot tank/backups@manual-$(date +%Y-%m-%d-%H%M)
Automatyzacja migawek przez CRON:
0 * * * * /sbin/zfs snapshot tank/backups@hourly-$(date +\%Y-\%m-\%d-\%H)
Migawkę można przywrócić lub wysłać na inny serwer:
sudo zfs send tank/backups@snapshot | ssh user@server "zfs receive otherpool/backups"
6. Monitorowanie i zarządzanie pulą
Podstawowe polecenia monitorujące:
- Stan puli:
zpool status
- Informacje o zbiorach danych:
zfs list
- Użycie miejsca:
zpool list
Ważne praktyki:
- Regularnie wykonuj migawki
- Monitoruj stan dysków
- Zalecane stosowanie dysków serwerowych i pamięci ECC
7. Rozszerzanie puli (dodawanie nowych dysków)
Dodanie nowego dysku do istniejącej puli:
sudo zpool add tank /dev/sdd
Dodanie do mirroru:
sudo zpool attach tank /dev/sdb /dev/sdd
8. Szybkie FAQ
Czy można używać ZFS z systemem plików root? Tak, Ubuntu pozwala na instalację systemu na ZFS, jednak na produkcji zaleca się dedykowane pule dla danych.
Czy należy używać ZFS do RAID? Tak, ZFS realizuje funkcje RAID na poziomie własnych VDEV (mirror, raidz).
Jak przenieść dane z/uszkodzonego zestawu? Skorzystaj z poleceń zfs receive
, naprawiania lub zamiany dysków w puli.
9. Podsumowanie
ZFS pozwala na zaawansowane zarządzanie przestrzenią dyskową, ochronę danych oraz automatyczne zarządzanie RAID i migawkami, gwarantując wysoką wydajność i bezpieczeństwo na Linuksie.
Jeśli masz pytania lub napotkasz błędy – sprawdź status poleceniem zpool status
, przeanalizuj logi systemowe oraz zajrzyj do oficjalnej dokumentacji Ubuntu i ZFS.
Najważniejsze komendy ZFS dla Ubuntu
sudo apt install zfsutils-linux sudo zpool create tank /dev/sdb /dev/sdc sudo zfs create tank/backups sudo zfs snapshot tank/backups@daily-$(date +%Y-%m-%d) sudo zfs list sudo zpool status
ZFS to narzędzie klasy enterprise, które doskonale sprawdza się w zarówno domowych NAS-ach, jak i serwerach produkcyjnych.