Concepts de la sauvegarde
Points de sauvegarde, sessions, suivi des modifications, exports et restaurations, et ce que le contrôleur et le logiciel de sauvegarde conservent.
Kyvernon fournit les moyens de sauvegarder des machines virtuelles sans agent dans l'invité : un instant cohérent de chaque disque, la liste des blocs modifiés depuis la dernière sauvegarde et un export réseau en lecture seule du disque à cet instant. Le contrôleur peut prendre et conserver lui-même des sauvegardes : il les écrit dans un dépôt, exécute des planifications et conserve les points les plus récents. Un logiciel de sauvegarde peut au contraire détenir son propre dépôt, la planification et la rétention, et utiliser l'API de sauvegarde du contrôleur (/v1/backup) pour prendre et lire chaque sauvegarde.
Sauvegardes du contrôleur
Une sauvegarde prise par le contrôleur écrit chaque disque d'une machine virtuelle dans le dépôt, sous forme de point de sauvegarde. Un point est incrémental lorsque le point précédent a des identifiants de modification : le contrôleur copie l'image précédente et écrit les zones modifiées sur la copie, si bien que chaque point contient des images entières et peut être restauré ou supprimé seul. Voir Sauvegarder une machine virtuelle.
Sessions et points de sauvegarde
Une sauvegarde démarre une session pour une machine virtuelle. Le contrôleur demande à l'hôte de créer un point de sauvegarde : le contenu de tous les disques sélectionnés à un même instant, pris en une seule étape sur l'hôte, avec un gel facultatif des systèmes de fichiers de l'invité. Ce que le logiciel lit est le disque à cet instant, quoi que la machine virtuelle écrive entre-temps. Aucun instantané n'apparaît dans l'arborescence des instantanés de la machine virtuelle.
Une session passe par les états REQUESTED, SNAPSHOT_TAKEN, EXPORTING et COMPLETED. Elle se termine en ABORTED lorsque le client signale un échec ou que l'hôte échoue, et en EXPIRED lorsqu'elle n'est pas maintenue active dans sa durée de vie (6 heures par défaut, 48 heures au plus). Une machine virtuelle a au plus une session active. La plateforme garde lisibles les 1 024 dernières sessions terminées.
Cohérence
La demande définit quiesce. NONE prend un point cohérent après incident. PREFERRED, la valeur par défaut, gèle les systèmes de fichiers par l'intermédiaire de l'agent invité lorsqu'il fonctionne, et prend sinon un point cohérent après incident. REQUIRED échoue lorsque le gel échoue. La session indique ce qu'elle a obtenu : CRASH_CONSISTENT ou FILESYSTEM_CONSISTENT.
Pendant que le logiciel lit un export lent, une image de copie avant écriture (fleecing) peut protéger la machine virtuelle en cours d'exécution : les écritures de l'invité vers des blocs pas encore lus vont au disque après la copie à part de l'ancien contenu.
Suivi des modifications et identifiants de modification
Kyvernon VMM tient un registre des blocs modifiés de chaque disque inscriptible (cbt = true dans agent.toml, la valeur par défaut). Chaque sauvegarde terminée renvoie un identifiant de modification par disque, une chaîne opaque. La session suivante le transmet en retour et ne reçoit que les zones modifiées depuis. La valeur * demande tout ce qui est alloué, ce qui donne une sauvegarde complète d'un disque à allocation dynamique sans lire ses vides.
Les zones sont listées par pages, par ordre croissant, avec une granularité de 64 Kio. Un identifiant de modification reste valide après une mise hors tension, un redémarrage de l'hôte, une migration à chaud et le déplacement d'un disque vers un autre datastore. Il devient périmé, et la sauvegarde suivante doit être complète, après une réinitialisation du suivi des modifications, un redimensionnement du disque, un retour à un instantané, une restauration sur le disque, la perte des données de suivi, ou lorsque des identifiants plus récents le font sortir (les 4 plus récents par disque sont conservés). Avec fallbackToFull, un identifiant de modification périmé donne une sauvegarde complète ; sans cette option, la demande échoue avec backup.change_id.stale.
Export du disque
Pour chaque disque d'une session à l'état EXPORTING, l'hôte sert un export en lecture seule par le protocole NBD. Un export vers une autre machine utilise toujours TLS 1.3. Le certificat provient de l'autorité de certification de la plateforme et son empreinte figure dans la session, de sorte que le client peut l'épingler. Un proxy de sauvegarde sur le même hôte peut utiliser un socket Unix à la place. La session nomme l'export, et son jeton n'est montré qu'à l'utilisateur qui a démarré la session. L'export dure jusqu'à la fin ou l'expiration de la session.
Les exports hors de l'hôte sont désactivés tant que le paramètre remote_exports de [backup] n'est pas activé dans le contrôleur.
Restauration
Une restauration écrit une image complète dans un nouveau disque d'une machine virtuelle. Le logiciel crée ou choisit une machine virtuelle hors tension, demande un export inscriptible d'un disque de la capacité indiquée, écrit l'image et la valide. Le disque restauré ouvre une nouvelle période de suivi, si bien que la première sauvegarde après une restauration est complète. Kyvernon conserve aussi les sauvegardes qu'il a prises lui-même. Une restauration écrit un point dans une nouvelle machine virtuelle, ou à la place des disques d'une machine virtuelle hors tension.
Une restauration peut être vérifiée sur la plateforme : la machine virtuelle restaurée démarre sur un réseau de quarantaine sans liaison montante, et la plateforme enregistre si elle a démarré, reçu une adresse et répondu sur les ports que vous nommez. Voir Restaurer une machine virtuelle.
Limites
| Élément | Valeur |
|---|---|
| Granularité des zones modifiées | 64 Kio |
| Durée de vie d'une session | 6 heures par défaut, 48 heures au plus |
| Sessions actives | 256 |
| Sessions terminées conservées | 1 024 |
| Identifiants de modification conservés par disque | 4 |
| Disques par session | 64 |
| Zones par page | 4 096 par défaut, 65 536 au plus |
| Délai d'un appel à l'hôte | 600 secondes par défaut (agent_timeout) |
Tâches liées
Version 0.1. Dernière modification : 2026-11-14