Comment sauvegarder des VM Citrix Xen gratuitement avec Xen-pocalypse (Bash)

Table des matières:

Comment sauvegarder des VM Citrix Xen gratuitement avec Xen-pocalypse (Bash)
Comment sauvegarder des VM Citrix Xen gratuitement avec Xen-pocalypse (Bash)

Vidéo: Comment sauvegarder des VM Citrix Xen gratuitement avec Xen-pocalypse (Bash)

Vidéo: Comment sauvegarder des VM Citrix Xen gratuitement avec Xen-pocalypse (Bash)
Vidéo: Récupérer GRATUITEMENT des fichiers EFFACES, simple et rapide ! - YouTube 2024, Avril
Anonim
Avez-vous déjà eu besoin de sauvegarder vos machines virtuelles Citrix Xen mais vous ne vouliez pas casser votre compte en banque? HTG a juste le script bash pour vous avec Xen-pocalypse.
Avez-vous déjà eu besoin de sauvegarder vos machines virtuelles Citrix Xen mais vous ne vouliez pas casser votre compte en banque? HTG a juste le script bash pour vous avec Xen-pocalypse.

Image de h.koppdelaney, coincée dans Custom et Hotfortech.

L’un des avantages de Citrix Xen est que bon nombre de ses fonctionnalités sont libre frais. Cela dit, si vous souhaitez utiliser la fonction «Protection et restauration automatisées des ordinateurs virtuels», vous devez commencer à payer pour la licence «Advance». Même dans ce cas, vous ne payez que pour les sauvegardes au niveau du disque, qui ne suffisent pas pour de nombreux types de charges de travail telles qu'Active Directory, Bases de données, etc. état de la machine, y compris le contenu de la RAM. Cependant, cette fonctionnalité fait partie des éditions «Enterprise» et «Platinum», qui sont encore plus chères. Chez HTG, nous ne rejetons pas la valeur d'un véritable logiciel de sauvegarde, mais si votre budget est serré et que vous ne perdez pas un temps d'arrêt pour l'opération de sauvegarde, Xen-pocalypse peut constituer une solution parfaitement raisonnable. avant de prendre l'engagement budgétaire.

Vue d'ensemble

Le «cas d'utilisation»: vous avez plusieurs machines virtuelles nécessitant une sauvegarde. Le «Désactivation d’une machine virtuelle et son exportation sous forme de fichier» à partir du «Centre Xen» à l’aide d’un clic droit fonctionne correctement, mais vous souhaitez que ce processus soit automatique et planifié. Ce script Bash utilise la commande “XE” pour effectuer ses tâches. XE est l'interface de ligne de commande Xen (CLI), l'équivalent automatique pour l'émission des «clics droits» dans le «Centre Xen». Nous allons appeler le script de Cron qui fournira la partie "planification". Dans sa forme la plus simple, le flux de sauvegarde est le suivant:

  • Éteignez la machine virtuelle cible.
  • Exportez la VM en tant que fichier vers l'emplacement de sauvegarde.
  • Si la machine virtuelle était allumée, elle sera réactivée avant le démarrage de la sauvegarde.

Permet de craquer:)

Obtenir le script

Xen-pocalypse peut être obtenu librement de github, en utilisant les méthodes habituelles de git. Cela dit, si vous n’êtes pas encore familiarisé avec git, vous pouvez récupérer le fichier zip avec ce lien. Comme le script doit être exécuté sur l'un de vos serveurs Xen, vous devez l'extraire à cet emplacement afin de préserver les autorisations d'exécution.

wget https://github.com/aviadra/Xen-pocalypse/archive/master.zip unzip master

Bien que ce qui précède fonctionne, il vous est conseillé d’utiliser la méthode GIT afin de pouvoir bénéficier des mises à jour futures.

Obtenir SendEmail (facultatif)

Nous avons déjà parlé du programme perl SendEmail, il n’est donc pas nécessaire de le répéter ici. Disons simplement que cela fonctionne de la même manière sous Linux que sous Windows.

Bien que l’activation de la messagerie électronique soit facultative, il est vivement recommandé, car le script pourra alors:

  • Vous informer quand il a commencé et fini en cours d'exécution.
  • Vous avertir de toutes les erreurs qu'il a pu détecter et gérer.
  • Informer des disqualifications de sauvegarde en raison de problèmes d'espace. (Ce comportement peut être désactivé si vous ne le souhaitez pas)

Téléchargez-le sur le serveur Xen et extrayez-le.

wget https://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz tar xvzhf sendEmail-v1.56.tar.gz

Notez l'emplacement où vous l'avez extrait. Vous en aurez besoin pour le fichier de paramètres.

Définir les balises

Citrix Xen vous permet de configurer des «champs personnalisés» pour les fonctionnalités de filtrage. Nous allons créer les champs, puis les renseigner avec les informations utilisées par Xen-pocalypse. Xen-pocalypse reconnaît 3 TAG de contrôle qui désignent le nom du tag pour la sauvegarde et les relations parent à enfant. Si vous ne souhaitez pas utiliser la méthode de saisie de fichier, vous DEVEZ créer au moins le champ Nom de la balise de sauvegarde.

Pour ce faire, ouvrez les propriétés du serveur ou même d’un ordinateur virtuel. Dans le volet de navigation, sélectionnez «Champs personnalisés».

Si vous définissez une relation pour la première fois (comme dans l'exemple ci-dessus), vous ne disposerez d'aucun champ dans lequel entrer des données. Vous devez donc les créer. Pour ce faire, cliquez sur «Modifier les champs personnalisés» dans la boîte de dialogue qui s’affiche, puis sur «Ajouter…».
Si vous définissez une relation pour la première fois (comme dans l'exemple ci-dessus), vous ne disposerez d'aucun champ dans lequel entrer des données. Vous devez donc les créer. Pour ce faire, cliquez sur «Modifier les champs personnalisés» dans la boîte de dialogue qui s’affiche, puis sur «Ajouter…».
Créez trois (3) champs de type «Texte». L'un s'appellera «BackupTAG» et les autres «Parent» et «Enfants».
Créez trois (3) champs de type «Texte». L'un s'appellera «BackupTAG» et les autres «Parent» et «Enfants».

Remarque: Les noms des champs personnalisés ont été «codés en dur» dans le script, vous ne devez donc PAS vous écarter de l'orthographe ci-dessus, à moins que vous ne changiez également le code approprié.

Une fois que tous les champs ont été créés, vous devriez voir:

Fermez la fenêtre. Vous devriez maintenant avoir les champs «BackupTAG», «Parent» et «Enfants» à remplir, comme dans l’illustration ci-dessous.
Fermez la fenêtre. Vous devriez maintenant avoir les champs «BackupTAG», «Parent» et «Enfants» à remplir, comme dans l’illustration ci-dessous.
Image
Image

Il ne vous reste plus qu'à désigner les machines virtuelles appartenant à quel «BackupTAG». Par exemple, dans l'entreprise où le script a été développé, nous avions des machines virtuelles à sauvegarder hebdomadairement jeudi et vendredi, un programme pour les machines virtuelles de nos produits Atlassian et certaines à sauvegarder uniquement tous les mois. Notre vue d'ensemble ressemblait donc à:

Où, par exemple, «hebdomadaire-vendredi» était le texte que nous avons entré dans «BackupTAG» «Champ personnalisé». Neat hein?:)
Où, par exemple, «hebdomadaire-vendredi» était le texte que nous avons entré dans «BackupTAG» «Champ personnalisé». Neat hein?:)

Parents et enfants (facultatif)

La beauté de ce script réside dans le fait qu’il prend en charge les relations «parent» à «enfant». Autrement dit, il est possible de définir une liste de machines virtuelles «enfants» qui seraient désactivées et sauvegardées avant le parent, et que ces enfants ne seront réactivés que lorsque le parent aura terminé sa sauvegarde et ce qu'il aura été restauré sur.Ceci est utile dans les cas où la mise hors tension de la machine virtuelle parent entraînera l'indisponibilité du service dans l'enfant. Cela signifierait que le service sur la machine virtuelle enfant ne serait pas disponible deux fois, une fois pour le processus de sauvegarde de l’enfant et une fois pour le système parent. Créer cette relation surmonte ce problème.

Par exemple, toutes nos machines virtuelles Atlassian utilisaient une seule machine virtuelle DataBase (DB), également configurée pour être sauvegardée. Ainsi, en notant que la machine virtuelle DB est un «parent» des autres machines virtuelles, un ordre correct d'arrêt -> sauvegarde -> démarrage peut être garanti.

Au moment d'écrire ces lignes, cette fonction a quelques mises en garde:

  1. Les noms des machines virtuelles devant créer une telle relation ne peuvent pas contenir d'espaces. Vous devrez supprimer des espaces de vos noms de machine virtuelle, car ils seront délimités par des espaces, comme dans l'exemple ci-dessous.
  2. Il ne peut y avoir qu'un seul parent. Désigner plus d'un n'est même pas prévu, pour ne pas dire testé.

Pour créer cette relation, accédez aux propriétés de la machine virtuelle. S'il s'agit d'un «parent», écrivez qui sont ses enfants et s'il s'agit d'un «enfant», écrivez qui est son parent. Par exemple:

Remarque: le fait de ne pas désigner un parent pour un enfant peut entraîner le démarrage de l'enfant avant que son parent ne soit prêt et le sauvegarder deux fois.
Remarque: le fait de ne pas désigner un parent pour un enfant peut entraîner le démarrage de l'enfant avant que son parent ne soit prêt et le sauvegarder deux fois.

La méthode FILE (facultatif)

Pour des raisons historiques, Xen-pocalypse permet également d’obtenir la liste des machines virtuelles à sauvegarder sous forme de fichier texte. Bien que le «code» y soit toujours, la fonctionnalité est nettement inférieure à la méthode des balises et n’est donc pas recommandée. Cela dit, si vous préférez utiliser la méthode list pour une raison quelconque, les restrictions suivantes s'appliquent:

  1. Les noms des machines virtuelles ne peuvent contenir ni espaces ni caractères spéciaux.
  2. Il ne peut y avoir qu'un seul nom de machine virtuelle par ligne.
  3. Les lignes vierges ne sont pas autorisées.

Pour générer la liste, copiez le nom de la machine virtuelle à partir du centre Xen ou exécutez-le sur un hôte Xen:

xe vm-list | grep name-label | awk

'{ print $4 }' | sort

Copiez la liste ci-dessus dans un fichier texte normal.

Le lieu de sauvegarde

En cherchant de manière aléatoire dans Citrix Xen, j’ai constaté que les référentiels de stockage (SR) sont disponibles pour une utilisation sous «/ var / run / sr-mount /% UUID%», UUID étant l’identifiant unique du SR, qui peut être obtenu à partir de l'interface graphique.

Cela signifie que nous pouvons utiliser l'assistant habituel «Suivant -> Suivant -> Terminer» pour créer le montage à l'emplacement de sauvegarde souhaité, puis demander au script d'utiliser ce chemin (plutôt que de modifier le montage à partir de la ligne de commande). est donc au-delà de la portée de ce guide.

Pour créer un nouveau “montage”, cliquez avec le bouton droit de la souris sur le nom du serveur et sélectionnez Nouveau SR.

Dans cet exemple, nous allons pointer Xen vers un partage Windows, choisissez donc «Partage de fichiers Windows (CIFS)»:
Dans cet exemple, nous allons pointer Xen vers un partage Windows, choisissez donc «Partage de fichiers Windows (CIFS)»:
Complétez Next -> Next -> Finish.
Complétez Next -> Next -> Finish.

Obtenir l’UUID du SR

Pour obtenir l’UUID d’un SR, il suffit de cliquer sur son nom dans le Xen Center et de cliquer sur l’onglet «Général».

Pour copier l’UUID, faites simplement un clic droit dessus et choisissez «Copier».
Pour copier l’UUID, faites simplement un clic droit dessus et choisissez «Copier».
Avec ces informations à portée de main, vous êtes prêt à modifier le fichier de paramètres.
Avec ces informations à portée de main, vous êtes prêt à modifier le fichier de paramètres.

Configurez le fichier de paramètres.

Le projet Xen-pocalypse est fourni avec un modèle de fichier «paramètres». Ce modèle doit être modifié pour refléter votre configuration et transmis en tant que premier argument au script. Le fichier de paramètres désigne les éléments suivants:

La méthode pour obtenir les ordinateurs virtuels à sauvegarder - La méthode par défaut consiste à utiliser des balises. Vous pouvez changer cela en FICHIER, mais ceci n'est pas recommandé.

L'emplacement de la destination de sauvegarde - Si vous avez suivi le guide à ce point, il vous suffit de remplacer le% UUID% par le SR tel qu’il a été obtenu ci-dessus.

L'emplacement de SendEmail - Si vous avez choisi d'activer Email, vous devez entrer où vous avez extrait l'exécutable Perl ici.

Détails de l'e-mail -Encore une fois, si vous avez activé le courrier électronique, vous devez définir des détails tels que: À, De, Nom du serveur / IP, etc.

Compression - Cette option est définie sur «Non» par défaut, car son activation produira un fichier de sauvegarde plus petit, mais entraînera également une exécution de la procédure de sauvegarde beaucoup plus longue.

Vérifier l'espace libre sur le destinataire: le script vérifie que la sauvegarde de la machine virtuelle n’entraînera pas une réduction de l’espace libre de l’emplacement de sauvegarde sous 10 Go. Ceci est fait pour s'assurer que le plus grand nombre de VMs sont sauvegardés au lieu d'un seul très gros VM. Le calcul est effectué à l'aide de la taille totale du disque de tous les disques durs associés à la machine virtuelle.

Débogage - Par défaut, le débogage doit être désactivé avec la valeur «0» (zéro). Vous ne devriez pas avoir besoin de l'activer, mais si vous le faites, plus d'informations sont notées dans le segment de dépannage.

Exécution / ordonnancement

Dans sa forme la plus simple, une invocation de Xen-pocalypse ressemblerait à ceci:

./Xen-backup.sh settings.cfg weekly-fri

Où dans le cas ci-dessus, nous sommes dans le répertoire qui contient le script et le fichier de paramètres. La «balise» recherchée par le script est «hebdomadaire-vendredi».

Comme indiqué ci-dessus, nous utiliserons Cron pour planifier l'exécution. Avant d’entrer dans la configuration, c’est hautement recommandé que vous configuriez le package SSMTP déjà installé sur votre serveur Xen. Bien que cette étape soit facultative, vous obtiendrez un collecteur de lavage à contre-courant. Avoir un tel "collecteur de nettoyage" peut vous alerter de choses que le script n’est pas capable de faire.

Entrez dans l'édition de cron plus en publiant:

crontab -e

Si vous avez suivi les instructions ci-dessus et que vous souhaitez ajouter une sauvegarde planifiée pour vendredi à 18h01, entrez les informations ci-dessous:

01 18 * * fri /root/Xen-pocalypse-master/Xen_Backup.sh /root/Xen-pocalypse-master/settings.cfg weekly-fri

Ce qui précède est correct si votre script et votre fichier de paramètres se trouvent tous deux dans «/ root / Xen-pocalypse-master /».

Dépannage

Bien que je mette beaucoup d’efforts pour rendre le script aussi facile à utiliser et aussi infaillible que possible, «le monde est un laboratoire plus grand». Les informations ci-dessous peuvent vous aider à déterminer la source de vos problèmes.

Le progrès

Vous voudrez peut-être utiliser cette ligne pour «observer» rapidement toutes les tâches en cours, pour voir si elles progressent réellement ou si elles sont réellement bloquées.

while [ -e /dev/null ]; do for VM in '$( xe task-list | grep uuid | awk '{print $5}' )'; do xe task-param-get param-name=progress uuid=$VM;sleep 1; done; done

Pour arrêter de regarder, utilisez Ctrl + C pour freiner la boucle «tout en boucle».

Enregistrement

Toute la «journalisation» est collectée par l'hôte Xen exécutant le script dans le mécanisme syslog. Cela peut bien sûr être vu avec:

less +F /var/log/messages

Vous recherchez le mot clé "Xen-pocalypse".

Remarque: Citrix a défini une stratégie de rétention de deux (2) jours pour syslog de ses serveurs. Vous voudrez peut-être garder cela à l'esprit pour l'après-mort.

Débogage

Comme indiqué dans le segment de fichier de paramètres, une directive permet d'activer le débogage. Si vous activez le débogage, le script produira une journalisation détaillée sur la console et l'empêchera d'envoyer des courriers électroniques et d'exécuter les exportations, à moins que les indicateurs correspondants ne soient également définis. Les indicateurs possibles sont notés dans le modèle de fichier de paramètres et vous permettent de définir avec précision ce que vous souhaitez déboguer.

J'espère que vous n'avez besoin d'aucun débogage et que vous récoltez les fruits de mon travail:)

Poussée, mon homme, tu es sur le point de devenir le numéro un des decepticon…

Conseillé: