XenServer Pool Master Failure

5 10 2009

xenserver

 

Fortunatamente non è un evento che capita spesso, ma cosa accadrebbe se nell’ambito di un Resource Pool di XenServer la macchina con il ruolo di Master dovesse avere dei problemi?

 

 

Ovviamente ogni server Slave membro del Pool contiene al proprio interno la replica del DB con tutta la configurazione necessaria per prendere possesso del ruolo di Master nel caso gli venga richiesto.

 Quando il nodo Master fallisce avviene questo:

1. I membri si accorgono che la connessione con il master è stata persa e ritentano per 60 secondi di ristabilirla;

2. A questo punto se la connessione non viene ristabilita ogni server Slave entra in Emergency Mode, da questo momento non sarà possibile modificare nessun tipo di configurazione all’interno del Pool e delle singole macchine. Gli unici comandi che i server accetteranno sono quelli relativi alla modalità di emergenza (pool-emergency commands). XenCenter ovviamente non funziona.

Se il master dovesse tornare operativo in questo momento tutti i server membri del Pool lascerebbero la modalità di emergenza e tutto tornerebbe alla normalità.

Se invece il server con il ruolo di Master continua ad avere problemi si deve procedere con la procedura indicata di seguito.

E’ necessario nominare un nuovo Master per il Resource Pool. Scegliere uno dei server slave, raggiungerlo in console oppure tramite ssh, scrivere il seguente comando per farlo diventare il nuovo master:

           xe pool-emergency-transition-to-master

A questo punto sarà possibile contattare il nuovo Master anche con XenCenter. Se necessario bisognerà mandare un segnale a tutti gli altri slave comunicando che il Master è cambiato, il comando è il seguente:

            xe pool-recover-slaves

Avvisa tutti gli slave che il nuovo master è operativo.

Se uno o più slave non dovessero contattare il master, posizionarsi sulla macchina in questione ed eseguire il seguente comando:

 xe pool-emergency-reset-master master-address=<ip del nuovo master>

 Per approfondimenti è disponibile il seguente documento: XenServer System Recovery Guide

Adriano Criscuolo





Uno Xen Virtual Consolidated Backup Server artigianale.

22 09 2009

La virtualizzazione ci espone alla voglia di fare il backup per intero delle nostre VM e non a caso i diversi vendor di hypervisor si sono per la maggior parte attivati in tal senso.

XenServer da questo punti di vista ci ha sempre messo un po’ in difficoltà in tal senso per via del fatto che non si potevano fare fino a poco tempo fa gli snapshot delle VM a caldo a meno di avere storage quali NetApp o Equallogic (su iSCSI). Qualche miglioramento l’avevamo già visto con la versione 5.0 di  XenServer che ci permetteva di fare uno snapshot da CLI di una VM posta su uno storage NFS o locale formattato in ext3.

Per le macchine windows sin da allora
c’era la possibilità di effettuare lo snapshot in “quiesce mode” (che
richiede una macchina windows con il servizio Xen  VSS abilitato) o “normale”.

Ebbene quello che mi accingo a farvi
vedere è una serie di esempi di semplici batch che opportunamente riadattati e
inseriti in job opportunamente schedulati
vi permetteranno di mettere in piedi un server per fare backup delle
xenVM in maniera centralizzata: per tutto ciò è necessario lo xencenter,
opzionalmente  winscp, e un po’ di spazio
disco dove mettere i backup…magari una LUN iSCSI su Openfiler, piuttosto che
un semplice NAS CIFS sulla vostra rete.

Lo script lo posizioniamo nella
cartella di installazione dello xencenter e si compone dei seguenti steps:

1) facciamo lo snapshot della VM e
mettiamo in una variabile d’ambiente l’UUID dello snapshot

xe.exe -s <ip pool master> -u
root -pw <root pwd> vm-snapshot vm=”<name label della
VM>” new-name-label=”<name label dello snapshot>” >
snapuuid.txt

2) scriviamo il contenuto della
variabile in un file

set /P snapuuid=<snapuuid.txt

3) dato che l’output dello snapshot è
un template nascosto, convertiamo il template in una VM in modo da renderne più
immediato il restore

xe.exe -s <ip pool master> -u
root -pw <root pwd> template-param-set is-a-template=false
ha-always-run=false uuid=%snapuuid%

4) esportiamo la VM nel percorso a noi
gradito

xe.exe -s <ip pool master> -u
root -pw <root pwd> vm-export vm=%snapuuid% filename=path\<nome
backup>.xva

5) eliminiamo lo snapshot

xe.exe -s <ip pool master> -u
root -pw <root pwd> vm-uninstall uuid=%snapuuid% –force

6) cancelliamo il file di appoggio

del snapuuid.txt

NB: il comando “vm-snapshot”
del primo step può essere sostituito da “vm-snapshot-with-quiesce” a
patto che sulla VM abbiamo preventivamente abilitato lo  XenVssProvider che si attiva all’interno della
VM lanciando il comando
“install-XenProvider.cmd” collocato nella directory di
installazione degli Xentools  della VM

Questo script, così com’è, già sarebbe
sufficiente per creare degli script di backup ma ha un inconveniente: qualora
il master del pool cambi è necessario
modificare lo script. Per renderlo un po’ più flessibile sotto questo
punto di vista può essere utile estrapolare l’informazione del master del pool
a  runtime come primo step
dell’esecuzione dello script e all’uopo ci può tornare utile winscp puntando
all’ip di una qualunque macchina del pool e relativa hostkey rsa che si usa per
le connessioni SSH all’host (purtroppo o per fortuna il demone del telnet non
c’è su Xenserver).

L’unica cosa che dobbiamo conoscere a
monte è l’UUID del pool di XenServer:

“c:\program files
(x86)\winscp\winscp.exe” root:<root pwd>@<ip xenserver host>
/hostkey=”<hostkey rsa SSH>” /command “call xe pool-param-get
param- name=”master” uuid=<UUID XenServer Farm>  >> /uuidmaster.txt”

“c:\program files
(x86)\winscp\winscp.exe” root:<root pwd>@<ip xenserver host>
/hostkey=”<hostkey rsa SSH>” /command “call mkdir
/appoggio”

“c:\program files
(x86)\winscp\winscp.exe” root:<root pwd>@<ip xenserver host>
/hostkey=”<hostkey rsa SSH>” /command “call mount -t cifs
//<xencenter
machine>/<share$> -o username=<dominio>/<username>,password=<password>
/appoggio”

“c:\program files
(x86)\winscp\winscp.exe” root:<root pwd>@<ip xenserver host>
/hostkey=”<hostkey rsa SSH>” /command “call cp
/uuidmaster.txt /appoggio”

set /P uuidmaster=<uuidmaster.txt

“c:\program files
(x86)\winscp\winscp.exe” root:<root pwd>@<ip xenserver host>
/hostkey=”<hostkey rsa SSH>” /command “call xe host-param-get
param- name=”address” uuid=%uuidmaster%  >> /ipmaster.txt”

“c:\program files
(x86)\winscp\winscp.exe” root:<root pwd>@<ip xenserver host>
/hostkey=”<hostkey rsa SSH>” /command “call cp
/ipmaster.txt /appoggio”

set /P ipmaster=<ipmaster.txt

xe.exe -s %ipmaster% -u root -pw
<root pwd> vm-snapshot vm=”<name label della VM>”
new-name-label=”<name label dello snapshot>” > snapuuid.txt

set /P snapuuid=<snapuuid.txt

xe.exe -s %ipmaster% -u root -pw
<root pwd> template-param-set is-a-template=false ha-always-run=false
uuid=%snapuuid%

xe.exe -s %ipmaster% -u root -pw
<root pwd> vm-export vm=%snapuuid% filename=path\<nome backup>.xva

xe.exe -s %ipmaster% -u root -pw
<root pwd> vm-uninstall uuid=%snapuuid% –force

del snapuuid.txt

Se poi vogliamo essere sicuri del
risultato dello snapshot, non vogliamo/possiamo usare lo XenVssProvider, e
soprattutto ci possiamo permettere di avere offline la VM per circa un minuto
possiamo pensare di fare un suspend della VM prima dello snapshot per poi farne
subito un resume….come? Ecco fatto:

xe.exe -s %ipmaster% -u root -pw
<root pwd> vm-suspend vm=”<name label della VM>”

xe.exe -s %ipmaster% -u root -pw
<root pwd> vm-snapshot vm=”<name label della VM>”
new-name-label=”<name label dello snapshot>” > snapuuid.txt

xe.exe -s %ipmaster% -u root -pw
<root pwd> vm-resume vm=”<name label della VM>”

set /P snapuuid=<snapuuid.txt

xe.exe -s %ipmaster% -u root -pw
<root pwd> template-param-set is-a-template=false ha-always-run=false
uuid=%snapuuid%

xe.exe -s %ipmaster% -u root -pw
<root pwd> vm-export vm=%snapuuid% filename=path\<nome backup>.xva

xe.exe -s %ipmaster% -u root -pw
<root pwd> vm-uninstall uuid=%snapuuid% –force

del snapuuid.txt

Questo è quanto per ora…spero possa
tornare utile a molti di voi…

Alla prox,

Lorenzo Di Palma





Ma perche’ non lavorano da casa?

2 04 2009

Passare la mattina sul GRA!

Le tecnologie ci sono ma probabilmente non interessano, continuiamo ad alimentare il PIL in questo modo!

Però in fondo i cartelli sono Green….





Provisioning Server 5: ATTENZIONE ad Active Directory 2000

9 10 2008

Abbiamo scoperto un piccolo (si fa per dire) bug su Provisioning Server 5 sia Datacenter che Desktop Edition.

In presenza di un backend di autenticazione Active Directory di Windows 2000 il prodotto non è in grado di accedere agli oggetti AD. Si hanno quindi problemi nella configurazione iniziale e nella scelta degli amministratori dell’infrastruttura di Provisioning.

Abbiamo aperto un post sul forum di Citrix, Pete Downing Senior Product Manager – Provisioning Server ci conferma la presenza del bug e ci assicura che stanno lavorando per risolverlo.

Adriano Criscuolo

UPDATE 1:

Pete Downing ci comunica che hanno risolto il problema e sono in fase di test dell’hotfix. Il prima possibie rilasceranno una hotfix pubblica su http://support.citrix.com/product/provsvr/psv5.0/#tab-hotfix

UPDATE 2:

E’ finalmente uscita la Citrix Provisioning Server 5.0 Hotfix 7740 che risolve il problema da noi riscontrato ed altri sempre relativi ad Active Directory.





Inserire nel Message Center il link interno al Citrix Web Client

29 09 2008

Buona sera a tutti,
volendo aggiornare il pacchetto del client web presente nel link interno alla web interface, anzichè usare il link che rimanda al sito citrix per il suo download bisogna eseguire le seguenti operazioni:

Scaricare il pacchetto XenAppweb.msi o XenAppweb.exe ed inserirlo nella cartella C:\Program Files\Citrix\Web Interface\\Clients\WIONLY (se non esiste creala) sulla macchina dov’è collocata la nostra web interface;
Assegnare nelle proprietà di sicurezza del file agli “authenticated users” i diritti di lettura ed esecuzione;
Dopodichè aprire il file C:\Inetpub\wwwroot\Citrix\AccessPlatform\conf\webinterface.conf e al posto di Win32Client=default incollare la “Win32Client=Download the ICA Client for Windows&/Citrix/AccessPlatForm/Clients_common/WIONLY/xenappweb.msi”;
Riavviare IIS Admin Service ed il gioco è fatto.
Saluti,
Lorenzo Di Palma





XenServer 5

15 09 2008

Inizia il VMWorld…e Citrix annuncia XenServer 5….per info:

www.xenserver5.com

…aspetto dai Tecnici i dettagli e tutte le novità! 

Massimiliano Caviglia
IT Consultant





Nuovo Look per Access Gateway

15 09 2008

Citrix rifà il look ai prodotti Access Gateway (tutte le versioni). L’obiettivo è quello di unificare la User Experience per tutte le tecnologie del Delivery Center.

Gli aggiornamenti sono già disponibili sul MyCitrix, la tabella sotto mostra alcuni dettagli relativi alle 3 versioni:

Per maggiori info:  http://support.citrix.com/servlet/KbServlet/download/17693-102-18991/Access%20Gateway%20New%20User%20Experience.pdf

Adriano Criscuolo





Citrix Delivey Center Live in corso…- AGGIORNATO

9 09 2008

E’ in corso il Citrix Delivery Center Live, con la presentazione ufficiale di XenApp 5 a livello mondiale. Uno strumento Web curato nei minimi dettagli. All’interno del Browser troviamo una Conference Hall con 7 sessioni e al momento in cui scrivo circa 500 on line users sono connessi con la possibilità di scambiarsi opinioni e fare domande agli speakers. Interessante l’area Expo Hall dove sono presenti dei virtual stands dedicati a XenApp, Netscaler, XenDesktop, XenServer e anche Microsoft, Intel e IBM. E’ possibile anche scaricare le ppt delle sessioni.

Citrix riesce sempre a stupire dal punto di vista organizzativo di Marketing. Sicuramente da ripetere in futuro.

AGGIORNAMENTO:

Superata la soglia dei 600 users connessi, l’evento volge al termine credo con la soddisfazione generale di chi ha partecipato. XenApp 5 la fa da padrone fino ad andare ad approfondire la sua integrazione con le altre tecnologie Citrix. Ora non resta altro che evangelizzare…

Massimiliano Caviglia
IT Consultant





Abilitare i report del Citrix License Server

6 09 2008

Il license server Citrix ha una funzionalità che è disabilitata di default, ma che talvota può essere apprezzata, specie quando i numeri degli utenti sono alti: i report dell’utilizzo delle licenze.
In realtà la management console web permette di visualizzare il numero di licenze allocate al momento dell’apertura della stessa, ma avere un report che tracci il numero di connessioni effettuate in un dato periodo della giornata o un arco temporale più ampio può dare anche una immediata idea dell’utilizzo reale della farm XenApp da parte degli utenti.
Per abilitarlo è sufficiente eseguire i seguenti passi:

- Aprire il file c:\programmi\citrix\licensing\myfiles\citrix.opt
- Aggiungervi la riga REPORTLOG +”C:\Program Files\Citrix\Licensing\LS\reportlog.rl”
- click Update License Data nella License Management Console o restartare il servizio Citrix Licensing.

A questo punto nella sezione Historical Usage è possibile selezionare l’intervallo temporale di cui si vuole analizzare l’utilizzo delle licenze e verrà generato il grafico relativo.

Buon proseguimento,
Lorenzo Di Palma





Aumentare il Time out delle sessioni della Web Interface

5 09 2008

Non so se vi è mai capitato, ma può essere necessario talvolta di aumentare il time-out della sessione della webinterface. Tale operazione, sebbene sia configurabile nella sezione relativa alla wi nell’AMC, qualora si aumenti il valore di default che è di 20 minuti, non sortisce alcun effetto, anzi, succede che cliccando sulle icone delle applicazioni non partono le applicazioni e se si prova a fare un refresh della pagina si viene automaticamente catapultati alla finestra di login della wi.
Tutto ciò accade perchè il time-out di default di IIS è settato a 20 minuti e se si aumenta tale valore per la wi bisogna anche farlo su IIS. Ecco come:

Apri il file web.config nella MetaFrame directory sul web server. Nella prima sezione system.web aggiungere la seguente riga: “”

Quindi apri IIS Manager sul web server e selezionare le proprietà di CitrixWebInterfaceAppPool. Sul tab delle perfomrmance cambi il valore del worker process time out ad un valore >= a quello impostato in web.config.
Restarti IIS ed il gioco è fatto!

Alla prox,
Lorenzo Di Palma