Co to jest serwer kopii zapasowych Proxmox Backup Server ?
Proxmox Backup Server to rozwiązanie do tworzenia kopii zapasowych klasy korporacyjnej typu klient-serwer, które umożliwia tworzenie kopii zapasowych maszyn wirtualnych, kontenerów i hostów fizycznych. Jest specjalnie zoptymalizowany pod kątem platformy środowiska wirtualnego Proxmox i umożliwia bezpieczne tworzenie kopii zapasowych danych, nawet między zdalnymi lokalizacjami, zapewniając łatwe zarządzanie za pomocą internetowego interfejsu użytkownika. Obsługuje deduplikację, kompresję i uwierzytelnione szyfrowanie (AE).
Architektura
Proxmox Backup Server wykorzystuje model klient-serwer. Serwer przechowuje dane kopii zapasowej i zapewnia interfejs API do tworzenia magazynów danych i zarządzania nimi. Dzięki API możliwe jest również zarządzanie dyskami i innymi zasobami po stronie serwera.
Klient kopii zapasowej używa tego interfejsu API do uzyskiwania dostępu do danych w kopii zapasowej. Możesz użyć narzędzia wiersza poleceń proxmox-backup-client do tworzenia i przywracania kopii zapasowych plików. Dla QEMU i LXC w Proxmox Virtual Environment dostarczamy zintegrowanego klienta.
Pojedyncza kopia zapasowa może zawierać kilka archiwów. Na przykład podczas tworzenia kopii zapasowej maszyny wirtualnej każdy dysk jest przechowywany jako osobne archiwum w tej kopii zapasowej. Sama konfiguracja maszyny wirtualnej jest przechowywana jako dodatkowy plik. W ten sposób można łatwo uzyskać dostęp i przywrócić tylko ważne części kopii zapasowej, bez konieczności skanowania całej kopii zapasowej.
Główne cechy
- Wsparcie dla Proxmox VE. Środowisko wirtualne Proxmox jest w pełni obsługiwane i można łatwo tworzyć kopie zapasowe maszyn wirtualnych i kontenerów.’
- Wydajność. Cały stos oprogramowania jest napisany w języku Rust, aby zapewnić wysoką prędkość i wydajność pamięci.
- Deduplikacja. Okresowe kopie zapasowe tworzą duże ilości zduplikowanych danych. Warstwa deduplikacji pozwala uniknąć redundancji i minimalizuje wykorzystywaną przestrzeń dyskową.
- Przyrostowe kopie zapasowe. Zmiany między kopiami zapasowymi są zazwyczaj niewielkie. Odczytywanie i wysyłanie tylko delta zmniejsza wpływ kopii zapasowych na pamięć masową i sieć.
- Integralność danych. Wbudowany algorytm sumy kontrolnej SHA-256 zapewnia dokładność i spójność kopii zapasowych.
- Zdalna synchronizacja. Możliwa jest wydajna synchronizacja danych ze zdalnymi lokalizacjami. Przesyłane są tylko delty zawierające nowe dane.
- Kompresja. Ultraszybka kompresja Zstandard jest w stanie skompresować kilka gigabajtów danych na sekundę.
- Szyfrowanie. Kopie zapasowe mogą być szyfrowane po stronie klienta przy użyciu AES-256 GCM. Ten tryb uwierzytelnionego szyfrowania (AE) zapewnia bardzo wysoką wydajność na nowoczesnym sprzęcie. Oprócz szyfrowania po stronie klienta, wszystkie dane są przesyłane przez bezpieczne połączenie TLS.
- Ochrona przed oprogramowaniem ransomware. Chroń swoje krytyczne dane przed atakami ransomware dzięki precyzyjnej kontroli dostępu Proxmox Backup Server, weryfikacji integralności danych i tworzeniu kopii zapasowych poza siedzibą firmy poprzez zdalną synchronizację i tworzenie kopii zapasowych na taśmach.
- interfejs sieciowy. Zarządzaj serwerem Proxmox Backup Server za pomocą zintegrowanego, internetowego interfejsu użytkownika.
- Bez limitów. Proxmox Backup Server nie ma sztucznych ograniczeń dotyczących przechowywania kopii zapasowych ani klientów kopii zapasowych.
Podejście do tworzenia kopii zapasowych w dużej mierze zależy od charakteru danych
Na podstawie ważności danych i odporności na awarie możesz wybrać podejście, które najlepiej Ci odpowiada. Oto kilka pomysłów, które wymyśliłem podczas korzystania z Proxmox:
jeśli codzienna kopia zapasowa działa dobrze, a potencjalną utratę danych, która może wystąpić w czasie między 2 kopiami zapasowymi, można dość łatwo odzyskać (pomyśl o statycznych stronach internetowych lub usługach, np. VPN), sugerowałbym skonfigurowanie okresowych automatycznych kopii zapasowych maszyn wirtualnych i ograniczenie liczba kopii zapasowych przechowywanych na maszynę wirtualną. Np. możesz skonfigurować codzienne kopie zapasowe, które będą uruchamiane o 1 w nocy i mieć limit 14 kopii zapasowych, co zapewni ci kopię zapasową każdego dnia przez ostatnie 2 tygodnie. W zależności od tego, jakie masz ograniczenia, możesz zoptymalizować przestrzeń (kompresja gzip), prędkość (brak kompresji) lub coś, co jest pośrodku (LZO). Osobiście mam codzienne kopie zapasowe z ostatnich 2 tygodni przechowywane na zewnętrznym dysku USB. Jeśli Twoje dane na maszynach wirtualnych staną się nieaktualne w ciągu kilku godzin, sugeruję przejrzenie migawek. Możesz ustawić zadanie crona uruchamiane co godzinę. Pamiętaj, że jeśli chcesz przechowywać stan maszyny wirtualnej (RAM), potrzebujesz dużo pamięci RAM i przyzwoitych dysków SSD (najlepiej NVMe/PCIe), ponieważ może to zająć trochę czasu. Jeśli twoje maszyny mają krytyczne znaczenie dla misji, powinieneś rozważyć zakup drugiego serwera i utworzenie klastra HA. W większości przypadków może to być przesada, ale pozwala uniknąć wielu problemów związanych z awariami urządzeń z pojedynczym punktem awarii. Nie ma gotowej kopii zapasowej dla samego Proxmox OS. Z drugiej strony, z mojego doświadczenia wynika, że wdrożenie Proxmox od podstaw nie stanowi problemu. Może to spowodować 15-30 minut przestoju, ale jeśli system operacyjny padł, zwykle są większe problemy, które są pilniejsze i trudniejsze do rozwiązania.
Przydatne adresy odnośnie Proxmox Backup Server
- https://pbs.proxmox.com/docs/introduction.html#architecture
- https://pve.proxmox.com/wiki/Backup_and_Restore
- https://pbs.proxmox.com/docs/prune-simulator/index.html
- https://www.thomas-krenn.com/en/wiki/Proxmox_Backup_Server_configuration
- GitHub – tteck/Proxmox: Proxmox VE Helper Scripts
Przygotowanie maszyny wirtualnej do instalacji Proxmox Backup Server
Zalecane wymagania systemowe serwera:
- Procesor: nowoczesny 64-bitowy procesor AMD lub Intel, z co najmniej 4 rdzeniami.
- Pamięć: minimum 4 GiB dla systemu operacyjnego, pamięci podręcznej systemu plików i demonów Proxmox Backup Server. W moim przypadku 2 GB w zupełności wystarczy.
- 32 GiB lub więcej przestrzeni dyskowej. Moim zdaniem 16 GB wystarczy w zupełności.
- Użyj sprzętowej macierzy RAID z pamięcią podręczną zapisu chronioną baterią (BBU) lub nadmiarową konfiguracją ZFS (ZFS nie jest kompatybilny ze sprzętowym kontrolerem RAID).
- Magazyn kopii zapasowych: Aby uzyskać najlepsze wyniki, używaj tylko dysków SSD
- Jeśli używane są dyski twarde: wysoce zalecane jest użycie pamięci podręcznej metadanych, na przykład dodanie specjalnego urządzenia lustrzanego ZFS.
- Nadmiarowe karty sieciowe Multi-Gbit/s (NIC)
Więcej informacji o zalecanych wymaganiach sprzętowych można znaleźć na stronie https://www.proxmox.com/en/proxmox-backup-server/requirements
# wykorzystanie dysku 16GB po instalacji i konfiguracji df -h Filesystem Size Used Avail Use% Mounted on udev 950M 0 950M 0% /dev tmpfs 197M 852K 197M 1% /run /dev/mapper/pbs-root 12G 5.0G 6.0G 46% / tmpfs 985M 0 985M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 197M 0 197M 0% /run/user/0
Instalacja Proxmox Backup Server jako maszyna wirtualna Proxmox VE
Instalacja jest banalnie prosta i sprowadza się do 3 głównych kroków:
- Ściągamy ze strony Get the free Proxmox Backup Server ISO installer plik ISO i wrzucamy go do Datastore Proxmox VE gdzie mamy obrazy ISO (u mnie jest to udział NFS o nazwie isostore-01)
- Konfigurujemy maszynę wirtualną o nazwie pbs, id np. 121 z 4 vCPU / 2 GB RAM / 16 GB HDD
- Wybieramy w instalatorze dysk do instalacji, podajemy hasło root-a, definiujemy nazwę sieciową oraz statyczny adres ip np. 192.168.8.21 i pbs.netapps.ovh
Konfiguracja systemu po instalacji
Repozytoria no-subscription i aktualizacja systemu
# usunięcie niepotrzebnych repozytoriów wymagających subskrypcji rm -rf /etc/apt/sources.list.d/pbs-enterprise.list # ustawienie prawidłowych repozytoriów nie wymagających subskrypcji nano /etc/apt/sources.list deb http://ftp.debian.org/debian bullseye main contrib deb http://ftp.debian.org/debian bullseye-updates main contrib deb http://security.debian.org/debian-security bullseye-security main contrib deb http://download.proxmox.com/debian/pbs bullseye pbs-no-subscription # aktualizacja systemu apt update && apt upgrade # w razie potrzeby apt autoremove
Gotowe skrypty konfiguracyjne po instalacji Proxmox Backup Server
Dla wygody można skorzystać z gotowych skryptów do konfiguracji repozytoriów i usunięcia informacji o braku subskrypcji.
# https://github.com/Tontonjo/proxmox_toolbox wget -qO proxmox_toolbox.sh https://raw.githubusercontent.com/Tontonjo/proxmox_toolbox/main/proxmox_toolbox.sh && bash proxmox_toolbox.sh # lub bash -c „$(wget -qLO – https://github.com/tteck/Proxmox/raw/main/misc/post-pbs-install.sh)”
Instalacja narzedzia qemu-guest-agent w wirtualnej maszynie PBS
apt-get install qemu-guest-agent systemctl start qemu-guest-agent # z konsoli serwera Proxmox VE qm agent 121 ping
Instalacja kernela 6.x
apt install pve-kernel-6.2 reboot
Ustawienie prawidłowej strefy czasowej oraz synchronizacji z serwerami internetowymi czasu
# ustawienie strefy czasowej timedatectl set-timezone Europe/Warsaw # instalacja chrony apt install chrony systemctl start chrony systemctl enable chrony # sprawdzenie czy chrony się aktualizuje chronyc sources -v chronyc tracking
Dostęp do konsoli Proxmox Backup Server
# jeśli nie mamy skonfugurowanego lokalnego DNS-a wskazującego na adres ip PBS https://192.168.8.21:8007/ # jeśli mamy skonfigurowany lokalny DNS wskazujący lokalny adres ip PBS na nazwę domenową np. https://pbs.netapps.ovh:8007/
Dodanie nowego użytkownika do Proxmox Backup Server
Nowy użytkownik o nazwie np. pbsclient posłuży do podłączenia storage z backupem PBS z poziomu konsoli Proxmox VE. Wchodzimy w menu Configuration – Access Control – Add
Dodanie nowego Datastore do przechowywania backupów
Magazyn danych (Datastore) odnosi się do lokalizacji, w której przechowywane są kopie zapasowe. Bieżąca implementacja wykorzystuje katalog w standardowym systemie plików Unix (ext4, xfs lub zfs) do przechowywania danych kopii zapasowej. Magazyny danych są identyfikowane za pomocą prostego identyfikatora. Można to skonfigurować podczas konfigurowania magazynu danych. Informacje konfiguracyjne dla magazynów danych są przechowywane w pliku /etc/proxmox-backup/datastore.cfg.
Dodanie lokalnego dysku wirtualnego do PBS jako Datastore
Z poziomu konsoli Proxmox VE dodajemy nowy dysk np. 256 GB do zasobów wirtualnej maszyny PBS.
# sprawdzenie czy nowo dodany dysk do wirtualnej maszyny pojawił się w systemie
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 16G 0 disk
├─sda1 8:1 0 1007K 0 part
├─sda2 8:2 0 512M 0 part
└─sda3 8:3 0 15.5G 0 part
├─pbs-swap 253:0 0 1.9G 0 lvm [SWAP]
└─pbs-root 253:1 0 11.8G 0 lvm /
sdb 8:16 0 256G 0 disk
sr0 11:0 1 1024M 0 rom
# tworzymy 1 partycję Linux na dysku /dev/sdb (256 GB)
fdisk /dev/sdb
n -> p -> {enter} -> {enter} -> w
# formatujemy nową partycję w systemie plików EXT4
mkfs -t ext4 /dev/sdb1
# montujemy ją w katalogu /mnt/backupstore-local/
mkdir -p /mnt/backupstore-local/
mount /dev/sdb1 /mnt/backupstore-local/
# dodajemy ją do /etc/fstab aby była montowana przy starcie systemu
cat /proc/mounts | tail -n 1 >> /etc/fstab
# montujemy na próbę zapisy w /etc/fstab
mount -a
Wchodzimy w konsolę GUI PBS-a w menu Datastore – Add Datastore i dodajemy nasz punkt montowania /mnt/backupstore-local/ jako nowy Datastore o nazwie backupstore-local. Możemy od razu wybrać odpowiednie opcje Prune Options, w tym przypadku na tym Datastore będzie trzymane nie więcej niż 14 backupów danej maszyny wirtualnej Proxmox. Na koniec należy jeszcze dodać uprawnienia do nowego Datastore dla poprzednio założonego użytkownika pbsclient najlepiej jako DatastoreAdmin. Więcej o administracji użytkownikami PBS można znaleźć na stronie https://pbs.proxmox.com/docs/user-management.html
Dodanie udziału NFS do PBS jako Datastore
Tworzenie chunkstore może potrwać na dużym dysku sieciowym dość długo i aby uniknąć timeoutów z interfejsu GUI najlepiej jest podłączać Datastore z NFS z linii komend serwera Proxmox Backup Server. Należy również pamiętać o nadaniu odpowiednich uprawnień użytkownikowi np. pbsclient do Datastore.
# tworzymy punkt montowania mkdir /mnt/backupstore # montujemy zdalny udział sieciowy /backup_pbs do lokalnego folderu /mnt/backupstore mount -t nfs 192.168.8.28:/backup_pbs /mnt/backupstore/ #tworzymy datastore o nazwie backupstore korzystający z punktu montowania /mnt/backupstore proxmox-backup-manager datastore create backupstore /mnt/backupstore/
Więcej informacji o przygotowaniu serwera NFS do udostępnienia udziału na potrzeby Proxmox Backup Server można znaleźć na stronie Konfiguracja openmediavault jako dysku nas i centrum składowania różnych danych w sieci – IT Admin (vblog.ovh)
Instalacja certyfikatu SSL Let’s Encrypt dla Proxmox Backup Server
Po każdorazowej wymianie certyfikatu SSL na serwerze Proxmox Backup Server należy uaktualnić Fingerprint Datastore PBS w konsoli Proxmoxe VE. Opis instalacji oraz odnowienia certyfikatu SSL Let’s Encrypt dla Proxmox Backup Server znajduje się tutaj Let’s Encrypt wildcard dystrybucja certyfikatu SSL w sieci wewnętrznej – IT Admin (vblog.ovh)
Planowanie harmonogramu retencji backupu danych
Symulator do eksperymentowania z różnymi harmonogramami tworzenia kopii zapasowych i opcjami czyszczenia https://pbs.proxmox.com/docs/prune-simulator/index.html
Ustawienie opcji automatycznego czyszczenie ze starych backupów
Zadania czyszczenia są skonfigurowane do okresowego czyszczenia magazynu danych lub jego podzbioru. Możesz zarządzać zadaniami przycinania w interfejsie internetowym, z karty Przycinanie i GC panelu Datastore lub z samego Datastore. Alternatywnie możesz nimi zarządzać za pomocą polecenia proxmox-backup-manager prune-job. Informacje o konfiguracji zadań przycinania są przechowywane w pliku /etc/proxmox-backup/prune.cfg. Aby utworzyć nowe zadanie przycinania, kliknij przycisk dodawania w graficznym interfejsie użytkownika lub użyj podrzędnego polecenia tworzenia w interfejsie wiersza polecenia menedżera. Po utworzeniu zadania przycinania możesz uruchomić je ręcznie z interfejsu GUI lub ustawić harmonogram , aby był uruchamiany regularnie jak w tym przypadku codziennie o 6-ej rano.
Ustawienie opcji Garbage collection
Wyrzucanie elementów bezużytecznych (GC) to proces, który zwalnia miejsce w magazynie danych poprzez usunięcie wszystkich nieużywanych fragmentów kopii zapasowych z magazynu fragmentów. GC kończy czyszczenie migawek kopii zapasowych, które usuwa tylko metadane, a nie bazowe dane kopii zapasowej. Zaleca się skonfigurowanie harmonogramu, aby upewnić się, że nieużywane miejsce jest okresowo czyszczone. W przypadku większości konfiguracji tygodniowy harmonogram zapewnia dobry odstęp czasowy do rozpoczęcia. W tym przypadku ustawiona jest sobota 23:30.
Ustawienie automatycznej weryfikacji backupu
Na wybranym Datastore – Verify Jobs – Add. W tym przykładzie wyryfikacja jest codziennie o 3-ej rano po zakończeniu backupu startującego o 00:15. Dobrze jest na koniec ustawić w Options – Notify w jakim przypadku i kogo powiadamiać emailowo o weryfikacji, czyszczeniu, usuwaniu śmieci.
Dodanie Storage PBS do Proxmox VE
Więcej informacji o dodaniu storage Proxmox Backup Server do Proxmox VE można znaleźć na stronie Proxmox VE – backup maszyn wirtualnych – IT Admin (vblog.ovh)
Backup maszyn wirtualnych Proxmox VE
Więcej informacji o samym procesie backupu maszyn wirtualnych Proxmox VE można znaleźć na stronie Proxmox VE – backup maszyn wirtualnych – IT Admin (vblog.ovh)
Powiadamianie emailowe o czyszczeniu i weryfikacji backupów
Opis ustawienia lokalnego serwera Postfix na potrzeby wysyłania emaili przez zewnętrzny serwer pocztowy znajduje się na stronie Proxmox VE – powiadamianie emailowe przez Postfix na zewnętrzny serwer poczty – IT Admin (vblog.ovh)



















