เรามีเซิร์ฟเวอร์ ESXi หลายเครื่องที่จัดการโดย vCenter; มีวิธีรับรายการ snapshot ทั้งหมดใน VMs ทั้งหมดหรือไม่
เรามีเซิร์ฟเวอร์ ESXi หลายเครื่องที่จัดการโดย vCenter; มีวิธีรับรายการ snapshot ทั้งหมดใน VMs ทั้งหมดหรือไม่
คำตอบ:
ดูเหมือนงานสำหรับ PowerCLI! จากเวิร์กสเตชันของ Windows ซึ่งเป็นสิ่งที่ฉันมี
บล็อกของ 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
Grrr ... VMware snapshots หากฉันมีวิธีของฉันพวกเขาจะมีอยู่เพื่อการสำรองข้อมูลและเพื่อทดสอบการเปลี่ยนแปลงเท่านั้น
คุณสามารถดูพื้นที่ที่ใช้โดยสแนปชอต ( ซึ่งอาจเป็นสิ่งที่คุณสนใจจริง ๆ รู้ ) โดยใช้แท็บ "มุมมองที่เก็บข้อมูล" ที่ระดับคลัสเตอร์ในไคลเอนต์ vSphere ของคุณ
เริ่มต้นจากนั้นเจาะลึกแต่ละ VMs รายการที่มีค่าเป็นไบต์ (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
มันเป็นปลั๊กอิน Nagios / Icinga เพื่อตรวจสอบอายุและนับจำนวนสแน็ปช็อต VM ในสภาพแวดล้อม VMWare ESXi / vSphere
มันขึ้นอยู่กับ Perl / VMware :: VIRuntime จาก "VMware-vSphere-CLI-5.5.0" ดังนั้นจึงไม่มี PowerCLI หรือ -shell ในครั้งนี้ :-)
น่าเสียดายที่ลูกค้าหนาสำหรับ Vcenter ไม่มีคุณสมบัตินี้มาตั้งแต่ 6.0 ฉันเชื่อ แต่นี่เป็นอีกตัวเลือกหนึ่งหากคุณต้องการทำมันใน GUI ได้อย่างง่ายดาย ใน 6.0 หรือ 6.5 เรียกใช้ vcenter web client (เวอร์ชันแฟลช) ที่ด้านซ้าย (หน้าต่างนำทาง) เลือก vcenter, ศูนย์ข้อมูลหรือคลัสเตอร์จากนั้นเลือกเพื่อดู VM ทางด้านขวาทางด้านซ้ายของช่อง "ตัวกรอง" จะมีไอคอนรูปสี่เหลี่ยมเล็ก ๆ (วางเมาส์เหนือไอคอนบอกว่า "แสดงและซ่อนตัวกรองด่วน" คลิกที่ไอคอนรูปสี่เหลี่ยมนั้นจากนั้นคลิกที่ "มีภาพรวม" จากนั้นคลิก "ใช่" ตอนนี้มุมมองจะแสดงเฉพาะ VMs ด้วยสแนปชอตสนุก!
หรือเรียกใช้แบบสอบถามต่อไปนี้ใน 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
เปิด vCenter ด้วย vSphere Client นำทางไปยัง
หมวดหมู่ "Datastore และ Datastore Cluster"
"R-Click on Datastore" ที่คุณต้องการหา Snapshot (ถ้าหลาย Datastore ต้องไปในแต่ละ Datastore)
คุณจะเห็นโฟลเดอร์และแท็บการค้นหา
คลิกที่ค้นหาจากนั้นจากรายการแบบหล่นลงเลือก "Virtual Machine Snapshot"
คลิกค้นหา
มันจะแสดงภาพรวมทั้งหมดที่เก็บไว้ในที่เก็บข้อมูลนั้น
R-Click ที่ Snapshot และ "Go to Folder"
จะใช้กับโฟลเดอร์ VM ซึ่งเป็น Snapshot