Hyper-V VM Backup mit Veeam Backup Free Edition

Es sollen 5 Hyper-V VMs von 2 Servern im laufenden Betrieb gesichert werden. Dazu verwendet wird das Programm „Veeam Backup“ in der Free Edition und ein Powershell Script das mittels Task Scheduler (Aufgabenplanung) aufgerufen wird.

Veeam Backup

Mit Veeam Backup können VMWare vSphere und Microsoft Hyper-V Maschinen im laufenden Betrieb gesichert werden. Das Beste daran ist, dass eine Free Edition, mit eingeschränkten Funktionsumfang, gibt.

Eine Einschränkung ist, dass man keine Aufgaben planen kann. Dafür springt der Task Manager und das Powershell Script ein.

Alle Informationen zu Veeam Backup Free Edition gibt es hier!

Veeam Backup vorbereiten

Damit das Programm auf die Virtuellen Maschinen zugreifen kann, müssen die Server angelegt werden. Dazu unter „Virtual Machines“ (1) mittels „Add Server“(2) den Hyper-V Server hinzufügen.

Wenn alles geklappt hat sollten die Server unter „Microsoft Hyper-V“ (3) stehen und die Virtuellen Maschinen anzeigen (4), wenn man einen auswählt.

veeambackup

Powershell-Skript

Das benötigte Powershell-Skript ist nicht von mir, sondern habe ich hier runtergeladen. Einzige Adaptierung die ich gemacht habe, ist die Möglichkeit, die Bestätigungsmail über einen externen SMTP-Server an mehrere Email-Adressen zu schicken.

Dazu wurde der Block unter „Notification Settings“ geändert, um mehr Informationen für den SMTP-Server eingeben zu können:

##################################################################
#                   Notification Settings
##################################################################

# Enable notification (Optional)
$EnableNotification = $True

# Email SMTP server
$SMTPServer = "smtp.office365.com"
$SMTPPort = "587"
$SMTPUsername = "????@email.xx"
$SMTPPassword = "????"

# Email FROM
$EmailFrom = "???@email.xx" 

# Email TO
$EmailTo = @("???@email.xx", "???@email2.xx", "???@email3.xx")

# Email subject
$EmailSubject = "VM Backup ????"

und ganz zum Schluss, um an mehrere Email-Adressen schicken zu können:

If ($EnableNotification)
{
	$Message = New-Object System.Net.Mail.MailMessage 
	$Message.from = $EmailFrom
	foreach( $EmailTo in $EmailToArray)
	{
		$Message.to.add($EmailTo)
	}	
	$Message.Subject = $EmailSubject
	$Message.IsBodyHTML = $True
	$message.Body = $MesssagyBody | ConvertTo-Html -head $style | Out-String
	$SMTP = New-Object Net.Mail.SmtpClient($SMTPServer);
	$SMTP.EnableSSL = $true;
	$SMTP.Credentials = New-Object System.Net.NetworkCredential($SMTPUsername, $SMTPPassword);
	$SMTP.Send($Message)
}

Als Beispiel sichern von der Virtuellen Maschine „UbuntuServer_Server“, mussten noch folgende Parameter geändert werden:

##################################################################
#                   User Defined Variables
##################################################################

# Names of VMs to backup separated by comma (Mandatory). For instance, $VMNames = “VM1”,”VM2”
$VMNames = "UbuntuServer_Server";

# Name of vCenter or standalone host VMs to backup reside on (Mandatory)
$HostName = "EVEREST";

# Directory that VM backups should go to (Mandatory; for instance, C:\Backup)
$Directory = "\\DS216\Backup\Everest";

# Desired compression level (Optional; Possible values: 0 - None, 4 - Dedupe-friendly, 5 - Optimal, 6 - High, 9 - Extreme) 
$CompressionLevel = "5";

# Quiesce VM when taking snapshot (Optional; VMware Tools are required; Possible values: $True/$False)
$EnableQuiescence = $True;

# Protect resulting backup with encryption key (Optional; $True/$False)
$EnableEncryption = $False;

# Encryption Key (Optional; path to a secure string)
$EncryptionKey = "";

# Retention settings (Optional; By default, VeeamZIP files are not removed and kept in the specified location for an indefinite period of time. 
# Possible values: Never , Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)
$Retention = "In1Week";

 

Task-Scheduler

Um das Powershell-Skript 2 mal in der Woche zu starten, wird den Task-Scheduler (Aufgabenplanung) verwendet. Dazu einen neuen Task anlegen, und unter Triggers einstellen, wann das Skript gestartet werden soll.

Um das Skript zu starten, muss folgendes eingegeben werden:

  • Action: Start a program
  • Program/Scripts: powershell.exe
  • Add Arguments (optional): -NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File „C:\Scripts\Backup\VeeamZIP Backup FUJI.ps1“
  • Start in (optional): C:\Scripts\Backup

Information: Das Skript liegt unter „C:\Scripts\Backup“ und heißt „VeeamZIP Backup FUJI.ps1“.

veeambackup_taskscheduler

Kontrolle

Task starten, und einige Zeit warten, dann sollte unter Veeam Backup – History der Job aufscheinen! Danach, je nach Größe der Virtuellen Maschine, braucht es etwas Geduld.

veeambackup_backupisrunning

Links

 

 

 

Einen Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.


*


2 + 8 =