PowerShell vrijdag: momentopnamen

Gepubliceerd op 4 december 2015 • 3 min leestijd • 607 woorden
Momentopnamen van virtuele machines zijn handig voor systeembeheerders, omdat ze de status van de virtuele schijf van een virtuele machine en…
PowerShell vrijdag: momentopnamen

Momentopnamen van virtuele machines zijn handig voor systeembeheerders, omdat ze de status van de virtuele schijf van een virtuele machine en, optioneel, virtueel geheugen behouden voordat ze bijvoorbeeld een applicatie upgraden. VM-snapshots worden ook door veel back-up-apps voor VM’s gemaakt aan het begin van de back-up en vervolgens verwijderd aan het einde van de back-up. Omdat de originele vmdk bevroren is en alle wijzigingen naar het snapshotbestand worden geschreven, kan het heel snel groot worden, vooral op machines die veel schrijfacties uitvoeren. Naast de grootte zit er ook een prestatiecomponent aan het gebruik van snapshots. Daarom is het verstandig om uw snapshots regelmatig te beheren.

De momentopnamen ophalen  

Voordat we kunnen controleren welke VM’s momentopnamen hebben, moeten we verbinding maken met de vCenter-server, zoals ik heb beschreven in een vorig artikel. Daarna krijgen we een lijst met VM’s, zodat we ze naar de Get-Snapshot-cmdlet kunnen sturen om informatie over de snaphots te krijgen.``` snapshots=GetVMServersnapshots = Get-VM -Server vc | Get-Snapshot


Als we dit alleen doen, hebben we een lijst met snapshots zonder enige context voor de VM's waartoe ze behoren. Om een ​​lijst (tabel) te krijgen, kunnen we het volgende commando gebruiken:

Get-VM | Get-Snapshot | Select VM,Created,Name,SizeMB | FT


Nu krijgen we een lijst met VM’s, met beschrijvingen, grootte en de aanmaakdatum. Op de volgende regel worden alle VM's opgehaald waarvan de snapshots ouder zijn dan zeven dagen.

Get-VM | Get-Snapshot | Where {$_.Created -lt (Get-Date).AddDays(-7)} | Select-Object VM, Name, Created, SizeMB


Er zijn veel PowerCLI-scripts beschikbaar die u kunnen helpen met uw snapshotbeheer, maar ik raad u aan vertrouwd te raken met het beheren van snapshots met PowerCLI voordat u iemands PowerCLI-script gebruikt.

## De momentopnamen verwijderen

Als u alle momentopnamen voor een specifieke VM wilt verwijderen, kunt u het volgende gebruiken:

Get-VM -Name MyVM | Get-Snapshot | Remove-Snapshot


U krijgt een melding of u hiermee akkoord gaat.

Soms wilt u slechts één momentopname verwijderen. Vervolgens gebruik je de naam van de snapshot:

Get-VM -Name MyVM | Get-Snapshot -Name TheNameOfTheSnapshot | Remove-Snapshot


Hetzelfde geldt als u snapshots ouder dan 7 dagen wilt verwijderen.

Get-VM | Get-Snapshot | Where {$_.Created -lt (Get-Date).AddDays(-7)} | Remove-Snapshot```## Consolidatie

Soms wordt op het tabblad Samenvatting de waarschuwing ‘Consolidatie van virtuele machineschijven nodig’ weergegeven. Wanneer u een bewerking Verwijderen of Alles verwijderen voor momentopnamen start, wordt de momentopname onmiddellijk verwijderd uit Snapshot Manager, waarna de .vmdk-bestanden op schijf worden geconsolideerd. Als de consolidatie om wat voor reden dan ook mislukt, kan het voorkomen dat de (momentopname) vmdk’s op schijf blijven staan ​​en/of actief worden gebruikt in de Datastore. Om dit op te lossen kunt u de consolidatie-cmdlet in PowerCLI gebruiken:


Get-VM | Where-Object {$_.Extensiondata.Runtime.ConsolidationNeeded}

Deze regel laat zien welke VM’s consolidaties nodig hebben. Met hetzelfde gemak kunnen we alle VM’s consolideren die dit nodig hebben.


Get-VM | Where-Object {$_.Extensiondata.Runtime.ConsolidationNeeded} | foreach {$_.ExtensionData.ConsolidateVMDisks_Task()}```## Momentopnamen maken

Als u geen snapshots van iemand anders (of de GUI) wilt verwijderen, kunt u uw eigen snapshots maken met PowerCLI.

New-Snapshot -VM MyVM -Name BeforeUpdate


of in de pijplijn:

Get-VM -Name MyVM | New-Snapshot -Name BeforePatch


Als u uw leven echt gemakkelijker wilt maken: gebruik de parameter Beschrijving zodat u wat extra informatie kunt geven over waarom u de momentopname hebt gemaakt en wanneer deze kan worden verwijderd. U kunt zelfs zo ver gaan dat u het beschrijvingsveld gebruikt voor extra parameters, zoals wanneer u de momentopname moet verwijderen.

## Beter één back-up te vaak, dan...

Als u iets wijzigt of verwijdert, zorg er zoals altijd voor dat u weet wat u doet en probeer na te denken of een back-up een verstandige voorzorgsmaatregel is.

Zie ook

    Follow me