Maison  >  Article  >  Opération et maintenance  >  Comment sauvegarder une machine virtuelle en cours d'exécution dans XenServer

Comment sauvegarder une machine virtuelle en cours d'exécution dans XenServer

不言
不言original
2019-03-25 16:30:503352parcourir

Cet article explique comment sauvegarder les machines virtuelles en cours d'exécution dans XenServer et peut exécuter le processus de sauvegarde des VM étape par étape. De plus, il existe un script shell qui peut également sauvegarder toutes les machines virtuelles ou certaines machines virtuelles spécifiées. programmé via crontab.

Comment sauvegarder une machine virtuelle en cours d'exécution dans XenServer

Méthode 1 : Sauvegarder manuellement la machine virtuelle en cours d'exécution

Les étapes suivantes peuvent également être effectuées via XenCenter, mais les utilisateurs de Linux préférez utiliser la ligne de commande.

1. Rechercher l'UUID du VMS

Utilisez la commande suivante pour obtenir la liste des UUID de tous les VMS et d'autres détails. Cet UUID sera utilisé à l'étape suivante pour générer

# xe vm-list is-control-domain=false is-a-snapshot=false

Selon le test de sortie ci-dessus, l'uuid de la machine virtuelle est "8ac95696-94f3-83c1-bc89-8bb2603f832b". Il se peut que vous soyez autrement.

uuid ( RO)           : 8ac95696-94f3-83c1-bc89-8bb2603f832b
     name-label ( RW): test-vm
    power-state ( RO): running
2. Créer un instantané VMS

Utilisez maintenant la commande suivante pour créer un instantané de VM à l'aide de l'UUID trouvé à l'étape ci-dessus. Assurez-vous d'utiliser le bon UUID.

La commande ci-dessus récupérera l'uuid de l'instantané, utilisera cet uuid pour convertir l'instantané en machine virtuelle, afin que nous puissions l'exporter vers un fichier à l'aide de la commande ci-dessous.

# xe vm-snapshot uuid=8ac95696-94f3-83c1-bc89-8bb2603f832b new-name-label=testvmsnapshot

3. Exporter l'instantané vers un fichier

# xe template-param-set is-a-template=false ha-always-run=false uuid=b15c0531-88a5-98a4-e484-01bc89131561
Nous pouvons maintenant exporter l'instantané créé vers un fichier .xva, qui peut être facilement restauré à partir de la ligne de commande ou de Xencenter.

4. Détruisez l'instantané

# xe vm-export vm=b15c0531-88a5-98a4-e484-01bc89131561 filename=vm-backup.xva
Enfin, puisque nous avons sauvegardé dans un fichier XVA, nous pouvons détruire l'instantané créé depuis XenServer.

Méthode 2 : Exécuter des vms à l'aide de la sauvegarde de script

# xe vm-uninstall uuid=b15c0531-88a5-98a4-e484-01bc89131561 force=true
Afin de sauvegarder toutes les machines virtuelles exécutées sur XenServer, nous pouvons également utiliser le script shell suivant. Ce script monte un système de fichiers distant exporté via NFS. Ce script fonctionne très bien pour cet exemple, mais peut ne pas fonctionner pour vous. L'utilisation de ce script ne garantit donc pas votre viabilité.

Cet article est terminé ici. Pour un contenu plus passionnant, vous pouvez prêter attention à la colonne

Tutoriel vidéo Linux
#!/bin/bash
#
# Written By: Mr Rahul Kumar
# Created date: Jun 14, 2014
# Last Updated: Mar 08, 2017
# Version: 1.2.1
# Visit: https://tecadmin.net/backup-running-virtual-machine-in-xenserver/
#

DATE=`date +%d%b%Y`
XSNAME=`echo $HOSTNAME`
UUIDFILE=/tmp/xen-uuids.txt
NFS_SERVER_IP="192.168.10.100"
MOUNTPOINT=/xenmnt
FILE_LOCATION_ON_NFS="/backup/citrix/vms"

### Create mount point

mkdir -p ${MOUNTPOINT}

### Mounting remote nfs share backup drive

[ ! -d ${MOUNTPOINT} ]  && echo "No mount point found, kindly check"; exit 0
mount -F nfs ${NFS_SERVER_IP}:${FILE_LOCATION_ON_NFS} ${MOUNTPOINT}

BACKUPPATH=${MOUNTPOINT}/${XSNAME}/${DATE}
mkdir -p ${BACKUPPATH}
[ ! -d ${BACKUPPATH} ]  && echo "No backup directory found"; exit 0


# Fetching list UUIDs of all VMs running on XenServer
xe vm-list is-control-domain=false is-a-snapshot=false | grep uuid | cut -d":" -f2 > ${UUIDFILE}

[ ! -f ${UUIDFILE} ] && echo "No UUID list file found"; exit 0

while read VMUUID
do
    VMNAME=`xe vm-list uuid=$VMUUID | grep name-label | cut -d":" -f2 | sed 's/^ *//g'`

    SNAPUUID=`xe vm-snapshot uuid=$VMUUID new-name-label="SNAPSHOT-$VMUUID-$DATE"`

    xe template-param-set is-a-template=false ha-always-run=false uuid=${SNAPUUID}

    xe vm-export vm=${SNAPUUID} filename="$BACKUPPATH/$VMNAME-$DATE.xva"

    xe vm-uninstall uuid=${SNAPUUID} force=true

done < ${UUIDFILE}

umount ${MOUNTPOINT}
du site Web PHP chinois !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn