BETA
Aby się zalogować, najpiew wybierz portal.
Aby się zarejestrować, najpiew wybierz portal.
Podaj słowa kluczowe
Słowa kluczowe muszą mieć co najmniej 3 sąsiadujące znaki alfanumeryczne
Pole zawiera niedozwolone znaki

Baza wiedzy











Zarządzanie backupem Hyper-V

16-09-2009 19:30 | Karol Stilger
Backup maszyn wirtualnych na Hyper-V wydaje się skomplikowany, jeśli założymy, że chcemy, żeby był wykonywany automatycznie, downtime powinien dążyć do zera i co oczywiste żeby dało się z niego odzyskać dane, jeśli pojawi się taka potrzeba. Okazuje się, że można nim bardzo łatwo zarządzać.

Wirtualizacja stała się integralną częscią środowisk informatycznych. W ferworze minimalizacji ilości maszyn fizycznych bardzo często zapomina się o tym, że hosty, na których działają wirtualizatory, to również maszyny fizyczne i tak samo jak standardowe serwery mogą ulec uszkodzeniu, a dane utraceniu (nawet mimo tego, że krytyczne dane są trzymane na bezpiecznej zewnętrznej macierzy dyskowej).

Backup maszyn wirtualnych z pozycji maszyny, na której odbywa się wirtualizacja, jest dość skomplikowaną operacją, jeśli założymy, że chcemy, żeby był wykonywany automatycznie, downtime powinien dążyć do zera i co oczywiste, żeby dało się z niego odzyskać dane jeśli pojawi się taka potrzeba. Należy dobrze przemyśleć i zaplanować to zadanie łącznie ze scenariuszami odtwarzania na tym samym bądź innym sprzęcie. Jednak przy ogólniejszym spojrzeniu jest znacznie mniej czaso- i zasobochłonny niż zarządzanie backupami wewnętrznie na każdej wirtualnej maszynie z osobna.

W dalszej częsci artykułu zaproponuję dwa rozwiązania backupów wirtualnych maszyn działających na Hyper-V. Pierwsza działa w oparciu o skrypty w PowerShellu uruchamiane przez Task Scheduler. Druga wykorzystuje Windows Server Backup wykonywujący kopie systemu operacyjnego wirtualizatora oraz maszyn wirtualnych. Obie metody można z sobą łączyć dla uzyskania optymalnego dla naszego środowiska rozwiązania.

 

Backup i snapshoty wykonywane za pomocą PowerShell

PowerShell jest wymarzonym narzędziem do skryptowania. Wspierają go Hyper-V Server R2 oraz Windows Server 2008 R2 w wersji Core - podobnie jak wszystkie pełne instalacje Windows Server 2008/2008 R2. Dzieki temu PowerShell stał się bardzo uniwersalnym narzędziem do zarządzania systemami w tym hostami Hyper-V.

Poniżej znajduje się pięć skryptów PS umożliwających zarządzanie backupami (export) i snapshotami maszyn działających na Hyper-V. Skrypty przygotowałem jakiś czas temu wspólnie z Norweskim MVP, Tore Lervikiem. Dwa z nich służą do backupu, kolejne  dwa do wykonywania snapshotów, a ostatni do utrzymywania porządku w folderach z backupami. Świetnie nadają się do okresowego uruchamiania przez Task Scheduler, można na ich podstawie zbudować kompletne rozwiązanie do backupu maszyn działających na Hyper-V.

Wszystkie skrypty zostały wielokrotnie przetestowane i z tego co wiem, działają w kilku produkcyjnych środowiskach. Jeśli jednak znajdziesz coś, co można w nich usprawnić proszę o informację w komentarzu.

Backup wszystkich maszyn - HVbackupAll

Skrypt HVbackupAll wykonuje się kolejno dla wszystkich wirtualnych maszyn. Każdą z nich zatrzymuje, dokonuje pełnego eksportu do wskazanego dla backupu folderu ($dest), zmienia jego nazwę zgodnie z datą i czasem wykonywania skryptu, a następnie wznawia działanie maszyny. Zawartość wyeksportowanych folderów to kompletny backup wirtualnego systemu: jego konfiguracja, plik dysku, stan pamięci oraz wszystkie snapshoty.

W przypadku konieczności przywrócenia stanu maszyny z backupu należy wykonać jej import na tę samą bądź inną maszynę (przy imporcie do Hyper-V działającego na systemie o odmiennej architekturze może być konieczny restart wirtualnego komputera).

 

## HVbackupAll.ps1
## Create a backup of all the VM's
## to edit: $dest
##
## last edit: 8:41 PM 9/13/2009 by Karol Stilger

$dest = "F:\HVbackup\machines"

$datetime = get-date -f yyMMdd_HHmmss
$VM_Service = get-wmiobject -namespace root\virtualization Msvm_VirtualSystemManagementService
$ListofVMs = get-wmiobject -namespace root\virtualization Msvm_ComputerSystem -filter "ElementName <> Name"

foreach ($VM in [array] $ListOfVMs)
{
$VMReturnState = $VM.EnabledState
$VMName = $VM.ElementName

if (($VM.EnabledState -eq 2) -or ($VM.EnabledState -eq 32768) -or ($VM.EnabledState -eq 32770))
{
$VM.RequestStateChange(32769)
echo "Saving the state of $VMName"
}

while (!($VM.EnabledState -eq 32769) -and !($VM.EnabledState -eq 3))
{
Start-Sleep(1)
$VM = get-wmiobject -namespace root\virtualization -Query "Select * From Msvm_ComputerSystem Where ElementName='$VMName'"
}


if ([IO.Directory]::Exists("$dest\TmpDir\$VMName"))
{
[IO.Directory]::Delete("$dest\TmpDir\$VMName", $True)
}

echo "Exporting the VM"
$status = $VM_Service.ExportVirtualSystem($VM.__PATH, $True, "$dest\TmpDir")

if ($status.ReturnValue -eq 4096)
{
$job = [Wmi]$status.Job

while (!($job.PercentComplete -eq 100) -and ($job.ErrorCode -eq 0))
{
Start-Sleep(5)
$job = [Wmi]$status.Job
echo $job.PercentComplete
}
}


## Store the files on in a temp directory before moving them to their location and then remove the old files.

if ([IO.Directory]::Exists("$dest\$VMName"))
{
[IO.Directory]::Move("$dest\$VMName", "$dest\$VMName-OldTmpDir")
[IO.Directory]::Move("$dest\TmpDir\$VMName", "$dest\$VMName")
[IO.Directory]::Delete("$dest\$VMName-OldTmpDir", $True)
}
else
{
[IO.Directory]::Move("$dest\TmpDir\$VMName", "$dest\$VMName")
}

echo "Done with $VMName"
$VM.RequestStateChange($VMReturnState)
}

rename-item $dest -newname ("$datetime All")

 

Backup pojedyńczej maszyny - HVbackupOne

Skrypt HVbackupOne jest modyfikacją HVbackupAll i wykonywany jest tylko dla maszyny $VMsystemName.

 

## HVbackupOne.ps1
## Create a backup of one VM
## to edit: $dest and $VMsystemName
##
## last edit: 12:33 PM 9/13/2009
by Karol Stilger

$dest = "F:\HVbackup\machines"
$VMsystemName = 'MyFavoriteMachine'

$datetime = get-date -f yyMMdd_HHmmss
$VM_Service = get-wmiobject -namespace root\virtualization Msvm_VirtualSystemManagementService
$ListofVMs = get-wmiobject -namespace root\virtualization Msvm_ComputerSystem -filter "ElementName = '$VMsystemName'"

foreach ($VM in [array] $ListOfVMs)
{
$VMReturnState = $VM.EnabledState
$VMName = $VM.ElementName

if (($VM.EnabledState -eq 2) -or ($VM.EnabledState -eq 32768) -or ($VM.EnabledState -eq 32770))
{
$VM.RequestStateChange(32769)
echo "Saving the state of $VMName"
}

while (!($VM.EnabledState -eq 32769) -and !($VM.EnabledState -eq 3))
{
Start-Sleep(1)
$VM = get-wmiobject -namespace root\virtualization -Query "Select * From Msvm_ComputerSystem Where ElementName='$VMName'"
}


if ([IO.Directory]::Exists("$dest\TmpDir\$VMName"))
{
[IO.Directory]::Delete("$dest\TmpDir\$VMName", $True)
}

echo "Exporting the VM"
$status = $VM_Service.ExportVirtualSystem($VM.__PATH, $True, "$dest\TmpDir")

if ($status.ReturnValue -eq 4096)
{
$job = [Wmi]$status.Job

while (!($job.PercentComplete -eq 100) -and ($job.ErrorCode -eq 0))
{
Start-Sleep(5)
$job = [Wmi]$status.Job
echo $job.PercentComplete
}
}


## Store the files on in a temp directory before moving them to their location and then remove the old files.

if ([IO.Directory]::Exists("$dest\$VMName"))
{
[IO.Directory]::Move("$dest\$VMName", "$dest\$VMName-OldTmpDir")
[IO.Directory]::Move("$dest\TmpDir\$VMName", "$dest\$VMName")
[IO.Directory]::Delete("$dest\$VMName-OldTmpDir", $True)
}
else
{
[IO.Directory]::Move("$dest\TmpDir\$VMName", "$dest\$VMName")
}

echo "Done with $VMName"
$VM.RequestStateChange($VMReturnState)
}

rename-item $dest -newname ("$datetime $VMsystemName")

 

Snapshot wszystkich maszyn - HVsnapshotAll

Wykonywanie migawek nie jest backupem (snapshot jest trzymany na tym samym dysku co pliki konfiguracyjne wirtualnej maszyny, co może powodować problem w przypadku próby odzyskania go po awarii hosta Hyper-V), ale świetnie sprawdza się przy wprowadzaniu testowych zmian na wirtualnych hostach. Skrypt wykonuje snapshot wszystkich wirtualnych hostów, jednocześnie usuwając migawki starsze niż 6 dni.

 

## HVsnapshotAll.ps1
## Take a snapshot of all the VM's and delete snapshots older than 6 days
##
## last edit: 12:31 PM 9/13/2009
by Karol Stilger

$VM_Service = get-wmiobject -namespace root\virtualization Msvm_VirtualSystemManagementService
$ListofVMs = get-wmiobject -namespace root\virtualization Msvm_ComputerSystem -filter "ElementName <> Name "


foreach ($VM in [array] $ListOfVMs)
{
$VM_service.CreateVirtualSystemSnapShot($VM.__PATH)
}



##
## Giving Hyper-V 30 sec to take the snapshots
##

Start-Sleep(30)



##
## Remove snapshots older than 6 days (except Sundays)
##

$VSVR = get-wmiobject -namespace root\virtualization -class Msvm_ComputerSystem
$VSSNAP = get-wmiobject -namespace root\virtualization -class Msvm_VirtualSystemSettingData -filter "SettingType =

5"

if (!($VSSNAP -eq $null))
{
foreach ($SS in [array] $VSSNAP)
{
if ($SS.ConvertToDateTime($SS.CreationTime) -le [DateTime]::Now.AddDays(-6).Date)
{
if (!($SS.ConvertToDateTime($SS.CreationTime).DayOfWeek -eq 0))
{
$VM_Service.RemoveVirtualSystemSnapshot($SS)
Start-Sleep(3)
}
}
}
}

 

Snapshot pojedyńczej maszyny - HVsnapshotOne

Skrypt HVsnapshotOne jest modyfikacją HVsnapshotAll i wykoywany jest tylko dla maszyny $VMsystemName.

 

## HVsnapshotOne.ps1
## Take a snapshot of one VM
and delete snapshots older than 6 days
## to edit: $VMsystemName
##
## last edit: 12:31 PM 9/13/2009
by Karol Stilger

$VMsystemName = '
MyFavoriteMachine'

$VM_Service = get-wmiobject -namespace root\virtualization Msvm_VirtualSystemManagementService
$ListofVMs = get-wmiobject -namespace root\virtualization Msvm_ComputerSystem -filter "ElementName = '$VMsystemName'"


foreach ($VM in [array] $ListOfVMs)
{
$VM_service.CreateVirtualSystemSnapShot($VM.__PATH)
}



##
## Giving Hyper-V 30 sec to take the snapshots
##

Start-Sleep(30)



##
## Remove snapshots older than 6 days (except Sundays)
##

$VSVR = get-wmiobject -namespace root\virtualization -class Msvm_ComputerSystem
$VSSNAP = get-wmiobject -namespace root\virtualization -class Msvm_VirtualSystemSettingData -filter "SettingType = 5"

if (!($VSSNAP -eq $null))
{
foreach ($SS in [array] $VSSNAP)
{
if ($SS.ConvertToDateTime($SS.CreationTime) -le [DateTime]::Now.AddDays(-6).Date)
{
if (!($SS.ConvertToDateTime($SS.CreationTime).DayOfWeek -eq 0))
{
$VM_Service.RemoveVirtualSystemSnapshot($SS)
Start-Sleep(3)
}
}
}
}

 

Usuwanie backupów starszych niż X dni - HVcleanBackup

Aby zadbać o miejsce niezbędne do wykonywania nowych backupów, warto pozbyć się tych już nieaktualnych. Skrypt HVbackupClean usuwa z folderu $CleanPath wszystkie pliki i katalogi starsze niż $Old dni.

 

## HVcleanBackup.ps1
## Deletes backup older than $Old days
## to edit: $CleanPath and $Old
##
## last edit: 12:30 PM 9/13/2009
by Karol Stilger

$CleanPath = "F:\HVbackup"
$Old = 10


gci $CleanPath -recurse | where {$_.lastWriteTime -le (Get-Date).addDays(-$Old)} | Remove-Item -recurse -force

 

Backup z użyciem Windows Server Backup

Windows Server Backup (WSB) współpracuje z usługą Volume Shadow Copy (VSS), dzięki czemu można za jego pomocą wykonywać kopie zapasowe uruchomionych maszyn wirtualnych bez konieczności ich zatrzymywania. To spora zaleta, ponieważ minimalizuje przestoje przewidziane na czynności administracyjne środowiska.

 

Konfiguracja i uruchomienie WSB dla backupowanie Hyper-V

Aby skorzystać WSB do onlinowego backup Hyper-V, należy:

  • Upewnić się czy na maszynach wirtualnych nie są wykorzystywane dyski dynamiczne, jeśli są to backup tych maszyn będzie przeprowadzany offline - maszyny zostaną na czas backupu zatrzymane (saved). W razie potrzeby należy przekonwertować dyski na Fixed.
  • Upewnić się czy maszyny wirtualne mają zainstalowane Integration Services (jeśli ich nie ma maszyna będzie backupowana jako saved).
  • Upewnić się czy maszny wirtualne wspierają VSS i czy ich dyski są sformatowane w NTFS (Windows 2000 nie wspiera VSS - te maszyny będą backupowane jako saved).
  • Zainstalować na serwerze z Hyper-V Windows Server Backup features: Windows Server Backup oraz Command-line Tools.
  • Do rejestru dodać następujący wpis:    
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WindowsServerBackup\Application Support\{66841CD4-6DED-4F4B-8F17-FD23F8DDC3DE}]
"Application Identifier"="Hyper-V"
  • Można przystąpić do planowania tego jak będą wykonywane backupy. Przechodzimy do panelu Start -> Administratine tools (Narzędzia administracyjne) -> Windows Server Backup (Kopia zapasowa systemu Windows Server). Konsolę MMC możemy podłaczyć do innego hosta (przydatne przy planowaniu backupów na wersji Core lub Hyper-V Server).
  • Z kreatora backupu wybieramy typ: Full Backup lub Custom Backup. Minimalną opcją (Custom) backupu niezbędną do odzyskania działającego servera z Hyper-V na innym sprzęcie wraz działającymi maszynami jest wybranie - Bare metal recovery (wykonuje on backup: System State, System Reserverd oraz partycji systemowej) oraz wskazanie woluminu, na którym znajdują się wirtualne dyski twarde oraz pliki konfiguracyjne maszyn (jeśli znajdują się poza partycją systemową).

Hyper-V backup by WSB Select Items

Rys. 1. - Windows Server Backup - wybór elementów do przeprowadzenie kopii zapasowej.

  • Planujemy czas wykonywania backupu wybierając Backup Once (Jednorazowa kopia zapasowa) lub Backup Schedule (Harmonogram tworzenia kopii zapasowej).
  • Wybieramy miejsce przechowywania backupu (sugeruję użycie dedykowanego dysku do składowania backupu).
  • Po zatwierdzeniu wszystkich opcji zamykamy kreator, wybierając Close. 

 

Odtwarzanie Hyper-V z kopii wykonanej przez WSB

Aby przywrócić stan Hyper-V do stanu z sprzed awarii, należy:

  • Uruchomić kreator odzyskiwania w Windows Server Backup.
  • Z panelu Actions (Akcje) wybrać Recover (Przywróć).
  • Wybrać serwer, z którego mają być odtwarzane dane.
  • Wybrać datę i godzinę backupu, który ma być przywrócony.
  • Wybrać Applications (Przywracanie aplikacji).

Hyper-V backup by WSB Select Recovery Type

Rys. 2. - Windows Server Backup, odtwarzanie - wybór typu odtwarzania.

  • Wybrać Hyper-V.

Hyper-V backup by WSB Select Application

Rys. 3. - Windows Server Backup, odtwarzanie wybór aplikacji do odtwarzania.

  • Wybrać Recover to original location.
  • Zatwierdzić wybór wciśnięciem Recover.
  • Wyświetlony zostaje wskaźnik postępu odzyskiwania, po odzyskaniu backupu mamy poprawnie działający Hyper-V wraz z wirtualnymi maszynami.

Uwaga: W przypadku kiedy odzyskiwana maszyna wirtualna ma dwa i więcej snapshotów nie zostanie przywrócona za pomocą powyższej metody. Aby ją przywrócić należy po przeprowadzeniu powyższych operacji:

  • Podłaczyć się do hosta Hyper-V za pomocą Hyper-V managera.
  • Skasować maszynę wirtualną której nie udało się odzyskać.
  • Przywrócić zawartość folderów ze snapshotami, domyślnie znajdują się one: C:\ProgramData\Microsoft\Windows\Hyper-V\Snapshots.
  • Po przywróceniu zawartości snapshotów należy jeszcze raz wykonać procedurę odtwarzania Hyper-V (poprzedni opis).

W razie potrzeby można odzyskać np. sam plik VHD za pomoca opcji odzyskiwania pojedyńczych plików i podmienić go, jeśli konfiguracja systemu wirtualnego nie uległa zmianie.

W przypadku uszkodzenia całego systemu lub wszystkich danych możemy odzyskać z backupu system operacyjny na hoście Hyper-V łacznie ze wszystkimi uruchamianymi tam maszynami wirtuanymi. Aby to osiągnąć, należy uruchomić Windows Recovery - np. z płyty instalacyjnej Windows Server 2008 R2 - i z niego wykonać dalszą część odtwarzania.

 

Backup za pomocą Data Protection Manager

Pisząc o backupie Hyper-V wypada choć wspomnieć o Microsoft System Center Data Protection Manager (DPM). W tym artykule będzie to tylko symboliczne, bo bardziej chciałem się skupić tym co w kwestii backupuów Hyper-V ma do zaoferowania sam system operacyjny. Poprzednie rozwiązania które przedstawiłem są dedykowane do małych organizacji ze względnie niewielką ilością wirtualnej inftrastruktury. Przy większej ilości systemów nie sposób obejść się bez rozwiązania do globalnego zarządzania backupem systemów i aplikacji i tu świetnie sprawdza się DPM.

DPM wykorzystuje również VVS do przeprowadzania onlinowych backupów Hyper-V. Można za jego pomocą zarządzać tworzeniem kopii zapasowych i odtwarzaniem wybranych maszyn. Wspiera ciągłą ochronę danych za pomocą migawek. Rozpoznaje klaster Hyper-V  i pozwala na podążanie kopii zapasowej za wirtualną maszyną na aktualny węzeł klastra. Zapewnia wsparcie dla nośników taśmowych w konfiguracjach: disk to disk, disk to tape oraz disk to disk to tape. 
 
Poza wsparciem dla Hyper-V, Data Protection Manager potrafi zarządzac kopiami zapasowymi Virtual Server, SQL Server, Exchange oraz SharePointa.

 

Podsumowanie

Backup i odzyskiwanie Hyper-V i maszyn wirtualnych nie jest tak trudne, jak może się wydawać na początku. Warto jednak przemyśleć metody przeprowadzania kopii zapasowych i procedury ich odtwarzania. Oczywiście lepiej zrobić to przed awarią:).

Autor:

 

Karol Stilger (AaaA)

Karol Stilger (AaaA)
Microsoft MVP Setup & Deployment, MCTS, MCSA

Inżynier IT pracujący w międzynarodowej korporacji. Członek zespołu redakcyjnego WSS.pl. Prowadzi techniczny blog.

Komentarze 36

Użytkownik usunięty VIP
Użytkownik usunięty
40 pkt.
Poczatkujacy
Właściciel projektów
Uczestnik projektów
Uczestnik projektów
Właściciel projektów
Uczestnik projektów
Uczestnik projektów
Uczestnik projektów
16-09-2009
oceń pozytywnie 0
Dobra robota ! Przyda się, dzięki.
Grzegorz  Łyszkowski
Grzegorz Łyszkowski
431 pkt.
Junior
17-09-2009
oceń pozytywnie 0
Czegoś takiego potrzebowałem - dzięki! :)

___________________
Pozdrawiam
Grzegorz Łyszkowski

| LinkedIn | MCITP: EST, MCTS: Vista, Windows Server 2008 AD, Windows 7 :) |
Tadzisław
Tadzisław
204 pkt.
Junior
17-09-2009
oceń pozytywnie 0
Art jest ok. Można uzupełnić cześć o DPM ie.

--
MCP since 2005
MCSA, MCSA+M, MCSE
Karol Stilger Redaktor
Karol Stilger
3526 pkt.
Guru
MVP
17-09-2009
oceń pozytywnie 0
O DPM to wypada napisac odzielnie, jeśli chcieć poruszyć kwestie licencjonowania i odzyskiwania różnych aplikacji to będzie to prawdziwy elaborat:)

Karol Stilger Microsoft MVP
itblogs.pl grupa.szczecin.pl
Maciej Pawlak VIP
Maciej Pawlak
394 pkt.
Junior
17-09-2009
oceń pozytywnie 0
Świetny art Karolu, a skrypty pewnie w nie jednej korporacji będą wdrożone. :)

------------------------------------------
MCTS: 70-640, 71-680, 70-642, 70-620.
http://www.7rc.org/
Tadzisław
Tadzisław
204 pkt.
Junior
17-09-2009
oceń pozytywnie 0
Traktuje to jak zobowiązanie i czekam.

--
MCP since 2005
MCSA, MCSA+M, MCSE
Karol Stilger Redaktor
Karol Stilger
3526 pkt.
Guru
MVP
17-09-2009
oceń pozytywnie 0
a ja myślałem, że ochotnika znalazłem:) może jednak?

Karol Stilger Microsoft MVP
itblogs.pl grupa.szczecin.pl
krzysztofbr
krzysztofbr
984 pkt.
Senior
17-09-2009
oceń pozytywnie 0
naprawdę super! dzięki za świetny artykuł.
Tym bardziej, ze jedyne co mnie trzyma we wdrożeniu wątpliwości co do backupu i odtworzenia maszyn.
Na razie stoi sobie nowy serwer i są trzy maszyny do zabawy.
Być może po następnym artykule to wszystko przestanie być zabawkami:)
Karol Stilger Redaktor
Karol Stilger
3526 pkt.
Guru
MVP
17-09-2009
oceń pozytywnie 0
w takim razie PowerShell już niedługo:)

Karol Stilger Microsoft MVP
itblogs.pl grupa.szczecin.pl
Tadzisław
Tadzisław
204 pkt.
Junior
17-09-2009
oceń pozytywnie 0
Może, może - muszę powiedzieć że DPM jest w kręgu mojego ścisłego zainteresowania od początku roku. Teraz podejmuje z nim walkę. Bo jeśli chodzi o backup to MS nie jest pierwszą korporacją która się z tym słowem kojarzy acz podejście (pomysł) całkiem ok. Temat na art dobry.

Hmm pomyśle nad tym ochotnikowaniem ;)

Może znajdzie się chwila żeby o tym porozmawiać w ATE@MTS, lub C@Night.

--
MCP since 2005
MCSA, MCSA+M, MCSE
Karol Stilger Redaktor
Karol Stilger
3526 pkt.
Guru
MVP
17-09-2009
oceń pozytywnie 0
Skorzystałem z możliwości zerknięcia do Twojego adresu z profilu, odezwę się mailem i dokładnie możemy się umówić. Spradz skrzynkę za parę minut.

Karol Stilger Microsoft MVP
itblogs.pl grupa.szczecin.pl
Ziemek Borowski
Ziemek Borowski
17-09-2009
oceń pozytywnie 0
mogę prosić o publikację skryptów poza listingami?

Pozdrawiam,

Ziemek Borowski,
ziembor.pl
Karol Stilger Redaktor
Karol Stilger
3526 pkt.
Guru
MVP
18-09-2009
oceń pozytywnie 0
jak klikniesz na wyboldowaną nazwę skryptu to możesz go pobrać.

Karol Stilger Microsoft MVP
itblogs.pl grupa.szczecin.pl
Grzegorz  Łyszkowski
Grzegorz Łyszkowski
431 pkt.
Junior
18-09-2009
oceń pozytywnie 0
A czy Hyper-V Server 2008 R2 zawiera komponenty WSB?
Czy trzeba go dograć i dorzucić odpowiednie wpisy w rejestrze?


___________________
Pozdrawiam
Grzegorz Łyszkowski

| LinkedIn | MCITP: EST, MCTS: Vista, Windows Server 2008 AD, Windows 7 :) |
Karol Stilger Redaktor
Karol Stilger
3526 pkt.
Guru
MVP
18-09-2009
oceń pozytywnie 0
jest jako ficzer: start /w ocsetup WindowsServerBackup

wpis w rejestrze tak samo jak w pełnej wersji trzeba dodać.

Karol Stilger Microsoft MVP
itblogs.pl grupa.szczecin.pl
piosk
piosk
34 pkt.
Poczatkujacy
21-09-2009
oceń pozytywnie 0
jeszcze mam pytanie
do tej pory myślałem o virtualnym serwerze plików na dynamicznym dysku - dysk 1TB - w miarę przyrostu danych zwiększałby mi się plik ,
jesli chciałbym backupować online to muszę skonwertować to na dysk fixed
i teraz pytanie: Czy taki backup będzie "ważył" 1TB?
Karol Stilger Redaktor
Karol Stilger
3526 pkt.
Guru
MVP
21-09-2009
oceń pozytywnie 0
Backup WSB zajmuje trochę więcej niż wielkość plików na VHD, więc dla Ciebie to raczej dobra wiadomość. Wielkość Twojego backupu będzie się stopniowo rozszerzał wraz z zapełnianiem VHD.

Jednak w przypadku użycia VHD jako magazyn danych dla fileservera warto pamiętać o tym, że wydajność VHD jest nieco niższa niż fizycznego dysku. Przy dużych ilościach danych proponuję stosowanie fizycznych partycji a nie VHD.

Karol Stilger Microsoft MVP
itblogs.pl grupa.szczecin.pl
Edytowano 1 raz. Ostatnio 2009-09-27 14:40:12 przez AaaA.
Grzegorz  Łyszkowski
Grzegorz Łyszkowski
431 pkt.
Junior
25-09-2009
oceń pozytywnie 0
Dzięki :)

___________________
Pozdrawiam
Grzegorz Łyszkowski

| LinkedIn | MCITP: EST, MCTS: Vista, Windows Server 2008 AD, Windows 7 :) |
Karol Stilger Redaktor
Karol Stilger
3526 pkt.
Guru
MVP
30-09-2009
oceń pozytywnie 0
ciesze się, że się przydało.

Karol Stilger Microsoft MVP
itblogs.pl grupa.szczecin.pl
Karol Stilger Redaktor
Karol Stilger
3526 pkt.
Guru
MVP
22-10-2009
oceń pozytywnie 0
To jest dokładnie to samo co napisałem u siebie:

"W razie potrzeby można odzyskać np. sam plik VHD za pomoca opcji odzyskiwania pojedyńczych plików i podmienić go, jeśli konfiguracja systemu wirtualnego nie uległa zmianie."

Czyli w momencie jak nie zmieniasz konfiguracji komputera, a chcesz przywrócić obraz wirtualnego dysku z backupu możesz zrobić to właśnie przywracając sam VHD.

Karol Stilger Microsoft MVP
itblogs.pl grupa.szczecin.pl
babilon82
babilon82
22 pkt.
Nowicjusz
23-11-2009
oceń pozytywnie 0
Świetny artykuł i jeszcze lepsze skrypty, jestem właśnie na etapie wdrażania ich w swojej firmie. Mam tylko jeden mały problem skrypt wykonujący backup obu moich maszyn ma się uruchomić w późnych godzinach nocnych, mój problem to wyłączenie maszyn, a później ich podniesienie. Nie mam bladego pojęcia o power shellu, a co za tym idzie nie wiem jak zmodyfikować Pański skrypt żeby to robił z automatu, czyli wyłączył maszyny o określonej godzinie sprawdził czy maszyny są wyłączone, wykonał backup i uruchomił maszyny.
Będę wdzięczny za pomoc.


Karol Stilger Redaktor
Karol Stilger
3526 pkt.
Guru
MVP
24-11-2009
oceń pozytywnie 0
Skrypt do exportu saveuje stan maszyny, robi export, a następnie włącza maszynę. Jeśli chcesz wymusić inny stan zamiast save zainteresuj się zmianą wartości przy klasie RequestStateChange.

Karol Stilger Microsoft MVP
itblogs.pl grupa.szczecin.pl
infos
infos
213 pkt.
Junior
23-03-2010
oceń pozytywnie 0

Witam,

 

Nie za bardzo rozumiem.

1. Czy jeśli mam dyski dynamiczne, to WSB sam zatrzyma maszyny, czy powinienem to robić ręcznie przed backupem ? A jeśli nie zatrzymam to jaki będzie efekt ? - nie zrobi się, zrobi się ale plik VHD będzie uszkodzony, zrobi się ale .. różnie potem może być ?

2. Jeśli dysk VHD jest statyczny, to chyba zawsze na kopii zajmuje tyle miejsca, na ile jest zadeklarowany, nieważne w jakim stopniu jest wypełniony.

 

Pozdrawiam

WR

tomson1
tomson1
599 pkt.
Senior
08-04-2010
oceń pozytywnie 0

Super skrypcik, śmiga jak szalony ;]

 

Niestety w środowisku testowym nie mam możliwości przetestowania poniższego układu więc może ktoś zna odpowiedź na poniższe pytanie:

Do maszyny z hyper-v serwerem podłączona jest macierz FC.

- jedna partycja macierzy jest podlinkowana do hypervisora i znajdują się  na niej maszyny virtualne (i tam też na początek będzie lądował backup maszyn)

- druga partycja macierzy podlinkowana jest do maszyny virtualnej służącej jako serwer plików

 

I teraz pytanie co się stanie jak skrypt zacznie backupować ten serwer plików? Czy skopiuje tylko wszystkie podlinkowane vhd + konfigurację maszyny (z informacją iż dysk z macierzy jest podlinkowany) czy także będzie próbował ugryźć jakoś tą podlinkowaną partycję z macierzy.

 

pozdrawiam,

TomsoN

Karol Stilger Redaktor
Karol Stilger
3526 pkt.
Guru
MVP
08-04-2010
oceń pozytywnie 0

Skrypt na maszynie z dyskiem pass-through nie wykona się poprawnie, bo wykorzystywany jest export. Export/Import dla maszyny z pass-through dyskami nie zadziała... Jeśli chcesz backupować to środowisko to zerknij do tego wątku.

Karol Stilger Microsoft MVP
itblogs.pl grupa.szczecin.pl

Edytowano 1 raz. Ostatnio 2010-04-09 21:41:56 przez AaaA.
tomson1
tomson1
599 pkt.
Senior
08-04-2010
oceń pozytywnie 0

Dzięki za odpowiedź. Niestety jest taka jak się obawiałem :)

W tym artykule proponują WS backup na hoscie i na virtualnej maszynie ale tak naprawde wystarczy regularna kopia vhd z systemem oraz zapis konfiguracji maszyny (np. screenshot konfiguracji) aby potem w szybki sposób ją odtworzyć od nowa. Czyli stworzyć nową maszynę bez dysku, skonfigurować zgodnie z zapisaną konfiguracją, podłączyć dysk z macierzy a na końcu podpiąć vhd z system i odpalić.

Jak źle rozumuję to proszę o porawienie.

 

 

piterEL
piterEL
57 pkt.
Poczatkujacy
28-05-2011
oceń pozytywnie 0

Witam

Mam problem. Wdrożyłem skrypty. Z jedna Virtualka w2k8 działa ok natomiast z Virtualka W2k3 std nie za bardzo. Tzn wyłącza maszyne robi eksport  ale później nie chce jej przywrócic. Maszyna po eksporcie nie działa. Musze recznie ją uruchamiać. CO jest grane? W2K3 ma zaisntalowane USLUGI INTEGRACJI... Pomoże ktoś ?

Daniel Stefaniak Microsoft
Daniel Stefaniak
2337 pkt.
Guru
30-05-2011
oceń pozytywnie 0

a łatka KB do VSS na 2003 jest zainstalowana?

http://support.microsoft.com/kb/833167/en-us

I was a PC, now I'm a server ;)
http://w-files.pl

piterEL
piterEL
57 pkt.
Poczatkujacy
04-06-2011
oceń pozytywnie 0

Łatka okazuje się ze nie jest potrzebna gdyż dostałem komunikat ze wersja SERVICE PACKa jest nowasza i łatka jest juz z nim zainstalowana...  Dalej nie wiem w czym tkwi problem.... Prosze o pomoc bo nadal stoje w miejscu :(

kkpc
kkpc
5 pkt.
Nowicjusz
18-09-2012
oceń pozytywnie 0
Mam pytanko ? Jak potrzebuje wykonywać backup'u tylko virtualek czy wymaga to backup'u systemu dodam że raz dokonałem kopii systemu i nie potrzebuje tej czynności powtarzać Czy można coś takiego zrobić by tworzyła się jedna kopia po prostu nadpisywanie ? używam WSB
Michał Pyzara
Michał Pyzara
7 pkt.
Nowicjusz
21-01-2013
oceń pozytywnie 0
Hmm... Wypróbowałem ten skrypt jak i inne działające na podstawie eksportu maszyny wirtualnej i niestety mam błąd/ Nawet jak próbuję wykonać eksport maszyny wirtualnej z palca dostaje taki komunikat: Nie można wyeksportować maszyny wirtualnej „SBS2008” (811D5C7F-190A-4A97-9FF0-2CD07674C487), ponieważ wystąpił błąd „Nie można odnaleźć określonego pliku.” (0x80070002). Sugestie?
depako
depako
0 pkt.
Nowicjusz
31-07-2014
oceń pozytywnie 0
Witam, Skryptów nie ćwiczyłem wcześniej. Próbuję uruchomić je na Serwerze 2012 - niestety z błędami. Czy istnieje przetestowane rozwiązanie na Server 2012 ? Z góry dziękuję !
pablik
pablik
5 pkt.
Nowicjusz
15-05-2015
oceń pozytywnie 0
WIN SERV 2012R2 coś pewnie robię nie tak, wyrzuca mi komunikat: get-wmiobject:Invalid class Msvm_VirtualSystemManagementService HVbackupAll.ps1:10 char:15 itd.... Edytowano 1 raz. Ostatnio 2015-05-15 08:41:53 przez pablik.
pilatus
pilatus
100 pkt.
Junior
17-05-2015
oceń pozytywnie 0
Dołączam się do tematu. U mnie na 2012R2 ten sam błąd tj: get-wmiobject : Invalid class "Msvm_VirtualSystemManagementService", oraz get-wmiobject : Invalid class "Msvm_ComputerSystem" Na 2008R2 skrypty śmigają bez problemu.
Robert Mandziarz
Robert Mandziarz
1479 pkt.
Senior
22-05-2015
oceń pozytywnie 0
Akurat nie mam Hyper-V pod ręką żeby sprawdzić co dokładnie należy zmienić, ale w wersji 2012 R2 były duże zmiany na poziomie obsługi WMI, więc odpowiednie klasy nie działają. Należało by przepisać skrypt na nową wersję i zrobić odpowiednie poprawki.
chdoki
chdoki
0 pkt.
Nowicjusz
23-12-2015
oceń pozytywnie 0
Ma ktoś może już przerobiony ten skryp pod 2012R2??
pkt.

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.