รับรายการสแน็ปช็อตทั้งหมดใน VM ที่จัดการโดย vCenter หรือไม่


17

เรามีเซิร์ฟเวอร์ ESXi หลายเครื่องที่จัดการโดย vCenter; มีวิธีรับรายการ snapshot ทั้งหมดใน VMs ทั้งหมดหรือไม่


1
คำตอบที่ดีบางข้อด้านล่าง รับสำเนาRVToolsด้วยตัวคุณเองถ้าคุณสนับสนุน vCenter
jscott

คำตอบ:


11

ดูเหมือนงานสำหรับ PowerCLI! จากเวิร์กสเตชันของ Windows ซึ่งเป็นสิ่งที่ฉันมี

Get-Snapshot

บล็อกของ Surly Admin ยังมีสคริปต์ที่คุณสามารถคัดลอกพาสต้าเพื่อรับสแนปชอตทั้งหมดสำหรับ VMs ทั้งหมดในสภาพแวดล้อมของคุณเนื้อสัตว์ที่ฉันจะโพสต์ด้านล่างเพื่อความสะดวกของคุณ

$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

1
นี่คือคำตอบที่ดี ฉันได้รับประโยชน์มากมายจาก PowerCLI แต่ถ้า Powershell ไม่ใช่ของคุณ PowerCLI (และคำตอบนี้โดยเฉพาะ) เป็นตัวอย่างที่ยอดเยี่ยมของไคลเอนต์ vSphere API ดังนั้นอย่าลังเลที่จะตรวจสอบเอกสาร vSphere API สำหรับภาษาที่คุณเลือก!
gWaldo

16

Grrr ... VMware snapshots หากฉันมีวิธีของฉันพวกเขาจะมีอยู่เพื่อการสำรองข้อมูลและเพื่อทดสอบการเปลี่ยนแปลงเท่านั้น

คุณสามารถดูพื้นที่ที่ใช้โดยสแนปชอต ( ซึ่งอาจเป็นสิ่งที่คุณสนใจจริง ๆ รู้ ) โดยใช้แท็บ "มุมมองที่เก็บข้อมูล" ที่ระดับคลัสเตอร์ในไคลเอนต์ vSphere ของคุณ

ป้อนคำอธิบายรูปภาพที่นี่

เริ่มต้นจากนั้นเจาะลึกแต่ละ VMs รายการที่มีค่าเป็นไบต์ (B) เป็นหลักหมายความว่าไม่มีสแนปชอต


สิ่งนี้ถูกลบออกจากลูกค้า vSphere: kb.vmware.com/s/article/2112085
CitizenRon

1
คนเซ่อ. ฉันเกลียดเมื่อพวกเขาทำอย่างนั้น
ewwhite

7

คำตอบของ 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หรือกรองมันหรืออะไรก็ได้


4

นี่คือสคริปต์ที่เราใช้ในการถ่ายโอนข้อมูลรายการทั้งหมดของ 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

3

แม้ว่าคำตอบที่ได้รับการยอมรับ, ผมอยากจะชี้ให้คุณcheck_vmware_snapshots
มันเป็นปลั๊กอิน Nagios / Icinga เพื่อตรวจสอบอายุและนับจำนวนสแน็ปช็อต VM ในสภาพแวดล้อม VMWare ESXi / vSphere

มันขึ้นอยู่กับ Perl / VMware :: VIRuntime จาก "VMware-vSphere-CLI-5.5.0" ดังนั้นจึงไม่มี PowerCLI หรือ -shell ในครั้งนี้ :-)


1

น่าเสียดายที่ลูกค้าหนาสำหรับ Vcenter ไม่มีคุณสมบัตินี้มาตั้งแต่ 6.0 ฉันเชื่อ แต่นี่เป็นอีกตัวเลือกหนึ่งหากคุณต้องการทำมันใน GUI ได้อย่างง่ายดาย ใน 6.0 หรือ 6.5 เรียกใช้ vcenter web client (เวอร์ชันแฟลช) ที่ด้านซ้าย (หน้าต่างนำทาง) เลือก vcenter, ศูนย์ข้อมูลหรือคลัสเตอร์จากนั้นเลือกเพื่อดู VM ทางด้านขวาทางด้านซ้ายของช่อง "ตัวกรอง" จะมีไอคอนรูปสี่เหลี่ยมเล็ก ๆ (วางเมาส์เหนือไอคอนบอกว่า "แสดงและซ่อนตัวกรองด่วน" คลิกที่ไอคอนรูปสี่เหลี่ยมนั้นจากนั้นคลิกที่ "มีภาพรวม" จากนั้นคลิก "ใช่" ตอนนี้มุมมองจะแสดงเฉพาะ VMs ด้วยสแนปชอตสนุก!


0

หรือเรียกใช้แบบสอบถามต่อไปนี้ใน 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

0

เปิด vCenter ด้วย vSphere Client นำทางไปยัง

หมวดหมู่ "Datastore และ Datastore Cluster"

"R-Click on Datastore" ที่คุณต้องการหา Snapshot (ถ้าหลาย Datastore ต้องไปในแต่ละ Datastore)

คุณจะเห็นโฟลเดอร์และแท็บการค้นหา

คลิกเพื่อดูภาพของแท็บการค้นหา

คลิกที่ค้นหาจากนั้นจากรายการแบบหล่นลงเลือก "Virtual Machine Snapshot"

คลิกค้นหา

มันจะแสดงภาพรวมทั้งหมดที่เก็บไว้ในที่เก็บข้อมูลนั้น

R-Click ที่ Snapshot และ "Go to Folder"

จะใช้กับโฟลเดอร์ VM ซึ่งเป็น Snapshot

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.