Archive for the ‘Виртуализация, Hyper-V’ Category

В Windows Azure после НГ добавлены новые конфигурации машин. Есть потенциально интересные для тестирования, например ‘D11’:

2015-01-04_191856

Поменять конфигурацию через powershell можно например так(подразумевается что учётка Azure уже подключена):

Set-ExecutionPolicy RemoteSigned
Import-Module Azure

</pre>
<pre>$VMname = "myVM"
$ServiceName = "myVM"
$VMSize = "A5" 

$myVM = Get-AzureVM –ServiceName $ServiceName –Name $VMname
$myVM | Stop-AzureVM
$myVM | Set-AzureVMSize $VMSize | Update-AzureVM

где VMsize — одно из значений списка

ExtraSmall,Small,Medium,Large,ExtraLarge,A5,A6,A7,A8,A9,Basic_A0,Basic_A1,Basic_A2,Basic_A3,Basic_A4,Standard_D1,Standard_D2,Standard_D3,Standard_D4,Standard_D11,Standard_D12,Standard_D13,Standard_D14

В случае если снепшотов у виртуальной машины на удалённом сервере слишком много, как например тут:

clip_image002

а доступа к консоли mmc нет, то можно воспользоваться библиотекой powershell для работы с виртуальными машинами Hyper-V. Ссылка на скачивание:

https://pshyperv.codeplex.com/

Чтобы избежать ошибок при инсталляции перед распаковкой необходимо щёлкнуть правой кнопкой и сделать файлу “Unblock”:

clip_image003

Также в моём случае понадобилось подправить две записи в файле menu.ps1, как указано. Возможно, в нормальной ситуации это не понадобится.

Далее можно удалить дерево снепшотов с удалённого сервера например таким скриптом RemoveSnapshotVM.ps1 (конечно у пользователя должны быть соответствующие права):

# HyperV.psd1

if (!(Get-Module -Name hyperv))

{

import-module hyperv

}

Set-ExecutionPolicy "RemoteSigned" -Scope Process -Confirm:$false

Set-ExecutionPolicy "RemoteSigned" -Scope CurrentUser -Confirm:$false

# Set-ExecutionPolicy unrestricted -force

Get-Vmsnapshot -VM VMname -Server Servername -Root | remove-vmsnapshot -tree

clip_image005

После этого количество снепшотов на сервере начнёт уменьшаться:

clip_image006

и затем они полностью удалятся:

clip_image007

Само собой для полного их удаления машины всё ещё нужно перевести в “Save State” либо выключить.

Недавно мы закончили тестирование скрипта для бекапирования виртуальных машин под Windows Hyper-V Server 2008 R2.

Просто копировать виртуальные машины тем же xcopy под Hyper-V нельзя; также возврат машины обратно требует дополнительных действий, о которых я писал раньше. А такие централизованные решения как Data Protection Manager или Backup Exec от Symantec imho громоздкие и небесплатные.

Автор скрипта — rex_3, скрипт на VBS позволяет создавать резервные копии виртуальных машин на горячую, то есть машину не нужно выключать или переводить в save state, плюс скрипт умеет возвращать машины обратно и объединять разностные диски виртуальной машины, что можно впоследствии использовать для клонирования.

Тема, где можно скачать скриптик:

HyperV Backup Tool v0.6.3

http://sysadmins.ru/topic247352.html

Еще раз подчеркну, что скрипт работает под бесплатной версией Windows Hyper-V Server 2008 R2. В консольном интерфейсе для помещения задачи в планировщик можно использовать команду AT, например так:

AT 4:30 /every:Th,F E:\SCRIPTS\backup_vm.cmd

Пост написан в результате этой инструкции от Kupchinets​ky Alexander:

http://kupchinetsky.spaces.live.com/blog/cns!1097D49C5CA5BE06!1367.entry

В предыдущих версиях виртуальных машин для переноса виртуальной машины было достаточно скопировать файлы и при необходимости подправить конфиги(как например Virtual Server 2005 R2). В Hyper-V этого недостаточно, и чтобы виртуальная машина стала видна в консоли управления необходимо создать xml-файлы(hardlinks), раздать права и "подсунуть" их Hyper-V. Более подробно как это делать описано по ссылке выше, а я же просто выложу батник, который облегчает этот процесс:

@goto end_of_comments

————————————————————-

ATTACH Hyper-V VM

 

Variables:

 

VMFOLDER is virtual machine folder, without end slash

 

VMGUID is 32-digit number from ‘Virtual Machines’ folder,

example: for "D:\VM\Virtual Machines\9ACC595A-61B4-4BD7-A46B-67D5B20E38E6.xml" folder

it is 9ACC595A-61B4-4BD7-A46B-67D5B20E38E6

————————————————————-

:end_of_comments

 

rem set variables

set vmguid=9ACC595A-61B4-4BD7-A46B-67D5B20E38E6

set vmfolder=D:\VM

 

rem stop Hyper-V services

net stop "Hyper-V Image Management Service"

net stop "Hyper-V Networking Management Service"

net stop "Hyper-V Virtual Machine Management"

 

rem configure Hyper-V hardlinks and set permissions

mklink "C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\%vmguid%.xml" "%vmfolder%\Virtual Machines\%vmguid%.xml"

cacls "C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\%vmguid%.xml" /L /E /G "NT VIRTUAL MACHINE\%vmguid%":F

cacls "%vmfolder%" /T /E /G "NT VIRTUAL MACHINE\%vmguid%":F

 

net start "Hyper-V Virtual Machine Management"

net start "Hyper-V Networking Management Service"

net start "Hyper-V Image Management Service"

Здесь вам необходимо будет установить два параметра:

 

attach_vm_scr1

 

Первый — это 32-значный GUID виртуальной машины, его можно найти в папке Virtual Machines вашей виртуальной машины, второй — и папку, в которой находится виртуальная машина, без последнего слеша.

 

После отработки этого батника виртуальная машина появится в консоли Virtual Machine Manager-а. Тестировался с Service Center Virtual Machines Manager Admin Console, и с виртуальными машинами на удаленных серверах Windows 2008 Hyper-V R2. При тестировании остановка сервисов гипервизора никак не повлияла на другие работающие виртуальные машины(то есть можно присоединять машины на горячую).

 

Если у вашей виртуальной машины были снепшоты, то также необходимо присоединить каждый из них. Вот батник для присоединения снепшота(необходимо указать GUID для каждого снепшота):

@goto end_of_comments

————————————————————-

ATTACH Hyper-V SHAPSHOT

 

Variables:

 

VMFOLDER is virtual machine folder without end slash

VMGUID is 32-digit number from ‘Virtual Machines’ folder,

SNAPSHOT is 32-digit number from ‘Snapshots’ folder

————————————————————-

:end_of_comments

 

rem set variables

set vmfolder=D:\ADDIS\Win2008r2-1

set vmguid=76DA3C83-11D0-4FF4-B909-3E7CC40C0D3C

set snapshot=5E688829-B1BF-47A2-A1A8-2370EE163F71

 

rem stop Hyper-V services

net stop "Hyper-V Image Management Service"

net stop "Hyper-V Networking Management Service"

net stop "Hyper-V Virtual Machine Management"

 

 

rem configure Hyper-V hardlinks and set permissions

mklink "C:\ProgramData\Microsoft\Windows\Hyper-V\Snapshots\%snapshot%.xml" "%vmfolder%\Snapshots\%snapshot%.xml"

cacls "C:\ProgramData\Microsoft\Windows\Hyper-V\Snapshots\%snapshot%.xml" /L /E /G "NT VIRTUAL MACHINE\%vmguid%":F

cacls "%vmfolder%" /T /E /G "NT VIRTUAL MACHINE\%vmguid%":F

 

net start "Hyper-V Virtual Machine Management"

net start "Hyper-V Networking Management Service"

net start "Hyper-V Image Management Service"