Недавно мы закончили тестирование скрипта для бекапирования виртуальных машин под 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
Пост написан в результате этой инструкции от Kupchinetsky 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"
Здесь вам необходимо будет установить два параметра:
Первый — это 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"
Автоматизация разработки под SharePoint. Редактирование шаблона VS2008
Posted: 25.02.2010 in SharePointWSS 3.0, VS2008
Работая с SharePoint, в каждом проекте как минимум
необходимо добавлять ссылку на Microsoft.SharePoint.dll и соответственно
using Microsoft.SharePoint; в код программы.
Чтобы автоматизировать этот процесс, можно подредактировать
зазипованные шаблоны проектов, которые лежат в папке
C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplatesCache\CSharp\Windows\1033\
Для примера возьмём шаблон консольного приложения ConsoleApplication.zip:
Добавляем в program.cs строчку using Microsoft.SharePoint;
А в consoleapplication.csproj
эту сборку между тегами “ItemGroup”
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data"
/>
<Reference Include="System.Xml" />
<Reference Include="Microsoft.SharePoint" />
</ItemGroup>
(Путь C:\Program
Files\Common
Files\Microsoft Shared\web server extensions\12\ISAPI\ должен быть в Path)
Всё, теперь при создании консольного приложения у
нас будет
добавлена сборка SharePoint и можно сразу писать код под WSS.