Back-upconcepten
Back-uppunten, sessies, wijzigingsregistratie, exports en herstel van Kyvernon, en wat de controller en back-upsoftware elk bewaren.
Kyvernon biedt de middelen om virtuele machines te back-uppen zonder agents in de gast: een consistent tijdstip van elke schijf, de lijst van blokken die sinds de vorige back-up zijn gewijzigd, en een alleen-lezen netwerkexport van de schijf op dat tijdstip. De controller kan zelf back-ups maken en bewaren: zij schrijft ze naar een repository, voert schema's uit en bewaart de nieuwste punten. Back-upsoftware kan in plaats daarvan een eigen repository, schema en bewaartermijn beheren en de back-up-API van de controller (/v1/backup) gebruiken om elke back-up te maken en te lezen.
Back-ups van de controller
Een back-up die de controller maakt, schrijft elke schijf van een virtuele machine als back-uppunt naar de repository. Een punt is incrementeel wanneer het vorige punt wijzigings-id's heeft: de controller kopieert het vorige image en schrijft de gewijzigde gebieden op de kopie, zodat elk punt hele images bevat en afzonderlijk kan worden hersteld of verwijderd. Zie Een virtuele machine back-uppen.
Sessies en back-uppunten
Een back-up start een sessie voor één virtuele machine. De controller vraagt de host een back-uppunt te maken: de inhoud van alle geselecteerde schijven op één tijdstip, in één stap op de host genomen, met een optionele bevriezing van de bestandssystemen van de gast. Wat de software leest is de schijf op dat tijdstip, wat de virtuele machine ondertussen ook schrijft. Er verschijnt geen snapshot in de snapshotboom van de virtuele machine.
Een sessie doorloopt de statussen REQUESTED, SNAPSHOT_TAKEN, EXPORTING en COMPLETED. Zij eindigt als ABORTED wanneer de client een fout meldt of de host faalt, en als EXPIRED wanneer zij niet binnen haar levensduur in leven wordt gehouden (standaard 6 uur, hoogstens 48 uur). Een virtuele machine heeft hoogstens één actieve sessie. Het platform houdt de laatste 1.024 afgeronde sessies leesbaar.
Consistentie
Het verzoek stelt quiesce in. NONE maakt een crash-consistent punt. PREFERRED, de standaardwaarde, bevriest de bestandssystemen via de gastagent als die draait en maakt anders een crash-consistent punt. REQUIRED mislukt als het bevriezen mislukt. De sessie meldt wat zij heeft bereikt als CRASH_CONSISTENT of FILESYSTEM_CONSISTENT.
Terwijl software een trage export leest, kan een copy-before-write-image (fleecing) de draaiende virtuele machine beschermen: schrijfacties van de gast naar blokken die nog niet zijn gelezen gaan naar de schijf nadat de oude inhoud opzij is gekopieerd.
Wijzigingsregistratie en wijzigings-id's
Kyvernon VMM houdt een register bij van de gewijzigde blokken van elke beschrijfbare schijf (cbt = true in agent.toml, de standaardwaarde). Elke voltooide back-up geeft per schijf een wijzigings-id terug, een ondoorzichtige tekenreeks. De volgende sessie geeft die terug en ontvangt alleen de gebieden die sindsdien zijn gewijzigd. De waarde * vraagt alles wat is toegewezen, wat een volledige back-up van een thin schijf is zonder de lege delen te lezen.
Gebieden worden per pagina weergegeven, in oplopende volgorde, met een granulariteit van 64 KiB. Een wijzigings-id blijft geldig na uitschakelen, herstart van de host, livemigratie en het verplaatsen van een schijf naar een andere datastore. Hij wordt verouderd, en de volgende back-up moet volledig zijn, na een reset van de wijzigingsregistratie, een formaatwijziging van de schijf, het terugzetten naar een snapshot, een herstel op de schijf, verlies van de registratiegegevens, of wanneer nieuwere wijzigings-id's hem verdringen (per schijf worden de nieuwste 4 bewaard). Met fallbackToFull geeft een verouderd wijzigings-id een volledige back-up; zonder die optie mislukt het verzoek met backup.change_id.stale.
Export van de schijf
Voor elke schijf van een sessie in de status EXPORTING biedt de host een alleen-lezen export aan via het NBD-protocol. Een export naar een andere machine gebruikt altijd TLS 1.3. Het certificaat komt van de CA van het platform en zijn vingerafdruk staat in de sessie, zodat de client het kan vastzetten. Een back-upproxy op dezelfde host kan in plaats daarvan een Unix-socket gebruiken. De sessie noemt de export, en het token ervan wordt alleen getoond aan de gebruiker die de sessie startte. De export duurt tot de sessie eindigt of verloopt.
Exports buiten de host zijn uitgeschakeld tot de controllerinstelling remote_exports in [backup] aan staat.
Herstel
Een herstel schrijft een volledig image naar een nieuwe schijf van een virtuele machine. De software maakt een uitgeschakelde virtuele machine of kiest er een, vraagt een beschrijfbare export van een schijf met de opgegeven capaciteit, schrijft het image en legt het vast. De herstelde schijf begint een nieuwe registratieperiode, dus de eerste back-up na een herstel is volledig. Kyvernon bewaart ook de back-ups die het zelf heeft gemaakt. Een herstel schrijft een punt naar een nieuwe virtuele machine, of in de plaats van de schijven van een uitgeschakelde virtuele machine.
Een herstel kan op het platform worden geverifieerd: de herstelde virtuele machine start op een quarantainenetwerk zonder uplink, en het platform legt vast of zij is opgestart, een adres heeft gekregen en antwoordt op de poorten die u noemt. Zie Een virtuele machine herstellen.
Grenzen
| Onderdeel | Waarde |
|---|---|
| Granulariteit van gewijzigde gebieden | 64 KiB |
| Levensduur van een sessie | standaard 6 uur, hoogstens 48 uur |
| Actieve sessies | 256 |
| Bewaarde afgeronde sessies | 1.024 |
| Bewaarde wijzigings-id's per schijf | 4 |
| Schijven per sessie | 64 |
| Gebieden per pagina | standaard 4.096, hoogstens 65.536 |
| Time-out van een hostaanroep | standaard 600 seconden (agent_timeout) |
Verwante taken
Versie 0.1. Laatst gewijzigd: 2026-11-14