Проверка свободного места на датасторах 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

После включения диагностического запуска не удается войти в Windows — как исправить?

Некоторые пользователи, экспериментируя с конфигурацией системы в окне msconfig могут столкнуться с ситуацией, когда после…

1 неделя ago

WinScript — очистка и настройка Windows 11 и 10

На сайте не раз публиковались обзоры программ, предназначенных для очистки или настройки последних версий Windows.…

1 неделя ago

Предварительный просмотр накопительного обновления не устанавливается — решение

При установке некоторых обновлений Windows 11, имеющих в названии «Предварительный просмотр накопительного обновления», многие пользователи…

1 неделя ago

FixExec — восстановление ассоциаций .exe, .bat и .com файлов

Некоторые пользователи Windows 11, 10 и предыдущих версий системы могут столкнуться с ситуацией, когда исполняемые…

1 неделя ago

Ошибка 0x800705b4 при обновлении Windows 11 и 10 — как исправить?

При установке обновлений Windows 11/10 некоторые пользователи могут столкнуться с ошибкой с кодом 0x800705b4 и…

1 неделя ago

Обслуживание вашей версии Windows 11 окончено — что делать?

Пользователи Windows 11 могут столкнуться с сообщением «Обслуживание вашей версии Windows окончено» (Your version of…

1 неделя ago