У цій статті ми розглянемо невеликий PowerCLI скрипт для перевірки вільного місця на VMWare vSphere датасторах і визначення сховищ з Thin Provisioning, на яких сумарний обсяг тонких (динамічно розгортаються) дисків віртуальних машин перевищує загальну ємність сховища. Якщо у вас в інфраструктурі використовується безліч датастор VMWare, такий скрипт зручно використовувати для моніторингу вільного місця, визначення сховищ з овеккоміттом за місцем (вимоги до місця тонких дисків всіх ВМ більше, ніж є місця на VMFS сховище). Скрипт можна використовувати, наприклад, при аналізі зростання зайнятого місця, перед створенням нової віртуальної машини, для пошуку сховищ з надмірним використанням Thin Provision, і т.д.

Для коректної роботи системи віртуалізації, рекомендується щоб на VMWare датасторе було доступно не менше 5-10% вільного місця. При використанні снапшотов (в тому числі створюваних системою резервного копіювання), необхідно мати не менше 10-15% вільного місця.

Для перевірки і відображення вільного місця в VMWare можна використовувати такий PowerShell скрипт (передбачається, що ви вже встановили на свій комп’ютер модуль VMWare vSphere PowerCLI) .:

# Импорт модуля PowerCLI
Import-Module VMware.VimAutomation.Core -ErrorAction SilentlyContinue
# подключение к vCenter
connect-viserver msk-vcsa1 -User admin
# получение списка хранилищ в vCenter
$datastores = Get-Datastore
$ErrorActionPreference="SilentlyContinue"
# перебор всех доступных хранилищ в цикле
ForEach ($datastore in $datastores)
{
# размер переподписки (commited space) всех tnin дисков на датасторе (сколько места потребуется, если все vmdk файлы вырастут до максимального размера, указанного в их настройках)
$Provision = ([Math]::Round(($datastore.ExtensionData.Summary.Capacity - $datastore.ExtensionData.Summary.FreeSpace + $datastore.ExtensionData.Summary.Uncommitted)/1GB,0))
# процент свободного места на datastore
$PerFree = ([math]::Round(($datastore.FreeSpaceGB)/($datastore.CapacityGB)*100,2))
# процент переподписки тонких дисков
$PerOvercommit = ([math]::Round($Provision/($datastore.CapacityGB)*100,2))
# Добавление дополнительных свойств объекту datastore
$datastore | Add-Member -type NoteProperty -name PercentFree -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 PercentOvercommit -value $PerOvercommit
}
# Вывод итоговых данных по хранилищам VMWare и экспорт результатов в CSV файл
$datastores|select-object Name, Type, Datacenter,CapacityGb_r,FreeSpaceGb_r,PercentFree,ProvisionedSpaceGb,PercentOvercommit|sort PercentFree| Export-Csv C:PSVMWareDatastoreInventory.csv -NoTypeInformation

powershell скрипт для моніторингу місця на vmware сховищах в vSphere

Якщо у вас при підключенні до vCenter за допомогою Connect-VIServer з’являється помилка:”Could not resolve the requested VC server.
Additional Information: There was no endpoint listening at https://msk-vcsa1/sdk that could accept them essage. 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

У моєму прикладі видно, що на перших 5 VMFS сховищах залишилося менше 5% вільного простору (виділені зеленим). А на деяких сховищах є перепідписка по використовуваному місця (сумарний розмір усіх тонких віртуальних дисків на датасторах перевищує їх загальний розмір). Якщо у вас віртуальні диски ВМ на цьому сховище почнуть несподівано рости до максимального розміру, зазначеного в їх налаштування, у вас може закінчиться місце на VMFS / NFS / VVOL сховище (запущені ВМ з товстими дисками працюватимуть нормально, але ви не зможете запустити нові ВМ , тому що не буде місця для створення файлу VSWAP). На скріншоті жовтим виділені сховища, на яких committed space більше, ніж загальний розмір LUNов.

статистика по використанню місця на vmware datastor-ах

Такий PowerShell скрипт допоможе вам швидко знайти сховища, на яких залишилося мало вільного місця (ви можете перенести ВМ з такого датастора за допомогою Storage vMotion).

Leave a Reply

Your email address will not be published. Required fields are marked *