• Memozz
  • Registratie: April 2003
  • Laatst online: 05-09 13:14
Beste mede-tweakers,

In een Windows omgeving draait sinds kort een Windows 2008 server met meerdere Virtual Hosts beheerd door Hyper-V. De omgeving is nieuw en heeft nog geen belangrijke data online staan.
De host draait vier machines: Printserver, Exchange server en twee applicatieservers.
Het probleem is dat ik een duidelijk backup plan moet maken.

Met het backup programma van Windows 2k8 kan je een backup maken van de hardeschijven en daarmee is ook alles gezegd. Dus een kopie van .vhd's en van de systemstate.
Het probleem is dan echter. De .vhd files zijn een kopie van de server op het moment dat hij opgestart is. En geen up-to-date versie wat ik heb begrepen.
Wat ik eigenlijk wil zien is dat er automatisch snapshots worden gemaakt en deze wil ik naast de .vhd op de tape hebben. Zo heb ik altijd een up-to-date versie beschikbaar.

Is dit een goed plan ? Of zie ik wat over het hoofd ?
Zelf ben ik net begonnen met Windows 2008 en Hyper-V. Dus het kan goed zijn dat ik nog niet alle functies heb ondekt.

  • Jaguar645
  • Registratie: Juni 2001
  • Laatst online: 11-09 08:07
Er zijn verschillende manieren voor om een backup te kunnen maken.

1) Wachten op System Center Data Protection Manager 2007 SP1 (Beta), hier komt support in om Hyper-V machines te backuppen:
Microsoft is committed to continuing to make DPM2007 an ideal solution for protecting and recovering your Windows infrastructure. So, stay tuned as we get ready to launch the beta for DPM 2007 Service Pack 1, targeted for later this Summer – including the updates listed above, PLUS protection for Hyper-V, more capabilities around SQL Server databases, new features for protecting SharePoint farms and some other features that we are keeping a surprise for now. For more news and updates on DPM 2007, be sure to also check out the DPM BLOG.
2) gebruik maken van snapshots:

Hyper-v and Snapshots (Part 1)
Hyper-v and Snapshots (Part 2)

Je zou eens in de zoveel tijd de snapshots kunnen mergen. Want wat ik zo snel herinner is dat er per VM maar 512 snapshots gemaakt kunnen worden.

What are all these AVHD files? –and how to magically make them go away (Hyper-V)

3) In feite gewoon alle Backup software die gebruik maakt van VSS zoals EMC Networker (welliswaar met de Networker Module for Microsoft Servers)/BackupExec/etc

Er zullen vast wel meer methodes zijn, maar die komen vanzelf wel voorbij schieten op de hyper-v blogs :)

Acties:
  • 0 Henk 'm!

  • Memozz
  • Registratie: April 2003
  • Laatst online: 05-09 13:14
Oke.. Ik ga deze methodes doornemen.
Heb weer even wat te lezen.
Thanks, Jaguar645!

Acties:
  • 0 Henk 'm!

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Ik zou daarnaast ook (zeker voor iets als een Exchange) nog een backup maken van de server zelf - dus een standaard exchange backup bijvoorbeeld :)

Acties:
  • 0 Henk 'm!

  • Jaguar645
  • Registratie: Juni 2001
  • Laatst online: 11-09 08:07
Onderlinge applicatie backups zou je imo altijd moeten doen, of je nu de VHD/VMDK backupped of niet.

Vooral met Exchange/SQL data kun je nooit veilig genoeg zijn :)

Acties:
  • 0 Henk 'm!

  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 21:44

Erhnam

het Hardware-Hondje :]

Het kan ook met een commandline tooltje diskshadow. Deze maakt gebruik van de VSS writer van Windows 2008. Het werkt op de volgende manier:

diskshadow -s shadowcreate.txt

Vervolgens heb je een script nodig waarin je alle handelingen opgeeft. Wat ik doe is alle oude shadows weggooien. Een Metadata bestand maken voor het geval dat. Met EXEC kan je externe batch bestanden aanroepen. Het is op zich niet nodig om de virtual machines te saven. Een live backup kan maar dan zal je na een restore bij het opstarten merken dat de machine niet goed is afgesloten. Omdat op onze omgeving ook een aantal Linux machines draaien kies ik er voor om een save state uit te voeren.

Hieronder volgt het script


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#DiskShadow script file
delete shadows all
list providers
set context persistent
set metadata D:\MetaData.cab
set verbose on

#Write save state files to harddisk before start backup
EXEC vmsavestate.cmd

begin backup

add volume d: alias DataVolumeShadow

#verify the "Microsoft Hyper-V VSS Writer" writer will be included in the snapshot
#writer verify {66841cd4-6ded-4f4b-8f17-fd23f8ddc3de}
create

expose %DataVolumeShadow% q:

#Start Virtual Machine
EXEC vmstart.cmd

#copy all files to d:\backup
EXEC vmcopy.cmd

unexpose q:
end backup
delete shadows all

#End of script



Om de virtualmachines te saven heb ik een vbscript gemaakt. Ik poll Hyperv net zo lang tot ik zeker weet dat de virtual machine de save state status heeft. Doe je dit niet dan loop je het risico dat Hyperv gaat backuppen terwijl hij aan het save staten is. Hieronder het vbscript:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Option Explicit
Dim WMIService
Dim VMList
Dim VMName
Dim ArgObj
Set ArgObj = WScript.Arguments

'Specify the name of the virtual machine that I want to start
VMName = ArgObj(0)

'Get instance of 'virtualization' WMI service on the local computer
Set WMIService = GetObject("winmgmts:\\.\root\virtualization")

'Get all the MSVM_ComputerSystem object
Set VMList = WMIService.ExecQuery("SELECT * FROM Msvm_ComputerSystem WHERE ElementName='" & VMName & "'")
     
  WScript.Echo "============================================="      
  WScript.Echo "VM Name: " & VMList.ItemIndex(0).ElementName      
  WScript.Echo "VM GUID: " & VMList.ItemIndex(0).Name     
  WScript.Echo "VM State: " & VMList.ItemIndex(0).EnabledState
  WScript.Echo "============================================="

'Request a state change on the first VM that is returned
'2 = start, 3 = stop and 32769 = save state
VMList.ItemIndex(0).RequestStateChange(32769)

'Wait till save state is done
while not VMList.ItemIndex(0).EnabledState = 32769
  Set VMList = WMIService.ExecQuery("SELECT * FROM Msvm_ComputerSystem WHERE ElementName='" & VMName & "'")
  WScript.Echo "VM State: " & VMList.ItemIndex(0).EnabledState
  WScript.Sleep 1500
wend
  WScript.Echo "============================================="
  Wscript.Echo "Save State-Succeeded!"
  WScript.Echo "============================================="



Voor het starten van de virtual machines kan hetzelfde script gebruikt worden alleen moeten de volgende regels worden aangepast:


code:
1
2
3
4
VMList.ItemIndex(0).RequestStateChange(2)

'Wait till save state is done
while not VMList.ItemIndex(0).EnabledState = 2



Met EXEC vmcopy.cmd in het diskshadowscript kopieer ik de images. Let wel dat je de images uit de Q: drive haalt! Hiervoor zou je robocopy kunnen gebruiken bijvoorbeeld. De downtime van het naar save state brengen en starten is redelijk beperkt, maar het kan ook allemaal live! De Q: drive wordt later in het script weer weggehaald. Deze methode vind ik erg goed werken en je hebt geen dure software nodig voor het backuppen.

Succes!

[ Voor 5% gewijzigd door Erhnam op 05-09-2008 10:08 ]

http://www.xbmcfreak.nl/


Acties:
  • 0 Henk 'm!

  • Aikon
  • Registratie: Februari 2001
  • Niet online
Al heel lang had ik deze topic als bookmark, en ben er vandaag aan te gekomen e.e.a. te regelen.

De scripts hierboven werk erg goed. Ik heb wel een kleinigheid aangepast:

Zo heb ik 'add volume c: alias c' toegevoegd, zodat de writer verify geen foutmelding meer geeft. Het hekje hiervoor kan dus weg. Je hebt namelijk altijd het systeemvolume nodig voor de Hyper-V writer om de een of andere reden.

Voor de volledigheid, mijn vmcopy.cmd ziet er als volgt uit.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
robocopy q:\hyper-v d:\test /E

if errorlevel 16 echo ***FATAL ERROR*** & goto end_16
if errorlevel 15 echo FAIL MISM XTRA COPY & goto end_15
if errorlevel 14 echo FAIL MISM XTRA & goto end_14
if errorlevel 13 echo FAIL MISM COPY & goto end_13
if errorlevel 12 echo FAIL MISM & goto end_12
if errorlevel 11 echo FAIL XTRA COPY & goto end_11
if errorlevel 10 echo FAIL XTRA & goto end_10
if errorlevel 9 echo FAIL COPY & goto end_9
if errorlevel 8 echo FAIL & goto end_8
if errorlevel 7 echo MISM XTRA COPY & goto end_7
if errorlevel 6 echo MISM XTRA & goto end_6
if errorlevel 5 echo MISM COPY & goto end_5
if errorlevel 4 echo MISM & goto end_4
if errorlevel 3 echo XTRA COPY & goto end_3
if errorlevel 2 echo XTRA & goto end_2
if errorlevel 1 echo COPY & goto end_goed
if errorlevel 0 echo –no change– & goto end_goed

:end_goed
exit /B 0

:end_2
c:\sendemail\sendemail.exe -f hyperv@domein.nl -t automatisering@domein.nl -u "Probleem met Hyper-V backup" -m "SERVER01 exit code 2" -s 192.168.1.10
exit

:end_3
c:\sendemail\sendemail.exe -f hyperv@domein.nl -t automatisering@domein.nl -u "Probleem met Hyper-V backup" -m "SERVER01 exit code 3" -s 192.168.1.10
exit

:end_4
c:\sendemail\sendemail.exe -f hyperv@domein.nl -t automatisering@domein.nl -u "Probleem met Hyper-V backup" -m "SERVER01 exit code 4" -s 192.168.1.10
exit

:end_5
c:\sendemail\sendemail.exe -f hyperv@domein.nl -t automatisering@domein.nl -u "Probleem met Hyper-V backup" -m "SERVER01 exit code 5" -s 192.168.1.10
exit

:end_6
c:\sendemail\sendemail.exe -f hyperv@domein.nl -t automatisering@domein.nl -u "Probleem met Hyper-V backup" -m "SERVER01 exit code 6" -s 192.168.1.10
exit

:end_7
c:\sendemail\sendemail.exe -f hyperv@domein.nl -t automatisering@domein.nl -u "Probleem met Hyper-V backup" -m "SERVER01 exit code 7" -s 192.168.1.10
exit

:end_8
c:\sendemail\sendemail.exe -f hyperv@domein.nl -t automatisering@domein.nl -u "Probleem met Hyper-V backup" -m "SERVER01 exit code 8" -s 192.168.1.10
exit

:end_9
c:\sendemail\sendemail.exe -f hyperv@domein.nl -t automatisering@domein.nl -u "Probleem met Hyper-V backup" -m "SERVER01 exit code 9" -s 192.168.1.10
exit

:end_10
c:\sendemail\sendemail.exe -f hyperv@domein.nl -t automatisering@domein.nl -u "Probleem met Hyper-V backup" -m "SERVER01 exit code 10" -s 192.168.1.10
exit

:end_11
c:\sendemail\sendemail.exe -f hyperv@domein.nl -t automatisering@domein.nl -u "Probleem met Hyper-V backup" -m "SERVER01 exit code 11" -s 192.168.1.10
exit

:end_12
c:\sendemail\sendemail.exe -f hyperv@domein.nl -t automatisering@domein.nl -u "Probleem met Hyper-V backup" -m "SERVER01 exit code 12" -s 192.168.1.10
exit

:end_13
c:\sendemail\sendemail.exe -f hyperv@domein.nl -t automatisering@domein.nl -u "Probleem met Hyper-V backup" -m "SERVER01 exit code 13" -s 192.168.1.10
exit

:end_14
c:\sendemail\sendemail.exe -f hyperv@domein.nl -t automatisering@domein.nl -u "Probleem met Hyper-V backup" -m "SERVER01 exit code 14" -s 192.168.1.10
exit

:end_15
c:\sendemail\sendemail.exe -f hyperv@domein.nl -t automatisering@domein.nl -u "Probleem met Hyper-V backup" -m "SERVER01 exit code 15" -s 192.168.1.10
exit

:end_16
c:\sendemail\sendemail.exe -f hyperv@domein.nl -t automatisering@domein.nl -u "Probleem met Hyper-V backup" -m "SERVER01 exit code 16" -s 192.168.1.10
exit

Diskshadow kapt er namelijk mee als de exit code >0 is, maar robocopy geeft een 0 of 1 bij succes. Met bovenstaand wordt er een mailtje gestuurd bij een fout, en anders wordt de exit code op 0 gezet, zodat diskshadow vrolijk doorgaat. Overigens wordt de exit code sowieso 0 als het mailtje succesvol wordt verzonden en gaat diskshadow dus altijd door.

Oh, voor nog meer volledigheid, de vbs scripts voor het stoppen en starten start ik op via volgend .cmd:
code:
1
cscript vmstart.vbs


Verder lijkt alles perfect te werken, en is er dus geen noodzaak voor dure backupsoftware :)

Acties:
  • 0 Henk 'm!

  • Jaguar645
  • Registratie: Juni 2001
  • Laatst online: 11-09 08:07
Om dan nog een gratis alternatief te bieden. Tegenwoordig kun je via de Windows Server Backup software ook Hyper-V backuppen:

How to back up Hyper-V virtual machines from the parent partition on a Windows Server 2008-based computer by using Windows Server Backup
Pagina: 1