пятница, 22 января 2016 г.

Ограничение количества снапшотов виртуальных машин VMware vSphere

Большое количество снапшотов (Snapshot - снимок состояния виртуальной машины) плохо сказывается на производительности ввода-вывода дисковой подсистемы. Если вы наделяете пользователей правами по управлению снапшотами в виртуальной среде, имеет смысл ограничить количество создаваемых снимков для каждой машины. VMware, например, рекомендует использовать до 2 снапшотов. Добавьте следующий параметр в .vmx файл или выполните настройку через vSphere Client: "Edit Settings ->Options ->Advanced ->General ->Configuration Parameters... ->Add Row".

snapshot.maxSnapshots = "N"

где N - максимальное количество снимков, которое система разрешит создать.

После превышения заданного лимита vSphere Client, при попытке создания очередного снапшота, будет генерировать ошибку: "A general system error occurred: Exceeded the maximum number of permitted snapshots".

Внимание!!! Чтобы удалить данный параметр из конфигурации виртуальной машины, придётся редактировать .vmx файл!

Если вы администрируете виртуальную среду большого объема, применить настройки вам поможет скрипт PowerCLI:

$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$spec.extraConfig += New-Object VMware.Vim.OptionValue
$spec.extraConfig[0].key = "snapshot.maxSnapshots"
$spec.extraConfig[0].value = 2
$VMs = Get-View -ViewType VirtualMachine -Property Name -Filter @{"Config.Template"="false"} | where {$_.name -like "*"}
foreach($VM in $VMs)
{
   $VM.ReconfigVM_Task($spec)
}


В строке с элементом "where {$_.name -like "*"}" вместо звёздочки задаётся фильтр по имени виртуальных компьютеров, согласно которому будут применяться параметры.

Немного преобразованный вариант скрипта, когда меняется параметр только для машин в определённой папке:

$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$spec.extraConfig += New-Object VMware.Vim.OptionValue
$spec.extraConfig[0].key = "snapshot.maxSnapshots"
$spec.extraConfig[0].value = 2
$folder = Get-Folder "MyFolder" | Get-View
$VMs = Get-View -SearchRoot $folder.MoRef -ViewType VirtualMachine -Property Name -Filter @{"Config.Template"="false"} | where {$_.name -like "*"}
foreach($VM in $VMs)
{
   $VM.ReconfigVM_Task($spec)
}


В строке "$folder = Get-Folder "MyFolder" | Get-View" поправьте "MyFolder" на название вашей папки.

Комментариев нет:

Отправить комментарий