การตรวจสอบพื้นที่ว่างบน VMFS Datastores ผ่าน PowerCLI
ในบทความนี้ เราจะแสดงสคริปต์ PowerCLI อย่างง่ายเพื่อตรวจสอบจำนวนพื้นที่ว่างบนดาต้าสโตร์ VMWare vSphere และตรวจหาที่เก็บข้อมูลการจัดเตรียมแบบบางที่มีขนาดรวมของดิสก์เสมือนแบบบางของเครื่องเสมือน (ขยายแบบไดนามิก) เกินขนาดรวมของดาต้าสโตร์ หากคุณมีที่เก็บข้อมูล VMWare หลายแห่งในโครงสร้างพื้นฐานของคุณ คุณสามารถใช้สคริปต์ PowerShell นี้เพื่อตรวจสอบจำนวนพื้นที่ว่างและตรวจหาที่เก็บข้อมูลที่มีพื้นที่จัดเก็บมากเกินไป (ความต้องการพื้นที่สำหรับดิสก์แบบบางของ VM ทั้งหมดจะมากกว่าพื้นที่ว่างบนที่เก็บข้อมูล VMFS ). คุณสามารถใช้สคริปต์เพื่อวิเคราะห์การเติบโตของพื้นที่ที่ใช้ก่อนสร้าง VM เพื่อค้นหาที่เก็บข้อมูลที่มีภาระผูกพันมากเกินไปของ Thin Provision เป็นต้น
เพื่อให้โครงสร้างพื้นฐาน vSphere ของคุณทำงานได้อย่างถูกต้อง ขอแนะนำให้มีพื้นที่ว่างอย่างน้อย 5-10% บนที่เก็บข้อมูล VMWare VMFS ของคุณ หากคุณใช้สแน็ปช็อต (รวมถึงที่สร้างโดยระบบสำรองข้อมูล) จำเป็นต้องมีพื้นที่ว่างอย่างน้อย 10-15%
หากต้องการตรวจสอบและแสดงจำนวนพื้นที่ว่างบนที่เก็บข้อมูล VMWare คุณสามารถใช้สคริปต์ PowerShell ด้านล่าง (ควรติดตั้งโมดูล VMWare vSphere PowerCLI บนคอมพิวเตอร์ของคุณแล้ว):
# Import the PowerCLI module into your PowerShell session
Import-Module VMware.VimAutomation.Core -ErrorAction SilentlyContinue
# Connect to vCenter host
Connect-VIServer mun-vcsa1 -User admin
# Get the list of vCenter darastores
$datastores = Get-Datastore
$ErrorActionPreference = 'SilentlyContinue'
# loop through all available datastores
ForEach ($datastore in $datastores)
{
# Find the size of the committed space of all thin disks in a datastore (how much space it is required if all vmdk files will grow to the sizes specified in their settings)
$Provision = ([Math]::Round(($datastore.ExtensionData.Summary.Capacity - $datastore.ExtensionData.Summary.FreeSpace + $datastore.ExtensionData.Summary.Uncommitted)/1GB,0))
# Percentage of free space in the datastore
$PerFree = ([math]::Round(($datastore.FreeSpaceGB)/($datastore.CapacityGB)*100,2))
# Percentage of thin disk overcommitment
$PerOvercommit = ([math]::Round($Provision/($datastore.CapacityGB)*100,2))
# Add extra properties to the datastore object
$datastore | Add-Member -type NoteProperty -name PercentsFree -value $PerFree
$datastore | Add-Member -type NoteProperty -name CapacityGb_r -value ([Math]::Round(($datastore.ExtensionData.Summary.Capacity)/1GB,0))
$datastore | Add-Member -type NoteProperty -name FreeSpaceGb_r -value ([Math]::Round(($datastore.ExtensionData.Summary.FreeSpace)/1GB,0))
$datastore | Add-Member -type NoteProperty -name ProvisionedSpaceGb -value $Provision
$datastore | Add-Member -type NoteProperty -name PercentsOvercommit -value $PerOvercommit
}
# Display the resulting data on VMWare datastores and export the output to a CSV file
$datastores|select-object Name, Type, Datacenter,CapacityGb_r,FreeSpaceGb_r,PercentsFree,ProvisionedSpaceGb,PercentsOvercommit|sort PercentsFree| Export-Csv C:\Reports\VMWareVMFSDatastores.csv -NoTypeInformationหากคุณพยายามเชื่อมต่อกับ vCenter โดยใช้ Connect-VIServer และพบข้อผิดพลาด:
Could not resolve the requested VC server.Additional Information: There was no endpoint listening at https://mun-vcsa1/sdk that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details
มีแนวโน้มว่า PowerCLI พยายามเชื่อมต่อกับ VCSA ผ่านพร็อกซี วิ่ง
PowerCLIConfigurationและตรวจสอบว่า
UseSystemProxyผลตอบแทน หากเป็นเช่นนั้น ให้ปิดใช้งานพร็อกซีระบบสำหรับ PowerCLI โดยใช้คำสั่งนี้:
Set-PowerCliConfiguration -proxypolicy noproxyในตัวอย่างของฉัน คุณจะเห็นว่าที่เก็บข้อมูล VMFS 5 แห่งแรกมีพื้นที่ว่างเหลือน้อยกว่า 5% (ช่องสีเขียว) มีภาระผูกพันที่เก็บข้อมูลมากเกินไปในที่เก็บข้อมูลบางแห่ง (ขนาดรวมของดิสก์เสมือนแบบบางทั้งหมดในที่เก็บข้อมูลเกินขนาด) หากดิสก์ VM เสมือนของคุณเริ่มขยายเป็นขนาดสูงสุดตามที่ระบุในการตั้งค่า คุณอาจใช้พื้นที่ในการจัดเก็บ VMFS/NFS/VVOL ของคุณจนเต็ม (การเรียกใช้ VM ด้วยดิสก์หนาจะทำงานได้ตามปกติ แต่คุณจะไม่สามารถเริ่ม VM ใหม่ได้ เนื่องจากจะไม่มีพื้นที่ว่างสำหรับสร้างไฟล์ VSWAP) ที่เก็บข้อมูลที่มีพื้นที่คอมมิตที่ใหญ่กว่าขนาด LUN ทั้งหมดคือ เน้นด้วยสีเหลือง
สคริปต์ PowerShell นี้จะช่วยให้คุณค้นหาที่เก็บข้อมูล VMWare ได้อย่างรวดเร็วโดยไม่มีพื้นที่ว่าง (คุณสามารถย้าย VM จากที่เก็บข้อมูลโดยใช้ Storage vMotion)

