Bienvenue > Solutions de sauvegarde et de restauration XenServer

Solutions de sauvegarde et de restauration XenServer

Solutions de sauvegarde et de restauration XenServer

La technologie de Bacula Systems pour la sauvegarde et la restauration après sinistre de XenServer apporte aux utilisateurs de Xen une rapidité et une commodité jamais vues auparavant, toutes conçues pour faciliter la sauvegarde des VM Xen, sans aucune étape intermédiaire.

L'intégration native de Bacula Enterprise Editions avec Xen permet une restauration bare metal des machines virtuelles, tandis que sa capacité à sauvegarder les données au niveau de l'invité simplifie la protection des données des applications critiques. La sauvegarde peut être effectuée pour une VM invitée dans n'importe quel état d'alimentation (en fonctionnement ou arrêtée). La restauration d'un seul fichier est disponible.

Bacula utilise l'API du serveur Xen pour accéder aux machines virtuelles et les sauvegarder. Il apporte une large gamme de fonctionnalités, de capacités et d'automatisation à l'environnement Xen, y compris des niveaux de sauvegarde incrémentale et différentielle. Vous trouverez ci-dessous une description détaillée des capacités de Bacula Enterprise avec XenServer (Hyperviseur Citrix) :

Caractéristiques de la sauvegarde XenServer de Bacula

  • Sauvegarde en ligne basée sur des instantanés de n'importe quelle VM invitée.
  • Niveaux de sauvegarde différentielle et incrémentale
  • Restauration d'un seul fichier
  • Instantanés d'invités basés sur VSS pour la mise au repos des applications basées sur VSS
  • Sauvegarde complète au niveau de l'image
  • Possibilité de restaurer l'image complète de la machine virtuelle
  • Possibilité de restaurer l'archive de la machine virtuelle dans un autre répertoire
  • Utilise des images disques brutes et une configuration ova
  • Prise en charge de la restauration des anciens formats de sauvegarde
  • Journaux complets des tâches de restauration

Bacula affiche également des informations utiles sur les ressources XenServer disponibles, qui pourraient simplifier votre configuration de sauvegarde et vos opérations de restauration, telles que :

  • Liste des étiquettes de noms des VM invitées
  • Liste des UUIDs des VM invitées
  • Liste des référentiels de stockage XenServer

Avantages de la solution de sauvegarde XenServer de Bacula

Il est important d'avoir une stratégie de sauvegarde XenServer qui va au-delà de l'utilisation de scripts au niveau de la ligne de commande ou du shell, qui n'offrent pas d'alternatives ou d'avantages en termes de :

  • Granularité lors de l'utilisation de la sauvegarde et de la restauration des VM Citrix XenServer.
  • Exécution de différents niveaux de sauvegarde Citrix XenServer VM
  • Facilité de restauration des données Citrix Xen VM
  • Planification de la sauvegarde de XenSever de Citrix

Bacula Enterprise vous permet de gérer et d'exécuter la sauvegarde de XenServer VM configurées dans divers environnements, qu'ils soient physiques, distants ou dans le cloud.

Opérations de sauvegarde et de restauration de XenServer

(Note : toutes les sections ci-dessous sont en cours de révision, car le module vient d'être mis à jour avec de nouvelles fonctionnalités)

Sauvegarde

L'opération de sauvegarde d'une seule VM XenServer invitée suit les étapes suivantes :

  • Rechercher et supprimer tout snapshot de sauvegarde ancien ou bloqué s'il est trouvé.
  • Créer un nouveau snapshot Bacula de la VM invitée et le préparer pour la sauvegarde.
  • Exécutez la commande vm-export de XenServer et sauvegardez les données sur un démon de stockage Bacula.
  • Supprimez le snapshot Bacula de la VM invitée.

Les sauvegardes XenServer peuvent être effectuées pour une VM invitée dans n'importe quel état d'alimentation (en cours d'exécution ou arrêtée). Tout snapshot de la VM invitée dont le nom/label correspond au modèle suivant : BaculaSnapshot_<UUID>_JobID_<NR> sera traité comme un ancien instantané de sauvegarde pour cette VM invitée et sera automatiquement supprimé pendant la sauvegarde. Évitez de créer des snapshots manuels qui correspondent à ce schéma de dénomination. Tous les autres instantanés de la VM invitée ne seront pas affectés. Le plugin de sauvegarde XenServer vous informera du début et de la fin de chaque sauvegarde de VM invitée, y compris des informations sur les anciens instantanés de sauvegarde bloqués et les activités d'instantanés de sauvegarde. Par exemple :

 

JobId 135: Start Backup JobId 135, Job=xen.2017-12-28_15.52.21_11
JobId 135: Using Device "FileChgr1-Dev1" to write.
JobId 135: Volume "Vol-0002" previously written, moving to end of data.
JobId 135: xenserver: Start Backup vm: CentOS 7 (fe1ccf3b-1865-3942-c928-d98138397ff1)
JobId 135: xenserver: Old stalled backup snapshots found.
JobId 135: xenserver: Snapshot deleted: 12e387c0-eac5-84b1-8e40-1d0601c9eebf
JobId 135: xenserver: Snapshot created: 03afdf67-4ae3-7b0a-5eb0-2c2520c8580f
JobId 135: xenserver: Snapshot deleted: 03afdf67-4ae3-7b0a-5eb0-2c2520c8580f
JobId 135: xenserver: Backup of vm: CentOS 7 (fe1ccf3b-1865-3942-c928-d98138397ff1) OK.
...

La sauvegarde créera un seul fichier pour chaque VM invité enregistré sous la forme de : /@xen/<name-label>/<vmuuid>.xva. Plusieurs fichiers seront créés pendant la sauvegarde si plusieurs VM invitées sont trouvées à sauvegarder. Vous pouvez utiliser ces informations pour localiser l'archive de la VM invitée appropriée lors d'une restauration.

 

+-------------------------------------------------------+
| filename |
+-------------------------------------------------------+
| /@xen/vm1/10908c8a-f932-6f91-9cac-3034e3acf45b.xva |
| /@xen/vm1/03fad8c9-d88b-ea7e-98da-2f3bcd20d0c4.xva |
| /@xen/CentOS/fe1ccf3b-1865-3942-c928-d98138397ff1.xva |
+-------------------------------------------------------+

Restauration

Le module de sauvegarde et de restauration XenServer VM fournit deux cibles principales pour les opérations de restauration :

  • Restauration vers un hyperviseur XenServer en tant que VM invitée nouvelle ou originale.
  • Restauration vers un répertoire local en tant que fichier ou fichiers d'archive XenServer XVA.

Restauration vers XenServer

Pour utiliser cette méthode de restauration, vous devez définir un paramètre de restauration Bacula "where=/". L'archive de la VM invitée sera envoyée à l'hyperviseur XenServer et restaurée en tant que nouvelle VM invitée (comportement par défaut) ou restaurée en tant qu'original lorsque l'option de restauration preserve du plugin sera définie. Vous pouvez changer le Storage Repository où votre VM invitée sera restaurée.

Pour lister les référentiels de stockage disponibles, vous pouvez utiliser un mode de liste, voir 6.1 à la page 13. Si vous définissez un référentiel de stockage inapproprié (par exemple, inexistant) pour la restauration, le processus de restauration créera la VM invitée sur le stockage par défaut du XenServer.

Restauration vers un repertoire local

Pour utiliser cette méthode de restauration, vous devez définir un paramètre de restauration Bacula "where=/some/path". Le chemin doit être un répertoire sur le serveur où le plugin de sauvegarde XenServer VM est installé. Si le chemin n'existe pas, il sera créé par le plugin.


Installation de XenServer VM Backup

Vous devez installer et configurer le File Daemon de Bacula sur la machine de l'hyperviseur XenServer qui héberge les VM virtuelles que vous souhaitez sauvegarder. L'hyperviseur XenServer utilise une distribution CentOS personnalisée (dérivée de RHEL), vous devez donc installer le Bacula Enterprise File Daemon compatible avec cette distribution Linux.

Configuration

La directive Plugin Directory de la ressource File Daemon dans /opt/bacula/etc/baculafd.conf doit indiquer où est installé le plugin xenserver-fd.so. Le répertoire standard des plugins de Bacula est : /opt/bacula/plugins

 

FileDaemon {
Name = bacula-fd
Plugin Directory = /opt/bacula/plugins
...
}

Installation du plugin de sauvegarde VM XenServer

Vous pouvez installer le plugin Bacula Enterprise XenServer en étendant le fichier de dépôt de votre gestionnaire de paquets afin de contenir une section pour le plugin. Par exemple, dans Redhat/CentOS 7, /etc/yum.repos.d/bacula.repo :

 

[Bacula]
name=Bacula Enterprise Edition
baseurl=https://www.baculasystems.com/dl/@customer-string@/rpms/bin/@version@/rhel7-64/
enabled=1
protect=0
gpgcheck=0
[BEEXenPlugin]
name=BEE XenServer Plugin
baseurl=https://www.baculasystems.com/dl/@customer-string@/rpms/xenserver/@version@/rhel7-64/
enabled=1
protect=0
gpgcheck=0

Ensuite, effectuez une mise à jour yum et après cela, le paquet bacula-enterprise-xenserverplugin peut être installé avec yum install.

Si vous préférez installer manuellement les paquets, vous pouvez également les télécharger depuis votre zone de téléchargement et utiliser l'un des outils de gestion de paquets de bas niveau tels que rpm pour effectuer l'installation du plugin.


Configuration de la sauvegarde de XenServer

Le plugin de sauvegarde XenServer est configuré en utilisant les paramètres définis dans la section "Include" d'un FileSet de la configuration de Bacula Enterprise Director.

Paramètre général du plug-in

Les paramètres suivants du plugin de sauvegarde XenServer VM affectent tout type de Job (Sauvegarde, Estimation, ou Restauration).

  • server=<address> spécifie l'adresse API XenServer utilisée pour les opérations. Il s'agit de l'adresse utilisée dans la commande xe comme paramètre -s <address>. Ce paramètre est facultatif. S'il est omis, l'accès par défaut sera utilisé.
  • port=<number> spécifie le port de l'API XenServer utilisé pour les opérations. Il s'agit de la valeur utilisée dans la commande xe comme paramètre -p < number >. La valeur de ce paramètre doit être comprise dans la plage 1..65536. Une valeur non valide entraînera l'abandon du travail. Ce paramètre est facultatif. S'il est omis, l'accès par défaut sera utilisé.
  • username=<string> spécifie le nom d'utilisateur utilisé pour accéder au système API XenServer. Il s'agit de la valeur utilisée dans la commande xe comme paramètre -u <string>. Ce paramètre est facultatif. S'il est omis, l'accès par défaut sera utilisé.
  • password=<string> spécifie le mot de passe utilisé pour accéder au système API XenServer. Il s'agit de la valeur utilisée dans la commande xe comme paramètre -pw <string>. Ce paramètre est facultatif. S'il est omis, l'accès par défaut sera utilisé.
  • passfile=<string> spécifie un fichier local au File Daemon qui contient le mot de passe pour le nom d'utilisateur. Il s'agit de la valeur utilisée dans la commande xe comme paramètre -pwf <string>. Ce paramètre est facultatif. S'il est omis, l'accès par défaut sera utilisé.
  • abort_on_error [=<0 ou 1>] spécifie si le plugin doit ou non interrompre son exécution (et le job Bacula) si une erreur fatale se produit pendant une opération de sauvegarde, d'estimation ou de restauration. Ce paramètre est facultatif. La valeur par défaut est 0.

Estimation et paramètres du plugin de sauvegarde VM de XenServer

  • - vm=<name-label> spécifie un nom de VM invité à sauvegarder. Toutes les VM invitées avec un nom-label fourni seront sélectionnées pour la sauvegarde. Plusieurs paramètres vm=... peuvent être fournis. Si une VM invitée avec < name-label> ne peut être trouvée, alors une erreur de travail unique sera générée et la sauvegarde passera à la VM suivante, sauf si abort_on_error est défini, ce qui entraînera l'abandon du travail de sauvegarde. Ce paramètre est facultatif.
  • uuid=<uuid> spécifie un UUID de la VM invitée à sauvegarder. Plusieurs paramètres uuid=... peuvent être fournis. Si une VM invitée avec <uuid> ne peut être trouvée, alors une erreur de travail unique sera générée et la sauvegarde passera à la VM suivante, sauf si abort_on_error est défini, ce qui entraînera l'abandon de la tâche de sauvegarde. Ce paramètre est facultatif.
  • include=<name-label-regex> spécifie une liste de noms de VM invitées à sauvegarder en utilisant une syntaxe d'expression régulière. Toutes les VM invitées qui correspondent au nom-label-regex fourni seront sélectionnées pour la sauvegarde. Plusieurs paramètres include=... peuvent être fournis. Si aucune VM invitée ne correspond au <name-label-regex> fourni, la sauvegarde passera aux paramètres de la VM suivante ou se terminera avec succès sans sauvegarder aucune VM. Le paramètre abort_on_error n'abandonnera pas le travail lorsqu'aucune VM invitée n'est trouvée à l'aide d'un <name-label-regex>. Ce paramètre est facultatif.
  • - exclude=<name-label-regex> spécifie la liste des noms des VM invitées qui seront exclues de la sauvegarde en utilisant la syntaxe des expressions régulières. Toutes les VM invitées qui correspondent au name-label-regex fourni et qui ont été sélectionnées pour la sauvegarde en utilisant les paramètres include=... seront exclues. Ce paramètre n'affecte pas les VM invitées sélectionnées pour la sauvegarde avec les paramètres vm=... ou uuid=.... Plusieurs paramètres exclude=... peuvent être fournis. Ce paramètre est optionnel.
  • quiesce [=<0 ou 1>] spécifie si le cliché de la VM invitée doit être créé en utilisant une méthode quiesce ou non. La méthode quiesce est prise en charge par XenServer pour le système d'exploitation Windows avec les outils invités installés uniquement. Il s'agit d'une limitation du XenServer lui-même. Si le snapshot de la VM invitée avec quiesce ne peut pas être créé, l'ensemble du travail de sauvegarde sera interrompu. Dans ce cas, vous devez répéter une sauvegarde sans le paramètre quiesce.

Si aucun des paramètres vm=..., uuid=..., include et exclude n'est spécifié, toutes les VM invitées disponibles hébergées sur l'hyperviseur XenServer seront sauvegardées.

Paramètres de restauration du plugin

Pendant la restauration, le plugin de sauvegarde XenServer utilisera les mêmes paramètres que ceux qui ont été définis pour la tâche de sauvegarde et enregistrés. Certains d'entre eux peuvent être modifiés pendant le processus de restauration si nécessaire.

  • server : <address> spécifie l'adresse de l'API XenServer utilisée pour les opérations. Il s'agit de l'adresse utilisée dans la commande xe comme paramètre -s <address>. Ce paramètre est facultatif. S'il est omis, l'accès par défaut sera utilisé.
  • port : <number> spécifie le port de l'API XenServer utilisé pour les opérations. Il s'agit de la valeur utilisée dans la commande xe comme paramètre -p <numéro>. La valeur du paramètre doit être comprise dans la plage 1..65536. Une valeur non valide entraînera l'abandon du travail. Ce paramètre est facultatif. S'il est omis, l'accès par défaut sera utilisé.
  • username : <string> spécifie le nom d'utilisateur utilisé pour accéder au système API XenServer. Il s'agit de la valeur utilisée dans la commande xe comme paramètre -u <string>. Ce paramètre est facultatif. S'il est omis, l'accès par défaut sera utilisé.
  • mot de passe : <string> spécifie le mot de passe utilisé pour accéder au système API XenServer. Il s'agit de la valeur utilisée dans la commande xe comme paramètre -pw <string>. Ce paramètre est facultatif. S'il est omis, l'accès par défaut sera utilisé.
  • passfile : <string> spécifie un fichier local au File Daemon qui contient le mot de passe pour le nom d'utilisateur. Il s'agit de la valeur utilisée dans la commande xe comme paramètre -pwf <string>. Ce paramètre est facultatif. S'il est omis, l'accès par défaut sera utilisé.
  • storage_res : <storage> spécifie un référentiel de stockage XenServer où les VM invitées restaurées seront enregistrées. Si ce paramètre n'est pas défini, alors une VM d'invité sera sauvegardée dans un référentiel de stockage XenServer configuré par défaut. Ce paramètre est facultatif.
  • preserve : <yes or no> spécifie si un travail de restauration doit préserver autant de paramètres de configuration de la VM invitée que possible. La valeur par défaut est de créer une nouvelle VM lors de la restauration. Un job de restauration avec cette option preserve définie sur 'yes' pourrait échouer si la restauration risque de créer des objets en double sur l'hyperviseur XenServer. Ce paramètre est facultatif.

Exemples de FileSet

Dans l'exemple ci-dessous, toutes les VM invitées seront sauvegardées.

 

FileSet {
Name = FS_XenAll
Include {
Plugin = "xenserver:"
}
}

Dans l'exemple ci-dessous, une seule VM invitée avec un nom-label de "VM1" sera sauvegardée.

 

FileSet {
Name = FS_Xen_VM1
Include {
Plugin = "xenserver: vm=VM1"
}
}

Le même exemple que ci-dessus, mais en utilisant l'uuid à la place :

 

FileSet {
Name = FS_Xen_VM1
Include {
Plugin = "xenserver: uuid=fe1ccf3b-1865-3942-c928-d98138397ff1"
}
}

Dans l'exemple ci-dessous, toutes les VM invitées dont le nom contient "Prod" seront sauvegardées.

 

FileSet {
Name = FS_Xen_ProdAll
Include {
Plugin = "xenserver: include=Prod"
}
}

Dans l'exemple ci-dessous, toutes les VMs invitées sauf celles dont le nom-label commence par "Test" seront sauvegardées.

 

FileSet {
Name = FS_Xen_AllbutTest
Include {
Plugin = "xenserver: include=.* exclude=^Test"
}
}


Restauration

Restauration vers un hyperviseur XenServer

Pour restaurer une ou plusieurs VM sur un hyperviseur XenServer, vous devez exécuter la commande restore et spécifier le paramètre "where" comme dans cet exemple :

 

* restore where=/

... Définissez ensuite tous les autres paramètres du plugin de restauration requis pour votre restauration. Dans l'exemple de session de restauration suivant, l'option de restauration du plugin "Preserve vm config on restore" est définie sur "yes" :

 

* restore where=/
...
Run Restore job
JobName: RestoreFiles
Bootstrap: /opt/bacula/working/srv-xen-01-dir.restore.2.bsr
Where: /
Replace: Always
FileSet: Full Set
Backup Client: srv-xen-01-fd
Restore Client: srv-xen-01-fd
Storage: File1
When: 2018-01-05 12:47:16
Catalog: MyCatalog
Priority: 10
Plugin Options: *None*
OK to run? (yes/mod/no): mod
Parameters to modify:
1: Level
2: Storage
3: Job
4: FileSet
5: Restore Client
6: When
7: Priority
8: Bootstrap
9: Where
10: File Relocation
11: Replace
12: JobId
13: Plugin Options
Select parameter to modify (1-13): 13
Automatically selected : xenserver: uuid=fe1ccf3b-1865-3942-c928-d98138397ff1
Plugin Restore Options
server: *None* (*None*)
port: *None* (*None*)
username: *None* (*None*)
password: *None* (*None*)
passfile: *None* (*None*)
storage_res: *None* (*Default location*)
preserve: *None* (*No*)
Use above plugin configuration? (yes/mod/no): mod
You have the following choices:
1: server (Restore server name)
2: port (Restore server port number)
3: username (Restore user name)
4: password (Restore user password)
5: passfile (Restore user password file)
6: storage_res (Storage Resource location for restore)
7: preserve (Preserve vm config on restore)
Select parameter to modify (1-7): 7
Please enter a value for preserve: yes
Plugin Restore Options
server: *None* (*None*)
port: *None* (*None*)
username: *None* (*None*)
password: *None* (*None*)
passfile: *None* (*None*)
storage_res: *None* (*Default location*)
preserve: yes (*No*)
Use above plugin configuration? (yes/mod/no):

Le journal du travail de restauration vous informera sur la VM invitée qui a été restaurée et sur la nouvelle VM invitée qui a été créée.

 

JobId 131: Start Restore Job RestoreFiles.2017-12-28_14.42.25_15
JobId 131: Using Device "FileChgr1-Dev2" to read.
JobId 131: xenserver: VM restore: vm1/10908c8a-f932-6f91-9cac-3034e3acf45b
JobId 131: Forward spacing Volume "Vol-0002" to addr=1758441248
JobId 131: Elapsed time=00:04:51, Transfer rate=3.158 M Bytes/second
JobId 131: xenserver: VM UUID created: 45c49e07-ff20-ab55-e622-05ff2fbb0c1f

La nouvelle VM invitée créée pendant la restauration aura un nouveau nom-label défini par le plugin comme : <name-label>/<vmuuid> où <vmuuid> est l'UUID de la VM originale qui a été sauvegardée.

Restaurer vers un répertoire local

 

* restore where=/tmp/bacula/restores

Veuillez consulter l'exemple suivant pour le test "VM local restore" :

 

JobId 112: Start Restore Job RestoreFiles.2017-12-28_11.30.19_34
JobId 112: Using Device "FileChgr1-Dev2" to read.
JobId 112: xenserver: VM local restore
JobId 112: Forward spacing Volume "Vol-0001" to addr=5190619786
JobId 112: Elapsed time=00:00:30, Transfer rate=30.64 M Bytes/second

Le journal du travail de restauration vous informera qu'une restauration sera effectuée dans un répertoire local.


Nicolas Van Eenaeme
Netlog’s Director of ITS
«Au fur et à mesure de notre croissance, la sauvegarde de XenServer prenait de plus en plus de temps. Nous avons alors décidé de prendre un contrat de support avec Bacula Systems et d'utiliser la solution Open Core : Bacula Enterprise Edition. Ils nous ont aidé à optimiser la configuration de notre VM XenServer, et maintenant les sauvegardes sont effectuées presque deux fois plus vite qu'avant.»

Aide supplémentaire sur la sauvegarde de XenServer :