Procédure Pour: administrateurs, développeurs

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.

  1. Sur la page Accueil, sélectionnez Sauvegarde, puis ouvrez l'onglet Paramètres.

    Paramètres de sauvegarde (Agrandir)
  2. Saisissez Dépôt de sauvegarde. Avec plusieurs contrôleurs, ce doit être un stockage partagé monté au même chemin.
  3. Choisissez Mise au repos par défaut, la mise au repos qu'une sauvegarde utilise lorsque sa demande n'en précise pas.
  4. Sélectionnez Enregistrer. Chaque contrôleur applique la modification en une dizaine de secondes.

Sauvegarder une machine virtuelle

  1. 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é.

    Onglet Sauvegarde d'une machine virtuelle avec les points de sauvegarde (Agrandir)
  2. Sélectionnez Sauvegarder maintenant.
  3. 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.
  4. 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.
  5. 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.

  1. Sur la page Accueil, sélectionnez Sauvegarde, puis ouvrez l'onglet Planifications.

    Planifications de sauvegarde (Agrandir)
  2. Sélectionnez Nouvelle planification.
  3. 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.
  4. Choisissez Mise au repos comme ci-dessus.
  5. 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.
  6. 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.
  7. Laissez Activée activé et sélectionnez Enregistrer.

    Boîte de dialogue Nouvelle planification de sauvegarde (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

  1. Sur la page Sauvegarde, ouvrez l'onglet Sessions.

    Sessions de sauvegarde et de restauration (Agrandir)
  2. 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.
ÉtatSignification
DemandéeLe contrôleur a accepté la demande.
Instantané prisL'hôte a pris le point dans le temps des disques.
Copie en coursLes disques sont servis pour la copie.
TerminéeLa sauvegarde est terminée et ses identifiants de modification sont valides.
AbandonnéeLe 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éeLa 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 messageSignification et solution
backup.vm.no_tracked_disksLa machine virtuelle n'a aucun disque avec suivi des modifications. Activez Suivi des modifications dans ses paramètres matériels.
backup.disk.cbt_disabledLe suivi des modifications est désactivé pour le disque. Activez-le dans les paramètres matériels.
backup.change_id.staleL'identifiant de modification n'est plus valide. Faites une sauvegarde complète.
backup.session.vm_busyUne autre session est en cours pour la machine virtuelle. Réessayez plus tard.
backup.session.limitTrop de sessions sont actives. Réessayez plus tard.
backup.checkpoint.bitmap_missingLes données de suivi manquent. Terminez la session en échec et faites une sauvegarde complète.
backup.agent.timeoutL'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 :

Shell
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 :

Shell
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 :

Shell
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.

ChampSignification
nameNom de la planification.
enabledIndique si la planification s'exécute.
scopeIdentifiant 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.
frequencydaily ou weekly.
hour, minuteHeure du jour en UTC.
weekdaysHebdomadaire seulement, au moins un : 0 est dimanche.
quiesceNONE, PREFERRED ou REQUIRED.
fullEveryUn transfert complet tous les n points. 1 rend chaque point complet. Par défaut 7.
retentionPoints 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

Shell
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.

ChampSignification
repositoryRépertoire absolu que le contrôleur peut créer. Avec plusieurs contrôleurs, ce doit être un stockage partagé monté au même chemin.
defaultQuiesceMise au repos utilisée lorsqu'une demande n'en précise pas.
remoteExportsLecture seule. Réglez remote_exports dans controller.toml.
verifyScheduleHeure du jour en UTC (02:30) ou intervalle (6h). Vide : désactivé.
verifyNetworkLe réseau de quarantaine de la vérification.
verifyTimeoutSecondsDe 30 à 3600.
verifyDestroySupprimer la machine virtuelle de vérification après son verdict.
verifyPoolNom 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

Shell
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-01

Les 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 :

Shell
kyvernon backup info

Dé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 :

Shell
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 :

Shell
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 :

Shell
kyvernon backup sessions end <session-id> --outcome SUCCESS
kyvernon backup sessions get <session-id>
kyvernon backup sessions list --vm 6f1c3a52-8d0e-4b8f-9a35-0f5d2c7e9b11

Pour 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.

ÉtapeRequête
CapacitésGET /v1/backup/info
DémarrerPOST /v1/backup/sessions avec vmId, disks, quiesce, fallbackToFull, ttlSeconds
Lire une sessionGET /v1/backup/sessions/{id}, GET /v1/backup/sessions?vmId=
Zones modifiéesGET /v1/backup/sessions/{id}/disks/{deviceKey}/changed-areas?startOffset=&maxAreas=
Maintenir activePOST /v1/backup/sessions/{id}/keepalive
TerminerPOST /v1/backup/sessions/{id}/end avec {"outcome": "SUCCESS"} ou FAILURE
Redémarrer le suivi des modifications d'un disquePOST /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 messageAction
backup.change_id.stalePrenez une sauvegarde complète (*) ou définissez fallbackToFull.
backup.session.vm_busyUne autre session s'exécute pour la machine virtuelle. Réessayez plus tard.
backup.session.limitTrop de sessions actives. Réessayez plus tard.
backup.disk.cbt_disabledActivez le suivi des modifications de la machine virtuelle.
backup.checkpoint.bitmap_missingTerminez la session avec FAILURE et prenez une sauvegarde complète.
backup.agent.timeoutL'hôte n'a pas répondu et la session a été abandonnée. Réessayez.

Version 0.1. Dernière modification : 2026-11-14