Chez JL

Joliciel Libre

Accueil > Informatique > Haute Disponibilité > Sauver complètement un vm xen Windows avec backuppc-lvm

Sauver complètement un vm xen Windows avec backuppc-lvm

vendredi 17 février 2012, par JL

 Source

C’est très bien expliqué ici, c’est beau !! :
- http://sourceforge.net/apps/mediawiki/backuppc/index.php?title=User_Scripts_-_Client_-_Backuppc-lvm

 Principe

BackupPC va effectuer la sauvegarde à partir d’un snapshot lvm, et il n’aura pas de problème pour lire les fichiers, qui ne seront alors par verrouillé.

Par contre cela ne permet pas de prendre en compte les droits (et attributs) NTFS. C’est ok si les droits des fichiers restaurés peuvent être hérités du repertoire dans lequel ils sont restaurés, sinon il faut les remettre à la main.

 Installation

Le paquet backuppc-lvm est installé sur l’hôta xen (dom0).

Pour importer la clé, j’ai pris un autre serveur que celui cité dans le lien ci-dessus :

wget http://www.biodec.com/tools/software/biodec.list -O /etc/apt/sources.list.d/backuppc-lvm.list
gpg --keyserver subkeys.pgp.net --recv-keys 628E1F7BF79C26AA
gpg --armor --export 628E1F7BF79C26AA | apt-key add -
aptitude update
aptitude install backuppc-lvm

- /usr/share/doc/backuppc-lvm/ : la doc
- /usr/bin/backuppc-lvm : le script bash
- /var/log/backuppc-lvm/ : les logs
- /etc/backuppc-lvm/ : la configuration (vide au début)

 Configuration

Par la suite la vm qui sera sauvée s’appelle vm1.

Sur le serveur sur lequel sera fait le montage (le dom0)

mkdir /mnt/vm1-backup
cp -r /usr/share/doc/backuppc-lvm/examples/configdir-example /etc/backuppc-lvm/vm1
vi /etc/backuppc-lvm/vm1/vhost.conf
MAIL=adresse@mail.info
LV="/dev/vg1/vm1"
SNAP_LEN=20G #mettre la taille de la vm (pour être tranquille)
MPOINT="/mnt/vm1-backup"
OFFSET="32256" # Activer pour une vm windows, mettre
LOGFILE="/var/log/backuppc-lvm/vm1.log"
STARTSCR="/etc/backuppc-lvm/vm1/start.sh"
STOPSCR="/etc/backuppc-lvm/vm1/stop.sh"

Configuration par l’interface web, sur le serveur backuppc :
- copie depuis une config de serveur linux (sauvegarde par ssh rsync)
- ClientNameAlias : mettre comme alias l’hote xen (dom0)
- RsyncShareName : /mnt/vm1-backup
- DumpPreUserCmd : $sshPath -q -x -l root $host backuppc-lvm -r $cmdType -f /etc/backuppc-lvm/vm1/vhost.conf
- DumpPostUserCmd : $sshPath -q -x -l root $host backuppc-lvm -r $cmdType -f /etc/backuppc-lvm/vm1/vhost.conf
- UserCmdCheckStatus : cocher pour mettre à 1

 Test

L’échange de clés ssh a dû déjà être fait avec le serveur.
Faire un premier test depuis le serveur de sauvegarde :

su - backuppc
/usr/share/backuppc/bin/BackupPC_dump -f -v vhost

On voit pendant la sauvegarde :
- le snapshot volume lvm :

lvdisplay -C | grep snap
vhost.2012-02-09.lvsnap vg1    swi-ao   1,00g vhost   0,04

- le montage

# df
...
/dev/loop0             14G  9,9G  3,8G  73% /mnt/vm1-backup

 Problème

Je ne sais pas pourquoi, après une sauvegarde, le lien symbolique vers le volume snapshot n’est pas supprimé, alors que le volume est supprimé. Cela empâche les sauvegardes suivantes. Je modifie donc le script /usr/bin/backuppc-lvm vers la ligne 475 :

 CMD="lvremove -f ${LV}"
 runStepCmd

# Ajout car reste le lien symbolique...
 CMD="rm -f ${LV}"
 runStepCmd