PowerShell vrijdag: momentopnamen
Gepubliceerd op 4 december 2015 • 3 min leestijd • 607 woorden
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.``` 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.