pondělí 25. května 2015

Veeam Backup Free Edition nyní s PowerShell!

Veeam Backup Free Edition nyní s PowerShell!


Veeam Backup Free Edition je velmi oblíbený bezplatný nástroj od Veeam, hlavně díky funkci VeeamZIP - možnosti provádět úplné interaktivní zálohy z neomezeného počtu virtuálních strojů. Ovšem VeeamZIP měl vždy jedno malé, ale otravné omezení – neschopnost plánování pravidelných záloh. Vzhledem k tomu, že VeeamZIP může být spuštěn pouze interaktivně, nejsou v uživatelském rozhraní žádné možnosti plánování pravidelných zálohovacích úloh. Je tedy potěšující, že Veeam v Update 2 tuto nepříjemnost vyřešil. Veeam vyslyšel prosby a stížnosti svých zákazníků a vytvořil Start-VBRZip PowerShell cmdlet, který je dostupný ve Veeam Backup Free Edition.

Jak to funguje


Jak již bylo řečeno, hlavní funkcí Veeam Backup Free Edition je možnost provádět zálohy VeeamZIP vašich virtuálních strojů (a samozřejmě obnovení virtuálních strojů, hostovaných souborů a aplikačních položek z těchto záloh). VeeamZIP vždy vytváří plný soubor zálohy (vbk), který se chová jako nezávislý bod obnovení. Free Edition vám umožňuje uchovávat zálohovaný soubor v repositáři záloh, v lokálním souboru, nebo sdílet po síti. Když provedete zálohování s VeeamZIP, můžete začít proces zálohování pro vybrané virtuální stroje okamžitě. Tento typ zálohování vyžaduje minimální nastavení a je velmi jednoduché ho manuálně spustit.



Díky Update 2 můžete nyní vytvořit jednoduchý PowerShell skript (zde můžete stáhnout pro VMware a zde pro Hyper-V), který spustí aktivitu VeeamZIP pro vybraný virtuální stroj a nastaví jakýkoliv plán, který chcete prostřednictvím Windows Scheduler. Veeam také vytvořil následující příklad skriptu, který nejen spustí zálohy VeeamZIP požadovaných virtuálních strojů, ale také vám pošle emailem report s výsledky zálohování.


Parametry skriptu


Skript je schopný provést ad-hoc zálohování vybraných virtuálních strojů, které jsou na samostatném hostu, v klastru nebo na vCenter serveru. Před spuštěním skriptu musíte poskytnout tři povinné parametry: jména virtuálních strojů k zálohování, jména hostů, na kterých jsou virtuálních stroje umístěny a adresáře, kam mají být zálohované soubory uloženy. Poznámka: Tento skript byl aktualizován 18.5.2015 na základě zpětné vazby.

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

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

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

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

Volitelně můžete měnit úroveň komprese a požadovanou retenci, zakázat nečinnost VMware, povolit šifrování nebo dokonce oznámení nastavení:

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

Pokud chcete dostávat emailem report po dokončení zálohování, musíte vyplnit následující nastavení oznámení.

##################################################################
# Notification Settings
##################################################################
# Enable notification (Optional)
$EnableNotification = $True
# Email SMTP server
$SMTPServer = ""
# Email FROM
$EmailFrom = ""
# Email TO
$EmailTo = ""
# Email subject
$EmailSubject = ""

Report pak bude vypadat následovně:



Všechna výše zmíněná nastavení mohou být konfigurována nastavením určitých proměnných v příslušných hodnotách. Například, abyste povolili šifrování, musíte nastavit hodnotu $True (Boolean) na proměnnou $EnableEncryption a poskytnout šifrovací klíč (dočtete se v další části článku). Navíc, pokud chcete, aby se zálohované soubory smazaly za 2 týdny, musíte nastavit hodnotu řetezce „In2Weeks“ do proměnné $Retention, atd. Není potřeba pamatovat si, co, jaká proměnné dělá a jaké hodnoty jsou přijatelné -  pro vaše pohodlí obsahuje příklad krátký popis pro každou proměnnou.

Šifrování


Bezpečnost dat je kritická část zálohovací strategie. Zálohovaná data musí být chráněna před neautorizovanými přístupy, zvláště když jsou citlivá data virtuálních strojů zálohována do vzdálené lokace nebo archivována na pásky. Abyste měli svá data v bezpečí, můžete své VeeamZIP zálohy šifrovat. Jak je uvedeno výše, vyžaduje to výběr souboru, který obsahuje heslo pro šifrování.

Samozřejmě můžete do skriptu vložit heslo jako prostý textový řetězec. Ovšem obyčejné řetězce jsou nedůvěryhodné (přinejmenším), protože jsou uloženy v paměti jako prostý text. Takže většina PowerShell cmdlets hesla v takovéto formě neakceptují.

Zabezpečený řetězec je lepší volbou. Tento typ je stejný jako obyčejný řetězec, ale jeho obsah je zašifrovaný v paměti. Používá reverzibilní šifrování, takže heslo může být dešifrováno, když je potřeba, ale pouze tím, kdo ho zašifroval. Pro vytvoření zabezpečeného řetězce si musíte otevřít PS konzoli a vepsat následující dvě věty. Po spuštění vás bude kód žádat, abyste vložili heslo a poté uložili jako bezpečný řetězec do souboru:

$SecurePassword = Read-Host -Prompt "Enter password" -AsSecureString
$SecurePassword | ConvertFrom-SecureString > “Directory where secure string should be stored; C:\SecureString.txt, for instance”
After that, specify the path to the newly-created file in the main script:
# Protect resulting backup with encryption key (Optional; $True/$False)
$EnableEncryption = $True
# Encryption Key (Optional; path to a secure string)
$EncryptionKey = "C:\SecureString.txt"

Plánování skriptu


Před tím, než naplánujete skript, byste se měli ujistit, že funguje dle vašich představ tak, že ho zkusíte spustit manuálně.

Nejsnazší cesta, jak naplánovat skript pro provedení periodického zálohování automaticky je použití Windows Task Scheduler. Jednoduše jděte do nástroje Task Scheduler a vytvořte novou běžnou úlohu:



Přiřaďte jí jméno a popis, takže si budete pamatovat, co tato úloha dělá.

Na další straně je Task Trigger (spouštěč úlohy). Je velmi jednoduchý a intuitivní. Dostupné možnosti jsou poměrně flexibilní (možné je vše od spuštění záloh několikrát za den nebo jednou za měsíc), takže si nastavte jakékoliv hodnoty, které vyhovují vašim požadavkům na RPO (recovery point objective). Většina lidí používá každodenní zálohy.


Nastavte čas úlohy na hodiny mimo provoz. V tomto případě běží úloha každý večer ve 22:00 od 2. 4. 2015.



Na následující stránce (Action) specifikujete, že chcete, aby naplánovaná událost spustila program (Start a program) a kliknete na další (Next).



V podokně Start a Program zadáte následující příkaz do programu/skriptu:

PowerShell – soubor „Path to Veeamzip.ps1“


A máte hotovo! Chceme ovšem otevřít úlohu po jejím vytvoření, abychom udělali pár dalších změn. Vyberte dialog Open the Properities pro tuto úlohu po kliknutí na Finish:


Jelikož úloha poběží na serveru, kde uživatel nemusí být přihlášen, když bude úloha probíhat, je dobré povolit, aby úloha proběhla bez toho, aby musel být uživatel přihlášen tak, že se úloha propojí s uživatelskými údaji.



Až budete mít hotovo, klikněte pravým tlačítkem na úkol a vyberte Run, abyste se ujistili, že se úloha dokončí správně:



PowerShell dává uživatelům to, co vždy ve Veeam Backup Free Edition chtěli!

Když teď víte, jak využívat tuto novou skvělou možnost, jste schopni dosáhnout dlouho očekávaného cíle, a to plánovat zálohy pomocí Veeam Backup Free Edition, který poskytuje více funkcí pro zálohování a obnovu než alternativní bezplatné zálohovací řešení založené na skriptech.