Skip to content

padosoft/proxmox-backup

Repository files navigation

proxmox-backup

Bash scripts to backup and restore proxmox server.

Software License

Table of Contents

Prerequisites

bash

Install

This package can be installed easy.

cd /root/
git clone https://github.com/padosoft/proxmox-backup.git
cd proxmox-backup
chmod +x *.sh

If you want to run programmatically, add it to cronjobs manually or execute install script:

cd /root/proxmox-backup
chmod +x install.sh
bash install.sh

Tutorial

Procedure di Backup e Ripristino PROXMOX

Condivisione di una cartella di rete permanente

Le copie di backup sono salvate in rete su cartelle condivise. Una volta condivisa con samba una cartella esterna è possibile montarla sul sistema in uso per utilizzarla come una semplice directory in fase di backup.

Per prima cosa nel sistema da backuppare viene creata una cartella su cui montare la cartella esterna

mkdir /mnt/sharedns323

la cartella viene poi permanentemente montata scrivendo aggiungendo nel file

/etc/fstab

la seguente riga

//192.168.0.14/Volume_1/proxmox2 /mnt/sharedns323 cifs credentials=/root/.smbcredentials

dove //192.168.0.14/Volume_1/proxmox2 è la cartella condivisa in rete e nel file /root/.smbcredentials ci sono le credenziali di accesso.

Il file /root/.smbcredentials è di questo tipo

username=root password=xxxxxx domain=PADOVANI

modificato il file fstab testarlo col comando

mount -a

Tools di backup, installazione e uso

Per il backup viene utilizzato fsarchiver, a differenza di altri tool crea l’immagine del solo filesystem e non di tutto il disco, anche a caldo

Installazione di fsarchiver

apt-get update
apt-get install fsarchiver

Le partizioni di proxmox da backuppare sono la root e la parte data contenute in una partizione logica lvm2 Per individuare all’interno della partizione logica lvm2 di proxmox le partizioni di interesse usiamo

fsarchiver probe 

le partizioni di interesse sono le dm-x e con

dmsetup ls

è possibile capire quali siano quella di root e data ottenendo un qualcosa di simile:

pve-swap        (253:1)
pve-root        (253:0)
pve-data        (253:2)

pve-root in questo caso è contenuta in dm-0, mentre la parte pve-data in dm-2

di seguito lo script che effettua il backup:

/root/proxmox-backup/backupproxmox.sh

In sintesi le copie vengono prima salvate su una cartella temporanea "/var/tmp/backup" creata nel caso non esita, sono stoppati 4 servizi di proxmox

/etc/init.d/pve-cluster stop
/etc/init.d/pvedaemon stop
/etc/init.d/vz stop
/etc/init.d/qemu-server stop

e lanciato fsarchiver

fsarchiver savefs -aAdv "$_bdir/$_day.dm-0.fsa" "/dev/dm-0"
fsarchiver savefs -aAdv "$_tdir/$_day.dm-2.fsa" "/dev/dm-2"

il parametro savefs indica che si sta salvando il filesystem, i parametri “d” e “v” servono per far scrivere le informazioni di esecuzione, mentre i parametri “A” e “a”

-A: allow to save a filesystem which is mounted in read-write (live backup) -a: allow running savefs when partition mounted without the acl/xattr options

la partizione di sistema, più piccola di dimensioni viene creata direttamente nella cartella condivisa, quella di data invece viene prima creata in locale e poi spostata nella cartella condivisa con il comando

rsync -avz --progress "$_tdir/$_day.dm-2.fsa" "$_bdir/$_day.dm-2.fsa"

terminata la copia sono riavviati i servizi

echo restart services 
/etc/init.d/qemu-server start
/etc/init.d/vz start
/etc/init.d/pvedaemon start
/etc/init.d/pve-cluster start

utilizzando un altro script tutto il processo viene schedulato, e inviato per email utilizzando ssmtp (vedi questa guida per come configurarlo https://docs.google.com/document/d/1YLI4ToPftmowrmsRRhSxW8hzDBKW4LvhxSGAwigoQP8/ ), utilizzando il nome del giorno della settimana il tutto ha una rotazione di 7 giorni

/root/proxmoxrestore/backup_week.sh

Per schedulare i servizi si utilizza il comando

crontab -e

a cui si aggiunge la seguente linea

# m h  dom mon dow   command

0 03 * * * /root/proxmoxrestore/sh backup_week.sh

Con questa sintassi si esegue uno script ogni giorno alle 3 di notte

Sync su macchina Proxmox muletto

vedi anche: http://www.cyberciti.biz/faq/how-to-wakeup-backup-nas-server-and-mirror-files-using-rsync-in-linux/

Sul muletto è installato proxmox e la partizione di root è la stessa del server. Ogni sera il muletto si accende da bios, il server poco dopo con un processo schedulato stoppa i servizi proxmox del muletto, copia tutta la sua partizione data e spegne il muletto. Per accedere al muletto senza digitare la password viene utilizzata una comunicazione ssh registrando la chiave pubblica del muletto sul server.

il file sh con le procedure di copia è

/root/proxmoxrestore/vz_rsync.sh

schedulato e inviato per email con lo script

/root/proxmoxrestore/vz_rsync_daily.sh

inserito in pianificazione con il solito

crontab -e

Generazione chiave pubblica e privata ssh sul muletto e installazione su server

Per connettersi da un pc all’altro utilizzando ssh senza autenticazione è possibile registrare la chiave pubblica sul server da cui si vuol accedere

Per prima cosa si creano le chiavi pubbliche e private sul muletto digitando

ssh-keygen -t rsa

premere invio lasciando il nome di default della chiave e non aggiungendo password Questo creerà nella cartella /root/.ssh un file id_rsa e id_rsa.pub

eseguire poi

ssh-copy-id root@192.168.0.33

dove 192.168.0.33 è l’indirizzo del server proxmox, e quando richiesto inserire la password di root

testare da server il comando

ssh root@192.168.0.11 ls

la prima volta chiederà di salvare il pc 192.168.0.11 (o l’equivalente indirizzo ip del muletto) tra gli host conosciuti

dovrebbe mostrare il contenuto della cartella senza ulteriore autenticazione, di fatto il comando ssh-copy-id copia il file id_rsa.pub del muletto e lo inserisce nel file /root/.ssh/authorized_keys del server

RESTORE BACKUP AND DISASTER RECOVERY

Ripristino partizione di root in caso di disaster recovery su macchina non configurata.

Installare proxmox VE 3.4 da cd (https://www.proxmox.com/en/). Lasciare i valori di default (ext3 ed eventuale indirizzo IP). Nel caso si conosca è possibile inserire l’indirizzo IP della macchina che si sostituisce, il nome host è invece pve.padosoft.local

Una volta installato proxmox

riavvio e utilizzo systemrescuecd (http://www.sysresccd.org/) da live cd utilizzando la shell faccio il mount della cartella condivisa che contengono i backup

mount -t cifs //192.168.0.14/Volume_1 /mnt/share

con

fsarchiver probe simple

vedo i device e cerco quello di root tra i dm (probabilmente il dm-0) con

fsarchiver probe 

se ho dubbi basta montarli e navigarli

mkdir /mnt/dm0
mount /dev/dm-0 /mnt/dm0

ripristino la partizione di root, nel caso devo prima fare l’umount

umount /mnt/dm0

e poi uso fsarchiver

fsarchiver restfs /mnt/share/dm0.aaaa.mm.dd.fsa id=0,dest=/dev/dm-0

alla fine reboot della macchina

Al riavvio si avrà un errore in fstab dovuto al cambio di UUID dell’hd. Eseguire:

blkid   

per scoprire uuid nuovo hardware delle partizioni cambio uuid in

/etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/pve/root / ext3 errors=remount-ro 0 1
/dev/pve/data /var/lib/vz ext3 defaults 0 1
UUID=CC11-46AB /boot/efi vfat defaults 0 1
/dev/pve/swap none swap sw 0 0
proc /proc proc defaults 0 0
//192.168.0.14/Volume_1/proxmox2 /mnt/sharedns323 cifs credentials=/root/.smbcredentials

salvato il file lo testo con

mount -a

controllo che l’interfaccia ethernet sia la stessa,

ip link show   

se prima avevo eth0 e ora eth1 la tiro su

ifconfig eth1 up   

e poi cambio

/etc/network/interfaces il bridge
auto lo
iface lo inet loopback

auto vmbr0
iface vmbr0 inet static
  address 192.168.0.11
  netmask 255.255.255.0
  gateway 192.168.0.1
  bridge_ports eth0
  bridge_stp off
  bridge_fd 0

salvo e reboot

Ripristino partizione Data

Effettuo il ripristino della partizione data direttamente dalla macchina senza live cd. Entro e stoppo i servizi proxmox

/etc/init.d/pve-cluster stop
/etc/init.d/pvedaemon stop
/etc/init.d/vz stop
/etc/init.d/qemu-server stop

nel caso non sia installato installo fsarchiver

e ripristino la partizione data controllando prima quale sia con il comando

dmsetup ls

ipotizzando sia la dm-2

fsarchiver restfs /mnt/sharedns323/dm2.aaaa.mm.dd.fsa id=0,dest=/dev/dm-2

finito riavvio la macchina.

Contributing

Please see CONTRIBUTING and CONDUCT for details.

Credits

About Padosoft

Padosoft is a software house based in Florence, Italy. Specialized in E-commerce and web sites.

License

The MIT License (MIT). Please see License File for more information.

Releases

No releases published

Packages

No packages published

Languages