vCenter에서 관리하는 VM의 모든 스냅 샷 목록이 표시됩니까? VM의 모든 스냅 샷 목록을 가져

vCenter에서 관리하는 여러 ESXi 서버가 있습니다. 모든 VM의 모든 스냅 샷 목록을 가져 오는 방법이 있습니까?



답변

PowerCLI의 직업인 것 같습니다! 어쨌든 Windows 워크 스테이션에서 내가 가진 것입니다.

Get-Snapshot

Surly Admin의 블로그에는 복사-파스타를 사용하여 사용자 환경의 모든 VM에 대한 모든 스냅 샷을 얻을 수있는 스크립트가 있습니다 .

$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

답변

Grrr … VMware 스냅 샷. 내가 길을 가졌다면 백업 목적과 변경 사항 테스트를 위해서만 존재했을 것입니다.

vSphere 클라이언트의 클러스터 수준에서 “스토리지보기”탭을 사용하여 스냅 샷이 소비하는 공간 ( 아마도 관심이있을 것입니다)을 볼 수 있습니다 .

거기서 시작한 다음 개별 VM으로 드릴 다운하십시오. 바이트 (B) 값이있는 항목은 기본적으로 스냅 샷이 없음을 의미합니다.


답변

HopelessNoob의 답변은 사람이 읽을 수있는 보고서에 적합합니다. 때로는 다른 PS 객체로 광산을 파싱하는 것을 선호합니다. HopelessNoob도 매우 비슷합니다. 스크립트를 작성하기 위해 동일한 코드 스 니펫에서 시작한 것 같습니다.

$ 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

제공합니다 :

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

그런 다음 파이프로 연결 Remove-Snapshot하거나 필터링 할 수 있습니다 .


답변

스냅 샷이있는 모든 VM 목록을 덤프하는 데 사용하는 스크립트는 다음과 같습니다. PowerCLI에서 작동합니다. 매우 간단하고 깨끗합니다. .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

답변

답변이 수락 되었더라도 check_vmware_snapshots알려 드리고자 합니다. VMWare ESXi / vSphere 환경에서 VM 스냅 샷의 수명과 수를 확인
하는 Nagios / Icinga 플러그인입니다.

“VMware-vSphere-CLI-5.5.0″의 Perl / VMware :: VIRuntime에 따라 달라 지므로 이번에는 PowerCLI 또는 -shell이 ​​없습니다. 🙂


답변

불행히도 Vcenter의 씩 클라이언트는 6.0 이후 로이 기능을 제공하지 않았지만 GUI에서 쉽게 수행하려는 경우 다른 옵션이 있습니다. 6.0 또는 6.5에서 vcenter 웹 클라이언트 (플래시 버전)를 시작하십시오. 왼쪽 (탐색기 창)에서 vcenter, 데이터 센터 또는 클러스터를 선택한 다음 VM을 보도록 선택하십시오. “필터”상자의 왼쪽에 작은 사각형 아이콘이 있습니다 ( “빠른 필터 표시 및 숨기기”라고 표시). 사각형 아이콘을 클릭 한 다음 “스냅 샷 있음”을 클릭 한 다음 “예”를 클릭하십시오. 뷰에는 이제 스냅 샷이있는 VM 만 표시됩니다.


답변

또는 MS SQL에서 다음 쿼리를 실행하십시오 (쿼리는 sql2008 및 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