Proxmox Backup Server
Sissejuhatus
TODO
Mõisted
- PBS - Proxmox Backup Server
- PVE - Proxmox Virtualization Environment
- DS - datastore
- NS - namespace
- GC - garbage collect
- Purne -
Tööpõhimõte
Väited
- PBS vaikimisi pakib, st ei ole mõtet kasutada PBS storage juures pakkivat failisüsteemi vms (nt 'zfs create -o compression=lz4 ...' vms; tundub, et failisüstteemi pakkimise kasutmine ei muuda varundamiseks kuluvat aega ega mahtu, aga pbs serverile tekib natuke rohkem cpu koormust)
- PBS tegleb ise pakkimisega ja paistab, et seda ei saagi välja lülitada (nt proxmox pve webgui haldusliideses backup käivitamise on 'Compression: ZSTD (fast and good)' greyed-out
- mitu PSB serverit saab omavahel nö kokku aheldada, tulemusena tekib mitme etapiline varundus (varundus varundab varundust)
Kasutusalad
- varundatud ja riknenud arvuti asendamine varundusest taastatud arvutiga
- varundatud arvuti taastamine teisse proxmox klastrisse (nt kontrolli või uuringu eesmärgil)
Üks võimalik kasutusjuhtum
pve-1 pve-2 pve-n _________ _________ _________ | | | | | | | vm1,vm2 | | vm3,vm4 | | vm5,vm6 | |_________| |_________| |_________| | | | | | | ------|---------------|------|--------|-------------|----------- | | | | | | ____|____ ____|____ '-----------> | | | | | | <-------- | | |_________| |_________| pbs-1st pbs-2nd
kus
- pve-1, 2 ja 3 on proxmox virtual environment host arvutid
- vm1, vm2 ... vm6 on pve peal töötavad virtuaalsed arvutid
- pbs-1st on proxmox backup server abil realiseeritud esimese taseme varundus
- pbs-2nd on proxmox backup server abil realiseeritud teise taseme varundus
- pve-1 ... 3 peavad reeglina asuma samas subnetis
- pbs-1st ja 2nd ei pea asuma samas subnetis pve arvutitega ega ise üksteisega
Varundamisega seotud võrguliiklus
- andmeliikluse algamise mõttes pöörduvad nii vmN arvutid kui pbs-2nd arvuti pbs-1st arvuti poole
Paigaldamine
TODO
Kasutatamine - varundamine
TODO
Seadistatud ja varundamisega tegelevas PBS serveris on muu hulgas sellised failid
- datastore'ide kirjeldus - /etc/proxmox-backup/datastore.cfg
- proxmox kasutajatega seotud andmed - shadow.json, user.cfg ja acl.cfg
- 2nd stage kopeerimise ligipääsu kirjeldus - /etc/proxmox-backup/remote.cfg
Kasutatamine - taastamine
TODO
Haldamine
Tundub, et pbs tarkvara juhtimiseks on kaks käivitusskripti, seiskamiseks
# systemctl stop proxmox-backup-proxy # systemctl stop proxmox-backup
käivitamiseks
# systemctl stop proxmox-backup # systemctl stop proxmox-backup-proxy
proxmox-backup-proxy kuulab 8007 võrku, apt teenus jms
root@varundus-2nd:/srv# netstat -lnpt | grep backup tcp 0 0 127.0.0.1:82 0.0.0.0:* LISTEN 3461/proxmox-backup tcp6 0 0 :::8007 :::* LISTEN 3476/proxmox-backup root@varundus-2nd:/srv# ps aux | grep 3476 backup 3476 16.6 1.6 844856 51096 ? Ssl 21:59 0:32 /usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-proxy
Andmesalvestuse asukohtade jms seadistused asuvad failis
root@pbs:~# cat /etc/proxmox-backup/datastore.cfg datastore: ds_zpool_wds_pbs comment gc-schedule daily path /zpool_wdc/pbs prune-schedule daily ...
PBS schedule kasutamine
Väited
- virtuaalsete arvutite regulaarsed varundamised seadistatakse Proxmox VE keskkonnas (nt proxmox hostide webgui haldusliidestes)
- varundamine toimib proxmox host algatusel
- varundatud varunduste regulaarne harvendamine toimub proxmox backup serveri webgui haldusliideses seadistatu alusel; ja pbs algatusel
- Prune - tegeleb nö kataloogist vana varunduse eemaldamisega
- GC (garbage collection) - tegeleb kataloogist kustatule vastavate andmete osa vabastamisega salvestusseadmelt
Regulaarsete varundamiste seadistamine - PVE
Virtuaalse arvuti regulaarse varundamise seadistamiseks sobib virtuaalse arvuti juures veenduda, et plokkseadmete juures ei ole märget
backup=0
Seejärel avada
Datacenter -> Backup -> Add (või Edit kui juba on olemas)
ning linnutada ära sobiv arvuti.
Regulaarsete kustutamise seadistamine - PBS
Logida sisse varundamise arvutisse ja valida
Datastore -> ds_nimi -> Prune & GC
ning seadistada Prune rutiin
- Keep Last
- Keep Hourly
- ..
- Keep Yearly
ning seadistada Prune ja CG alguse aeg.
Protected
Vaikimisi prunemine kustutab hiljem või varem kõik varundused ära. Kui soovitakse mõnda seisu (olgu see moodustunud automaatselt või käsitsi) säilitada lõpmatult kaua, siis sobib märkida ta Protected olekusse. Seda saab teha PVE 7.1 webgui liideses, ja PBS v. 2.1 webgui liidses
Datastore -> ds_nimi -> Content -> Group -> snapshot
- group - virtuaalne arvuti
- snapshot - konkreetsele ajale vastav varundus
Kõigi toimunud varunduste protected olekusse seadistamiseks sobib öelda
# export PBS_PASSWORD="xxx" # cat pbs-protected.sh for i in `proxmox-backup-client list --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff | awk {'print $2'} | grep "^vm"`; do for j in `proxmox-backup-client snapshot list ${i} --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff | awk {'print $2'} | grep ^vm`; do proxmox-backup-client snapshot protected update ${j} true --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff; done; done # sh pbs-protected.sh
Edukast tulemusest annab tunnistust varunduste Content vaates, et snaphost real on Protected pildike muutunud hallist roheliseks.
Prune simulator
Aadressil https://pbs.proxmox.com/docs/prune-simulator/ asub tore simulaator, mille abil illustreeritakse milliseid konkreetseid varundusi prunemine tabab.
Märkused
Varundamise kasutamine võib olla lihtsam ja varundus kvaliteetsem (kooskõlalisem) kui varundatavate arvutite failisüsteemid ei ole laiali määritud mitmele plokkseadmele (nt lvm volume group asub ühel virtio plokkseadmel).
Kasulikud lisamaterjalid
PVE integreeritud varunduse kasutamine proxmox-backup-client abil
PVE integreeritud varunduse kasutamiseks on vaja
- varundatud andmeid PBS serveris
- varunduse serverile üle nn api port 8007 liidese ligipääsu
- teada datastore nime varunduse arvutis
- nö klientarvutit kuhu on paigaldatud proxmox-backup-client tarkvara (see võiks olla nö kolmas arvuti, st mitte pbs ega varundatud arvuti ise)
Varundatud arvutite nimekirja küsimine (nn group'id)
# proxmox-backup-client list --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff Password for "pm60-trt@pbs":
Varundatud arvuti varunduste nimekirja küsimine (nn snapshot'id)
# proxmox-backup-client snapshot list vm/194 --output-format text --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff ┌─────────────────────────────┬────────┬────────────────────────────────────────────────────────────────────────────┐ │ snapshot │ size │ files │ ╞═════════════════════════════╪════════╪════════════════════════════════════════════════════════════════════════════╡ │ vm/194/2021-01-02T13:23:12Z │ 34 GiB │ client.log drive-virtio0.img drive-virtio1.img index.json qemu-server.conf │ ├─────────────────────────────┼────────┼────────────────────────────────────────────────────────────────────────────┤ │ vm/194/2021-01-02T14:26:53Z │ 34 GiB │ client.log drive-virtio0.img drive-virtio1.img index.json qemu-server.conf │ ├─────────────────────────────┼────────┼────────────────────────────────────────────────────────────────────────────┤ │ vm/194/2021-10-09T20:59:42Z │ 34 GiB │ client.log drive-virtio0.img drive-virtio1.img index.json qemu-server.conf │ └─────────────────────────────┴────────┴────────────────────────────────────────────────────────────────────────────┘
Protection muutmine
# proxmox-backup-client snapshot protected update vm/194/2021-01-02T13:23:12Z true --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff # proxmox-backup-client snapshot protected update vm/194/2021-01-02T13:23:12Z false --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff
Tõmmise kasutamine
# proxmox-backup-client map vm/106/2021-02-20T21:27:29Z drive-virtio0.img --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff # proxmox-backup-client map vm/106/2021-02-20T21:27:29Z drive-virtio1.img --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff # proxmox-backup-client map vm/106/2021-02-20T21:27:29Z drive-virtio2.img --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff
kui virtuaalses arvuti on moodustatud neile nt lvm, siis tuleks öelda
# vgchange -a y # lvdisplay # mount -o ro,norecovery /dev/sys/root /mnt/root
Seejärel saab /mnt/root alt kasutada varundatud seisu nii nagu tavalist read-only failisüsteemi. Kasutamise lõpetamiseks sobib öelda
# umount /mnt/root # vgchange -a n # proxmox-backup-client unmap drive-virtio0.img # proxmox-backup-client unmap drive-virtio1.img # proxmox-backup-client unmap drive-virtio2.img
ilma viimase argumendita esitatakse mapped ressursside nimekiri
# proxmox-backup-client unmap /dev/loop26: pm60-trt@pbs@192.168.99.199:8007:ds_zpool_wds_pbs_coff:vm/106/2021-02-20T21:27:29Z/drive-virtio2.img /dev/loop25: pm60-trt@pbs@192.168.99.199:8007:ds_zpool_wds_pbs_coff:vm/106/2021-02-20T21:27:29Z/drive-virtio1.img /dev/loop24: pm60-trt@pbs@192.168.99.199:8007:ds_zpool_wds_pbs_coff:vm/106/2021-02-20T21:27:29Z/drive-virtio0.img
proxmox-backup-client nn kolmanda arvuti ettevalmistamine
Esmalt paigaldada Ubuntu 20.04 või Debian v. 10 või v. 11 nö tavaliselt viisil. Seejärel lisada repo võti, nt Ubuntu 20.04 puhul
# wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg
Moodustada source fail
# cat /etc/apt/sources.list.d/pbs-client.list deb [arch=amd64] http://download.proxmox.com/debian/pbs-client buster main
Paigaldada tarkvara
# apt-get update # apt-get proxmox-backup-client
Namespace kasutamine
TODO
root@tmp-pbs:~# proxmox-backup-client namespace list --repository root@pam@tmp-pbs.sise.moraal.ee:ds_tmp_tmp Password for "root@pam": ************ root@tmp-pbs:~# proxmox-backup-client namespace create tere --repository root@pam@tmp-pbs.sise.moraal.ee:ds_tmp_tmp root@tmp-pbs:~# proxmox-backup-client namespace list --repository root@pam@tmp-pbs.sise.moraal.ee:ds_tmp_tmp tere
Misc
PBS töötamise käigus kasutatakse katalooge selliselt
# ls -ld /srv/pbs-rmt/* /srv/pbs-rmt/ns/* /srv/pbs-rmt/.chunks /srv/pbs-rmt/ns/tmp-pve-1/vm/5001/*/* drwxr-x--- 1 backup backup 1060864 Dec 17 16:27 /srv/pbs-rmt/.chunks drwxr-xr-x 3 backup backup 4096 Dec 17 16:33 /srv/pbs-rmt/ns drwxr-xr-x 3 backup backup 4096 Dec 17 16:33 /srv/pbs-rmt/vm drwxr-xr-x 3 backup backup 4096 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tartu drwxr-xr-x 3 backup backup 4096 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn -rw-r--r-- 1 backup backup 627 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z/client.log.blob -rw-r--r-- 1 backup backup 86016 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z/drive-virtio0.img.fidx -rw-r--r-- 1 backup backup 422 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z/index.json.blob -rw-r--r-- 1 backup backup 355 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z/qemu-server.conf.blob ...
kus
- /srv/pbs-rmt/ns/ns-pve-tartu - konkreetsele namespace'ile vastav kataloog, tõenäoliselt varundatakse ühe namespace alla ühte pve setup'i (kas standalone proxmox või pve klaster); üks pbs võimaldab namespace instrumendi abil teenindada mitmete pve setup'ide varundamist seejuures vältides vmid väärtuste jms konflikte
- /srv/pbs-rmt/.chunks - varundatud andmed (siin toimub dedupleerimine, pakkimine jms) - seal on koos kõigi namespace'ide alla kuuluvad andmed
- /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z - arvuti vmid=5001 ühele konkreetsele varunduskorrale (tavaliselt on selliseid kuupäeva + kellaaeg nimelisi kataloogi mitu) vastvad metaandmeid; selle info abil oskab pbs taastada sh leiab üles .chunks kataloogist vajalikud varundatud andmed
- /srv/pbs-rmt/vm - namespace eelse aja varunduskorra metaandmete kataloog