Sauvegarder une machine virtuelle
Sauvegarder une machine virtuelle depuis son onglet Sauvegarde, à la demande ou planifiée, régler le dépôt ou utiliser son propre logiciel.
Une sauvegarde prend un point dans le temps cohérent de chaque disque d'une machine virtuelle qui a le suivi des modifications. La première sauvegarde est complète, les suivantes sont incrémentielles. Kyvernon peut effectuer lui-même la sauvegarde : le contrôleur lit chaque disque et l'écrit dans un dépôt, à la demande ou selon une planification. Un logiciel de sauvegarde peut aussi exécuter lui-même les étapes par l'API de session ; elle est décrite à la fin de cette page. Derrière chaque sauvegarde se trouve une session de l'API de sauvegarde ; les concepts sont dans Concepts de la sauvegarde.
Lorsque le suivi des modifications est désactivé, l'onglet affiche Le suivi des modifications est désactivé pour les disques de cette machine virtuelle. La première sauvegarde l’active et copie les disques entiers ; les sauvegardes suivantes ne copient que les modifications. Une sauvegarde par le contrôleur l'active d'abord, la première sauvegarde est donc complète. Vous avez besoin des privilèges ci-dessus sur la machine virtuelle, et du privilège Global.Settings pour créer ou supprimer des planifications.
Dans la console
Régler le dépôt
Le contrôleur écrit les points de sauvegarde dans un dépôt, un dossier dans lequel il peut écrire. Réglez-le avant la première sauvegarde.
Sur la page Accueil, sélectionnez Sauvegarde, puis ouvrez l'onglet Paramètres.
(Agrandir)
- Saisissez Dépôt de sauvegarde. Avec plusieurs contrôleurs, ce doit être un stockage partagé monté au même chemin.
- Choisissez Mise au repos par défaut, la mise au repos qu'une sauvegarde utilise lorsque sa demande n'en précise pas.
- Sélectionnez Enregistrer. Chaque contrôleur applique la modification en une dizaine de secondes.
Sauvegarder une machine virtuelle
Dans l'inventaire, sélectionnez la machine virtuelle et ouvrez l'onglet Sauvegarde. Le tableau Points de sauvegarde liste les points de sauvegarde avec Réalisé le, Type, Cohérence, Taille, Disques et Vérifié.
(Agrandir)
- Sélectionnez Sauvegarder maintenant.
- Choisissez Mise au repos. Préférée demande à l'agent invité de geler les systèmes de fichiers lorsqu'il fonctionne, et prend sinon un point cohérent après incident. Obligatoire échoue lorsque le gel échoue. Aucune (cohérente après incident) prend un point cohérent après incident.
- Sélectionnez Effectuer une sauvegarde complète pour recopier chaque bloc alloué alors qu'une sauvegarde incrémentielle est possible. Un identifiant de modification devient périmé après le redimensionnement du disque, une restauration d'un instantané ou une restauration sur le disque ; la sauvegarde suivante de ce disque doit alors être complète.
- Sélectionnez Sauvegarder maintenant dans la boîte de dialogue. La tâche est dans Tâches. Le nouveau point apparaît dans le tableau, avec le type Complète ou Incrémentielle et la cohérence Cohérente après incident ou Cohérente au niveau du système de fichiers.
Une sauvegarde est incrémentielle lorsque le point le plus récent de la machine virtuelle a des identifiants de modification pour les disques. Le contrôleur copie alors l'image précédente et écrit les zones modifiées sur la copie. Chaque point contient donc des images entières et peut être restauré ou supprimé seul.
Pour supprimer un point, sélectionnez Supprimer sur sa ligne et confirmez. Le point ne peut plus être restauré.
Sauvegarder un cluster ou un dossier selon une planification
Une planification sauvegarde chaque machine virtuelle d'un cluster ou d'un dossier qui a le suivi des modifications, à une heure du jour en UTC. Le contrôleur leader contrôle les planifications toutes les 20 secondes.
Sur la page Accueil, sélectionnez Sauvegarde, puis ouvrez l'onglet Planifications.
(Agrandir)
- Sélectionnez Nouvelle planification.
- Saisissez Nom et choisissez Couvre, un cluster ou un dossier. La portée ne peut plus être modifiée après la création de la planification.
- Choisissez Mise au repos comme ci-dessus.
- Choisissez Répétition : Tous les jours ou Certains jours de la semaine. Saisissez Heure du jour (UTC) en heures et minutes UTC, par exemple 01:30. Pour une planification hebdomadaire, cochez les Jours de la semaine.
- Saisissez Sauvegarde complète tous les : une sauvegarde complète tous les N points, où 1 rend chaque point complet. Saisissez Points conservés : les points plus anciens de chaque machine virtuelle sont supprimés.
Laissez Activée activé et sélectionnez Enregistrer.
(Agrandir)
Le tableau affiche Quand, Prochaine exécution et l'état Activée ou Désactivée. Sélectionnez Modifier pour modifier une planification, ou Supprimer pour l'arrêter : les points existants restent. Une planification que vous modifiez compte sa prochaine exécution à partir du moment de la modification.
Suivre les sessions
Sur la page Sauvegarde, ouvrez l'onglet Sessions.
(Agrandir)
- Lisez Machine virtuelle, Réalisé le, État, Mise au repos, Taille et Démarré par. Une session est une exécution de l'API de sauvegarde, lancée par la console, une planification ou un logiciel de sauvegarde.
| État | Signification |
|---|---|
| Demandée | Le contrôleur a accepté la demande. |
| Instantané pris | L'hôte a pris le point dans le temps des disques. |
| Copie en cours | Les disques sont servis pour la copie. |
| Terminée | La sauvegarde est terminée et ses identifiants de modification sont valides. |
| Abandonnée | Le client a signalé un échec ou l'hôte est tombé en panne. Les identifiants de modification précédents restent valides et la prochaine sauvegarde incrémentielle contient aussi les modifications de l'exécution échouée. |
| Expirée | La session n'a pas été maintenue active dans sa durée de vie, 6 heures par défaut et au plus 48 heures. |
Une machine virtuelle a au plus une session active. Le contrôleur garde lisibles les 1024 dernières sessions terminées. L'onglet Sauvegarde d'une machine virtuelle liste les sessions de cette machine.
Vérifier le service de sauvegarde
Sur l'onglet Vue d’ensemble, la carte Service de sauvegarde affiche la Version de l’API, les Fonctions, la Granularité du suivi (64 Kio), la Session la plus longue et l'état de Exports vers d’autres machines. Les exports vers d'autres machines sont désactivés tant que l'opérateur ne les active pas dans la configuration du contrôleur et ne redémarre pas le contrôleur ; voir Configuration. Un contrôleur situé sur une autre machine que l'hôte de la machine virtuelle en a besoin pour effectuer lui-même les sauvegardes : il lit alors les disques par TCP et TLS 1.3 et épingle le certificat grâce à l'empreinte que l'hôte indique. Sans eux, l'export est un socket Unix sur l'hôte. Les logiciels de sauvegarde qui lisent les disques depuis une autre machine en ont aussi besoin.
Lorsque le suivi des modifications est désactivé pour la machine virtuelle, une sauvegarde effectuée par le contrôleur l'active d'abord, par une tâche de reconfiguration.
Résultat
Le tableau Points de sauvegarde de la machine virtuelle contient le nouveau point et la session est Terminée. Le dépôt contient le point sous la forme <dépôt>/<uuid d'instance de la machine virtuelle>/<id du point>/disk-<deviceKey>.raw, un fichier par disque, avec manifest.json à côté. Le contrôleur écrit manifest.json en dernier, une fois que la session a validé ses identifiants de modification. Lorsqu'un logiciel de sauvegarde utilise à la place l'API de sauvegarde, Kyvernon ne garde aucune copie des données : le logiciel lit les disques par les exports et les conserve dans son propre dépôt.
Refus et échecs
| Identifiant de message | Signification et solution |
|---|---|
backup.vm.no_tracked_disks | La machine virtuelle n'a aucun disque avec suivi des modifications. Activez Suivi des modifications dans ses paramètres matériels. |
backup.disk.cbt_disabled | Le suivi des modifications est désactivé pour le disque. Activez-le dans les paramètres matériels. |
backup.change_id.stale | L'identifiant de modification n'est plus valide. Faites une sauvegarde complète. |
backup.session.vm_busy | Une autre session est en cours pour la machine virtuelle. Réessayez plus tard. |
backup.session.limit | Trop de sessions sont actives. Réessayez plus tard. |
backup.checkpoint.bitmap_missing | Les données de suivi manquent. Terminez la session en échec et faites une sauvegarde complète. |
backup.agent.timeout | L'hôte n'a pas répondu et la session a été abandonnée. Réessayez. |
Automatisation
La CLI et l'API font ce que fait la console, et l'API de session permet à un logiciel de sauvegarde d'effectuer lui-même la sauvegarde. Utilisez un compte qui a les privilèges ci-dessus sur la machine virtuelle, de préférence un jeton d'API d'un compte de service.
La restauration d'un disque dans une machine virtuelle existante, depuis le dépôt d'un logiciel de sauvegarde, se fait uniquement par l'API ; voir Restaurer une machine virtuelle.
Avec la CLI
Créez un point de sauvegarde d'une machine virtuelle, listez les points et supprimez-en un, comme la console :
kyvernon vm backup vm-42
kyvernon backup points
kyvernon backup delete-point <point-id>Lancez une sauvegarde et attendez la fin de la tâche :
kyvernon vm backup <vm> --wait
kyvernon vm backup <vm> --quiesce REQUIRED --wait
kyvernon vm backup <vm> --full --wait--quiesce vaut NONE, PREFERRED ou REQUIRED ; sans cette option, la mise au repos par défaut des paramètres de sauvegarde s'applique. --full force un transfert complet.
Listez les points d'une machine virtuelle :
kyvernon backup points --vm <vm>Avec l'API
POST /v1/backup/points avec {"vmId": "...", "quiesce": "PREFERRED", "full": false} lance la tâche VirtualMachine.backupToRepository. quiesce et full sont facultatifs. La demande exige VirtualMachine.Provisioning.DiskRandomRead et VirtualMachine.State.CreateSnapshot sur la machine virtuelle. Le contrôleur ouvre une session de sauvegarde, lit chaque disque par son export NBD dans le dépôt et écrit manifest.json en dernier. full: true force un transfert complet.
GET /v1/backup/points liste les points. Chacun a kind (full ou incremental), consistency (CRASH_CONSISTENT ou FILESYSTEM_CONSISTENT) et verified, le résultat de la dernière vérification de ce point. DELETE /v1/backup/points/{id} en supprime un.
Planifications de sauvegarde
Une planification sauvegarde à heure fixe toutes les machines virtuelles situées sous un objet d'inventaire. La suppression d'une planification conserve ses points.
| Champ | Signification |
|---|---|
name | Nom de la planification. |
enabled | Indique si la planification s'exécute. |
scope | Identifiant d'inventaire d'un dossier, d'un datacenter, d'un cluster, d'un pool de ressources, d'un hôte ou d'une machine virtuelle. Toutes les machines virtuelles situées dessous sont sauvegardées. |
frequency | daily ou weekly. |
hour, minute | Heure du jour en UTC. |
weekdays | Hebdomadaire seulement, au moins un : 0 est dimanche. |
quiesce | NONE, PREFERRED ou REQUIRED. |
fullEvery | Un transfert complet tous les n points. 1 rend chaque point complet. Par défaut 7. |
retention | Points conservés par machine virtuelle. 0 les conserve tous. Par défaut 14. |
Les vues ajoutent scopeName, lastRunAt, nextRunAt et lastResult (success ou failure), qui est écrit lorsque toutes les sauvegardes de l'exécution sont terminées.
Avec la CLI
kyvernon backup schedules list
kyvernon backup schedules create nightly --scope <id> --hour 1 --minute 30 --retention 14
kyvernon backup schedules create weekend --scope <id> --hour 3 --frequency weekly \
--weekday 6 --weekday 0 --full-every 2
kyvernon backup schedules update <id> --name nightly-db --hour 2
kyvernon backup schedules run <id>
kyvernon backup schedules delete <id>create accepte aussi --quiesce Q et --disabled. update accepte les mêmes options que create. get <id> affiche une planification, et run <id> la lance maintenant.
Avec l'API
GET et POST /v1/backup/schedules, GET, PUT et DELETE /v1/backup/schedules/{id}, et POST /v1/backup/schedules/{id}/run. Modifier une planification exige Global.Settings ; la lire exige System.Read.
Paramètres de sauvegarde
Les paramètres indiquent où les points sont conservés et comment ils sont vérifiés. Chaque contrôleur applique une modification en une dizaine de secondes.
| Champ | Signification |
|---|---|
repository | Répertoire absolu que le contrôleur peut créer. Avec plusieurs contrôleurs, ce doit être un stockage partagé monté au même chemin. |
defaultQuiesce | Mise au repos utilisée lorsqu'une demande n'en précise pas. |
remoteExports | Lecture seule. Réglez remote_exports dans controller.toml. |
verifySchedule | Heure du jour en UTC (02:30) ou intervalle (6h). Vide : désactivé. |
verifyNetwork | Le réseau de quarantaine de la vérification. |
verifyTimeoutSeconds | De 30 à 3600. |
verifyDestroy | Supprimer la machine virtuelle de vérification après son verdict. |
verifyPool | Nom du datastore des disques de vérification. Vide : le premier utilisable. |
Les paramètres sont stockés dans le store répliqué. Un champ jamais modifié dans la console affiche la valeur de la section [backup] de controller.toml (verify_repository, verify_schedule, verify_network, verify_timeout, verify_destroy, verify_pool). Un contrôleur situé sur une autre machine que l'hôte de la machine virtuelle exige remote_exports = true dans cette section. Pour la vérification, voir Restaurer une machine virtuelle.
Avec la CLI
kyvernon backup settings get
kyvernon backup settings set --repository /srv/backup-repo --default-quiesce PREFERRED
kyvernon backup settings set --verify-schedule 02:30 --verify-network restore-quarantine \
--verify-timeout 300 --verify-destroy true --verify-pool ds-local-01Les options que vous ne donnez pas conservent leur valeur.
Avec l'API
GET /v1/backup/settings exige System.Read. PUT /v1/backup/settings exige Global.Settings et est audité.
Avec votre propre logiciel de sauvegarde
Un logiciel de sauvegarde peut exécuter lui-même les étapes d'une sauvegarde par l'API de session. La session fournit un instant cohérent, la liste des zones à copier et un export en lecture seule de chaque disque. Le logiciel copie les données dans son propre dépôt. La machine virtuelle est identifiée par son UUID d'instance, et non par son identifiant d'inventaire.
La machine virtuelle a besoin du suivi des modifications : change_tracking dans sa configuration (changeTrackingEnabled pour les outils vSphere). Sans lui, la demande échoue avec backup.disk.cbt_disabled ou backup.vm.no_tracked_disks. La lecture hors de l'hôte exige remote_exports = true dans la section [backup] de controller.toml.
Avec la CLI
Vérifiez que le service répond et consultez ses limites :
kyvernon backup infoDémarrez une sauvegarde d'un disque. since vaut * pour tout ce qui est alloué, ou l'identifiant de modification renvoyé par la dernière sauvegarde terminée pour ce disque. Avec "disks": [], chaque disque avec suivi des modifications est sauvegardé en entier :
kyvernon backup sessions begin --body '{
"vmId": "6f1c3a52-8d0e-4b8f-9a35-0f5d2c7e9b11",
"disks": [{"deviceKey": 2000, "since": "*"}],
"quiesce": "PREFERRED",
"fallbackToFull": true,
"ttlSeconds": 21600
}'La réponse est la session. Pour chaque disque, elle contient export (hôte, port, empreinte TLS, nom d'export avec le jeton de session), changeId (la valeur à conserver à la fin de la sauvegarde) et incremental (faux lorsqu'une sauvegarde complète a été faite parce que l'identifiant de modification était périmé).
Listez les zones à copier, page par page, jusqu'à ce que le décalage atteigne la capacité du disque. Connectez-vous à l'export avec un client NBD qui prend en charge TLS 1.3, épinglez l'empreinte du certificat de la session et lisez les zones. Pour une copie longue, prolongez la session avant son échéance :
kyvernon backup sessions changed-areas <session-id> 2000 --start-offset 0 --max-areas 4096
kyvernon backup sessions keepalive <session-id>Terminez la session. Indiquez SUCCESS uniquement lorsque toutes les zones ont été copiées, et conservez les identifiants de modification des disques lorsque la session affiche COMPLETED :
kyvernon backup sessions end <session-id> --outcome SUCCESS
kyvernon backup sessions get <session-id>
kyvernon backup sessions list --vm 6f1c3a52-8d0e-4b8f-9a35-0f5d2c7e9b11Pour la sauvegarde incrémentielle suivante, répétez begin avec l'identifiant de modification conservé comme since. Une session qui se termine en ABORTED ou EXPIRED ne donne aucun identifiant de modification valide.
Avec l'API
Les points de sauvegarde de la console sont POST /v1/backup/points (en créer un), GET /v1/backup/points (lister) et DELETE /v1/backup/points/{id}. L'API de sessions ci-dessous est celle que les logiciels de sauvegarde utilisent.
| Étape | Requête |
|---|---|
| Capacités | GET /v1/backup/info |
| Démarrer | POST /v1/backup/sessions avec vmId, disks, quiesce, fallbackToFull, ttlSeconds |
| Lire une session | GET /v1/backup/sessions/{id}, GET /v1/backup/sessions?vmId= |
| Zones modifiées | GET /v1/backup/sessions/{id}/disks/{deviceKey}/changed-areas?startOffset=&maxAreas= |
| Maintenir active | POST /v1/backup/sessions/{id}/keepalive |
| Terminer | POST /v1/backup/sessions/{id}/end avec {"outcome": "SUCCESS"} ou FAILURE |
| Redémarrer le suivi des modifications d'un disque | POST /v1/backup/disks/{diskId}/invalidate avec vmId et reason |
startOffset doit être un multiple de la granularité de 64 Kio que info indique. Les identifiants de modification sont opaques : conservez-les comme chaînes et renvoyez-les sans changement.
Résultat
Le dépôt du logiciel de sauvegarde contient le contenu du disque au point de sauvegarde, et l'identifiant de modification de chaque disque est stocké pour la prochaine sauvegarde incrémentale.
Erreurs à gérer
| Clé de message | Action |
|---|---|
backup.change_id.stale | Prenez une sauvegarde complète (*) ou définissez fallbackToFull. |
backup.session.vm_busy | Une autre session s'exécute pour la machine virtuelle. Réessayez plus tard. |
backup.session.limit | Trop de sessions actives. Réessayez plus tard. |
backup.disk.cbt_disabled | Activez le suivi des modifications de la machine virtuelle. |
backup.checkpoint.bitmap_missing | Terminez la session avec FAILURE et prenez une sauvegarde complète. |
backup.agent.timeout | L'hôte n'a pas répondu et la session a été abandonnée. Réessayez. |
Voir aussi
Version 0.1. Dernière modification : 2026-11-14