Veeam Backup Free Edition (VeeamZIP)
ใน Function Backup สำหรับ Veeam Backup Free Edition จะมีให้ใช้งานได้ 2 ส่วนหลักๆ คือ File Copy และ VeeamZIP ที่แตกต่างกันคือ VeeamZIP จะไม่มี Schedule Task UI มาให้ แต่เราสามารถตั้ง Schedule ได้โดยกำหนดที่ Windows Schedule Task ของ Windows
โดยลักษณะการทำงาน VeeamZIP จะทำงานได้เร็วกว่า และใช้ขนาดพื้นที่น้อยกว่า เนื่องจากมีการทำ Compress File ก่อนการ Transfer มาเก็บไว้ที่ Repository ที่เรากำหนดไว้
นอกจากนี้ยังพบว่า VeeamZIP สามารถทำงานได้ดีแและเสถียรกว่า โดยลดการ Error เมื่อ File Interrup ระหว่าง Transfer ข้อมูล ซึ่งจะพบบ่อยหากใช้ Function File Copy ทำให้ File ที่ Transfer มา Error หรือไม่สมบูรณ์ (ส่วนมากพบกับ VM ที่ Online อยู่)
การตั้งค่า
1. สำหรับ VMware ให้ Download PowerShell Script เพื่อกำหนด Job Backup ที่ https://www.veeam.com/blog/wp-content/uploads/2015/05/VeeamZIP-VI-updated.zip
2. กำหนดค่า PowerShell Script ที่ Download มาดังนี้
##################################################################
# User Defined Variables
##################################################################
# กำหนดชื่อ VM ที่ต้องการ Backup แยก VM ด้วย "," เช่น "VM1","VM2","VM3"
$VMNames = ""
# กำหนด Hostname หรือ IP ของ vCenter Server
$HostName = ""
# กำหนด Directory ที่ต้องการเก็บ Backup เช่น "C:\Backup"
$Directory = ""
#Optionally, you can change compression level and desired retention, disable VMware quiescence, enable encryption or even notification settings:
# 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 or Hyper-V Integration Components are required for this in the guest OS; 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 = "Never"
#If you like to get an email report once the backup is completed, you should additionally fill out the following notification settings.
##################################################################
# Notification Settings
##################################################################
# Enable notification (Optional)
$EnableNotification = $True
# กำหนด SMTP Server สำหรับส่งอีเมล์ Alert
$SMTPServer = ""
# กำหนด Email Address ผู้ส่ง
$EmailFrom = ""
# กำหนด Email Address ผู้รับ
$EmailTo = ""
# กำหนด Subject Email
$EmailSubject = ""
# Email formatting
$style = “”
##################################################################
# End User Defined Variables
##################################################################
#################### DO NOT MODIFY PAST THIS LINE ################
Asnp VeeamPSSnapin
$Server = Get-VBRServer -name $HostName
$mbody = @()
foreach ($VMName in $VMNames)
{
$VM = Find-VBRViEntity -Name $VMName -Server $Server
$ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention
If ($EnableNotification)
{
$TaskSessions = $ZIPSession.GetTaskSessions()
$FailedSessions = $TaskSessions | where {$_.status -eq “EWarning” -or $_.Status -eq “EFailed”}
if ($FailedSessions -ne $Null)
{
$mbody = $mbody + ($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
{
$mbody = $mbody + ($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 = $mbody | ConvertTo-Html -head $style | Out-String
$SMTP = New-Object Net.Mail.SmtpClient($SMTPServer)
$SMTP.Send($Message)
}
3. สร้าง Schedule Backup Task โดยไปที่ Task Schedule บน Windows แล้วคลิ๊กขวา Create a Basic Task
4. ตั้งชื่อ Task Name แล้ว Next
5. ตั้ง Trigger กำหนดเป็นรายวัน รายสัปดาห์ หรือรายเดือนเป็นต้น แล้ว Next
6. กำหนดเวลาที่ต้องการ Start แล้ว Next
7. กำหนด Action เลือก Start a program เพื่อรัน PowerShell Script ที่เราสร้างไว้ แล้ว Next
8. ระบุ Path ที่เก็บ PowerShell Script .ps1 ตัวอย่าง “Powershell -file C:\VeeamZip.ps1” แล้วคลิ๊ก Next
9. กด Finish
เราสามารถ Run Task ได้ทันที โดยคลิ๊กขวาที่ Task ที่สร้างแล้วคลิ๊ก Run
กำหนดการตั้งค่าอื่นๆ เพิ่มเติม โดยคลิ๊กขวาที่ Task แล้วเลือก Properties
*** Process ที่รันจะแสดงที่ Task บนหน้า Dashboard ของ Veeam Client
Note: ก่อนกำหนดการตั้งค่าให้ Authentication และ Add vCenter Server ที่ต้องการ Backup VM จาก Veeam Panel ก่อน
อ้างอิง:
https://www.veeam.com/blog/veeam-backup-free-edition-now-with-powershell.html