giovedì 7 febbraio 2008

SQL Server 2005 SP2 - Installazione "alternativa" su cluster active / active

Il cluster del post precedente serviva a testare l'installazione della SP2 che, sfortunatamente, non è andato liscio come mi aspettavo.

Il problema che, successivamente, ho scoperto essere dovuto ad un malfunzionamento del MsDtc causava il fallimento dell'installazione con il messaggio di errore: "No passive nodes were successfully patched" . In pratica il nodo 1 non riusciva ad aggiornare la sua parte passiva sul nodo 2.

workaround applicato per l'installazione è stato:

1) move di entrambe le instanze sul nodo 1

2) rimozione del nodo2 dai “possible owners” di ogni risorsa

3) Installazione SP2 da nodo 1 per entrambe le istanze (così finisce correttamente)

4) Riaggiunta del nodo 2 tra i “possible owners” di ogni risorsa

5) Move di entrambe le istanze sul nodo 2

6) rimozione del nodo1 dai “possible owners” di ogni risorsa

7) Installazione SP2 da nodo 1 per entrambe le istanze

8) Riaggiunta del nodo 1 tra i “possible owners” di ogni risorsa

9) Move di ogni gruppo sulla sua istanza predefinita

Chiaramente in questo modo non sono stati risolti i problemi che causano l'errore ma sono stati agirati...per una soluzione alla veloce può andare anche bene.

mercoledì 6 febbraio 2008

Cluster SQL su VMWARE

Recentemete per fare alcuni test ho avuto la necessità di mettere in piedi il più velocemente possibile un cluster SQL.

La soluzione ottimale in questi casi è creare due macchine virtuali su uno stesso host fisico in modo da poter condividere agevolmente i dischi necessari al cluster.

Dopo aver installato S.O (Ubuntu) e VmWare (1.0.3 server) sull'host ho creato una macchina virtuale con 2 dischi che non verranno condivisi e 3 da condividere (1 quorum e 2 dati).
Per creare il cluster è necessario che il S.O. non rilevi i dischi di sistema e quelli da condividere sullo stesso hardware, vanno quindi utilizzati due device scsi differenti e sui dischi deve essere disabilitato il lock.


Questa è la parte di configurazione riguardante i dischi nel winnetenterprise.vmx della macchina virtuale.


# CONFIGURAZIONE DISCHI


# LOCALI


scsi0.present = "TRUE"
scsi0.virtualDev = "lsilogic"

scsi0:0.present = "TRUE"
scsi0:0.fileName = "SystemDisk.vmdk"
scsi0:1.present = "TRUE"
scsi0:1.fileName = "DiscoDati.vmdk"

scsi0:1.mode = "independent-persistent"
scsi0:0.redo = ""
scsi0:1.redo = ""

# CONDIVISI
scsi1.present = "TRUE"

scsi1.sharedBus = "virtual"
scsi1.virtualDev = "lsilogic"
scsi1:0.present = "TRUE"
scsi1:0.fileName =
"/virtual/TstClusterDisk/DiscoQ.vmdk"
scsi1:0.mode = "independent-persistent"

scsi1:1.present = "TRUE"
scsi1:1.fileName =
"/virtual/TstClusterDisk/DiscoK.vmdk"
scsi1:1.mode = "independent-persistent"
scsi1:1.redo = ""
scsi1:2.present = "TRUE"
scsi1:2.fileName =
"/virtual/TstClusterDisk/DiscoL.vmdk"
scsi1:2.mode = "independent-persistent"
scsi1:2.redo = ""

# CONFIG. GENERICHE

diskLib.dataCacheMaxSize = "0"

diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"

disk.locking = "FALSE"



Il FileSystem dell'host è quindi così strutturato

/Virtual/TstCluster01 = Path VM 1 con dischi locali
/Virtual/TstCluster02 = Path VM 2 con dischi locali
/Virtual/TstClusterDisk = Path Dischi condivisi

In pratica per i dischi "locali" ho utilizzato 2 LUN del device scsi 0, per i dischi "remoti" ho usato 3 LUN del device scsi 1.
In questo modo windows rileva i dischi su device scsi differenti e permette la creazione del cluster e il lock disabilitato sui dischi ne permette anche l'accesso da due macchine virtuali differenti.


La seconda macchina virtuale l'ho creata copiando tutta la cartella della prima dopo aver installato Win2003 Enterprise Ed.

giovedì 27 dicembre 2007

Pillola: Receive Locations BizTalk e NAS NetApp

Tempo fa ci è capitato di riscontrare un problema con le recive location a presenza file di BizTalk (quelle che utilizzano il SMB).
Molto banalmente accadeva che, apparentemente senza motivo, le recivelocations che puntavano a dei path sul nas in maniera totalmente randomica si disabilitavano.
Dopo aver discusso il caso con Microsoft e NetApp abbiamo appurato che il problema era quello descritto in questo articolo.
Da un documento NetApp (non ho un link sottomano quindi vado di copia/incolla da una mail scambiata con il supporto NetApp)
________________________________________________________________
The cifs.max_mpx value tells the client how many operations can be pending on the filer at the same time. The value should never be set below the NT default of 50. If cifs stat output shows the Max Multiplex as greater than 32, then this number should be raised. The approved increases are 126, 253, and 1124. Do not set this to any other values without an explicit conversation with NetApp customer service. It should be noted that just automatically setting this high is not recommended. High values consume a lot of resources in the clients. Setting this to an unapproved value will cause errors on some clients.
________________________________________________________________

Nel nostro caso è stato quindi risulutivo un "options cifs.max_mpx 1124" sul nostro nas NetApp...magari può tornare utile a qualcuno...noi ci abbiamo lavorato su diversi mesi prima di approdare a questa soluzione.

venerdì 21 dicembre 2007

Archiviazione: Nexan e DataDomain

Con il progredire delle tecnologie, la banda larga, la necessità di digitalizzare quello che una volta era esclusivamente cartaceo stà emergendo sempre di più il bisogno di creare sistemi ibridi tra uno "storage comune" (NAS o SAN) e un sistema di archiviazione stile TapeLibrary (o VTL).

Ci sono diverse ragioni per cui può diventare necessario affiancare al backup tradizionale (sempre e comunque fondamentale) un sistema di archiviazione "alternativo"

1) dover tenere in linea file che vengono acceduti in maniera molto sporadica
2) garanzia di integrità del dato nel tempo
3) automatizzare i processi di "pulizia"

Nella ricerca di prodotti che soddisfano queste necessità ho trovato e testato Assureon di nexan e DataDomain due prodotti che, seppur molto diversi tra loro, pongono entrambi molta attenzione ad un aspetto fondamentale: la sicurezza del dato. Il datadomain, inoltre, ha il gran pregio di fornire la tecnologia di deduplicazione su cluster che permette di ridurre impressionantemente la dimensione dei dati stoccati (ho visto un fattore di "compressione" anche di 16.1 su file PDF, quindi già compressi).

Guardiamo nel dettaglio cosa offrono i due prodotti, quali sono i loro pregi e quali i difetti.

Assureon:
Aspetto decisamente accattivante: sata blade per lo storage e un Dell PowerEdge per il sistema non sono niente male.
L'assureon è dotato di un db MS sql "blindato" da nexan sul quale, oltre alle impostazioni di configurazione, viene memorizzato l'hash di ogni file che viene scritto sullo storage.
Uno dei punti di forza del prodotto, infatti, è prorpio che di ogni file viene calcolato l'hash prima e dopo la scrittura (e, se la memoria non mi inganna, anche ricontrollato periodicamente) per garantirne l'integrità.

Altra cosa estremamente interessante (indispensabile per rispondere alle esigenze di cui parlavo prima) è che una volta spostato un file l'assureon lascia un link in formato $nomefile.url che richiama un webservice incaricato di riportare indietro il file originale. In pratica se apro il mio pippo.url mi ritroverò un pippo.txt.

Chiaramente il grande limite di questo metodo è che è necessario convertire in qualche modo il .url in .$EstensioneOriginale. Per fare questo Assureon ha sviluppato un FileSystemWatcher (immagino usi l'omonima classe del Framework .net) che, installato sulle macchine che effettuano la chiamata, la eseguono in maniera totalmente trasparente per l'utente.
Nella mia situazione ho ritenuto la cosa accettabile perchè tutte le chiamate sarebbero arrivate da un limitato numero di macchine (5 server in cluster) ma mi rendo conto che può diventare complicato, fastidioso e, sopratutto, dispendioso dover acquistare una licenza del FileSystemWatcher per ogni macchina che deve accedere al FileSystem (ma va anche detto che realizzarne uno artigianale in casa, con magari solo le funzioni essenziali, non dovrebbe essere cosa troppo ardua).

Altra grande pecca, o, per meglio dire, funzione mancante, è la mancanza di un sistema di compressione veramente efficace. La compressione software basata sull'algoritmo di Huffman non mi ha dato, ovviamente, risultati sui PDF (ovvero sulla gran parte dei dati che a me serviva archiviare) e la deduplicazione è eseguita solo sull'intero file: in pratica se, una volta calcolato l'hash di un file, l'assureon lo trova già nel DB non lo scrive nuovamente sul FileSystem.

Sicuramente degna di nota anche la gestione delle versioni dei file, una sorta di shadow copy evoluta che permette di certificarne l'assoluta "originalità". In pratica se decido di tenere un file per 10 anni posso modificarlo quante volte voglio....ma durante questo periodo potrò sempre recuperarne la versione originale e sicuramente non modificata. Questo aspetto è molto interessante per le implicazioni legali che comporta ma va anche detto che con questa funzione lo spazio che può occupare un file rischia di aumentare in maniera esponenziale: per un file da 1 Mb di cui voglio tenere 3 versioni dovrò prevedere 3 Mb di spazio. E se dovessi decidere che ogni versione va conservata per 10 anni devo prepararmi a veder crescere l'occupazione reale per $N volte...tante quante sono le modifiche apportate. La certezza di avere un dato non corrotto porta a queste conseguenze.

Per gestire tutte le funzioni dell'assureon, dalle politiche di archiviazione, alla definizione del retention period e delle modalità di gestione del file "scaduto", c'è un'interfaccia web che, francamente, mi è sembrato necessiti ancora di tanto lavoro per renderla più user friendly.

Il più grande problema che ho riscontrato nella fase di test è l'assistenza. In Italia esiste praticamente un unico rivenditore e un'unica persona che si occupa dell'assistenza alla clientela. ..un po' poco se ci si aspetta aiuto in tempi celeri in caso di bisogno.

Dopo aver escluso l'acquisto di Assureon ho iniziato la valutazione di DataDomain abbinato al Symantec Enterprise Vault.
Il software è conosciuto (anche perchè symantec lo pubblicizza quasi esclusivamente sotto questo aspetto) in particolare come prodotto per il backup di ms exchange, ma devo dire che ha anche diverse altre funzioni interessanti come, in particolare, la possibilità di gestire l'archiviazione di un filesystem.
Molto banalmente EnterPrise vault può, in base a delle policy che definiamo, spostare dei file da un filesystem (nel mio caso NAS) ad un altro (nel mio caso DataDomain) lasciando sul filesystem originale un "place holder"....in pratica un link che, a differenza di quello lasciato dall'Assureon, ha stesso nome e estensione (e volendo anche dimensione) dell'originale....una sorta di link linux (volendo anche hard link). Enterprise Vault è decisamente più intuitivo dell'interfaccia di Assureon e il db MS SQL utilizzato (va bene anche una express edition) è totalmente accessibile all'utente e la cosa potrebbe rivelarsi estremamente interessante per produrre statistiche e report precisi sull'occupazione del FileSystem. (sto ancora cercando di capire come funziona il db ma sono ottimista).
Lato storage DataDomain è a tutti gli effetti un NAS che però, a differenza di altri storage, ha 2 obiettivi primari:
1) il dato che viene scritto sul DataDomain DEVE rimanere integro
2) ridurre lo spazio occupato su disco

La sicurezza del dato (sicurezza intesa come integrità...non come "non modificabilità") è messa addirittura al primo posto rispetto alla continuità del servizio.
Un esempio abbastanza esplicativo:
Il mio nas NetApp, in caso di fault di 2 dischi continua a funzionare per 76 ore prima di andare in shutdown forzato...e non si riaccende fin quando i dischi non sono stati sostituiti.
Con il DataDomain (stesso RAID 6) in caso di fault di un solo disco il sistema funziona solo 48 ore prima andare in shutdown forzato....e va detto che DataDomain è nata da una costola di NetApp...quindi le logiche di funzionamento sono le stesse.
Inoltre se, per qualsiasi motivo, il datadomain dovesse rilevare qualche anomalia che potrebbe fargli sospettare un bug del suo software interno andrebbe in shutdown forzato.
E' per questo motivo che non credo il miglior utilizzo di DataDomain sia come filesystem di produzione ma come filesystem di archiviazione.

Quello che rende veramente unico DataDomain è la DEDUPLICAZIONE su cluster.In pratica archiviando determinati tipi di dati (i PDF ne sono un esempio lampante) le possibilità di trovare dei cluster da 4 Kb identici sono abbastanza alte. DataDomain non scriverà mai 2 cluster uguali, e questo può portare a ridurre l'occupazione di disco con fattori altissimi.

Oltre alla deduplicazione il DataDomain effettua anche una compressione software che, nel mio caso, si è rilevata utilissima per archiviare svariate migliaia di file di testo di dimensione minore dei 4Kb (quindi praticamente non deduplicabile) ma facilmente comprimibili.

La deduplicazione è infatti possibile solo su file di dimensione > Kb e non compressi o cifrati.
Questo mi porta alla vera nota dolente: Enterprise Vault e DataDomain che a me sembravano nati per lavorare insieme sono in realtà, al momento, incompatibili.

EnterpriseVault ha il grandissimo difetto di tentare una compressione sosftware del dato prima di spostarlo....questa funzione, non disattivabile, rende praticamente inutile la deduplicazione di datadomain :-(

Ad oggi symantec non ha dato ancora certezze ma nella prossima versione (metà 2008) di enterprise vault questa funzione dovrebbe essere disabilitabile.

Concludendo la mia situazione era questa:

un NAS strapieno di PDF e TXT (molto piccoli ma molto numerosi) da tenere tutti circa 10 anni.
un NAS strapieno di TXT (molto piccoli ma molto numerosi) più vecchi di 10 anni ma che, non esistendo automatismo che lo facesse, nessuno ha mai storicizzato / cancellato
un NAS con spazio disco quasi esaurito.
la necessità di avere garanzie sull'integrità del dato...garanzie che ne i tape ne i supporti ottici forniscono.

La soluzione che cercavo era un prodotto che si occupasse di archiviare i file con determinati criteri spostandoli su un filesystem che avesse un costo medio a Tb minore di quello del nas.

Ho trovato tutto questo in DataDomain (costo superiore a quello di una NAS ma considerando un fattore medio di deduplicazione di 4 il costo medio per Tb per me è risultato decisamente inferiore) abbinato all'ottimo enteprise vault...aspettando una patch per pezzare il problema della compressione non disattivabile