[TUTORIAL] Proxmox Virtual Environment backup und recovery mit Proxmox Backup Server

fpausp

Renowned Member
Aug 31, 2010
642
44
93
Austria near Vienna
Möchte gerne eine Anleitung ausarbeiten wie man einen PVE-Server komplett von einem PBS-Backup restauriert. Der neue PVE sollte von Proxmox-ISO installiert werden können und anschließend mit dem Backup vom PBS wiederhergestellt werden können. Gibt es hierfür vielleicht eine offizielle Handlungsanleitung?

Was ich bis jetzt versucht habe ist die Sicherung des PVE auf den PBS mit:
Code:
proxmox-backup-client backup root.pxar:/ \
--include-dev /etc/pve \
--include-dev /boot \
--include-dev /boot/efi \
--skip-lost-and-found yes \
--repository backup@pbs@hostname-of-storage:name-of-storage \
--keyfile /path/to/my/keyfile.enc

Das Auflisten der Backups mit:
Code:
proxmox-backup-client list --repository backup@pbs@hostname-of-storage:name-of-storage

Und das Zurückkopieren mit:
Code:
proxmox-backup-client restore \
--repository root@pam@pvestor01:8007:pvestor01pbs \
host/hostname-of-storage/2021-05-14T12:27:10Z root.pxar /root/test/ \
--keyfile /path/to/my/keyfile.enc

Was ich noch nicht weiß ist:
- passen die "--include-dev" oder muss da noch mehr rein
- ob man beim installieren die gleichen Parameter verwenden muss wie beim kaputten PVE
- wie man den neu installierten PVE mit den Backupdaten "füttern" muß
- ob es auch mit Clusternodes funktioniert
 
Last edited:
  • Like
Reactions: fireon
Was ich bis jetzt versucht habe ist die Sicherung des PVE auf den PBS mit:
Code:
#!/bin/bash

# variables
PATH=/tmp
NOW=$(/bin/date +%Y%m%d-%H%M%S)
FQDN=$(/bin/hostname -f)
HOSTNAME=$(/bin/hostname)
PBS=pbs-hostname
STORAGE=pbs-storagename
USER=backup@pbs

# tar-backup
/bin/mkdir -p $PATH/$NOW && cd $PATH/$NOW
/bin/tar -cvf $PATH/$NOW/$NOW-$FQDN.tar /root/. /etc/. /var/lib/pve-cluster/. /var/spool/cron/. /usr/share/kvm/.

# pbs-backup
PBS_PASSWORD='my-pbs-storage-password'
PBS_FINGERPRINT='my-pbs-fingerprint'
PBS_REPOSITORY=$USER@$PBS:$STORAGE
export PBS_PASSWORD
export PBS_FINGERPRINT
export PBS_REPOSITORY
/usr/bin/proxmox-backup-client backup root.pxar:$PATH/$NOW/ --keyfile /path/to/my/keyfile.enc

# cleanup
/bin/rm -rf $PATH/$NOW
/usr/bin/proxmox-backup-client prune host/$HOSTNAME --keep-last 2 --keep-daily 13 --keep-weekly 8 --keep-monthly 11 --keep-yearly 9 --repository=$USER@$PBS:$STORAGE

exit 0
 
Last edited:
Möchte das Backup auf einen neu installierten PVE kopieren und bekomme folgende Meldung:
Code:
root@pvestor01:~# proxmox-backup-client restore host/pvestor01/2021-05-27T13:01:12Z root.pxar /media/ --repository=backup@pbs@pvestor01:pvestor01pbs
Error: unable to open snapshot directory "/data/pvestor01pbs/host/pvestor01/2021-05-27T13:01:12Z" for locking - ENOENT: No such file or directory

Eine andere Idee wäre der Download des archivs mittels Browser, leider klappt das mit verschlüsselten Backups nicht:
1622121537582.png

Hat jemand eine Idee wie man das Backup am leichtesten auf den neu installierten Server bekommt?
 
OK, habs hinbekommen...
was war denn die lösung (damit auch andere davon profitieren können)?

Code:
Error: unable to open snapshot directory "/data/pvestor01pbs/host/pvestor01/2021-05-27T13:01:12Z" for locking - ENOENT: No such file or directory
im screenshot sehe ich auch kein backup das so heißt, nur host/pvestor01/2021-05-27T13:01:23Z und host/pvestor01/2021-05-27T13:01:34Z
 
was war denn die lösung (damit auch andere davon profitieren können)?
OK, zusammengefasst hab ich folgendes getestet:


1. Sicherung der PVE-Config täglich über cronjob mit:
Code:
#!/bin/bash

# variables
PATH=/tmp
NOW=$(/bin/date +%Y%m%d-%H%M%S)
FQDN=$(/bin/hostname -f)
HOSTNAME=$(/bin/hostname)
PBS=pbs-hostname
STORAGE=pbs-storagename
USER=backup@pbs

# tar-backup
/bin/mkdir -p $PATH/$NOW && cd $PATH/$NOW
/bin/tar -cvf $PATH/$NOW/$NOW-$FQDN.tar /root/. /etc/. /var/lib/pve-cluster/. /var/spool/cron/. /usr/share/kvm/.

# pbs-backup
PBS_PASSWORD='my-pbs-storage-password'
PBS_FINGERPRINT='my-pbs-fingerprint'
PBS_REPOSITORY=$USER@$PBS:$STORAGE
export PBS_PASSWORD
export PBS_FINGERPRINT
export PBS_REPOSITORY
/usr/bin/proxmox-backup-client backup root.pxar:$PATH/$NOW/ --keyfile /path/to/my/keyfile.enc

# cleanup
/bin/rm -rf $PATH/$NOW
/usr/bin/proxmox-backup-client prune host/$HOSTNAME --keep-last 2 --keep-daily 13 --keep-weekly 8 --keep-monthly 11 --keep-yearly 9 --repository=$USER@$PBS:$STORAGE

exit 0

2. Wiederherstellung der PVE-Config auf neu installiertem Server mit folgenden Schritten:
Code:
# Install new PVE from ISO:
...

# Login and create folder:
mkdir -p /root/test

# cd into folder:
cd /root/test

# Copy keyfile to new PVE:
scp root@<my-other-node>:/path/to/my/keyfile.enc /root/.ssh/

# Restore archive from PBS:
proxmox-backup-client restore host/pve01/2021-05-27T13:00:07Z root.pxar /root/test/ \
--repository=backup@pbs@<ip-of-my-storage>:<name-of-storage> \
--keyfile /path/to/my/keyfile.enc

# Extract tar archiv:
tar xvf 20210527-150007-FQDN.tar

# Backup /etc/network/interfaces and /etc/fstab
cp /etc/network/interfaces /etc/network/interfaces-sich && cp /etc/fstab /etc/fstab-sich

# Sync the files back:
rsync -avzr /root/test/root/ /root/
rsync -avzr /root/test/etc/ /etc/
rsync -avzr /root/test/usr/ /usr/
rsync -avzr /root/test/var/ /var/

# Edit /etc/network/interfaces and /etc/fstab if they are different!

# Cleanup:
rm -rf /root/test/

# Reboot the Node:
reboot

Der Name der Sicherung, bei mir host/pve01/2021-05-27T13:00:07Z, ist natürlich immer unterschiedlich und muss vorher bekannt sein...

Bitte testen und Feedback geben...
 
Last edited:
  • Like
Reactions: roxy
OK, zusammengefasst hab ich folgendes getestet:


1. Sicherung der PVE-Config täglich über cronjob mit:
Code:
#!/bin/bash

# variables
PATH=/tmp
NOW=$(/bin/date +%Y%m%d-%H%M%S)
FQDN=$(/bin/hostname -f)
HOSTNAME=$(/bin/hostname)
PBS=pbs-hostname
STORAGE=pbs-storagename
USER=backup@pbs

# tar-backup
/bin/mkdir -p $PATH/$NOW && cd $PATH/$NOW
/bin/tar -cvf $PATH/$NOW/$NOW-$FQDN.tar /root/. /etc/. /var/lib/pve-cluster/. /var/spool/cron/. /usr/share/kvm/.

# pbs-backup
PBS_PASSWORD='my-pbs-storage-password'
PBS_FINGERPRINT='my-pbs-fingerprint'
PBS_REPOSITORY=$USER@$PBS:$STORAGE
export PBS_PASSWORD
export PBS_FINGERPRINT
export PBS_REPOSITORY
/usr/bin/proxmox-backup-client backup root.pxar:$PATH/$NOW/ --keyfile /path/to/my/keyfile.enc

# cleanup
/bin/rm -rf $PATH/$NOW
/usr/bin/proxmox-backup-client prune host/$HOSTNAME --keep-last 2 --keep-daily 13 --keep-weekly 8 --keep-monthly 11 --keep-yearly 9 --repository=$USER@$PBS:$STORAGE

exit 0

2. Wiederherstellung der PVE-Config auf neu installiertem Server mit folgenden Schritten:
Code:
# Install new PVE from ISO:
...

# Login and create folder:
mkdir -p /root/test

# cd into folder:
cd /root/test

# Copy keyfile to new PVE:
scp root@<my-other-node>:/path/to/my/keyfile.enc /root/.ssh/

# Restore archive from PBS:
proxmox-backup-client restore host/pve01/2021-05-27T13:00:07Z root.pxar /root/test/ \
--repository=backup@pbs@<ip-of-my-storage>:<name-of-storage> \
--keyfile /path/to/my/keyfile.enc

# Extract tar archiv:
tar xvf 20210527-150007-FQDN.tar

# Backup /etc/network/interfaces and /etc/fstab
cp /etc/network/interfaces /etc/network/interfaces-sich && cp /etc/fstab /etc/fstab-sich

# Sync the files back:
rsync -avzr /root/test/root/ /root/
rsync -avzr /root/test/etc/ /etc/
rsync -avzr /root/test/usr/ /usr/
rsync -avzr /root/test/var/ /var/

# Edit /etc/network/interfaces and /etc/fstab if they are different!

# Cleanup:
rm -rf /root/test/

# Reboot the Node:
reboot

Der Name der Sicherung, bei mir host/pve01/2021-05-27T13:00:07Z, ist natürlich immer unterschiedlich und muss vorher bekannt sein...

Bitte testen und Feedback geben...
Guten Morgen,

ich hab das gerade mal "trocken" getestet und: Sieht sehr sehr gut aus, vielen Dank!!!
Was mir auffällt: Im Backup-Server taucht das Backup als Eintrag auf, in der Backup-Liste auf der PVE im Backup Datastore nicht, siehe Screenshots. Ist das bei Euch auch so?

LG,
Chris
 

Attachments

  • Screenshot 2021-07-27 at 08.33.41.png
    Screenshot 2021-07-27 at 08.33.41.png
    27 KB · Views: 39
  • Screenshot 2021-07-27 at 08.30.08.png
    Screenshot 2021-07-27 at 08.30.08.png
    50.6 KB · Views: 38
hallo fpausp,

du wolltest ja gern ein feedback von mir zu deiner Herangehensweise.

naja, im Prinzip is die Denke schon mal richtig und deckt sich mit den anderen Lösungen im Forum, aber

1. --include-dev sind falsch gedacht, denn keins davon ist ein mount, du sprichst mit den Verzeichnissen /boot und /boot/efi nicht /dev/sda1+2 an,
- diese werden bei Neuinstallation von Proxmox angelegt und sind in der Version wie die CD oder woher sie kommen bis sie geupdatet werden
/etc/pve ist einfach ein Verzeichnis von Proxmox und wird automatisch mitgesichert, wenn du bei der Wurzel "/" startest

2. das Zwischending mit dem "tar" verstehe ich nicht, du sicherst doch mit dem backup-client, der komprimiert und alles andere

- du brauchst doch nur machen (in Kurzform)

  1. backup-client backup root.pxar:/ ...
  2. Neuinstall von Proxmox CD
  3. # init 1
  4. backup-client restore root.pxar / ...
- den backup-client kannst du auch stündlich oder wie auch immer timen

3. deine Sicherung ist gut für SW-Raids wie in meinem Thread erwähnt; um so mehr Verzeichnis du nicht ausschließt, um so mehr hast du, ob alles dann auch im Cluster funzt, muss man ausprobieren - auch wie in meinem Thread erwähnt
 
Last edited:
hallo fpausp,

du wolltest ja gern ein feedback von mir zu deiner Herangehensweise.

naja, im Prinzip is die Denke schon mal richtig und deckt sich mit den anderen Lösungen im Forum, aber

1. --include-dev sind falsch gedacht, denn keins davon ist ein mount, du sprichst mit den Verzeichnissen /boot und /boot/efi nicht /dev/sda1+2 an,
- diese werden bei Neuinstallation von Proxmox angelegt und sind in der Version wie die CD oder woher sie kommen bis sie geupdatet werden
/etc/pve ist einfach ein Verzeichnis von Proxmox und wird automatisch mitgesichert, wenn du bei der Wurzel "/" startest

2. das Zwischending mit dem "tar" verstehe ich nicht, du sicherst doch mit dem backup-client, der komprimiert und alles andere

- du brauchst doch nur machen (in Kurzform)

  1. backup-client backup root.pxar:/ ...
  2. Neuinstall von Proxmox CD
  3. # init 1
  4. backup-client restore root.pxar / ...
- den backup-client kannst du auch stündlich oder wie auch immer timen

3. deine Sicherung ist gut für SW-Raids wie in meinem Thread erwähnt; um so mehr Verzeichnis du nicht ausschließt, um so mehr hast du, ob alles dann auch im Cluster funzt, muss man ausprobieren - auch wie in meinem Thread erwähnt
Hallo @floh8, danke für deine Rückmeldung... Ja es ist alles noch ein bisschen quick and dirty, werde deinen Vorschlag mal durchtesten... Hab meine Variante zuerst mit einem virtuellen 3-Node Cluster und danach mit einem realen getestet, jeweils ein Node wiederhergestellt und konnte keine Fehler erkennen...
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!