TrueNAS SCALE to zaawansowany system open-source, który umożliwia zarządzanie kontenerami LXC/Incus (z linuxcontainers.org) i maszynami wirtualnymi (VM) za pomocą intuicyjnego interfejsu graficznego (UI). W tym artykule pokażemy, jak za pomocą UI TrueNAS SCALE tworzyć backupy całych maszyn wirtualnych działających w kontenerach LXC/Incus, aby można je było przywrócić po awarii, oraz jak przenieść działającą maszynę na inny serwer TrueNAS SCALE. Instrukcja jest „idiotoodporna” i przeznaczona dla początkujących użytkowników.
Dlaczego backupy są ważne?
Backupy maszyn wirtualnych chronią dane i konfiguracje przed awariami sprzętu, błędami użytkownika lub problemami z oprogramowaniem. W TrueNAS SCALE kontenery LXC/Incus korzystają z systemu plików ZFS, który umożliwia łatwe tworzenie snapshotów i backupów. Przenoszenie maszyn na inny serwer pozwala na migrację środowiska bez konieczności ponownej konfiguracji.
Uwaga: Przechowuj backupy na oddzielnym urządzeniu (np. dysku USB) lub w chmurze, aby zminimalizować ryzyko utraty danych w razie awarii serwera.
Część 1: Tworzenie backupów maszyn wirtualnych przez UI
TrueNAS SCALE umożliwia zarządzanie kontenerami LXC/Incus i ich backupami za pomocą interfejsu graficznego, korzystając z funkcji ZFS i narzędzi Incus. Poniżej znajdziesz szczegółowe kroki.Krok 1: Znajdź swój kontener w UI
- Zaloguj się do interfejsu TrueNAS SCALE przez przeglądarkę (np. wpisując adres IP serwera, np.
192.168.76.1). - Przejdź do sekcji Aplikacje (Apps) w menu po lewej stronie.
- W zakładce Zainstalowane aplikacje (Installed Applications) znajdź swój kontener, np.
docker-test-srvr. Zapisz jego nazwę.
Krok 2: Zatrzymaj kontener (zalecane)
Zatrzymanie kontenera przed utworzeniem backupu zapewnia spójność danych:-
- W sekcji Aplikacje kliknij na nazwę kontenera (np.
docker-test-srvr). - Kliknij przycisk Zatrzymaj (Stop). Poczekaj, aż status kontenera zmieni się na Zatrzymany.
- W sekcji Aplikacje kliknij na nazwę kontenera (np.
Uwaga: Jeśli kontener musi działać, możesz pominąć ten krok, ale backup może zawierać niespójne dane.
Krok 3: Utwórz snapshot ZFS przez UI
Kontenery LXC/Incus w TrueNAS SCALE są przechowywane jako ZFS datasets, a snapshoty ZFS to efektywny sposób na backup.- Przejdź do Pamięć (Storage) w menu głównym.
- Znajdź pulę ZFS, w której przechowywany jest kontener, np.
tank/containers/docker-test-srvr. Możesz to sprawdzić, klikając w Datasets i szukając folderu związanego z kontenerem. - Kliknij na dataset (np.
tank/containers/docker-test-srvr), a następnie kliknij Utwórz snapshot (Create Snapshot). - Wprowadź nazwę snapshotu, np.
snapshot-20250807(zaleca się używanie daty), i kliknij Zapisz. - Sprawdź, czy snapshot został utworzony: w sekcji Pamięć > Snapshots zobaczysz nowy snapshot, np.
tank/containers/docker-test-srvr@snapshot-20250807.
Krok 4: Eksportuj kontener do pliku backupu
Aby stworzyć przenośny backup, wyeksportuj kontener do pliku tar.gz. UI TrueNAS SCALE nie oferuje bezpośredniej opcji eksportu, więc wykonamy to w powłoce:- Przejdź do System Settings > Shell w UI TrueNAS.
- W terminalu wpisz polecenie eksportu:
Zastąpincus export docker-test-srvr /mnt/tank/backups/docker-test-srvr-20250807.tar.gz --instance-onlydocker-test-srvrnazwą swojego kontenera i upewnij się, że folder/mnt/tank/backupsistnieje (możesz go utworzyć w UI w sekcji Pamięć > Datasets). - Po zakończeniu eksportu plik backupu pojawi się w folderze
/mnt/tank/backups.
Krok 5: Skopiuj backup na zewnętrzne urządzenie
Aby zabezpieczyć backup, skopiuj go na dysk USB lub zdalny serwer:- Podłącz dysk USB do serwera TrueNAS SCALE.
- W UI przejdź do Pamięć > Pule i zamontuj dysk USB (może pojawić się jako nowy dataset, np.
/mnt/usb). - Przejdź do System Settings > Shell i wpisz:
cp /mnt/tank/backups/docker-test-srvr-20250807.tar.gz /mnt/usb/ - Alternatywnie, skonfiguruj zdalne kopiowanie przez UI:
- Przejdź do Zadania > Replikacja ZFS (ZFS Replication).
- Utwórz zadanie replikacji, aby wysyłać snapshoty na zdalny serwer TrueNAS lub inny system z ZFS (patrz Część 3, Krok 7).
Krok 6: Automatyzacja backupów przez UI
Aby regularnie tworzyć snapshoty, skonfiguruj zadanie snapshotów w UI:- Przejdź do Pamięć > Zadania snapshotów (Snapshot Tasks).
- Kliknij Dodaj (Add).
- Wypełnij formularz:
- Dataset: Wybierz
tank/containers/docker-test-srvr. - Nazwa: Wpisz np.
snapshot-%Y%m%d(dla nazw z datą). - Harmonogram: Wybierz np. „Co tydzień, w niedzielę o 2:00”.
- Zaznacz Włączone i kliknij Zapisz.
- Dataset: Wybierz
- Dla automatycznego eksportu do pliku tar.gz musisz dodać skrypt cron w powłoce (patrz Część 1, Krok 6 w poprzednim artykule).
Część 2: Przywracanie maszyny wirtualnej z backupu przez UI
Po awarii możesz przywrócić kontener z backupu, korzystając z UI i kilku poleceń w powłoce.Krok 1: Skopiuj backup na serwer
- Podłącz dysk USB z plikiem backupu (np.
docker-test-srvr-20250807.tar.gz) do serwera TrueNAS. - W UI przejdź do Pamięć > Pule i zamontuj dysk USB.
- Skopiuj plik backupu do folderu w puli ZFS, np.
/mnt/tank/backups:
Wykonaj to w System Settings > Shell.cp /mnt/usb/docker-test-srvr-20250807.tar.gz /mnt/tank/backups/
Krok 2: Zaimportuj kontener
UI TrueNAS nie oferuje bezpośredniego importu kontenerów, więc użyjemy powłoki:- Przejdź do System Settings > Shell.
- Wpisz polecenie importu:
incus import /mnt/tank/backups/docker-test-srvr-20250807.tar.gz - Sprawdź, czy kontener pojawił się w UI: przejdź do Aplikacje > Zainstalowane aplikacje.
Krok 3: Uruchom kontener
- W sekcji Aplikacje znajdź kontener (np.
docker-test-srvr). - Kliknij Uruchom (Start).
- Przetestuj dostęp, np. przez SSH z komputera klienckiego:
ssh tomasz-syn-grzegorza@192.168.76.177
Krok 4: Rozwiązywanie problemów
- Brak miejsca w puli ZFS: Sprawdź miejsce w Pamięć > Pule i zwolnij przestrzeń, jeśli to konieczne.
- Błąd importu: Upewnij się, że plik tar.gz nie jest uszkodzony. W powłoce wpisz:
tar -tzf /mnt/tank/backups/docker-test-srvr-20250807.tar.gz - Problemy z siecią: W UI przejdź do Aplikacje > Edytuj dla kontenera i upewnij się, że ustawienia sieci (np. tryb mostkowy) są poprawne.
Część 3: Przenoszenie maszyny wirtualnej na inny serwer TrueNAS SCALE przez UI
Przeniesienie kontenera na inny serwer TrueNAS SCALE wymaga eksportu i importu backupu lub replikacji ZFS.Krok 1: Przygotuj serwer docelowy
- Zaloguj się do UI serwera docelowego TrueNAS SCALE.
- Upewnij się, że Incus jest skonfigurowany: przejdź do Aplikacje i sprawdź, czy możesz tworzyć nowe kontenery.
- Stwórz pulę ZFS na serwerze docelowym, np.
tank, w sekcji Pamięć > Pule.
Krok 2: Eksportuj kontener z serwera źródłowego
Wykonaj backup, jak opisano w Części 1, Krok 4, używając polecenia w powłoce:incus export docker-test-srvr /mnt/tank/backups/docker-test-srvr-20250807.tar.gz --instance-only
Krok 3: Przenieś plik backupu na serwer docelowy
- Podłącz dysk USB z plikiem backupu do serwera docelowego lub skopiuj plik przez sieć.
- W UI serwera źródłowego przejdź do Pamięć > Pule i upewnij się, że folder
/mnt/tank/backupsjest dostępny. - Skopiuj plik na serwer docelowy przez UI:
- Przejdź do Zadania > Replikacja ZFS na serwerze źródłowym.
- Utwórz zadanie replikacji, aby wysłać folder
/mnt/tank/backupsna serwer docelowy (patrz Krok 7).
- Alternatywnie, użyj powłoki do kopiowania przez rsync:
rsync -av /mnt/tank/backups/docker-test-srvr-20250807.tar.gz user@new-server:/mnt/tank/backups/
Krok 4: Zaimportuj kontener na serwerze docelowym
- Na serwerze docelowym otwórz System Settings > Shell.
- Wpisz polecenie importu:
incus import /mnt/tank/backups/docker-test-srvr-20250807.tar.gz - Sprawdź, czy kontener pojawił się w Aplikacje > Zainstalowane aplikacje.
Krok 5: Skonfiguruj sieć i uprawnienia
- W UI przejdź do Aplikacje > Edytuj dla kontenera i sprawdź ustawienia sieciowe (np. tryb mostkowy, adres IP).
- Jeśli kontener wymaga specyficznych uprawnień, dostosuj je w powłoce:
sudo chown -R 2147000001:2147000001 /mnt/tank/containers/docker-test-srvr
Krok 6: Uruchom kontener
- W UI przejdź do Aplikacje, znajdź kontener i kliknij Uruchom.
- Przetestuj dostęp, np. przez SSH:
ssh tomasz-syn-grzegorza@192.168.76.177
Krok 7: (Opcjonalne) Replikacja ZFS przez UI
Dla automatycznej synchronizacji między serwerami skonfiguruj replikację ZFS:- Na serwerze źródłowym przejdź do Zadania > Replikacja ZFS.
- Kliknij Dodaj i skonfiguruj:
- Źródło:
tank/containers/docker-test-srvr. - Cel: Wpisz adres IP serwera docelowego i dataset, np.
tank/containers/docker-test-srvr. - Harmonogram: Wybierz np. „Codziennie o 3:00”.
- Zaznacz SSH Connection i podaj dane logowania do serwera docelowego.
- Źródło:
- Kliknij Zapisz. Replikacja będzie automatycznie synchronizować snapshoty.
Zalecenia i wskazówki
- Regularne backupy: Używaj zadań snapshotów w UI, aby automatyzować tworzenie backupów.
- Zewnętrzne przechowywanie: Przechowuj backupy na dysku USB lub w chmurze (np. Backblaze).
- Testowanie backupów: Regularnie testuj przywracanie w UI, aby upewnić się, że backupy są poprawne.
- Bezpieczeństwo SSH: Skonfiguruj klucze SSH w System Settings > SSH Keypairs dla bezpiecznej replikacji.
- Dokumentacja: Więcej informacji znajdziesz w dokumentacji TrueNAS SCALE oraz na linuxcontainers.org.