web-dev-qa-db-fra.com

Vous obtenez une liste de tous les instantanés des machines virtuelles gérées par vCenter?

Nous avons plusieurs serveurs ESXi gérés par un vCenter; existe-t-il un moyen d'obtenir une liste de tous les instantanés dans toutes les machines virtuelles?

18
leeand00

Cela ressemble à un travail pour PowerCLI! Eh bien, à partir d'un poste de travail Windows, de toute façon, c'est ce que j'ai.

Get-Snapshot

Le blog de Surly Admin a même un script que vous pouvez copier-coller pour obtenir tous les instantanés de toutes les VM de votre environnement , la viande dont je posterai ci-dessous pour votre commodité.

$Report = Get-VM | Get-Snapshot | Select VM,Name,Description,@{Label="Size";Expression={"{0:N2} GB" -f ($_.SizeGB)}},Created
If (-not $Report)
{  $Report = New-Object PSObject -Property @{
      VM = "No snapshots found on any VM's controlled by $VIServer"
      Name = ""
      Description = ""
      Size = ""
      Created = ""
   }
}
$Report = $Report | Select VM,Name,Description,Size,Created | ConvertTo-Html -Head $Header -PreContent "<p><h2>Snapshot Report - $VIServer</h2></p><br>" | Set-AlternatingRows -CSSEvenClass even -CSSOddClass odd
11
HopelessN00b

Grrr ... Instantanés VMware. Si je le pouvais, ils n'existeraient qu'à des fins de sauvegarde et pour tester les modifications.

Vous pouvez afficher l'espace consommé par les instantanés (, ce qui est probablement ce que vous souhaitez vraiment savoir ) en utilisant l'onglet "Vues de stockage" du cluster niveau dans votre client vSphere.

enter image description here

Commencez par là, puis descendez jusqu'aux machines virtuelles individuelles. Les entrées qui ont des valeurs en octets (B) signifient essentiellement qu'il n'y a pas d'instantanés.

16
ewwhite

La réponse de HopelessNoob est idéale pour un rapport lisible par l'homme. Parfois, je préfère analyser le mien dans d'autres objets PS. Il est également très similaire à HopelessNoob - je suppose que nous avons tous deux commencé à partir du même extrait de code pour créer nos scripts:

$ VIServer = "vsphere.ad.example.com"

If (-not (Get-PSSnapin VMware.VimAutomation.Core))
{  Try { Add-PSSnapin VMware.VimAutomation.Core -ErrorAction Stop }
   Catch { Write-Host "Unable to load PowerCLI, is it installed?" -ForegroundColor Red; Break }
}

Connect-VIServer $VIServer -Credential (Get-Credential) | Out-Null

Get-VM | Get-Snapshot | Select VM,Name,Description,@{Label="Size";Expression={"{0:N2} GB" -f ($_.SizeGB)}},Created | FT

Donne:

VM                              Name                            Description                     Size                            Created
--                              ----                            -----------                     ----                            -------
ENETSXS2                        VEEAM BACKUP TEMPORARY SNAPSHOT Please do not delete this sn... 19.28 GB                        8/11/2014 8:42:18 AM
ENETSDFS-BS                     VEEAM BACKUP TEMPORARY SNAPSHOT Please do not delete this sn... 16.30 GB                        8/11/2014 5:24:44 AM

Vous pouvez ensuite diriger cela vers Remove-Snapshot ou le filtrer ou autre chose.

8
Mark Henderson

Voici le script que nous utilisons pour vider une liste de toutes les machines virtuelles avec des instantanés, fonctionne dans PowerCLI. C'est très simple et propre. Il videra les résultats sur votre bureau local via un fichier .csv.

#  Possible "Select-Object -Property" variables: Description, Created, Quiesced, PowerState, VM, VMId, Parent, ParentSnapshotId, ParentSnapshot, Children, SizeMB, SizeGB, IsCurrent, IsReplaySupported, ExtensionData, Id, Name, Uid, Client


get-vm | get-snapshot | Select-Object -Property vm,created,sizeGB,name,description | Export-Csv -Path C:\Users\$env:username\Desktop\snapshots.csv
5
Justin

Même si une réponse a été acceptée, je voudrais vous signaler check_vmware_snapshots .
C'est un plugin Nagios/Icinga , pour vérifier l'âge et compter pour VM instantanés dans un environnement VMWare ESXi/vSphere.

Cela dépend de Perl/VMware :: VIRuntime de "VMware-vSphere-CLI-5.5.0", donc pas de PowerCLI ou -Shell cette fois. :-)

3
Henk

Malheureusement, le client lourd pour Vcenter n'a pas eu cette fonctionnalité depuis 6.0, je crois, mais voici une autre option si vous voulez le faire facilement dans une interface graphique. Dans 6.0 ou 6.5, lancez le client Web vcenter (version flash). Sur le côté gauche (fenêtre du navigateur), sélectionnez vcenter, un centre de données ou un cluster, puis sélectionnez pour afficher les machines virtuelles. Sur le côté droit à gauche de la case "filtre", il y a une petite icône carrée (survolant elle dit "Afficher et masquer les filtres rapides". Cliquez sur cette icône carrée, puis cliquez sur "a un instantané" puis cliquez sur "oui". Votre La vue affichera désormais uniquement les machines virtuelles avec des instantanés.

1
lampim

Ou exécutez la requête suivante dans MS SQL (la requête est basée sur sql2008 et vcenter 5.1)

select t.ID, t.NAME as VMName, s.SNAPSHOT_NAME as SnapshotName
from [VCDB].[dbo].[VPX_SNAPSHOT] s, [VCDB].[dbo].[VPX_ENTITY] t
where s.VM_ID = t.ID order by t.ID
0
eloy

Ouvrez vCenter avec vSphere Client. Aller vers

Catégorie "Datastore et Datastore Cluster"

"R-Cliquez sur Datastore" où vous voulez trouver un instantané. (Si plusieurs banques de données doivent aller dans chaque banque de données)

Vous verrez l'onglet Dossier et Recherche.

Cliquez pour voir l'image de l'onglet de recherche

Cliquez sur Rechercher, puis dans le menu déroulant, sélectionnez "Instantané de la machine virtuelle"

Cliquez sur Rechercher.

Il affichera tous les instantanés stockés dans ce magasin de données.

R-Cliquez sur Instantané et "Aller au dossier"

Il faudra VM dossier dont l'instantané est pris.

0
Junead Qureshi