среда, 27 марта 2013 г.

Hyper-V. Reboot. Перезагрузка для осторожных.

Цель: Перезагрузка серверов Hyper-V по расписанию (например  после наката обновлений WSUS ).

Описанный ниже алгоритм выполныет две функции

  • переводит все виртуалки, находящиеся в состоянии "Running" в состояние "Save" и пускает хост на перезагрузку   
  • при запуске Windows стартует все виртуалки, находящиеся в состоянии "Save".

исходные данные:

Windows 2008 R2 + Hyper-V
PowerShell + библиотека функций для Hyper-V James O’Neill  

Значения кодов состояний : 2 - start,32769 - save

1. создаем  restart-hv.ps1 


Import-Module "C:\Program Files\modules\hyperV"
Start-Sleep -s 60
$VMs = Get-WmiObject MSVM_ComputerSystem -computer "." -namespace "root\virtualization"
ForEach ($vm in $Vms)
{
if ( $vm.name -ne $vm.elementname ){
    if ( $vm.EnabledState -eq 2 ) {
        Suspend-VM $vm -force
        Start-Sleep -s 60
        }
    }  
}
cmd /c "shutdown -r -t 15" > log.txt

2. создаем  start-hv.ps1

Import-Module "C:\Program Files\modules\hyperV"
Start-Sleep -s 60
$VMs = Get-WmiObject MSVM_ComputerSystem -computer "." -namespace "root\virtualization"
ForEach ($Vm in $Vms)
{
if ( $vm.name -ne $vm.elementname ){
    if ( $vm.EnabledState -eq 32769 ) {
        Start-VM $Vm -force
        Start-Sleep -s 20
        }
    }  
}


3. создаем start-hv.cmd
powershell.exe  "& {e:\scripts\start-hv.ps1}"


4. создаем restart-hv.cmd
powershell.exe  "& {e:\scripts\restart-hv.ps1}"


5. создаем  в планировщике задач простую задачу 

  • запуск программы restart-hv.cmd
  • периодичность (раз в неделю более чем достаточно.рекомендую перезагружать хосты Hyper-V      в разные дни недели - есть практика косяков после наката обновлений )-
  • выполнять с наивысшими правами
  • выполнять при невыполненом входе в систему



6. создаем  в планировщике задач простую задачу 

  • запуск программы start-hv.cmd
  • выполнять при запуске Windows
  • выполнять с наивысшими правами
  • выполнять при невыполненом входе в систему 



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

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