Je veux une méthode robuste pour prendre la sauvegarde de KVM VPS du fichier qcow2, lors de l'exécution. Après une longue recherche, j'ai découvert que nous pouvons utiliser rsync pour la sauvegarde en direct. J'ai utilisé la commande suivante pour rsync:
rsync -avh /vms/base.qcow2 /backup/backup.qcow2
Cela a fonctionné correctement. Mais je crains que cela puisse corrompre l'image de sauvegarde qcow2 si la sauvegarde est prise pendant que VPS est modifié en raison des opérations d'écriture et de suppression (comme l'installation d'un nouveau logiciel ou la mise à jour).
Par conséquent, la sauvegarde à partir d'un instantané de VPS en direct semble une option plus intéressante.
J'ai utilisé les commandes suivantes pour prendre une sauvegarde de l'exécution de VPS:
1.Créez un instantané:
qemu-img create -f qcow2 -b base.qcow2 snapshot.qcow2
2.Convertir un instantané au format d'image brute (.img):
qemu-img convert -O raw snapshot.qcow2 /backup/backup.img
Pour restaurer VPS:
3. convertir l'image brute en image qcow2:
qemu-img convert -O qcow2 /backup/backup.img base.qcow2
Ensuite, nous pouvons démarrer VPS par virsh create base.xml
commande.
Même si cette méthode fonctionne également parfaitement, je ne sais toujours pas si c'est la bonne méthode pour prendre une sauvegarde de l'exécution de VPS. J'ai trouvé une bonne documentation sur les commandes qemu-img ici et ici . Mais ils n'ont rien mentionné sur la conversion d'un instantané de VPS en direct en image brute.
Quelle méthode est la plus appropriée pour la sauvegarde VPS en direct? La conversion d'un instantané en image brute est-elle sûre?
Si je pouvais obtenir une belle documentation détaillée sur le comportement des instantanés et des fichiers de base dans certaines conditions, ce serait très utile.
Peut-être pouvons-nous également convertir l'image de base qcow2 en fichier de sauvegarde brut au lieu de convertir un instantané. Ainsi, le flux de commandes sera:
1. Créer un instantané
2. Convertir la base qcow2 en image brute de sauvegarde
3. Valider les modifications de l'instantané dans l'image de base
4. Supprimer l'instantané
J'ai essayé cela et cela a bien fonctionné sur de petits VPS de 5 Go. Mais y a-t-il une possibilité d'erreur ou de corruption VPS lorsque la taille VPS est énorme?
Merci d'avance...
Réponses:
La seule chose qui vous manque est de suspendre le système de fichiers invité avant de prendre l'instantané, pour vous assurer qu'il est cohérent. Cela peut être fait avec
virsh domfsfreeze
si vous utilisez libvirtd.Par exemple, l'ordre des opérations est le suivant:
Notez bien que cela nécessite d'
qemu-guest-agent
être installé et exécuté sur la machine virtuelle. Selon les choix de distribution et d'installation, cela peut ou non être le cas.Le
qemu-guest-agent
est également extensible; vous pouvez y ajouter des scripts pour prendre en charge des logiciels spécifiques. Par exemple, il inclut un exemple de script pour mettre MySQL dans un état cohérent.la source
virsh domfsfreeze $VM_NAME
, j'obtiens une autorisation refusée sur mon système de fichiers invité. Mes systèmes de fichiers invités sont cryptés, je ne suis pas sûr que cela compte.Il existe une autre approche qui consiste à créer des instantanés temporaires pendant la sauvegarde et à les réactiver par la suite.
Pour plus d'informations, voir: https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit
la source