noobone
Goto Top

Veeam Backup Free PowerShell langsam

Hallo Zusammen,

zur Sicherung unserer virtuellen Maschinen (Windows / Linux) setzen wir
Veeam Backup (Freeversion) in der Version 9.0.0.902 auf einem Windows Server 2012 R2 (Hardwarekiste) ein. Dazu haben wir die Backups
mithilfe von Powershell-Scripten automatisiert. An und für sich läuft das alles auch ganz gut ABER:

Wird das Backup über das Powershell-Script aufgerufen läuft das Backup mit einer Geschwindigkeit (Processing rate)
von ca. 25 MB/s. Bei Bottleneck steht "Proxy".
Wird das Backup nicht automatisiert ausgeführt sondern über das Frontend manuell gestartet
läuft es mit ca. 60 MB/s und bei Bottleneck steht "Source"

Woran liegt das? Kann man das auch im Powershell Script irgendwie ändern, dass es auch hier
mit einer höheren Rate läuft?
Eine Kaufversion von Veeam ist nicht möglich (zu Teuer...) und wir sichern täglich Maschinen von knapp
500GB.

Bei weiteren Infos bitte fragen.
Vielen Dank!

Content-ID: 302452

Url: https://administrator.de/contentid/302452

Ausgedruckt am: 25.11.2024 um 12:11 Uhr

Dani
Dani 21.04.2016 um 09:58:35 Uhr
Goto Top
Moin,
Woran liegt das? Kann man das auch im Powershell Script irgendwie ändern, dass es auch hier
Möglich...dazu müssten wir dein Skript mal sehen.

Veeam Backup (Freeversion) in der Version 9.0.0.902 auf einem Windows Server 2012 R2 (Hardwarekiste) ein.
Handelt es sich dabei um die neuste Version? Hab die Build Number gerade nicht parat. Falls nicht, erstmal Update einspielen.


Gruß,
Dani
NoobOne
NoobOne 21.04.2016 um 10:37:09 Uhr
Goto Top
Servus,

danke für deine Antwort.

Script:
# Author: Vladimir Eremin
# Created Date: 3/24/2015
# http://forums.veeam.com/member31097.html
# 

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

# Names of VMs to backup separated by semicolon (Mandatory)
$VMNames = "Firewall01"  

# Name of vCenter or standalone host VMs to backup reside on (Mandatory)
$HostName = "an12-vcenter1", "an13-vcenter2"  

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

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

# 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 = "c:\scripte\backupkey\key.txt"  

# 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 = "Never"  

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

# Enable notification (Optional)
$EnableNotification = $True

# Email SMTP server
$SMTPServer = "mailrelay.domain.local"  

# Email FROM
$EmailFrom = "VeeamBackup@domain.com"   

# Email TO
$EmailTo = "backup@domain.local"  

# Email subject
$EmailSubject = "Backup Firewall01 Montag"  

##################################################################
#                   Email formatting 
##################################################################

$style = "<style>BODY{font-family: Arial; font-size: 10pt;}"  
$style = $style + "TABLE{border: 1px solid black; border-collapse: collapse;}"  
$style = $style + "TH{border: 1px solid black; background: #dddddd; padding: 5px; }"  
$style = $style + "TD{border: 1px solid black; padding: 5px; }"  
$style = $style + "</style>"  

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

#################### DO NOT MODIFY PAST THIS LINE ################
Asnp VeeamPSSnapin

$Server = Get-VBRServer -name $HostName
$MesssagyBody = @()

foreach ($VMName in $VMNames)
{
  $VM = Find-VBRViEntity -Name $VMName -Server $Server
  
  If ($EnableEncryption)
  {
    $EncryptionKey = Add-VBREncryptionKey -Password (cat $EncryptionKey | ConvertTo-SecureString)
    $ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention -EncryptionKey $EncryptionKey
  }
  
  Else 
  {
    $ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention
  }
  
  If ($EnableNotification) 
  {
    $TaskSessions = $ZIPSession.GetTaskSessions().logger.getlog().updatedrecords
    $FailedSessions =  $TaskSessions | where {$_.status -eq "EWarning" -or $_.Status -eq "EFailed"}  
  
  if ($FailedSessions -ne $Null)
  {
    $MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n="Name";e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n="Start Time";e={$_.CreationTime}},@{n="End Time";e={$_.EndTime}},Result,@{n="Details";e={$FailedSessions.Title}})  
  }
   
  Else
  {
    $MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n="Name";e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n="Start Time";e={$_.CreationTime}},@{n="End Time";e={$_.EndTime}},Result,@{n="Details";e={($TaskSessions | sort creationtime -Descending | select -first 1).Title}})  
  }
  
  }   
}
If ($EnableNotification)
{
$Message = New-Object System.Net.Mail.MailMessage $EmailFrom, $EmailTo
$Message.Subject = $EmailSubject
$Message.IsBodyHTML = $True
$message.Body = $MesssagyBody | ConvertTo-Html -head $style | Out-String
$SMTP = New-Object Net.Mail.SmtpClient($SMTPServer)
$SMTP.Send($Message)
}

Ja, ist die neueste Version inkl. Buildnumber
119944
119944 21.04.2016 um 10:49:46 Uhr
Goto Top
Ja, ist die neueste Version inkl. Buildnumber
Warum hab ich dann Version 9.0.0.1491? ;)

Spiel das Update 1 ein und teste dann nochmal:
https://www.veeam.com/de/updates.html

VG
Val
Dani
Dani 21.04.2016 um 10:58:30 Uhr
Goto Top
Moin,
danach könntest du die Variable $CompressionLevel temporär auf 5 bzw. 0 setzen und nochmals ein Backup erstellen. Wird dadurch die Übertragungsrate besser?


Gruß,
Dani
NoobOne
NoobOne 21.04.2016 um 11:46:27 Uhr
Goto Top
Servus,

bin grad noch am installieren des Updates. Danach werde ich es gleich testen.

Gibts möglicherweise auch eine Variable für "Bottleneck" ?
Weil das sagt ja eigentlich auch wie Veeam auf die VM zugreift und welche Übertragungsgeschwindigkeiten
dann zusammen kommen
Dani
Dani 21.04.2016 um 11:57:16 Uhr
Goto Top
Moin,
Gibts möglicherweise auch eine Variable für "Bottleneck" ?
Wie kommst du darauf? Damit teilt dir Veeam "nur" mit, wo der Flaschenhals ist. In deinem Fall kann der Proxy nicht die Datenmenge verarbeiten, wie Veeam das gerne würde. Läuft der Proxy auf dem Hypervisor oder als virtuelle Maschine?


Gruß,
Dani

P.S. Hast du zwei Accounts?
NoobOne
NoobOne 21.04.2016 um 12:10:29 Uhr
Goto Top
die Proxy liegt auf dem Backupserver (Hardware) Windows Server 2012 R2.
Zu der Funktion komm ich aber auch nur hin wenn ich den Ansicht auf "Full" stelle, sodass mir
die Kauf-Funktionen eingeblendet werden.
Somit denk ich mal, dass ich hier in der Free-Version nicht viel ändern kann, oder doch?
Wie und wo sollte ich den Proxy am besten installieren?

PS: Das war vom Account eines Kollegen. Habe da grad nicht ganz aufgepasst gehabt face-smile
Dani
Dani 21.04.2016 aktualisiert um 12:55:59 Uhr
Goto Top
Wie und wo sollte ich den Proxy am besten installieren?
Das ist schwer zusagen, da wir deine Umgebung nicht kennen.

die Proxy liegt auf dem Backupserver (Hardware) Windows Server 2012 R2.
Backup anwerfen und solange auf dem Server in den Ressource-Monitor anschauen. Dort solltest du dann sehen, dass der Flaschenhals z.B. die Netzwerkverbindungzu 100% ausgelastet ist.


Gruß,
Dani

P.S. Lass ich mal so gelten... face-wink
NoobOne
NoobOne 21.04.2016 um 13:09:28 Uhr
Goto Top
Wir haben 6 ESX-Server am laufen. Die werden von 2 virtuellen vCenter-Servern, jeweils 3 ESX-Hosts, verwaltet.
Im Ganzen sind es ca. 30 virtuelle Maschinen, davon die unterschiedlichsten jeden Tag bzw. einmal pro Woche
gesichert werden.

Backup-Ziel ist ein QNap NAS, das mit iSCSI eingebunden ist. Sowohl am Server als auch beim NAS
laufen beide Gbit-Adapater in LinkAggregation. Jedoch tritt bei keinem der beiden Geräte
die Netzwerklast höher als 23 % auf. Aktuell läuft eine Sicherung bei der ich es nachvollziehen kann.
Die Sicherung hab ich per Powershell gestartet und läuft über "Proxy" würde ich jetzt die Sicherung
über das Front-End vom Veeam starten, würde es über "Source" laufen und somit wäre die Netzwerklast
automatisch höher, da ja mehr Durchsatz erfolgt.
Vielleicht wäre eher die Frage danach warum beim Shell-Script "Proxy" und beim Frontend "Source" verwendet
wird und wie ich "Source" ins Script einbauen könnte.

Auf jeden Fall muss ich hier was machen, da das Backup sonst immer eine Ewigkeit läuft.

PS: Sehr schön face-wink
NoobOne
NoobOne 22.04.2016 um 08:41:24 Uhr
Goto Top
das was ich gefunden habe zu dem Ganzen wäre folgendes:

Veeam Powershell Set-VBRJobProxy

Leider bin ich im scripten nicht besonders gut. Vielleicht kann mir
wer helfen bezüglich des Einbaus dieses Aufrufes ins Script.