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

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 недели ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 недели ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 недели ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 недели ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 недели ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 недели ago