Articles

Leer hoe en wanneer u vSphere-snapshots kunt gebruiken

De status van een virtuele machine op een specifiek tijdstip kan worden bewaard door een zogenaamde snapshot te maken.

De VMware-snapshotfunctie is met name handig in die scenario’s waarin u snel wilt herstellen van een storing of gewoon wilt terugkeren naar een gewenste status. Het herstellen van een VM naar een functionele status na een mislukte update of patch is een veelvoorkomende toepassing. Ook kunt u snapshots gebruiken om een VM terug te zetten naar een basistoestand zodra een gebruiker klaar is met het gebruik ervan, bijvoorbeeld als onderdeel van een onderhoudsregime in een trainingslab.

De snapshot-functie is beschikbaar op zowel standalone ESXi-hosts als vCenter Server.

Werken met snapshots en Snapshot Manager

U kunt met snapshots werken vanuit elke vSphere-client of door API-calls te doen vanuit PowerCLI of vergelijkbaar. Verschillende taken zoals het terugdraaien van snapshots, het verwijderen van snapshots, enz. volgen hetzelfde klik en selecteer patroon. De gemene deler hier is Snapshot Manager waarmee u:

  • snapshots kunt maken.
  • Terugkeren naar de laatste snapshot of een andere snapshot.
  • Een snapshot verwijderen.
  • Alle snapshots verwijderen.
  • Een snapshot bewerken (Naam en Beschrijving).
  • Beheer snapshots.
  • Solideer schijven.

Vanuit de vSphere client is het altijd een kwestie van rechts klikken op de VM naam, Snapshot(s) selecteren uit het context- of actiemenu van de VM gevolgd door de gewenste bewerking. Dit wordt in Figuur 1 weergegeven als Optie A. U kunt ook de VM-naam markeren, op het tabblad Snapshots klikken en een taak selecteren in het vervolgkeuzemenu Alle acties of door op het desbetreffende taakpictogram te klikken, d.w.z. Optie B.

Figuur 1 – Twee manieren om een snapshot-gerelateerde actie uit te voeren op een VM

Merk op dat elke VM maximaal 32 snapshots kan hebben. Voor de beste prestaties wordt aanbevolen om het bij 2-3 snapshots per VM te houden. Als deze limiet wordt overschreden, verschijnt de foutmelding in Fig.2.

Figuur 2 – Foutmelding dat de limiet voor het maximum aantal snapshots per VM is overschreden

Een andere limiet waar u rekening mee moet houden is die van de retentie. Het wordt aanbevolen om een snapshot niet langer dan 72 uur te gebruiken, omdat de bestanden waaruit de snapshot bestaat blijven groeien en de systeemprestaties kunnen beïnvloeden, nog afgezien van het feit dat u ruimte tekort kunt komen op datastores die relatief klein zijn.

Hoe snapshots maken

Wanneer u een snapshot van een VM maakt, wordt de volgende informatie bewaard.

  • Virtuele machine-instellingen. De directory van de virtuele machine, inclusief de schijven die zijn toegevoegd of gewijzigd nadat u de momentopname hebt gemaakt.
  • Voedingsstatus. De virtuele machine kan zijn ingeschakeld, uitgeschakeld of opgeschort.
  • Schijfstatus. Toestand van alle virtuele schijven van de virtuele machine.
  • (Optioneel) Geheugenstatus. De inhoud van het geheugen van de virtuele machine.

Twee optionele instellingen bepalen in welke staat een VM wordt teruggezet bij het terugzetten vanuit een momentopname. Merk op dat geen van deze opties beschikbaar is, of vereist is, wanneer een snapshot wordt genomen terwijl de VM is uitgeschakeld. De twee opties zijn:

Snapshot van het geheugen van de virtuele machine: Deze optie, die standaard is ingeschakeld, spoelt de geheugeninhoud van een VM naar schijf als onderdeel van de momentopname. Hierdoor kan een VM terugkeren naar de exacte staat waarin deze zich bevond toen de snapshot werd genomen. Als deze optie niet is geselecteerd en quiescing evenmin, zal de momentopname bestanden creëren die crash-consistent zijn, wat betekent dat u de VM handmatig moet opstarten nadat deze vanuit een momentopname is hersteld. Een snapshot van het geheugen zal aanzienlijk langer duren om te voltooien. Bovendien wordt een VM “bevroren” om de integriteit van de status te waarborgen.

Kies gastbestandssysteem: Deze optie vereist dat VMware Tools zijn geïnstalleerd en goed werken. Het bevriezen van een VM is de voorkeursmethode om een toestand te garanderen die geschikt is voor back-ups. Dit omvat bewerkingen zoals het doorspoelen van vuile buffers van de in-memory cache van het besturingssysteem naar schijf of andere applicatiespecifieke taken op hoger niveau. Quiescen betekent het pauzeren of wijzigen van de status van lopende processen op een computer, met name processen die tijdens een back-up op schijf opgeslagen informatie kunnen wijzigen, om een consistente en bruikbare back-up te garanderen. Quiescing is niet nodig voor geheugensnapshots; het wordt voornamelijk gebruikt voor back-ups.

Figuur 3 bevat een reeks schermafbeeldingen die laten zien hoe snapshots, van VM’s die zich op verschillende omgevingen bevinden, worden gemaakt met behulp van een bepaalde vSphere- of Host-client.

  • Voorbeeld 1 – Het maken van een snapshot van een VM die wordt beheerd door vCenter Server 6.5 via de vSphere Web-client.
  • Voorbeeld 2 – Het maken van een snapshot van een VM die wordt gehost op een ESXi 6.5 standalone host via de ESXi host client.
  • Voorbeeld 3 – Het maken van een snapshot van een VM die wordt gehost op een ESXi 6.0 standalone host via de C# vSphere client.

Figuur 3 – Verschillende voorbeelden voor het maken van snapshots

Het vierde en laatste voorbeeld illustreert hoe PowerCLI wordt gebruikt om een snapshot te maken van een VM die wordt beheerd door vCSA 6.5. Ik heb twee mogelijke manieren opgenomen die je kunt gebruiken om een VM te snapshotten. In het eerste voorbeeld haal ik simpelweg een VM op met Get-VM, die ik vervolgens pijp in het cmdlet New-Snapshot. In het tweede voorbeeld gebruik ik het New-Snapshot cmdlet op zichzelf, waarbij je de VM specificeert die je wilt snapshotten via de -VM parameter. In beide voorbeelden wordt met de parameter -Name een naam aan het snapshot gegeven.

PowerShell

1
get-vm -naam “windows 7” | New-Snapshot -Naam “Voor Windows-update”

PowerShell

1
New-Snapshot -VM “Windows 7” -Naam “Pre Windows Update”

Figuur 4 – Twee manieren om snapshots te maken met PowerCLI

Hoe schijven uit te sluiten van een snapshot

Er kunnen zich gevallen voordoen waarin u niet wilt dat de schijven van VM’s worden beïnvloed door snapshots. Om dit te bereiken, wijzigt u de schijfmodus van de harde schijf van een VM in Onafhankelijk – Persistent of Onafhankelijk – Niet-persistent in de instellingen van de VM. De twee opties verschillen enigszins volgens de uitleg van VMware:

Independent – Persistent: Schijven in de persistente modus gedragen zich als conventionele schijven op uw fysieke computer. Alle gegevens die naar een schijf in persistente modus worden geschreven, worden permanent naar de schijf geschreven.

Independent – Nonpersistent: Wijzigingen op schijven in de niet-persistente modus worden weggegooid wanneer u de virtuele machine uitschakelt of opnieuw instelt. Met de niet-persistente modus kunt u de virtuele machine opnieuw opstarten met een virtuele schijf die zich elke keer in dezelfde staat bevindt. Wijzigingen aan de schijf worden geschreven naar en gelezen uit een redo-logbestand dat wordt verwijderd wanneer u de machine uitschakelt of opnieuw instelt.

Figuur 5 – De schijfmodus van een VMDK wijzigen om uit te sluiten dat deze wordt beïnvloed door snapshots

Hoe terug te keren naar een snapshot

Om terug te keren naar een snapshot, selecteert u de optie Terugkeren naar laatste snapshot. Als een VM meerdere momentopnamen heeft, markeert u de momentopname waarnaar u wilt terugkeren in de hiërarchie van momentopnamen die wordt weergegeven in Snapshot Manager en klikt u op het pictogram Revert To (Terugkeren naar), zoals weergegeven in afbeelding 6.

afbeelding 6 – Selecteren van de momentopname waarnaar u wilt terugkeren in Snapshot Manager

De toestand waarin een VM terugkeert, is afhankelijk van de geselecteerde opties op het moment dat de momentopname werd gemaakt. Als de geheugenoptie was geselecteerd, blijft de VM ingeschakeld terwijl deze terugkeert naar een vorige status. Als de geheugenoptie niet was opgenomen op het moment dat de momentopname werd gemaakt, moet u de VM handmatig aanzetten na het terugzetten van een momentopname, ongeacht de voedingstoestand van de VM op het moment dat de momentopname werd gemaakt.

Wanneer u een momentopname terugzet, wordt u gewaarschuwd dat de huidige toestand van de VM verloren gaat tenzij u een momentopname maakt, zoals getoond in Fig. 7.

Figuur 7 – Waarschuwing voor verlies van huidige status bij het terugzetten naar een momentopname

Als de geheugenoptie was geselecteerd toen de momentopname werd gemaakt, krijgt u de optie om de VM op te schorten terwijl deze wordt teruggezet. Als u deze optie selecteert, moet u de VM vervolgens handmatig “unpauzeren” door deze weer aan te zetten.

Figuur 8 – VM opschorten terwijl wordt teruggekeerd van momentopname

De eerste momentopname die wordt gemaakt, wordt de basisouder momentopname genoemd. Dit is de meest recent opgeslagen versie van de huidige toestand van de virtuele machine. Het bovenliggende snapshot is altijd het snapshot dat onmiddellijk boven het pictogram You are here in Snapshot Manager verschijnt. Als u een snapshot terugdraait of herstelt, dan wordt dat snapshot de ouder van de You are here current state. Een snapshot van een VM dat na het snapshot van de ouder wordt genomen, wordt een kind-snapshot genoemd.

Figuur 9 – Snapshot-hiërarchie ter illustratie van de relatie tussen ouder- en kind-snapshots en de huidige toestand die wordt vertegenwoordigd door You are here

Hoe snapshots verwijderen

U kunt een enkel snapshot of alle bestaande snapshots in één keer verwijderen. Het verwijderen van snapshots is een I/O-intensief proces en kan de prestaties beïnvloeden. Wanneer een snapshot wordt verwijderd, blijft de huidige toestand van een VM ongewijzigd. Alle tot dan toe verzamelde wijzigingen worden echter gekopieerd van de deltaschijven en weggeschreven naar de basisschijf in een proces dat Consolidatie heet. Het consolidatieproces verwijdert vervolgens alle overbodige bestanden die zijn gekoppeld aan het zojuist verwijderde snapshot.

Als het consolidatieproces mislukt, kunt u het proces handmatig starten vanuit het menu Snapshots door de optie Consolidate te selecteren. Het is belangrijk dat de consolidatie met succes wordt uitgevoerd, omdat de redundante deltaschijven (zie volgende sectie) de prestaties negatief kunnen beïnvloeden.

Figuur 10 – Schijfconsolidatie handmatig uitvoeren

Voor meer details raadpleegt u het artikel Hoe consolidatie van snapshots in vSphere 5. x/6.x KB.

Voor meer details raadpleegt u het artikel Hoe consolidatie van snapshots in vSphere 5.x/6.x KB artikel.

Snapshots vanuit een bestandsperspectief

Een snapshot bestaat uit een aantal bestanden die u kunt bekijken in Datastore Browser na het navigeren naar de map van een VM waarvoor snapshots zijn genomen.

Een snapshot bestaat uit de volgende bestanden:

Delta disk files: Een .vmdk-bestand waarnaar het gast-besturingssysteem kan schrijven. De delta-schijf vertegenwoordigt het verschil tussen de huidige staat van de virtuele schijf en de staat die bestond op het moment dat de vorige momentopname werd gemaakt. Wanneer u een snapshot neemt, wordt de toestand van de virtuele schijf bewaard, waardoor het gast-besturingssysteem er niet naar kan schrijven, en wordt er een delta- of child-schijf aangemaakt. Een delta-schijf heeft twee bestanden, waaronder een descriptorbestand dat klein is en informatie bevat over de virtuele schijf en een corresponderend bestand dat de ruwe gegevens bevat. De bestanden die de delta-schijf vormen, worden aangeduid als kindschijven of redo-logs.

Flat-bestand: Een -flat.vmdk-bestand dat een van de twee bestanden is waaruit de basisschijf bestaat. De platte schijf bevat de ruwe gegevens voor de basisschijf. Dit bestand wordt niet weergegeven als een afzonderlijk bestand in de Datastore Browser, maar wordt wel afzonderlijk vermeld wanneer de inhoud van de directory wordt weergegeven terwijl deze wordt geconsulteerd naar ESXi.

Figuur 11 – Sommige bestanden zijn alleen zichtbaar wanneer deze worden geconsulteerd naar ESXi

Databasebestand: Een .vmsd-bestand dat de snapshotinformatie van de VM bevat en de primaire bron van informatie is voor de Snapshot Manager. Dit bestand, dat in elke teksteditor kan worden bekeken, bevat regelitems die de relaties tussen snapshots en de child disks voor elke snapshot definiëren.

Geheugenbestand: Een .vmsn-bestand, bevat de actieve status van een VM en legt de geheugenstatus van de VM vast om u in staat te stellen terug te keren naar een ingeschakelde status van de virtuele machine. Als de optie snapshot memory is uitgeschakeld, kunt u alleen terugkeren naar een uitgeschakelde VM-status.

U kunt de post The Anatomy of a VMware Virtual Machine raadplegen voor meer details.

Figuur 12 – De snapshot-bestanden die in Datastore Browser worden weergegeven, toewijzen aan de vermeldingen in het databasebestand

Zoals gezegd, wordt met een snapshot de schijf- en/of VM-status op een specifiek tijdstip behouden door een reeks delta-schijven te maken voor elke aangesloten virtuele schijf of virtuele RDM. Optioneel worden de toestand van het geheugen en de stroomvoorziening behouden door een geheugenbestand aan te maken.

Elke momentopname creëert een extra deltabestand. Wanneer u een momentopname maakt, voorkomt het momentopnamemechanisme dat het gastbesturingssysteem naar het basis .vmdk-bestand schrijft en leidt het in plaats daarvan alle schrijfacties naar het delta-schijfbestand. De delta-schijf vertegenwoordigt het verschil tussen de huidige toestand van de virtuele schijf en de toestand die bestond op het ogenblik dat u de vorige snapshot nam. Als er meer dan één snapshot bestaat, kunnen delta schijven het verschil tussen elke snapshot vertegenwoordigen. Deltaschijfbestanden kunnen snel groeien en net zo groot worden als de hele virtuele schijf als het gastbesturingssysteem naar elk blok van de virtuele schijf schrijft.

Verder informatie is te vinden in de volgende koppelingen:

  • Inzicht in VM-snapshots in ESXi / ESX
  • Bepalen of er deltabestanden of snapshots zijn overgebleven die VMware vSphere of Infrastructure Client niet kan detecteren

Beperkingen van snapshots

Er zijn een aantal beperkingen waarvan u op de hoogte moet zijn. Een paar, zoals die met betrekking tot de interactie tussen snapshots en vMotion, moeten goed worden aangepakt als u nog oudere versies van vSphere gebruikt.

  • Snapshots van VM’s met raw disks, RDM physical mode disks, of gastbesturingssystemen die een iSCSI initiator in de gast gebruiken, worden niet ondersteund.
  • VM’s met onafhankelijke schijven moeten worden uitgeschakeld voordat u een snapshot maakt.
  • Snapshots van actieve of opgeschorte VM’s met onafhankelijke schijven worden niet ondersteund.
  • Snapshots worden niet ondersteund met PCI vSphere Direct Path I/O-apparaten.
  • Snapshots van VM’s die zijn geconfigureerd voor bussharing is geen door VMware ondersteunde optie.
  • Hoewel snapshots een point-in-time image van de schijf leveren die backup oplossingen kunnen gebruiken, zijn ze niet bedoeld als een robuuste methode van backup en herstel. Als de bestanden die een virtuele machine bevatten verloren gaan, gaan de snapshot bestanden ook verloren. Ook zijn grote aantallen snapshots moeilijk te beheren, verbruiken ze grote hoeveelheden schijfruimte, en zijn ze niet beschermd in het geval van hardwarestoringen.
  • Snapshots kunnen een negatieve invloed hebben op de prestaties van een virtuele machine. De prestatievermindering is gebaseerd op hoe lang de momentopname of momentopnameboom bestaat, de diepte van de boom en hoeveel de virtuele machine en het gast-besturingssysteem zijn gewijzigd sinds het moment waarop u de momentopname hebt gemaakt. U kunt ook een vertraging zien in de tijd die het kost om de virtuele machine in te schakelen. Draai geen virtuele productiemachines vanaf snapshots op een permanente basis.
  • Als een virtuele machine virtuele harde schijven heeft die groter zijn dan 2 TB, kan het aanzienlijk langer duren voordat snapshotoperaties zijn voltooid.

Als u omgevingen hebt van vóór VSphere 6.0, moet u het KB-artikel over het migreren van virtuele machines met snapshots lezen. Een veelvoorkomend probleem dat ik regelmatig tegenkwam, was dat je een host in onderhoudsmodus zette en wachtte tot de VM’s er automatisch vanaf zouden migreren, maar dat het proces vastliep omdat een of meer VM’s snapshots hadden.

Troubleshooting

Hier zijn een paar KB-artikelen die een aantal veelvoorkomende problemen behandelen die je waarschijnlijk tegenkomt als je met snapshots werkt.

  • Problemen oplossen bij het maken of vastleggen van snapshots in VMware ESXi/ESX
  • Kan de snapshots van de virtuele machine niet verwijderen
  • Kan geen nieuwe snapshots maken op een virtuele machine nadat een schijf uit de virtuele machine is verwijderd
  • Taak voor het verwijderen van snapshots stopt op 99% in ESXi/ESX