mercoledì 3 settembre 2014

Site Recovery Manager automatic test, notification and cleanup

Per lavoro ho da poco avuto l'occasione di collaborare con uno dei numerosi partner di VMware e con delle persone di VMware stessa per la progettazione e la successiva realizzazione di un'installazione del prodotto per la gestione dei piani di continuità operativi, il Site Recovery Manager | SRM.

La filosofia alla base del prodotto ha un fascino innegabile per chi mastica di informatica... immaginate la possibilità di trasferire un'intera infrastruttura virtuale in un altro luogo con pochi click... mistico!

In effetti... dopo aver predisposto tutta la struttura fisica per accogliere i server da proteggere, dopo aver disegnato un'infrastruttura di rete parallela e averla configurata sul sito di destinazione e dopo aver configurato tutte le repliche a livello di storage per avere i dati "attivi" anche sulla SAN presente nel sito di Recovery... sono solo pochi click per effettuare un test o il vero e proprio "spostamento della produzione".

Tutto meraviglioso ma... VMware (da un certo punto di vista correttamente) non ha previsto in nessuna delle versioni fino ad ora rilasciate dell'SRM un automatismo per effettuare dei test e per inviare dei report relativi al risultato degli stessi... 
Ci tengo a precisare che la modalità di test è ovviamente prevista e funziona in maniera egregia permettendo di evidenziare delle eventuali mancanze o problematiche senza dover interrompere le repliche dei dati ma operando su delle snapshot che alla fine del test verranno rimosse ed eliminate lasciando l'ambiente pronto per qualunque evenienza.

Si sa però che un buon piano di Disaster Recovery funziona solo se testato abbondantemente in modo da evitare sgradevoli sorprese al momento in cui realmente dovesse essere necessario spostare il sito produttivo, ma si sa anche che il tempo è realmente difficile da trovare per effettuare dei test...

E allora ecco che dalla nuova versione di PowerCLI (5.5 R2) esce la soluzione al mio (e forse non soltanto mio) problema...
Sui blog di VMware trovo una serie di post che descrivono proprio quello che fa al caso mio:


Il buon Ken esplora con una discreta dovizia di particolari tutti i metodi che possono essere utilizzati via PowerCLI in abbinata all'SRM. Dapprima descrive le modalità di collegamento al Server che ospita l'applicativo e poi snocciola i vari comandi per listare i recovery plan e lanciare il test o il cleanup o il recovery vero e proprio. Infine descrive come ottenere uno stringato resoconto delle ultime operazioni compiute su uno specifico Recovery Plan (un mini-report lo definirei io).

Visto quello che si poteva fare non mi restava che mettere insieme il tutto in una serie di script per farli lanciare poi dallo schedulatore di Windows una volta a settimana :-)

Per una questione di semplicità di scrittura degli script e per meglio gestire le schedulazioni ne ho creati tre diversi: uno per far partire il test del Recovery Plan, uno che notifica l'ultimo risultato dello stesso Recovery Plan e un ultimo che si premura di fare il Cleanup per rimettere l'ambiente in "ordine" per il test della settimana successiva.

Il primo script quindi si occupa di far partire il test del Recovery Plan che ci interessa.

#Add PowerCLI Snapin
Add-Pssnapin VMware.VimAutomation.Core

#Connect to vCenter
connect-viserver "vCenter.local" -User 'Administrator' -Password 'xxxxxxxxxx'

#Set variables (and connect to SrmServer)
$SrmConnection=Connect-SrmServer -User 'Administrator' -Password 'xxxxxxxxxx'
$SrmApi = $SrmConnection.ExtensionData
$ProtectionGroups = $SrmApi.Protection.ListProtectionGroups()
$RPmode = [VMware.VimAutomation.Srm.Views.SrmRecoveryPlanRecoveryMode]::Test

#Define Recovery Plan to test ( to find the correct one use the $srmapi.recovery.listplans()[<number>].getInfo() command)
$RPmoref = $SrmApi.Recovery.ListPlans()[0]

#Start the test with last storage replication
$RPmoref.Start($RPmode)

Per trovare il corretto Recovery Plan (identificato da un numero nel comando) sfruttiamo - dopo aver dichiarato le variabili presenti nello script nella specifica sezione - il comandino:

$srmapi.recovery.listplans()[X].getInfo()

Provando a lanciare il comando più volte variando la "X" con un numero da 0 a "il numero dei recovery plan che avete definito -1" :-) vi verrà restituita una riga con una dicitura che riporterà il nome con cui avete battezzato il Recovery Plan permettendovi di individuarlo.

Scoperto il "magic number" (per comodità nei miei script di esempio uso lo 0 ) lo utilizzeremo anche negli altri script partendo da quello che invia una mail con il risultato dell'ultimo test effettuato sullo specifico Recovery Plan:

#Add PowerCLI Snapin
Add-Pssnapin VMware.VimAutomation.Core

#Remove last result file
rm "c:\scripts\last_result.txt"

#Connect to vCenter
connect-viserver "vCenter.local" -User 'Administrator' -Password 'xxxxxxxxxx'

#Set variables
$SrmConnection=Connect-SrmServer -User 'Administrator' -Password 'xxxxxxxxxx'
$SrmApi = $SrmConnection.ExtensionData
$PlanMoref = $SrmApi.Recovery.Listplans()[0].moref
$HistoryMoref = $SrmApi.Recovery.GetHistory($PlanMoref)

#Send last result output to file
$HistoryMoRef.GetRecoveryResult(0) | Select Name, RunMode, Description, StartTime, StopTime, ResultState, WarningCount | Format-List | out-file "c:\scripts\last_result.txt"

#Send e-mail
$smtpServer = "mail.local"
$smtpFrom = "srm_from_DR@local"
$smtpTo = "it_admin@local"
$messageSubject = "Last Recovery Test Result"
$body = (get-content "c:\scripts\last_result.txt" | out-string)

send-mailmessage -from "$smtpFrom" -to "$smtpTo" -subject "$messageSubject" -body "$body" -smtpServer "$smtpServer"

Per far partire questo script l'ho inserito come comando lanciato dallo stesso Recovery Plan alla fine di tutte le operazioni.
Ricordatevi che per far partire uno script in Poweshell/PowerCLI è necessario usare la seguente sintassi (dopo aver selezionato "Command on SRM Server"):

C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -file c:\script\report_script.ps1


Verificato (dalla mail ricevuta) che il test si sia concluso senza errori non resta che dare una ripulita all'infrastruttura prima del prossimo test...
Nulla di più semplice, sempre bene in mente il "magic number" che identifica il nostro Recovery Plan in test e:

#Add PowerCLI Snapin
Add-Pssnapin VMware.VimAutomation.Core

#Connect to vCenter
connect-viserver "vCenter.local" -User 'Administrator' -Password 'xxxxxxxxxx'

#Set variables
$SrmConnection=Connect-SrmServer -User 'Administrator' -Password 'xxxxxxxxxx'
$SrmApi = $SrmConnection.ExtensionData
$ProtectionGroups = $SrmApi.Protection.ListProtectionGroups()
$RPmode = [VMware.VimAutomation.Srm.Views.SrmRecoveryPlanRecoveryMode]::CleanupTest

#Define Recovery Plan to cleanup ( to find the correct one use the command: $srmapi.recovery.listplans()[<number>].getInfo() 
$RPmoref = $SrmApi.Recovery.ListPlans()[0]

#Start the cleanup
$RPmoref.Start($RPmode)


Anche in questo caso schedulato con lo Scheduler di Windows.
A qualcuno potrebbe sorgere il dubbio del perché schedulare il cleanup... è arrivata la mail e quindi so che devo collegarmi al vCenter, poi all'SRM andare sui Recovery Plans e lanciare il cleanup... se avete avuto questo dubbio avete perso la premessa fatta all'inizio... TROVARE IL TEMPO :-)

Scriptando anche il cleanup mi garantisco che il test della settimana successiva potrà partire correttamente anche se in quella precedente non ho trovato i 10 minuti per andare a cancellare il vecchio test...

Spero con questo post di aver semplificato la vita a qualche altro Amministratore di Sistemi alle prese con il Site Recovery Manager.

domenica 30 marzo 2014

VCP con la scadenza

Come recita un vecchio adagio... nulla è per sempre...

Come tante altre certificazioni professionali anche VMware ha deciso di apporre la "data di scandenza" alle sue VCP.
Con la modalità precedente infatti una persona che raggiungeva il "titolo" di VCPx (x inteso come qualunque certificazione di livello Professional) lo rimaneva per sempre.
Dal 10 marzo del 2014 invece, entro al massimo due anni, è necessario ridare validità alla propria certificazione attraverso una delle seguenti modalità:

- ricertificarsi allo stesso livello di VCP ma alla versione più recente (es. un VCP3 per poter essere ancora VMware Certified Professional dovrà superare l'esame della VCP5-DCV)

- conseguire una certificazione VCP in una diversa disciplina (es. un VCP-CLOUD rimane tale se supera dopo il 10 marzo 2014 anche l'esame VCP5-DT)

- certificarsi al livello superiore ossia da VCP passare a VCAP (es. un certificato VCP5-DCV consegue la certificazione VCAP5-DCA)

Nella pratica chiunque abbia conseguito una certificazione professionale prima del 10 marzo 2013 dovrà ottenere la nuova certificazione entro il 10 marzo del 2015 pena il decadimento della precedente.
Ovviamente per non inimicarsi il vasto pubblico di VCPs VMware ha deciso che non vi è alcun obbligo di seguire il costoso corso per la preparazione ma è sufficiente superare l'esame di abilitazione.

Contestualmente inoltre VMware ha deciso di porre fine alla possibilità di ottenere la certificazione VCP4 imponendo come deadline per sostenere l'esame il 31 maggio del 2014.

A ben vedere non erano molte le aziende che garantivano la validità a vita di una certificazione, e nelle intenzioni di VMware sembra esserci la volontà di garantire che i "suoi" VCPs siano sempre aggiornati all'ultima versione. Non a caso le release principali di vSphere si sono susseguite a distanza di circa 2 anni l'una dall'altra...

Qui trovate il post originale di VMware che fornisce tutti i dettagli del caso...

Certificati di tutte le VCP è ora di rimettersi a studiare!!!


domenica 9 febbraio 2014

Microsoft KMS Server e VMware View

Il deploy di client Windows 7 attraverso la tecnologia Linked Clone di VMware Horizon View porta una quantità sconsiderata di vantaggi per velocità ed efficacia di azione. Pochi click del mouse e, se tutto è configurato a dovere, ecco disponibili centinaia di client in qualche decina di minuti pronti per essere utilizzati da chiunque possieda un valido entitlement al pool.

Il fatto che le configurazioni siano fatte a dovere potrebbe sembrare una cosa ovvia ma, in infrastrutture di una certa complessità, come quella necessaria al funzionamento di Horizon View, il rischio che qualcosa non sia totalmente "in bolla" non è per nulla remoto.

Risulta particolarmente ovvio che i client debbano essere dotati di una regolare licenza per il sistema operativo virtualizzato anche se questo, in linea teorica, potrebbe durare il tempo di una sessione di lavoro (decido che alla disconnessione dell'utente il client virtuale debba essere cancellato immediatamente). Un pò meno ovvio il meccanismo necessario per rilasciare le licenze a macchine fatte con la "fotocopiatrice" da una unica macchina sorgente (golden o parent image).
Si badi bene che il "licenziamento" dei client virtuali è fondamentale per completarne la creazione. Durante un'operazione di provisioning infatti nella fase di "customizing" l'agent installato sulla VM verifica anche lo stato di licenza restituendo un errore e bloccando il processo nel caso la verifica non andasse a buon fine.
Ad essere onesti potreste bypassare il problema evitando il controllo della licenza da parte del agent di view installato con una semplice modifica ad una chiave di registro della macchina parent:

http://dharmgolf.blogspot.it/2010/11/viwe-45-windows-7-licenses-activiation.html

La maniera corretta per far funzionare il tutto è però l'utilizzo di un server su cui è stato installato il software Microsoft Key Management Services (KMS): detto brutalmente un server KMS (i codici MAK Multiple Activation Key non sono supportati).

Tutto qui? In effetti è tutto qui ma...

Se non volete aprire la consolle del View e ritrovarvi centinaia o più probabilmente migliaia di errori relativi all'ultimo recompose lanciato tipo:

View Composer Agent initialization error (16): Failed to activate software license. (1026556)

...beh è meglio se vi assicurate di aver fatto tutto quanto descritto nei punti sotto riportati.

Dando per scontato che l'infrastruttura Horizon View e il server KMS siano correttamente installati e funzionanti partiamo con i controlli:

1 - verificate che su tutti i domini interessati dal rilascio delle licenze sia presente il record che indirizza le macchine verso il server KMS

                  Configuring DNS

2 - se stiamo parlando di client virtuali con installato Windows 7 fate in modo che vengano attivate, prima di cominciare con i vari provisioning delle macchine nei pool, almeno 25 copie di Windows 7 (magari proprio le vostre macchine parent...) questo "sbloccherà" il KMS server.

3 - collegatevi al vostro server KMS e verificate a che punto siete con le licenze rilasciate con il comando SLMGR.vbs /dlv. Osservate il valore riportato alla riga Current Count. Se è maggiore o uguale a 25 siete pronti per lanciare provisioning di macchine virtuali senza timore alcuno.

Visto che stiamo parlando di virtuale potete utilizzare un trucco senza creare realmente 25 VM diverse (con diverso CMID Client Machin ID) createne una e fate una snapshot lanciate un sysprep /generalize e seguite la procedura guidata. Alla fine della stessa e riavvii vari ... il counter di cui parlavo sopra dovrebbe essersi incrementato di una unità... revert to snapshot e avanti di nuovo fino a 25 e oltre :-)


Nulla può andare storto :-D




lunedì 3 febbraio 2014

Horizon Workspace... qualche trucco

Negli scorsi giorni mi sono trovato ad effettuare l'installazione e la configurazione di Horizon Workspace.

Diversamente da altri software questo mi risulta essere sviluppato da VMware stessa e non frutto di acquisizioni e successivi re-brand.

Prodotto interessante e molto promettente ma decisamente complesso e delicato.
Magari scriverò di più nei prossimi giorni nel frattempo però viste le numerose difficoltà incontrate durante l'installazione (ma soprattutto la configurazione) ho deciso di raccogliere sul blog un pò di link con suggerimenti o best practices per far funzionare il "mostro".

Iniziamo con il blog ufficiale di VMware...

sabato 25 gennaio 2014

VCP5-DCV si sdoppia

Dal 22 gennaio di quest'anno il noto esame di certificazione professionale sui prodotti di virtualizzazione del datacenter di VMware si divide in due "linee", una legata ai prodotti vSphere v5.0 e v5.1 ed una seconda che riferisce al relativamente nuovo vSphere v5.5.

La decisione poteva in qualche modo dirsi attesa per alcune importanti differenze che nella versione 5.5 erano state introdotte che rendevano l'esame non più attuale (due fra tutte: alcune abissali differenze nei maximum - tipiche domande da esame - e la maggior spinta verso l'utilizzo del client web prima relegato quasi ad interfaccia di mera visualizzazione).

Non risulta però cambiato soltanto l'oggetto dell'esame ma anche la modalità dello stesso.
Resta ferma la tecnica di valutazione dei quesiti che su una base di 500 punti massimi ne richiede almeno 300 per il superamento del test. Si modifica invece sostanzialmente il numero delle domanda che da 85 dell'esame con codice VCP510 (legato alle versioni 5.0 e 5.1) passa ora a 135 (ben 50 quesiti in più) per l'esame codice VCP550 e di conseguenza il tempo disponibile per gli esaminandi che da 90 minuti passa a 120 (più altri 30 minuti per chi non sostiene l'esame nella sua lingua madre).

Importante far notare che superando qualunque dei due esami la qualifica rimane quella di VCP5-DCV.



Al link sotto tutte le informazioni direttamente dal sito di VMware.

Two Available VCP5-DCV Exams

I corsi, obbligatori, per poter ottenere entrambe le certificazioni risultano comunque quelli della versione "generica" 5.x anche perché quelli specifici per la v5.5 sono disponibili solo da dicembre dello scorso anno (2013).

Ovviamente ancora nulla per quanto riguarda i vari fornitori di "aiuti allo studio" come testking, pass4sure o il più "economico" examcollection... :-)

Seguirò con attenzione il web alla ricerca delle impressioni dei primi VCP550 certified riportandole sul blog.