Skip to content Skip to footer

TrueNAS backupy maszyn wirtualnych w kontenerach LXC używając UI

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

  1. Zaloguj się do interfejsu TrueNAS SCALE przez przeglądarkę (np. wpisując adres IP serwera, np. 192.168.76.1).
  2. Przejdź do sekcji Aplikacje (Apps) w menu po lewej stronie.
  3. 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:
    1. W sekcji Aplikacje kliknij na nazwę kontenera (np. docker-test-srvr).
    2. Kliknij przycisk Zatrzymaj (Stop). Poczekaj, aż status kontenera zmieni się na Zatrzymany.
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.
  1. Przejdź do Pamięć (Storage) w menu głównym.
  2. 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.
  3. Kliknij na dataset (np. tank/containers/docker-test-srvr), a następnie kliknij Utwórz snapshot (Create Snapshot).
  4. Wprowadź nazwę snapshotu, np. snapshot-20250807 (zaleca się używanie daty), i kliknij Zapisz.
  5. 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:
  1. Przejdź do System Settings > Shell w UI TrueNAS.
  2. W terminalu wpisz polecenie eksportu:
    incus export docker-test-srvr /mnt/tank/backups/docker-test-srvr-20250807.tar.gz --instance-only
    Zastąp docker-test-srvr nazwą swojego kontenera i upewnij się, że folder /mnt/tank/backups istnieje (możesz go utworzyć w UI w sekcji Pamięć > Datasets).
  3. 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:
  1. Podłącz dysk USB do serwera TrueNAS SCALE.
  2. W UI przejdź do Pamięć > Pule i zamontuj dysk USB (może pojawić się jako nowy dataset, np. /mnt/usb).
  3. Przejdź do System Settings > Shell i wpisz:
    cp /mnt/tank/backups/docker-test-srvr-20250807.tar.gz /mnt/usb/
  4. 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:
  1. Przejdź do Pamięć > Zadania snapshotów (Snapshot Tasks).
  2. Kliknij Dodaj (Add).
  3. 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.
  4. 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

  1. Podłącz dysk USB z plikiem backupu (np. docker-test-srvr-20250807.tar.gz) do serwera TrueNAS.
  2. W UI przejdź do Pamięć > Pule i zamontuj dysk USB.
  3. Skopiuj plik backupu do folderu w puli ZFS, np. /mnt/tank/backups:
    cp /mnt/usb/docker-test-srvr-20250807.tar.gz /mnt/tank/backups/
    Wykonaj to w System Settings > Shell.

Krok 2: Zaimportuj kontener

UI TrueNAS nie oferuje bezpośredniego importu kontenerów, więc użyjemy powłoki:
  1. Przejdź do System Settings > Shell.
  2. Wpisz polecenie importu:
    incus import /mnt/tank/backups/docker-test-srvr-20250807.tar.gz
  3. Sprawdź, czy kontener pojawił się w UI: przejdź do Aplikacje > Zainstalowane aplikacje.

Krok 3: Uruchom kontener

  1. W sekcji Aplikacje znajdź kontener (np. docker-test-srvr).
  2. Kliknij Uruchom (Start).
  3. 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

  1. Zaloguj się do UI serwera docelowego TrueNAS SCALE.
  2. Upewnij się, że Incus jest skonfigurowany: przejdź do Aplikacje i sprawdź, czy możesz tworzyć nowe kontenery.
  3. 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

  1. Podłącz dysk USB z plikiem backupu do serwera docelowego lub skopiuj plik przez sieć.
  2. W UI serwera źródłowego przejdź do Pamięć > Pule i upewnij się, że folder /mnt/tank/backups jest dostępny.
  3. 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/backups na serwer docelowy (patrz Krok 7).
  4. 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

  1. Na serwerze docelowym otwórz System Settings > Shell.
  2. Wpisz polecenie importu:
    incus import /mnt/tank/backups/docker-test-srvr-20250807.tar.gz
  3. Sprawdź, czy kontener pojawił się w Aplikacje > Zainstalowane aplikacje.

Krok 5: Skonfiguruj sieć i uprawnienia

  1. W UI przejdź do Aplikacje > Edytuj dla kontenera i sprawdź ustawienia sieciowe (np. tryb mostkowy, adres IP).
  2. 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

  1. W UI przejdź do Aplikacje, znajdź kontener i kliknij Uruchom.
  2. 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:
  1. Na serwerze źródłowym przejdź do Zadania > Replikacja ZFS.
  2. 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.
  3. 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.

Podsumowanie

Tworzenie backupów i przenoszenie maszyn wirtualnych w TrueNAS SCALE jest proste dzięki interfejsowi graficznemu i funkcjom ZFS. Korzystając z UI, możesz łatwo zarządzać snapshotami, eksportować kontenery i replikować dane na inny serwer. Postępuj zgodnie z powyższymi krokami, aby zabezpieczyć swoje dane i migrować środowiska bez problemów.

Leave a comment

0.0/5