Проверка свободного места на датасторах VMWare с помощью PowerCLI

В этой статье мы рассмотрим небольшой 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

Если у вас при подключении к 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ов.

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

admin

Share
Published by
admin

Recent Posts

Apple: история логотипа

Как менялся логотип Apple на протяжении многих лет. Логотип Apple — это не просто символ,…

1 неделя ago

Security Boot Fail при загрузке Acer — решение проблемы

Security Boot Fail при загрузке Acer — решение проблемы При загрузке ноутбука Acer с флешки,…

3 недели ago

Ноутбук не включается — варианты решения

Ноутбук не включается — варианты решения Если при попытке включить ноутбук вы обнаруживаете, что он…

3 недели ago

The AC power adapter wattage and type cannot be determined — причины и решение

The AC power adapter wattage and type cannot be determined — причины и решение При…

3 недели ago

Свистит или звенит блок питания компьютера — причины и решения

Свистит или звенит блок питания компьютера — причины и решения Некоторые владельцы ПК могут обратить…

3 недели ago

Мигает Caps Lock на ноутбуке HP — почему и что делать?

Мигает Caps Lock на ноутбуке HP — почему и что делать? При включении ноутбука HP…

3 недели ago