Questo è un post di Vladimir Eremin, Product Manager di Veeam.Vladimir è molto attivo sui Forum di Veeam , su Twitter e in Spiceworks. Una delle competenze di Vladimir è PowerShell e ce lo spiega passo passo qui, in questo post del blog. Per qualsiasi domanda sui componenti di PowerShell menzionati in questo post, usate i Forum Veeam per partecipare alla discussione. Potete anche scaricare lo script di esempio qui per VMware e lo script di esempio qui per Hyper-V e discutere l’argomento nei Forum di Veeam.
Veeam Backup Free Edition è stato lo strumento gratuito di Veeam più diffuso, soprattutto grazie alla funzionalità VeeamZIP di eseguire backup full interattivi di un numero illimitato di VM. Tuttavia, VeeamZIP ha sempre avuto un limite, piccolo ma fastidioso: l’incapacità di programmare l’esecuzione dei backup. In realtà, grazie al fatto che VeeamZIP può essere attivato solo in modo interattivo, semplicemente non c’è modo nell’interfaccia utente di programmarlo con job di backup regolari. Se vi riconoscete in questa situazione, sarete contenti di sapere che, a partire dall’Update 2, questo limite è stato rimosso! Grazie ai vostri commenti sui Forum di Veeam, su Twitter e in altre occasioni abbiamo potuto riconoscere il problema e abbiamo deciso di affrontarlo rendendo disponibile il cmdlet di Powershell Start-VBRZip nella Free Edition.
Come funziona
Come già evidenziato in precedenza, la funzionalità principale di Veeam Backup Free Edition è la possibilità di eseguire backup VeeamZIP delle VM (e, naturalmente, di ripristinare VM, file guest e singoli oggetti applicativi da questi backup). VeeamZIP genera sempre un file di backup full (.vbk) che agisce come un punto di ripristino indipendente. La Free Edition vi consente di archiviare il file di backup in un backup repository, in una cartella locale o su una share di rete.
Quando eseguite VeeamZIP, potete avviare il processo di backup per la VM selezionata immediatamente. Questo tipo di backup richiede impostazioni minime, in quanto è estremamente facile da attivare manualmente.
Con l’Update 2, è possibile scrivere un semplice script di PowerShell (qui per VMware e qui per Hyper-V) che avvia l’attività di VeeamZIP per una VM selezionata e configura la pianificazione desiderata tramite lo Scheduler di Windows. Abbiamo generato il seguente script di esempio che non solo attiva i backup VeeamZIP delle VM richieste, ma vi invia un report formattato con i risultati del backup!
Parametri dello script
Lo script è in grado di eseguire un backup ad hoc delle VM selezionate che risiedono su host, cluster o vCenter. Prima di eseguire lo script è necessario fornire tre parametri obbligatori: i nomi delle VM di cui eseguire il backup, l’host su cui si trovano e la directory in cui i file di backup devono essere archiviati. Nota: questo script è stato aggiornato il 18/5 in seguito ai feedback ricevuti.
##################################################################
# Variabili definite dall'utente
##################################################################
# Nomi delle VM di cui eseguire il backup separati da una virgola (obbligatorio). Ad esempio, $VMNames = “VM1”,”VM2”
$VMNames = ""
# Nome del vCenter o dell'host indipendente su cui risiedono le VM di cui eseguire il backup (obbligatorio)
$HostName = ""
# Directory di destinazione dei backup della VM (obbligatorio; ad esempio, C:\Backup)
$Directory = ""
È possibile modificare il livello di compressione e la retention desiderata, disabilitare VMware in quiescenza, abilitare la crittografia e anche le importazioni delle notifiche:
# Livello di compressione desiderato (facoltativo; valori possibili: 0 - Nessuno, 4 - Dedupe-friendly, 5 - Ottimale, 6 - Alto, 9 - Estremo)
$CompressionLevel = "5"
# Lasciate in quiescenza la VM quando eseguite lo snapshot (facoltativo; nel sistema operativo guest sono richiesti gli strumenti di VMware o i componenti di integrazione di Hyper-V; valori possibili: $True/$False)
$EnableQuiescence = $True
# Proteggete il backup risultante con una chiave di crittografia (facoltativo; $True/$False)
$EnableEncryption = $False
# Chiave di crittografia (facoltativo; percorso verso una stringa sicura)
$EncryptionKey = ""
# Impostazioni di retention (facoltativo; per impostazione predefinita, i file VeeamZIP non vengono rimossi e rimangono nella posizione specificata per un periodo di tempo indefinito.
# Valori possibili: Never, Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)
$Retention = "Never"
Se volete ricevere un report una volta completato il backup, dovete riempire anche le seguenti impostazioni di notifica.
##################################################################
# Impostazioni di notifica
##################################################################
# Abilita notifica (facoltativo)
$EnableNotification = $True
# E-mail al server SMTP
$SMTPServer = ""
# E-mail DA
$EmailFrom = ""
# E-mail A
$EmailTo = ""
# Oggetto e-mail
$EmailSubject = ""
Il report via e-mail risultante avrà il seguente aspetto:
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 |
Tutti i parametri di cui sopra possono essere configurati impostando alcune variabili. Ad esempio, per abilitare la crittografia, dovete impostare il valore $True (booleano) sulla variabile $EnableEncryption e fornire la chiave di crittografia (vedere il capitolo successivo). Inoltre, se volete che i file di backup vengano eliminati dopo due settimane, dovete impostare il valore “In2Weeks” (stringa) sulla variabile $Retention, ecc. Non c’è bisogno di ricordare cosa fa ogni singola variabile e quali valori sono accettabili; per vostra comodità, lo script di esempio comprende una breve descrizione per ogni variabile.
Crittografia
Tornando alla crittografia, la sicurezza dei dati è una parte fondamentale della strategia di backup. I dati di backup devono essere protetti dall’accesso non autorizzato, in particolare quando i dati sensibili di una VM vengono memorizzati in una postazione off-site o archiviati su nastro. Per proteggere i dati, potete crittografarli con VeeamZIP. Come abbiamo indicato sopra, questa operazione richiede la scelta di un file contenente la password da utilizzare per la crittografia.
Naturalmente è possibile anche inserire la password nello script come una normale stringa di testo. Tenete presente però che le normali stringhe non sono sicure, dal momento che vengono memorizzate come testo normale. Di conseguenza, la maggior parte dei cmdlet di PowerShell semplicemente non accetta password in questo formato.
Un stringa sicura è la scelta migliore. Questo tipo di stringa non è diversa dalle solite, se non che il suo contenuto è crittografato in memoria. Utilizza la crittografia reversibile cosicché la password possa essere decrittografata quando necessario, e solo dall’entità che ha crittografata. Per creare una stringa sicura è necessario aprire la console PS e immettere le due righe seguenti. A questo punto, il codice chiederà di inserire una password e quindi di salvarla in un file come stringa sicura:
$SecurePassword =
Read-Host -Prompt
"Enter password" -AsSecureString
$SecurePassword |
ConvertFrom-SecureString
> “Directory where secure string should be stored; C:\SecureString.txt, for instance”
In seguito, specificate il percorso verso il file appena creato nello script principale:
# Proteggete il backup risultante con una chiave di crittografia (facoltativo; $True/$False)
$EnableEncryption = $True
# Chiave di crittografia (facoltativo; percorso verso una stringa sicura)
$EncryptionKey = "C:\SecureString.txt"
Pianificazione dello script
Prima di pianificare lo script, provate ad avviarlo manualmente per accertarvi che funzioni come vi aspettate.
Il modo più semplice di programmare lo script per eseguire automaticamente il backup periodico è di utilizzare il Task Scheduler di Windows. Basta andare allo strumento Task Scheduler e creare una nuova attività di base:
Assegnate un nome e una descrizione in modo che possiate ricordare facilmente il suo compito.
La prossima pagina è il Task Trigger. È piuttosto semplice ed autoesplicativo. Le opzioni disponibili sono abbastanza flessibili (tutto è possibile, dall’esecuzione dei backup diverse volte al giorno fino a una volta al mese), per cui impostate i valori che soddisfano le vostre esigenze di RPO. La maggior parte degli utenti utilizza backup giornalieri:
Impostate l’ora d’inizio dell’attività al di fuori dell’orario lavorativo. In questo esempio, l’attività viene eseguita ogni sera alle 22:00 a partire dal 22 aprile 2015.
Nella pagina seguente Action (Azione), specificate di volere l’attività pianificata Start a program (Avvia un programma), quindi fate clic su Avanti.
Nel riquadro Start a Program (Avvia un programma), inserite il seguente comando in Program/script:
Powershell –file “Path to Veeamzip.ps1 file”
Tutto qui! Potete però aprire l’attività dopo averla creata per effettuare un paio di modifiche aggiuntive. Per farlo, selezionate Open the Properties dialog for this task when I click Finish (Apri la finestra di dialogo proprietà per questa attività quando clicco su Fine):
Dal momento che questa attività viene eseguita su server, sul quale un utente può non essere loggato nel momento in cui l’attività si svolge, vale la pena di consentire l’attività indipendentemente dal fatto che l’utente sia loggato o meno associando le credenziali dell’utente a questa attività.
A questo punto, Fate clic con il pulsante destro del mouse sul job e selezionate Run (Esegui) per avere la certezza che l’attività venga completata correttamente:
PowerShell offre agli utenti ciò che hanno sempre desiderato da Veeam Backup Free Edition!
Ora che avete a disposizione questa nuova, straordinaria funzionalità dovreste essere in grado di conseguire l’obiettivo: eseguire backup pianificati con Veeam Backup Free Edition, che offre molte più funzionalità di backup e ripristino delle soluzioni di backup gratuite basate su script.