пятница, 29 марта 2013 г.

Hyper-V. Backup виртуальных машин.

В инете найдете несколько вариантов решений.
  • через полный останов машин (далее или через копирование vhd или создание теневой копии тома)
  • без останова виртуальных машин (через создание снапшота). 
Почему НЕ НАДО backupить через снапшоты:
  • для слияния avhd с vhd все-равно придется выключать машину (и в чем тогда смысл?)
  • добавляется еще ДВЕ точки возможного сбоя (при создании снапшота, при слиянии жестких дисков)
  • Авторитетное мнение Microsoft - снапшоты НЕ для backup: Здесь
  • Еще одно авторитетное мнение почему нет: Здесь
  • И еще одно в картинках: Здесь
Думаю этот достаточно, чтобы не поддаться соблазну.

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

Hyper-V. StateID. Коды состояний виртуальных машин.


Unknown
0
The state of the VM could not be determined.

Enabled
2
The VM is running.

Disabled
3
The VM is turned off.

Paused
32768
The VM is paused.

Suspended
32769
The VM is in a saved state.

Starting
32770
The VM is starting. This is a transitional state between 3 (Disabled) or 32769 (Suspended) and 2 (Enabled) initiated by a call to the RequestStateChange method with a RequestedState parameter of 2 (Enabled).

Snapshotting
32771
Starting with Windows Server 2008 R2 this value is not supported. If the VM is performing a snapshot operation, the element at index 1 of the OperationalStatus property array will contain 32768 (Creating Snapshot), 32769 (Applying Snapshot), or 32770 (Deleting Snapshot).
Windows Server 2008:
This value is supported and indicates the VM is performing a snapshot operation.

Saving
32773
The VM is saving its state. This is a transitional state between 2 (Enabled) and 32769 (Suspended) initiated by a call to the RequestStateChange method with a RequestedState parameter of 32769 (Suspended).

Stopping
32774
The VM is turning off. This is a transitional state between 2 (Enabled) and 3 (Disabled) initiated by a call to the RequestStateChange method with a RequestedState parameter of 3 (Disabled) or a guest operating system initiated power off.
Pausing

32776
The VM is pausing. This is a transitional state between 2 (Enabled) and 32768 (Paused) initiated by a call to the RequestStateChange method with a RequestedState parameter of 32768 (Paused).

Resuming
32777
The VM is resuming from a paused state. This is a transitional state between 32768 (Paused) and 2 (Enabled).

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
  • выполнять с наивысшими правами
  • выполнять при невыполненом входе в систему