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.