Aller au contenu


Backup machine virtuelle VMWARE Zimbra


  • Veuillez vous connecter pour répondre
22 réponses à ce sujet

#1 Gargantua75

Gargantua75

    Membre actif

  • Membres
  • PipPip
  • 129 messages
  • LocalisationParis

Posté 06 mai 2008 - 15:24

Hello la communauté

Comme beaucoup d'entre vous sûrement je travaille en production dans un Zimbra "virtuel". C'est-à-dire qu'il a été installé sur un système virtuel (Debian Etch chez moi) dans une machine virtuelle (VMWare chez moi) installée elle-même sur un système hôte (Debian Etch chez moi). Bien-sûr tout cela est très pratique pour la récupération après sinistre ou encore les snapshots pour revenir à une ancienne configuration. Cependant se pose le problème de la sauvegarde de cette dite machine virtuelle depuis le système hôte... J'ai fait un semblant de script qui pourrait en intéresser certains et que je vais vous donner juste après. Le principe est simple : le système hôte est serveur NTP et la système virtuel se synchronise sur l'hôte. Avoir la même heure est primordial... vous allez comprendre : à 23:45, le système virtuel lance un "shutdown". A 23:55 le système hôte arrête VMWARE puis effectue la sauvegarde sur un disque interne/externe/réseau/NAS/SAN (au choix) puis, à la fin du processus, relance VMWare qui relance automatiquement toutes les machines virtuelles enregistrées (notre Zimbra mais aussi les autres si vous en avez).

NB : la seule dépendence nécessaire est le logiciel Rsync (apt-get install rsync).



Mon crontab (/etc/crontab) Système virtuel :

45 23 * * 1-5 root /root/scripts/stop.sh >> /dev/null 2>&1
01 04 * * * root /root/scripts/majsys.sh >> /dev/null 2>&1

Le script d'arrêt Système virtuel (/root/scripts/stop.sh) :

#!/bin/sh

/sbin/shutdown -r now

----------------------------------------------------------------------------

Mon crontab (/etc/crontab) Système hôte :

55 23 * * 1-5 root /root/scripts/backupsys.sh >> /dev/null 2>&1
01 02 * * * root /root/scripts/rapports.sh >> /dev/null 2>&1
01 03 * * * root /root/scripts/majsys.sh >> /dev/null 2>&1

Le script d'envoi de rapport (/root/scripts/rapports.sh) :

#!/bin/sh

/usr/bin/mutt -s "Rapports Backup XXXXX" gargantua@xxxxxx.fr < /root/backup.log

Le script de backup (/root/scripts/backupsys.sh) :

#!/bin/sh

# Parametrage des variales

################################
# Chemin des commandes
################################
RSYNC=/usr/bin/rsync
MOUNT=/bin/mount
UMOUNT=/bin/umount
MKDIR=/bin/mkdir
RM=/bin/rm
ECHO=/bin/echo
ETC=/etc
RACINE=/
FIND=/usr/bin/find
VMRUN=/usr/bin/vmrun

################################
# Volume de destination
################################
DESTVOL=/backup ;  A MODIFIER CHEZ VOUS !!!

################################
# Emplacement du fichier de logs +  "aeration" du fichier de logs
################################
LOGS=/root/backup.log
$ECHO - >> $LOGS

################################
# Options de Rsync
################################
RSYNCOPTIONS="-av --delete --exclude-from=/root/scripts/exclusions.lst"
RSYNCSRC=$RACINE/*
RSYNCDEST=$DESTVOL/racine_`date +%d-%m-%Y`


################################
# Fonction Rsync
################################
lance_rsync()
{
$RSYNC $RSYNCOPTIONS $RSYNCSRC $RSYNCDEST && $ECHO "Synchronisation de la racine "/" REUSSIE" >> $LOGS
}

###############################
# Fonction "On supprime les fichiers de plus de 10 jours"
###############################
lance_nettoyage()
{
$FIND $DESTVOL/ -name "racine_*" -print -type d -mtime +10 -exec rm -r {} \;
}

################################
# Suspension de la machine virtuelle Etch-Zimbra
################################
stop_vm()
{
/etc/init.d/vmware stop
}

################################
# Redemarrage de la machine virtuelle Etch-Zimbra
################################
demarrage_vm()
{
/etc/init.d/vmware start && $VMRUN start /var/vm/zimbra-etch/Other.vmx
}

################################
# Lancement de la sauvegarde
################################
$ECHO Debut de la sauvegarde vers $DESTVOL `date +%d/%m/%Y` a `date +%H:%M` >> $LOGS
if [ -d $DESTVOL/monte ]; then stop_vm && lance_rsync ; demarrage_vm && lance_nettoyage ; $UMOUNT $DESTVOL
else
$ECHO "Montage du Volume $DESTVOL et lancement de la sauvegarde" >> $LOGS && $MOUNT $DESTVOL && stop_vm && lance_rsync ; demarrage_vm && lance_nettoyage ; $UMOUNT $DESTVOL ; exit
fi


# FIN !

Fichier d'exclusions de sauvegarde Rsync (/root/scripts/exclusions.lst)

/dev
/proc
/media
/cdrom
/tmp
/var/tmp
/var/spool
/backup
/sys


----------------------------------------------------------------------------

Attention si vous faites des copier/coller, le répertoire /root/scripts doit exister et les fichiers executables doivent être... executables (chmod +x /root/scripts/backupsys.sh , par exemple). Ca parraît débile de préciser mais on ne sait jamais. Dernière chose, le répertoire "témoin" appelé "monte" dans mon cas doit être créé sur le volume de destination (mkdir /backup/monte) ; il sert à vérifier que le périphérique associé au volume /backup est monté (ou pas).

A titre informatif ma machine virtuelle avec Zimbra pèse 40 Go et la sauvegarde s'effectue sur un disque externe USB en moins de 30 minutes.

Ce script est amplement améliorable et modifiable à loisir par qui le souhaite. N'hésitez pas à envoyer vos modifications par l'intermédiaire de ce forum. Ce n'est pas script "bêta" : il fonctionne chez moi à merveille.

J'ai conscience que la solution n'est pas "propre" vu que je dois arrêter la machine virtuelle et VMWARE pour le backup mais avec Zimbra OSE/VMWare Server/Debian Etch, on peut pas faire plus "gratuit" !!!!

Merci de vos retours

Modifié par Gargantua75, 25 février 2014 - 11:34.

Zimbra 8.6 OSE sur Ubuntu 14.04 LTS

#2 Klug

Klug

    Zimbra Jedi

  • Membres
  • PipPipPipPip
  • 10 302 messages
  • LocalisationBeaucaire - Gard

Posté 06 mai 2008 - 15:37

Bien codé.

J'avais trouvé un script un peu dans le même genre qui fait un suspend/resume de la VM plutôt que la stopper totalement. Ca devrait permettre de gagner en temps de redémarrage.

Voir ici : http://www.twobaldge...count-the-ways/

#3 Gargantua75

Gargantua75

    Membre actif

  • Membres
  • PipPip
  • 129 messages
  • LocalisationParis

Posté 06 mai 2008 - 16:04

Citation

Bien codé.

J'avais trouvé un script un peu dans le même genre qui fait un suspend/resume de la VM plutôt que la stopper totalement. Ca devrait permettre de gagner en temps de redémarrage.

Voir ici : http://www.twobaldge...count-the-ways/
Merci... (même si le scripting est pas mon "truc"...) j'avais déjà trouvé ce script et j'ai essayé de le transformer pour mon usage avec un "suspend" au lieu d'un arrêt mais j'ai eu des soucis et le système de fichiers de mon système virtuel a pété. Peut-être Rsync au lieu de cp/tar... ? Mais dans tous les cas Rsync sauvegarde vraiment vite. Je suis même prêt à parier qu'il est plus rapide d'arrêter VMWARE/backuper avec Rsync/Relancer VMWARE que de Suspendre VMWARE/Backuper avec cp-tar/Restaurer VMWARE... à voir ! Cela dépend encore une fois de paramètres très subjectifs comme la taille et le nombre de VM à sauvegarder, le support de sauvegarde, le nombre d'utilisateurs en production et donc le temps d'indisponibilité (surtout en pleine nuit où 30 minutes d'indipo. n'est pas la mer à boire)...

As-tu codé quelque chose de ton côté ou utilises-tu les fonctions des VMWare/Zimbra versions "Licence" ?

Merci
Zimbra 8.6 OSE sur Ubuntu 14.04 LTS

#4 Klug

Klug

    Zimbra Jedi

  • Membres
  • PipPipPipPip
  • 10 302 messages
  • LocalisationBeaucaire - Gard

Posté 06 mai 2008 - 17:11

rsync c'est bien mais ça ne permet de conserver qu'une seule version de tes données, non ? Le script en question a un autre but, qui va être de faire un backup "séparé" par jour, non ?

On utilise rsync pour synchroniser des systèmes de fichiers d'un datacentre à l'autre, juste pour la synchro. On a quelques VM en VMware server mais pour du dev, on backupe les données, pas les VM complètes.
Et on n'utilise pas (in-house) de ZCS en virtualisé mais certains clients si. Clients qui ont toute l'artillerie qui va avec (ESX 3 ou plus, TiNa, etc).

#5 Gargantua75

Gargantua75

    Membre actif

  • Membres
  • PipPip
  • 129 messages
  • LocalisationParis

Posté 06 mai 2008 - 17:30

Hello

C'est bien ce que j'imaginais pour l'artillerie lourde... par contre mon script fait des sauvegarde quotidienne de tout mon file system y compris les VM donc... et il en conserve 10 copies (10 jours sans les Week-End en fait) avec comme nomenclature : racine_05_05_2008 ; 06_5_2008...etc. C'est aussi pratique qu'avec Tar.
Zimbra 8.6 OSE sur Ubuntu 14.04 LTS

#6 Klug

Klug

    Zimbra Jedi

  • Membres
  • PipPipPipPip
  • 10 302 messages
  • LocalisationBeaucaire - Gard

Posté 06 mai 2008 - 17:37

Je lirai mieux le script la prochaine fois, désolé.

Tu as combien de fichiers actuellement dans ton backup ?
C'est sur ce point que rsync peut poser des problèmes de performance (en "server to server" en tout cas, je ne l'utilise pas en local/USB).

#7 Looping81

Looping81

    Membre actif

  • Membres
  • PipPip
  • 108 messages
  • LocalisationBrussels (Belgium)

Posté 26 mai 2012 - 19:36

Voir le messagelembal, le 06 mai 2008 - 15:24, dit :

virtuel se synchronise sur l'hôte. Avoir la même heure est primordial... vous allez comprendre : à 23:45, le système virtuel lance un "shutdown". A 23:55 le système hôte arrête VMWARE puis effectue la sauvegarde sur un disque interne/externe/réseau/NAS/SAN (au choix) puis, à la fin du processus, relance VMWare qui relance automatiquement toutes les machines virtuelles enregistrées (notre Zimbra mais aussi les autres si vous en avez).
En fait, tu pourrais éviter le soucis d'heure juste en lançant tous tes scripts (commandes) depuis l'hôte au travers de ssh

exemple de syntaxe :
ssh root@adresse_IP_de_la_machine_virtuelle "/sbin/shutdown -r now"

Tu modifies tes scripts pour qu'ils puissent lancer les commandes au travers du ssh.
Tu crées un script sur ta machine hôte dans lequel tu inclus tous tes fichiers bash les uns à la suite des autres dans l'ordre d'exécution.
Et tu intègres ce seul script dans ton crontab. Ainsi, même si l'heure déconne sur l'un des serveurs (réel ou virtuel) ou si tu as calculé trop juste le timing (le rsync mettra plus de temps quand le volume à synchroniser grandira), tu n'auras aucun soucis.

C'est le principe que j'utilise sur mon serveur de backup pour backuper tous mes serveurs depuis un seul (afin d'éviter des rsync simultanés)...

Attention, pour pouvoir lancer les commandes au travers de ssh, tu devras mettre en place un système de clés ssh... Comme ça, tu ne devras pas revenir au boulot à 23:55 pour taper les mots de passe root (man ssh-keygen et man ssh-copy-id devraient d'aider)

;)
ZCS Open-Source Edition 8.6.0 sur Ubuntu 12.04 LTS 64bits sur Dell 2x Intel Xeon L5630 - 8Go DDR3 - 4x HDD 1To Raid5+spare - 4x eth 1Gb/s bonding balance-tlb (mode 5)

#8 Gargantua75

Gargantua75

    Membre actif

  • Membres
  • PipPip
  • 129 messages
  • LocalisationParis

Posté 23 novembre 2012 - 15:32

Merci pour l'Update Looping81 ;)

Mais mon script date un peu mais bon !
Je ne sais pas si beaucoup de monde utilise encore VMWare Server d'ailleurs.

Je sais que beaucoup d'entre vous ne jurent que par VMWare (vSphere Hypervisor pour les moins riches <_<).
De mon côté je suis très KVM (+Proxmox VE). J'ai plusieurs Zimbra qui tournent dessus et j'en suis très satisfait.

Et votre côté vous utilisez quoi aujourd'hui comme hyperviseur ? :huh:
Zimbra 8.6 OSE sur Ubuntu 14.04 LTS

#9 Sylv1

Sylv1

    Membre expérimenté

  • Membres
  • PipPipPip
  • 351 messages
  • LocalisationBelgique

Posté 24 novembre 2012 - 00:18

Proxmox VE aussi, très content, la V2 est sympa. Xen auparavant, mais moins convivial. Nous sommes sur du Linux, mais quand on rencontre des structures IT en Windows, VMWare reste quand même bien présent.

Une fois qu'on abandonne l'idée de faire des OpenVZ quand il y a du Java, les KVM sont top pour gérer des serveurs Zimbra. Par contre, si la taille des données est conséquente, la stratégie de backup doit être adaptée (de toute manière si on veut un backup plus serré dans le temps elle le sera).
Partenaire Zimbra & ZeXtras, intégrateur et développeur de solutions informatiques B2B

Quelques Zimbra 8.0.X OSE sur Ubuntu 12.04 LTS
Bundles ZeXtras

#10 Klug

Klug

    Zimbra Jedi

  • Membres
  • PipPipPipPip
  • 10 302 messages
  • LocalisationBeaucaire - Gard

Posté 24 novembre 2012 - 12:05

La gestion des backups (et de la volumétrie en général), c'est un peu le même soucis quelque soit la plateforme.
Et là, c'est l'expérience qui parle...

#11 Nathan

Nathan

    Membre

  • Membres
  • 12 messages

Posté 29 novembre 2012 - 18:30

Bonjour,

Je me permet de poster dans ce topic.

Je suis en train de découvrir le monde de Zimbra Open Source et j'en viens a la problématique du backup.
Ma machine Zimbra est sur un VmWare 5.0 que je ne peux pas me permettre de redémarrer. J'ai pour le moment la licence gratuite de VmWare (prochainement la standart mais ca n'apporte pas grand chose de plus).

Y a t-il une solution viable pour sauvegarde Zimbra complètement ? Bien sur le poweroff, clone, poweron est envisageable mais assez "lourd". Avez-vous trouvé des scripts permettant la sauvegardes des fichiers composant Zimbra pour une restauration future par utilisateur ou dans sa totalité ?

Merci d'avance
Zimbra 8 Open Source

#12 Gargantua75

Gargantua75

    Membre actif

  • Membres
  • PipPip
  • 129 messages
  • LocalisationParis

Posté 30 novembre 2012 - 10:46

@Nathan : Oui. ici : http://communities.v...m/docs/DOC-8760
;)
Zimbra 8.6 OSE sur Ubuntu 14.04 LTS

#13 Nathan

Nathan

    Membre

  • Membres
  • 12 messages

Posté 30 novembre 2012 - 14:35

Merci ! Ton outil à l'air parfait.

Tu l'utilises pour tes VMs ?
Zimbra 8 Open Source

#14 Gargantua75

Gargantua75

    Membre actif

  • Membres
  • PipPip
  • 129 messages
  • LocalisationParis

Posté 30 novembre 2012 - 15:38

Voir le messageNathan, le 30 novembre 2012 - 14:35, dit :

Merci ! Ton outil à l'air parfait.

Tu l'utilises pour tes VMs ?

Je l'ai utilisé par le passé, oui.
Maintenant j'utilise un mix de l'outil de backup de Proxmox VE + scripts shell maison :)
Zimbra 8.6 OSE sur Ubuntu 14.04 LTS

#15 Sylv1

Sylv1

    Membre expérimenté

  • Membres
  • PipPipPip
  • 351 messages
  • LocalisationBelgique

Posté 30 novembre 2012 - 16:35

Voir le messageKlug, le 24 novembre 2012 - 12:05, dit :

La gestion des backups (et de la volumétrie en général), c'est un peu le même soucis quelque soit la plateforme.
Et là, c'est l'expérience qui parle...

Méga +1.

Voir le messageNathan, le 29 novembre 2012 - 18:30, dit :

Y a t-il une solution viable pour sauvegarde Zimbra complètement ? Bien sur le poweroff, clone, poweron est envisageable mais assez "lourd". Avez-vous trouvé des scripts permettant la sauvegardes des fichiers composant Zimbra pour une restauration future par utilisateur ou dans sa totalité ?

Le mieux est encore de se baser sur les données, et pas la VM. La Network Edition inclus des outils de sauvegarde plus avancés. Sur l'OSS, il y a ZeXtras et ZxBackup qui permet de faire beaucoup, ou faire des backups via script : dump ldap, dump mysql et rest pour récupérer les boîte. Ou encore faire un rscync de l'opt/zimbra/, mais là c'est folklorique :D .

Si on sauvegarde la VM, c'est encore viable pour les petites VM. Alors le snapshot reste la meilleure solution, mais sous Proxmox en tout cas, reste quand même fort gourmand.
Partenaire Zimbra & ZeXtras, intégrateur et développeur de solutions informatiques B2B

Quelques Zimbra 8.0.X OSE sur Ubuntu 12.04 LTS
Bundles ZeXtras

#16 Gargantua75

Gargantua75

    Membre actif

  • Membres
  • PipPip
  • 129 messages
  • LocalisationParis

Posté 30 novembre 2012 - 16:39

Oui je confirme que ça marche bien avec les petites VM Zimbra. Pour les grosses, aucune idée ! Jamais fait... :rolleyes:
Du reste, s'il y avait à y réfléchir, je m'orientrais sans hésiter vers ZxBackup dont les outils sont reconnus et approuvés... Certes c'est payant mais cela reste tout de même moins cher qu'une version NE voire pire du proprio Microsoft/IBM. Il faut expliquer au client que ce sont ses e-mails qu'il risque de perdre et tout de suite, le stylo suit facilement la route du chéquier. Bizarrement.
Zimbra 8.6 OSE sur Ubuntu 14.04 LTS

#17 Nathan

Nathan

    Membre

  • Membres
  • 12 messages

Posté 04 décembre 2012 - 12:37

D'accord merci pour vos retours. J'ai testé ZxBackup.
Je pense dans un premier temps faire du dump de VM puis lorsque la VM sera trop lourde pour cette solution, je passerai certainement à ZxBackup.
Zimbra 8 Open Source

#18 Nathan

Nathan

    Membre

  • Membres
  • 12 messages

Posté 07 décembre 2012 - 18:01

C'est encore moi et mes questions.

Est ce que d'après vous la solution suivante est fiable pour du backup sur du Zimbra OSE 8 :
- Utilisation de Veeam Backup avec 2 versions de la VM en stock, execution de veeam chaque nuit
- Utilisation d'un script de sauvegarde des mails/domaines/bases comme on en trouve sur ce forum

Comme cela, en cas de soucis sur la machine j'ai son clone de la nuit + un backup des données pour le cas d'une remise en place d'une sauvegarde pour un compte précis.

Merci par avance :)
Zimbra 8 Open Source

#19 Klug

Klug

    Zimbra Jedi

  • Membres
  • PipPipPipPip
  • 10 302 messages
  • LocalisationBeaucaire - Gard

Posté 07 décembre 2012 - 18:13

Le premier outil (Veeam ou techno assimilée) permettra de remonter le serveur en cas de disaster recovery.
On peut le faire plus qu'une fois par nuit avec Veeam (ou vmProtect ou assimilé).

Je ne crois pas qu'il existe aujourd'hui un script compatible 8.x qui permette de dumper les comptes complètement (pas un export en tgz) dans l'idée de restorer un compte complet (avec ses paramètres) à une date choisie. Mais je peux me tromper.

#20 Nathan

Nathan

    Membre

  • Membres
  • 12 messages

Posté 07 décembre 2012 - 18:36

Un rsync de /opt/zimbra (Même si vous allez me dire que c'est du bidouillage) permettrait un restore d'un compte en particulier d'après vous ?

Merci
Zimbra 8 Open Source




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)