Bonjour,
je recherche une procédure de sauvegarde des serveurs Xen.
Est t’il recommandé de sauvegarder tous les serveurs virtuels hébergés ?
Ou bien une sauvegarde (type systemstate) par VM est possible ?
Merci pour vos liens et retours,
Phil
Bonsoir,
Cela dépend grandement du support qui héberge les Vdisk. Si tu utilises un LVM locale (pas de baie netapp…) regarde ce script, il monte un lecteur reseaux en NFS et sauvegarde les VM dessus:
#!/bin/sh
mount -t nfs fqdnDuServeurNfs:/xen /mnt/backup/
XE=/usr/bin/xe
backup(){
echo "Start Backup $1"
date -R
$XE vm-shutdown force=false vm=$1
$XE vm-export vm=$1 filename=/mnt/backup/$1.xva
$XE vm-start vm=$1
echo "End Backup $1"
date -R
}
backup LeNomDeLaVM1
backup LeNomDeLaVM2
backup LeNomDeLaVM3
backup LeNomDeLaVM4
Pour:
- Facile a mettre en place
- Dans ton crontab et c'est fini
- Parfait pour un disaster recovery
- tu peux utiliser ce backup sur un autre serveur xen
Contre:
- Long arret des VM
- Grosse charge du xen
- Besoin d'un serveur NFS (win ou tux)
- impossible en prod
Je travail sur une solution plus souple a base de snapshoot LVM. Via xe je sauvegarde les meta des VM, je fais un snapshoot des disques et les sauvegarde. Mais j'ai pas fini....
un autre exemple sous dos:
@echo off
echo =============================================================================
echo Script for weekly backup of XenServer Virtual Machines
echo =============================================================================
echo.
rem Change short date format to ISO date format (YYYY-MM-DD) by importing the appropriate registry file with exported regional options
regedit.exe /s e:backupXenVMs_controliso-date-format.reg
rem Modify these variables to customize the script for your environment.
set XEN_BACKUP_DIR=e:backupXenVMs
set XEN_BACKUP_LOG=%XEN_BACKUP_DIR%_logsBackup-XenVMs_%DATE%.log
set XEN_VMs_LIST=%XEN_BACKUP_DIR%_controlBackup-XenVMs_List.txt
set XEN_CMDLINE_EXE="C:Program FilesXenSourceXenCenterxe.exe"
set XEN_BACKUP_LATEST-FILE=%XEN_BACKUP_DIR%_controlBackup-XenVMs_LATEST.txt
set XEN_HOST_ID=172.16.X.X
set XEN_HOST_USER=root
set XEN_HOST_PWD=XXXX
set MAIL_SERVER=172.16.X.X
set MAIL_RCPT=admin@domain.com
set MAIL_FROM=Backup-XenVMs@domain.com
set MAIL_SUBJECT=XenServer VMs Backup Log on %DATE%
set MAIL_TOOL=%XEN_BACKUP_DIR%_controlbmail.exe
rem Header for backup log file.
echo ============================================================================= > %XEN_BACKUP_LOG%
echo Weekly backup of XenServer Virtual Machines >> %XEN_BACKUP_LOG%
echo
>> %XEN_BACKUP_LOG%
echo BEGIN OF BACKUP LOG FILE >> %XEN_BACKUP_LOG%
echo Backup on %date% at %time% >> %XEN_BACKUP_LOG%
rem Rename the latest backup directory (Backup-XenVMs_LATEST) to Backup-XenVMs_YYYY-MM-DD
FOR /f %%l IN (%XEN_BACKUP_LATEST-FILE%) DO set XEN_BACKUP_LATEST-DATE=%%l
echo
>> %XEN_BACKUP_LOG%
echo Rename Backup-XenVMs_LATEST directory to Backup-XenVMs_%XEN_BACKUP_LATEST-DATE% >> %XEN_BACKUP_LOG%
rename %XEN_BACKUP_DIR%Backup-XenVMs_LATEST Backup-XenVMs_%XEN_BACKUP_LATEST-DATE% >> %XEN_BACKUP_LOG%
mkdir %XEN_BACKUP_DIR%Backup-XenVMs_LATEST
rem Call the backup subroutine for each VM in XEN_VMs_LIST and pass the VM name to the subroutine
FOR /f %%v IN (%XEN_VMs_LIST%) DO call :XEN_BACKUP_VM %%v
rem Create file with the date of the latest backup
echo %date% > %XEN_BACKUP_LATEST-FILE%
echo ============================================================================= >> %XEN_BACKUP_LOG%
echo Sending log via SMTP on %date% at %time% >> %XEN_BACKUP_LOG%
echo END OF BACKUP LOG FILE >> %XEN_BACKUP_LOG%
echo ============================================================================= >> %XEN_BACKUP_LOG%
rem Use a command line SMTP tool to transmit the backup log file as message body
%MAIL_TOOL% -s %MAIL_SERVER% -t %MAIL_RCPT% -f %MAIL_FROM% -h -a %MAIL_SUBJECT% -m %XEN_BACKUP_LOG%
rem -d <-- use this parameter for bmail verbose mode for debugging
rem Copy the backup log file into the directory of the backups
copy %XEN_BACKUP_LOG% %XEN_BACKUP_DIR%Backup-XenVMs_LATEST
goto :EOF
rem Subroutine to backup the VM passed as function argument
:XEN_BACKUP_VM
echo ============================================================================= >> %XEN_BACKUP_LOG%
echo Backup procedure for Xen VM %~1 >> %XEN_BACKUP_LOG%
echo %date% %time% >> %XEN_BACKUP_LOG%
echo
>> %XEN_BACKUP_LOG%
echo Shutting down Xen VM %~1 on %date% at %time% >> %XEN_BACKUP_LOG%
%XEN_CMDLINE_EXE% -s %XEN_HOST_ID% -u %XEN_HOST_USER% -pw %XEN_HOST_PWD% vm-shutdown vm=%~1 force=false >> %XEN_BACKUP_LOG%
echo
>> %XEN_BACKUP_LOG%
echo Waiting for shutdown of Xen VM %~1 on %date% at %time% >> %XEN_BACKUP_LOG%
%XEN_CMDLINE_EXE% -s %XEN_HOST_ID% -u %XEN_HOST_USER% -pw %XEN_HOST_PWD% event-wait class=vm name-label=%~1 power-state=halted >> %XEN_BACKUP_LOG%
echo
>> %XEN_BACKUP_LOG%
echo Exporting Xen VM %~1 on %date% at %time% >> %XEN_BACKUP_LOG%
%XEN_CMDLINE_EXE% -s %XEN_HOST_ID% -u %XEN_HOST_USER% -pw %XEN_HOST_PWD% vm-export filename=%XEN_BACKUP_DIR%Backup-XenVMs_LATEST%~1.xenvm vm=%~1 >> %XEN_BACKUP_LOG%
echo
>> %XEN_BACKUP_LOG%
echo Starting Xen VM %~1 on %date% at %time% >> %XEN_BACKUP_LOG%
%XEN_CMDLINE_EXE% -s %XEN_HOST_ID% -u %XEN_HOST_USER% -pw %XEN_HOST_PWD% vm-start vm=%~1 >> %XEN_BACKUP_LOG%
rem Since the startup of this VM and the shutdown of the following VM can be simultaneously, there is no need to wait, otherwise unrem the following lines.
rem echo
>> %XEN_BACKUP_LOG%
rem echo Wait for startup of Xen VM %~1 on %date% at %time% >> %XEN_BACKUP_LOG%
rem %XEN_CMDLINE_EXE% -s %XEN_HOST_ID% -u %XEN_HOST_USER% -pw %XEN_HOST_PWD% event-wait class=vm name-label=%~1 power-state=running >> %XEN_BACKUP_LOG%
goto :EOF
Ok merci pour tes réponses, lorsque je ferais les tests je te tiendrais au courant.
A plus