1. Úvod

Proxmox backup server (dále jen PBS) je dlouhodobě velmi očekávané řešení pro potřeby profesionálního firemního zálohování na virtualizační platformě od společnosti Proxmox Server Solutions GmbH. S PBS můžeme zálohovat kontejnery, virtuální stroje anebo i bare metaly a to jednoduše, rychle a bezpečené. Jedná se o řešení postavené na architektuře klient-server.

Zdroj: https://pbs.proxmox.com/wiki/index.php/Main_Page#/media/File:Proxmox-Backup-Server-Dashboard.png
Zdroj: https://pbs.proxmox.com/wiki/index.php/Main_Page#/media/File:Proxmox-Backup-Server-Dashboard.png

Úvodní Datasheet o prezentaci výhod PBS

2. Kam jej umístit?

PBS může být nainstalován na více místech. Pro potřeby práce ve vývoji nebo z hlediska úsporných variant jej můžete nainstalovat ve virtualizaci, anebo přímo na nějaký bare metal. Jak jistě usoudíme, mnohem lepší smysl dává umístit jej na bare-metal, získáte tím několik benefitů:

  1. Offloadujete zálohovací zátěž na samostatný stroj a nebudete si tím zpomalovat vlastní produkční infrastrukturu.
  2. Budete mít lepší možnost práce se ZFS a disky.

Tento výčet není konečný. PBS může být jen jako přechodový můstek a můžete třeba z nějaké synology NAS namoutit přes NFS/iSCSI svazky a odesílat zálohy tam. Dokonce umístění PBS ve virtualizaci na tom samém node má své opodstatnění, ale jak jistě pochopíte, není to dobré do produkce. Hodí se to, když:

  1. Máte omezený budget a nemáte finance na samostatné železo.
  2. Chcete s PBS experimentovat, oťukávat se s ním.

I tak, zde dává smysl zůstávat u nativního proxmox zálohování anebo si nechat zálohování potřešit na úrovni souborového systémů (třeba pomocí ZFS snapshots nebo CEPH RBD mirroring)

3. Instalace a napojení PBS na PVE

3.1 Instalace PBS

Instalace PBS je velmi snadná a zde jsou požadavky na server.

Minimální systémové požadavky pro rozběhnutí PBS jsou:

  • CPU: 64bit (x86-64 or AMD64), 2+ jádra
  • 2GB RAM
  • 8GB místa
  • Síťová karta

Doporučené systémové prostředky jsou:

  • CPU: Moderní AMD or Intel 64-bit CPU, s minimálně 4 jádry.
  • Minimálně 4 GiB RAM a pak co 1TB dat to 1GB RAM
  • OS prostor: 32 GiB
  • Backup storage: Uživejte pouze SSD, nebo rotační disky s SLOG na SSD
  • Redundantní NIC

Správci Connectica s.r.o. doporučují - nepoužívejte hw řadiče. Pokud se ZFS teprve začínáte, můžete si způsobit mnoho bolesti na produkci.

Na dedikovaný stroj stačí nainstalovat Debian10 v čisté instalaci a provést editaci Debian repozitářů v /etc/apt/sources.list

deb http://ftp.debian.org/debian buster main contrib
deb http://ftp.debian.org/debian buster-updates main contrib
# security updates
deb http://security.debian.org/debian-security buster/updates main contrib

Nainstalujte pgp klíč

wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg

ověřte, že je v pořádku a zkontrolujte checksum

sha512sum /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg
md5sum /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg

Pro potřeby vývoje je vhodné do /etc/apt/sources.list přidat testovací repozitář na hraní

deb http://download.proxmox.com/debian/pbs buster pbstest

Nemáte-li subscripci, dejte tento repozitář:

deb http://ftp.debian.org/debian buster main contrib
deb http://ftp.debian.org/debian buster-updates main contrib

# PBS pbs-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pbs buster pbs-no-subscription

# security updates
deb http://security.debian.org/debian-security buster/updates main contrib

Instalce PBS proběhne sumou příkazů:

apt-get update
apt-get install proxmox-backup-server
apt-get install proxmox-backup
apt-get install proxmox-backup-client

3.2 Napojení PBS na PVE

PBS napojíme na Proxmox virtual enviroment (PVE) strašně snadno. Na PVE v sekci datacenter - storage klikneme na add a přidáme Proxmox backup server, kde zadáme základní údaje jak jsou popsány v printscreenu

a dojde k napojení PBS na PVE. PBS na PVE můžeme také napojit mnohem rychleji přes CLI.

pvesm add pbs store2 --server localhost --datastore store2
pvesm set store2 --username user1@pbs --password <secret>

pozor! Username zadávejte root user, jinak napojení PVE na PBS zlobí.

4. Rozdíly mezi PBS a nativním zálohováním

Pojďme si vyjmenovat hlavní rozdílnosti mezi nativním zálohováním Proxmoxu a PBS

4.1 Hlavní výhody PBS oproti nativnímu zálohování

Rychlost

PBS je pro prvních pár snapshotů pomalé, ale poté začne být zálohování extrémně rychlé v závislosti na faktoru deduplikace. Nativní zálohování na Proxmoxu

Komprese

Zde bychom řekli, že komprese je si velmi podobná u obou řešení

Deduplikace

Jednoznačnou výhodou je deduplikace u PBS optoti nativnímu zálohování. Toto šetří obrovské množství datového prostoru a byť deduplikace na FreeNAS je problematická, tak tým stojícví za vývojem PBS udělal vynikající práci a deduplikace prostě funguje.

Inkrementální zálohování

PBS umí nastavit chytré retence záloh v sekci pruning. Tuto funkci nativní zálohování kompeltně postrádá.

Kontrola konzistence záloh

Další vynikající fičura, PBS umí provádět kontroly konzistence záloh, což celé řešení posouvá na profesionální úroveň.

Synchronizace se vzdáleným úložištěm

Vynikající na jedno kliknutí řešení, které umí zálohy PBS odlévat na jiný storage. Stejného cíle dosáhneme s nativním zálohováním Proxmoxu také a to tím, že budeme duplikovat zálohy.

Šifrování

Další z mnoha výborných fičur PSB. Zálohy je možno šifrovat.

4.2 Pozor na chunking

Nativní zálohování má jednotlivé zálohy umístěné jako jeden velký adresář a když takto zálohu vezmeme a přeneseme jinam, snadno ji obnovíme. Jenže PBS si data rozbíjí na kousky (chunks). Tedy pokud nám PBS padne, obnovy dokážeme udělat jen s pomocí jiného PBS. zde je ukázka, jak vypadá struktury PBS

root@pbs /mnt/datastore/Backup1 
drwxr-xr-x  6 backup backup 4.0K Mar 30 11:33 ./
drwxr-xr-x  3 root   root   4.0K Mar  9 23:48 ../
drwxr-x---  1 backup backup 1.1M Mar 30 12:39 .chunks/
-rw-r--r--  1 backup backup  303 Mar 30 11:33 .gc-status
drwxr-xr-x  3 backup backup 4.0K Mar 23 19:57 host/
-rw-r--r--  1 backup backup    0 Mar  9 23:48 .lock
drwx------  2 root   root    16K Mar  9 23:48 lost+found/
drwxr-xr-x 10 backup backup 4.0K Mar 10 13:11 vm/

a nás práve nějvíce zajíma adresář .chunks, který ale nemá smysl listovat celý, protože obsahuje jen sumu chunks (výpis je záměrně oseknutý, obsahuje cca 4000 adresářů)

root@pbs /mnt/datastore/Backup1/.chucks tree -f --prune
├── ./ff25
│   ├── ./ff25/ff254c19b3d261f83ec931d28f534b234b4d0cc9836ee2de88f7b2a966363ff0
│   └── ./ff25/ff2553837d4789503f02b12c89c9fd8382639d455b04c70ff880d3c44d6132bf
├── ./ff53
│   └── ./ff53/ff53d490a1d0db182d2bc74a84e152e6426dac78e455bc618d4b63e1040221ee
├── ./ff68
│   └── ./ff68/ff6879592cebe71560b9bc55696d1ff48d1572a712059239127ffdcb8b388342
├── ./ff9d
│   └── ./ff9d/
3897 directories, 4031 files

4.3 Rychlost zálohování

Zaměřme se na ožehavé téma - jaká je tedy rychlost zálohování? Pro zodpovězení tohoto dotazu jsme utvořili pronásledující setup o počtu 8 strojů ve virtualizaci, které mají minimální změny v čase a nechali stroje zálohovat jak pomocí PBS, tak pomocí nativního zálohování.

Výpočet záloh na PBS nám vychází v ukázkovém setupu o 50% úsporněji na kapacitu s tím, že retence záloh je dvojnásobná. Nyní máme na test celkem 8 strojů (5x MikroTik, 3x Debian10). Všechny si drží retenci 3 záloh pomocí nativního zálohování. Celkově to obsazuje 10GB místa. PBS nám udržuje retenci 7 záloh a spotřebovává kapacitu 4GB a deduplikační faktor je u hodnoty 120.

5. Example ukázka PBS

V tomto videu si ukážeme základní orientaci v grafickém prostředí PBS.

https://youtu.be/N86tUcWeTko

Ve videu zazněli následující pojmy, které je dobré si zapamatovat při práci s PBS:

Pruning

Je údržbová úloha, který umožňuje definovat retenci snapshotů v PBS a udržuje záznamy v indexech. Pro tuto potřeby práce s Pruningem vznikl simulátor prunování https://pbs.proxmox.com/docs/prune-simulator/

Garbage collection

Je údržbová úloha, která doplňuje pruning. Garbage collection zjednodušeně řečeno odmazává bloky. Nejdříve označí užívaná data a poté neužívaná data odmazává. K tomuto výkonu své práce nutně potřebuje mít přístup do indexového souboru a k chunk storage.

pxar

Proxmoxový souborový archivní formát. Nachází se v něm adresářový strom a obsah je rozhozen do chunků (bloků). Formát je optimalizovaný pro potřebu deduplikace.

catalog.pcat1

Uchovává index pro souborový archiv a pomáhá s urychlením vyhledávání dat.

Manifest.json

Obsahuje seznam všech zálohovaných souborů, jejich velikostí a checksumu. Slouží pro potřebu kontroly konzistence záloh.

fidx

Fixní indexový formát je formát potřebný k ukládání dat u určitém formátu.

blob

binární data jsou uchovaná v blobech v malých chunkách po 16MB a většinou obsahují konfigurační soubory

7. Závěr

PBS je přesně to, co velmi dlouhou dobu ve firemním prostředí pro tuto platformu chybělo, aby se dala nazvat plnohodnotným firemním řešením. Při celém zkoušení PBS nebyla nalezena sebemenší chyba či problém, který by bránil jakékoliv komplikaci. Celé řešení je nejen velmi vyzrálé, ale posouvá do buducna samotnou KVM virtualizaci o další úroveň. Velmi příjemné je, že lte na PBS zálohovat i bare metaly, nebo na PBS je možno napojit Proxmox mail gateway.

Celé zdrojové kódy PBS jsou k nahlédnutí v GIT repozitáři https://git.proxmox.com a dokumentace, ze které jsme čerpali je dostupná v anglickém jazyce https://pbs.proxmox.com/docs/

V dokumentaci najdete mnoho parádních tipů navíc, například některé fičury u PBS nejsou oficiálně oznámené, třeba možnost odlévaní záloh na páskové mechaniky https://pbs.proxmox.com/docs/tape-backup.html?highlight=index.

Snad v závěru odpustíte malou reklama. Budete-li potřebovat enterprise subscription pro svůj Proxmox Backup server, klidně nám napište na it@cnnc.cz a vyřídíme Vám jej v české měně od plátce DPH - Společnosti Connectica s.r.o.

[vc_row][vc_column][ultimate_heading main_heading="Nakoukněte co vše umíme dále ;)" spacer="line_only" spacer_position="middle" line_height="5" line_color="" main_heading_font_size="desktop:40px;" main_heading_line_height="desktop:46px;" line_width="200" main_heading_margin="margin-bottom:15px;" main_heading_style="font-weight:bold;" el_class="accent-border-color"][/ultimate_heading][dt_portfolio_carousel post_type="posts" order="asc" posts_offset="0" layout="gradient_overlay" content_alignment="center" image_border_radius="0px" post_date="n" post_category="n" post_author="n" post_comments="n" project_icon_border_width="0px" project_icon_color="#ffffff" project_icon_color_hover="#ffffff" arrow_bg_width="36x" arrow_border_width="0px" r_arrow_icon_paddings="0px 0px 0px 0px" r_arrow_v_offset="0px" l_arrow_icon_paddings="0px 0px 0px 0px" l_arrow_v_offset="0px" posts=""][/vc_column][/vc_row]