Skip to main content

Comment restaurer gratuitement des ordinateurs virtuels Citrix-Xen avec Xen-Phoenix (Bash)

Comment restaurer gratuitement des ordinateurs virtuels Citrix-Xen avec Xen-Phoenix (Bash)

Geoffrey Carr

Avez-vous déjà eu besoin de restaurer en bloc vos machines virtuelles Citrix-Xen pour une solution de reprise après sinistre (DR), ou simplement de tester le fonctionnement de vos sauvegardes? HTG explique comment utiliser Xen-Phoenix, un script bash gratuit, pour la restauration de machines virtuelles.

Crédit photo: Ryan McCurdy via Compfight cc

Comme nous l’avons mentionné dans «Comment sauvegarder des machines virtuelles Citrix Xen gratuitement avec Xen-pocalypse», l’un des avantages de Citrix Xen est que 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». Encore une fois, HTG ne rejette pas la valeur d’une véritable solution de sauvegarde, mais si vous avez un budget serré, vous avez déjà extrait les images de machine virtuelle de l’hyperviseur et vous avez besoin d’un moyen d’automatiser votre Avant de prendre l'engagement budgétaire, Xen-Phoenix peut constituer une solution parfaitement raisonnable.

Vue d'ensemble

Le «cas d'utilisation»: vous avez plusieurs machines virtuelles nécessitant une restauration. L'importation dans «Xen Center» à l'aide de clics droits fonctionne bien, 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 restauration est le suivant:

  • Effacer tous * les ordinateurs virtuels existants sur le serveur
  • Importer des ordinateurs virtuels à partir de fichiers de l'emplacement de sauvegarde.
  • Vérifiez que tous les ordinateurs virtuels sont opérationnels en les activant un par un et en recherchant les pulsations des outils invités.
  • Désactivez les machines virtuelles lorsqu'une pulsation a été détectée ou qu'un délai d'attente a été atteint.

* Le comportement de suppression de tous les ordinateurs virtuels peut être complètement désactivé et prend en charge les exceptions (voir ci-dessous).

Permet de craquer :)

Obtenir le script

Xen-phoenix 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-phoenix/archive/master.zip unzip master

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

Le lieu d'exportation

Nous devons configurer où prendre les exportations de VM.

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» sur l'emplacement de sauvegarde souhaité, puis demander au script d'utiliser ce chemin (comme indiqué pour modifier le montage à partir de la ligne de commande). 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)»:

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, cliquez simplement dessus avec le bouton droit de la souris et choisissez «Copier».

Avec ces informations à portée de main, vous êtes prêt à modifier le fichier de paramètres.

Configurer le fichier de paramètres

Le projet Xen-phoenix 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:

  • Emplacement des exportations source - 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 la messagerie électronique, vous devez saisir l'emplacement où vous avez extrait l'exécutable Perl.
  • Vérificateur - Ceci contrôle la procédure de vérification après restauration. Cette option est activée par défaut, car une «restauration de niveau fichier» réussie ne signifie pas nécessairement un ordinateur virtuel fonctionnel.
  • Server_prep - Ceci contrôle la pré-restauration effacement de tous les ordinateurs virtuels sur le serveur de reprise après incident. Cette option est activée par défaut car il est supposé que le serveur de reprise après incident est un serveur dédié à cette fin. Si vous avez besoin qu'une machine virtuelle en cours d'exécution sur ce serveur ne soit pas supprimée, configurez-la pour qu'elle soit exclue. Si ce comportement ne convient pas à votre situation, désactivez-le simplement complètement.
  • 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.
  • 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

Ce script prend le fichier de paramètres comme premier argument et les autres arguments comme des «chevrons» à rechercher (séparés par des espaces). Les chevrons, sont des «chaînes», qui supportent les expressions régulières représentant au moins une partie du nom de fichier souhaité pour l'exportation de la VM.

C'est, dans sa forme la plus simple, une invocation de Xen-phoenix ressemblerait à ceci:

./Xen-phoenix.sh settings.cfg DevTools

Où dans le cas ci-dessus, nous sommes dans le répertoire qui contient le script et le fichier de paramètres et le "Chevron" que le script va rechercher est "DevTools". Tous les fichiers du répertoire des exportations portant la chaîne «DevTools» dans leur nom seront importés.

Un exemple plus complexe peut ressembler à:

./Xen-phoenix.sh settings.cfg [Aa][Dd] [Bb][iI] [Dd]ev[Tt]ools

Dans l'exemple ci-dessus, les fichiers contenant le mot «devtools» orthographié par des lettres majuscules «D» et «T» ou non majuscules, ainsi que «AD» et «BI» avec ou sans capitalisation, seront importés.

Calendrier

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

Entrez en mode d’édition de cron en émettant:

crontab -e

Si vous avez suivi les instructions ci-dessus et que vous souhaitez ajouter une sauvegarde planifiée pour dimanche à 01h31 (01h31), entrez les informations ci-dessous:

31 01 * * sun /root/Xen-phoenix-master/Xen-phoenix.sh /root/Xen-phoenix-master/settings.cfg [Aa][Dd] DB [Bb][iI] [Dd]ev[Tt]ools

Ce qui précède est correct en supposant que votre script et votre fichier de paramètres se trouvent tous les deux sous “/ root / Xen-phoenix-master /”.

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.

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

wget http://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éfinition de la balise “Delete Exception” (facultatif)

Xen-Phoenix prend une page de son ancêtre (Xen-Pocalypse) et vous donne la possibilité d'exclure de manière granulaire une machine virtuelle de la suppression à l'échelle du système à l'aide d'un contrôle TAG. Pour ce faire, vous devez définir un nouveau «champ personnalisé».

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 c'est la première fois que vous définissez un «champ personnalisé» (comme dans l'exemple ci-dessus), vous ne disposerez pas du champ «Phoenix_keeper» 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 cliquez sur «Ajouter…».

Créez un champ de type “Texte” avec le nom “Phoenix_keeper”.

Remarque: Le nom du champ personnalisé a été «codé 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 le champ créé, vous devriez voir:

Ferme la fenêtre. Vous devriez maintenant avoir le champ "Phoenix_keeper" à remplir, comme dans l'image ci-dessous.

Tout ce que vous avez à faire est de renseigner ce champ avec une remarque (toute remarque fera l'affaire), ce qui fera que Xen-phoenix l'ignorera lors de la suppression.

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.

Enregistrement

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

less +F /var/log/messages

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

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'effectuer les importations, à 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 :)


Pensez à toute la pauvreté, à la haine et aux mensonges, et imaginez la destruction de tout ce que vous méprisez. Lentement des cendres, le phénix va surgir…

Link
Plus
Send
Send
Pin