Toto je příspěvek našeho hosta Vladimira Eremina, produktového manažera společnosti Veeam. Vladimir je velmi aktivní na Fórech Veeam, na Twitteru a na Spiceworks. Jednou z Vladimirových dovedností je ovládání PowerShellu a v tomto blogovém příspěvku nás náš host seznámí s jeho použitím. Pokud budete mít nějaké otázky k funkcím PowerShellu použitým v tomto příspěvku, můžete je probrat na Fórech Veeam. Také si můžete stáhnout vzorový skript, zde pro VMware nebo zde pro Hyper-V, a diskutovat o tomto tématu na Fórech Veeam.
Produkt Veeam Backup Free Edition je neoblíbenějším bezplatným nástrojem společnosti Veeam, hlavně kvůli jeho funkci VeeamZIP, která dokáže provádět interaktivní plné zálohy neomezeného počtu virtuálních počítačů. VeeamZIP měl ale vždy jedno malé, ovšem nepříjemné omezení – nedokázal naplánovat provádění pravidelných záloh. Samozřejmě, vzhledem k tomu, že VeeamZIP šel spouštět pouze interaktivně, nebylo možné v uživatelském rozhraní provádět plánování úloh, například pravidelného zálohování. Pokud jste toto omezení také pocítili, určitě budete rádi, že od verze Update 2 už tomu tak není! Díky našim Fórům Veeam, našemu zapojení na Twitteru i dalších místech jsme se o zájmu o tuto funkci dozvěděli a rozhodli jsme se do bezplatné edice doplnit cmdlet PowerShellu Start-VBRZip.
Jak to funguje
Jak již bylo zmíněno, hlavní funkcí nástroje Veeam Backup Free Edition je schopnost provádět VeeamZIP zálohy virtuálních počítačů (a samozřejmě také obnovovat virtuální počítače, soubory hosta a položky aplikací z těchto záloh). VeeamZIP vždy vytvoří soubor s plnou zálohou (.vbk), který funguje jako nezávislý bod obnovení. Bezplatná edice umožňuje uložit soubor se zálohou do úložiště záloh, do místní složky nebo do sdílené síťové složky.
Při provádění záloh s nástrojem VeeamZIP můžete okamžitě zahájit proces zálohování pro vybrané virtuální počítače. Tento typ zálohování nevyžadujte téměř žádná nastavení, takže je pro ruční spouštění velmi pohodlný.
S verzí Update 2 nyní můžete napsat jednoduchý skript PowerShellu (pro VMware je zde a pro Hyper-V zde), který spustí činnost nástroje VeeamZIP pro vybrané virtuální počítače, a tento skript pak naplánovat pomocí Plánovače úloh ve Windows. Vytvořili jsme pro vás následující vzorový skript, který nejen že spustí VeeamZIP zálohu požadovaných virtuálních počítačů, ale dokonce vám i pošle přehledně formátovanou e-mailovou zprávu s výsledkem zálohování!
Parametry skriptu
Skript dokáže provádět ad-hoc zálohy vybraných virtuálních počítačů, které se nachází na samostatném hostiteli, clusteru nebo vCenter serveru. Před spuštěním skriptu musíte zadat tři povinné parametry: názvy virtuálních počítačů, které se mají zálohovat, hostitele, na kterém se tyto virtuální počítače nachází, a složku, do které se budou soubory se zálohou ukládat. Poznámka: Tento skript byl na základě připomínek dne 18. 5. aktualizován.
##################################################################
# Proměnné definované uživatelem
##################################################################
# Názvy zálohovaných VM, oddělené čárkou (povinné). Např. $VMNames = “VM1”,”VM2”
$VMNames = ""
# Název vCenter serveru nebo samostatného hostitele, na kterém se zálohované VM nachází (povinné)
$HostName = ""
# Složka, do které se má záloha VM uložit (povinné; např. C:\Backup)
$Directory = ""
Volitelně můžete také změnit úroveň komprimace a požadované uchování zálohy, zakázat znehybnění VMware, povolit šifrování nebo i nastavit parametry pro zaslání zprávy.
# Požadovaná úroveň komprimace (volitelné; možné hodnoty: 0 - žádná, 4 - optimalizovaná pro deduplikaci, 5 - optimální, 6 - vysoká, 9 - extrémní)
$CompressionLevel = "5"
# Znehybnění virtuálního počítače při pořizování snapshotu (volitelné; pro použití se musí v OS hosta nacházet VMware Tools nebo Hyper-V Integration Components; možné hodnoty: $True/$False)
$EnableQuiescence = $True
# Ochrana vytvořené zálohy šifrovacím klíčem (volitelné; $True/$False)
$EnableEncryption = $False
# Šifrovací klíč (volitelné; cesta k zabezpečenému řetězci)
$EncryptionKey = ""
# Nastavení uchování (volitelné; ve výchozím nastavení nejsou VeeamZIP soubory odstraňovány a jsou v daném místě uchovávány trvale.
# Možné hodnoty: Never, Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)
$Retention = "Never"
Pokud chcete po dokončení zálohy dostat e-mailem zprávu, musíte navíc nastavit také následující parametry pro zasílání zpráv.
##################################################################
# Nastavení parametrů pro zasílání zpráv
##################################################################
# Povolit zasílání zpráv (volitelné)
$EnableNotification = $True
# SMTP server pro e-mail
$SMTPServer = ""
# Odesílatel e-mailu
$EmailFrom = ""
# Adresát e-mailu
$EmailTo = ""
# Předmět e-mailu
$EmailSubject = ""
Výsledná e-mailová zpráva bude vypadat takto:
Name | Start Time | End Time | Result | Details |
CentOS-tiny_2015-03-26T180459 | 3/26/2015 6:04:59 PM | 3/26/2015 6:07:17 PM | Warning | Processing finished with warnings at 3/26/2015 6:07:13 PM Cannot use VMware Tools quiescence because VMware Tools are not found. |
CentOS-tiny_replica_2015-03-26T180720 | 3/26/2015 6:07:20 PM | 3/26/2015 6:11:20 PM | Success | Processing finished at 3/26/2015 6:11:18 PM |
Všechny výše uvedené parametry lze konfigurovat nastavením příslušných proměnných na odpovídající hodnoty. Pokud například chcete povolit šifrování, nastavte proměnnou $EnableEncryption na hodnotu $True (typu boolean) a zadejte šifrovací klíč (podrobnosti najdete v další kapitole). Pokud dále například chcete, aby byly soubory se zálohou po dvou týdnech vymazány, nastavte proměnnou $Retention na hodnotu “In2Weeks” (typu string) atd. Nemusíte si přitom vůbec pamatovat, co jednotlivé proměnné dělají a jaké jsou jejich přípustné hodnoty – pro vaše pohodlí jsme do vzorového skriptu pro každou proměnnou přidali její krátký popis.
Šifrování
Vraťme se nyní k šifrování. Bezpečnost dat je klíčovou součástí zálohovací strategie. Data záloh musí být chráněna před neoprávněným přístupem, zvláště pokud jsou citlivá data virtuálních počítačů zálohována do externích umístění nebo archivována na pásky. Aby byla vaše data v bezpečí, můžete své VeeamZIP zálohy zašifrovat. Jak již bylo zmíněno výše, je v takovém případě potřeba určit soubor, který obsahuje šifrovací heslo.
Mohli byste samozřejmě zadat heslo pro skript jako prostý textový řetězec. Obyčejný řetězec ale není zabezpečený (mírně řečeno), protože je v paměti uložen jako prostý text. Proto většina cmdletů PowerShellu hesla v této podobě nepřijímá.
Lepší variantou je použít zabezpečený řetězec. Tento typ je podobný obyčejnému řetězci, ale jeho obsah je v paměti šifrován. Používá reverzibilní šifrování, takže když je třeba, může být heslo dešifrováno, ale pouze objektem zabezpečení, který ho zašifroval. Chcete-li vytvořit zabezpečený řetězec, musíte otevřít PS konzoli a napsat následující dva řádky. Kód se vás při spuštění zeptá na heslo a pak ho uloží jako zabezpečený řetězec do souboru:
$SecurePassword =
Read-Host -Prompt
"Enter password" -AsSecureString
$SecurePassword |
ConvertFrom-SecureString
> “Složka, ve které je uložen zabezpečený řetězec; na příklad C:\SecureString.txt”
Pak zadejte v hlavním skriptu cestu k tomuto nově vytvořenému souboru:# Ochrana vytvořené zálohy šifrovacím klíčem (volitelné; $True/$False)
$EnableEncryption = $True
# Šifrovací klíč (volitelné; cesta k zabezpečenému řetězci)
$EncryptionKey = "C:\SecureString.txt"
Naplánování skriptu
Před naplánováním skriptu si ho nejprve zkuste spustit ručně, abyste se přesvědčili, že dělá to, co chcete.
Nejsnadnějším způsobem naplánování skriptu pro automatické pravidelné vytváření záloh je použít Plánovač úloh systému Windows. Stačí spustit nástroj Plánovač úloh a vytvořit novou základní úlohu:
Vytvořte pro ni vhodný název a popis, který vám později připomene, co úloha dělá.
Na další stránce se nastavuje aktivační událost úlohy. Nastavení je velmi jednoduché a nepotřebuje vysvětlení. Nabízené možnosti jsou poměrně flexibilní (lze vybrat spouštění zálohy od několikrát denně až po jen jednou měsíčně), takže zde nastavte hodnoty, které odpovídají vašim požadavkům na cíl doby obnovení. Většina lidí používá denní zálohy:
Nastavte čas spuštění úlohy mimo pracovní dobu. V tomto příkladu bude úloha od 22. dubna 2015 spouštěna každý večer ve 22:00.
Na následující stránce s akcí vyberte, že chcete, aby úloha provedla spuštění programu a klikněte na tlačítko „Next“.
V podokně „Start a Program“ zapište do pole „Program/Script“ následující příkaz:
Powershell –file “cesta k souboru Veeamzip.ps1”
A je to! Po vytvoření úlohy ji ale ještě můžeme chtít znovu otevřít a provést pár dodatečných změn. Proto zaškrtněte políčko „Open the Properties dialog for this task when I click Finish“:
Protože bude úloha spouštěna na serveru a uživatel nemusí být v čase jejího spuštění přihlášen, je vhodné povolit spuštění úlohy nezávisle na přihlášení uživatele a přiřadit k úloze jeho přihlašovací údaje.
Jakmile jste hotovi, klikněte pravým tlačítkem na úlohu a vyberte „Run“, abyste se přesvědčili, že úloha proběhne správně:
PowerShell uživatelům umožňuje to, co si vždy ve Veeam Backup Free Edition přáli mít!
Teď, když jste vyzbrojeni touto skvělou novou funkcí, byste měli být schopni dosáhnout dlouho očekávaného cíle – provádět plánované zálohy pomocí nástroje Veeam Backup Free Edition, který nabízí mnohem víc funkcí pro zálohování a obnovu než různá alternativní bezplatná zálohovací řešení založená na skriptech.