Setup di Glassfish Cluster

Glassfish Cluster
G.Morreale

Introduzione:

Un cluster in genere è costituito da una macchina che funge da amministratore e una serie di nodi che svolgono il lavoro delle applicazioni installate su di essi.
L'obiettivo di un cluster di solito è quello di migliorare la scalabilità e l'alta affidabilità del sistema.

La macchina che agisce come amministratore nel glassfish clustering viene chiamata DAS (Domain Administrator Server). 

Ciascuno dei nodi invece è costituito da 2 elementi:

1) Node Agent: Gestisce il ciclo di vita dell'istanza al quale è associato.
2) Istanza: Istanza dell'application server..

Le applicazioni si installano sul DAS e vengono automaticamente propagate nei nodi.


Supporto Cluster

Il supporto cluster deve essere installato solo sulla macchina DAS.


Il glassfish può essere installato direttamente con il supporto cluster attivo oppure è possibile attivarlo anche in seguito a un'installazione standard.

  • Per attivare il supporto in fase di installazione usare il seguente comando: % libantbinant -f setup-cluster.xml al posto di % libantbinant -f setup.xml

  • Per attivare il supporto in seguito (vedi immagine sopra):
    • - Aprire l'admin console
    • - Selezionare tra i common task: Enable Cluster Support
    • - Cliccare su Ok


E' stata predisposta in questo modo la macchina che costituirà il DAS.

Setup Cluster con un nodo

Si supponga di voler creare un cluster minimale (non ha senso in situazioni reali):

Un unica macchina sarà DAS e unico nodo (in seguito aggiungiamo il secondo nodo).

Sulla macchina(DAS) nella quale è stato attivato il supporto cluster si crei il primo nodo.

nota: I nodi si possono creare solo da linea di comando. Dal pannello si può aggiungere un nodo ma è solo un placeholder.. ovvero una predisposizione alla creazione vera e propria

Creazione Node Agent

Da linea di comando digitare:

asadmin create-node-agent nodoDAS

nodoDAS è il nome che si è scelto per il node agent presente sulla macchina DAS.
Con questo comando viene creato un node agent sulla macchina DAS.

Una volta creato deve essere avviato con il seguente comando:

asadmin start-node-agent nodoDAS

Creazione Cluster

Da pannello adesso si procede con la creazione del cluster.

Andare sull'icona Clusters e cliccare sul buttone new per creare un cluster.


Riguardo la configurazione che avrà il cluster lasciando le opzioni su "Configuration" inalterate si creerà una copia della configurazione
default-config, il sistema chiamerà tale copia "cluster-config". Da questo momento sarà possibile configurare diversamente ciò che riguarda il cluster differenziandolo da ciò che riguarda l'istanza stand-alone agendo sulle diverse configurazioni.

Creazione istanza

Una volta creato il cluster si  procede aggiungendo la prima istanza e associandola al nodoDAS.
Si chiami tale istanza istanzaDAS.
Al fine di procedere con la creazione cliccare sul cluster appena creato (si trova all'interno della voce Clusters, nell'immagine precendete ne esiste già uno chiamato cluster), cliccare successivamente sul tab Instances e poi su New.
Indicare il nome instanzaDAS e associarla al NodeAgent nodoDAS dopo cliccare su ok.

Si è appena creata un istanza associata al nodo precedentemente creato, di default ad ogni stop and start del nodo corrisponderà analoga operazione sull'istanza creata.

Stato del Cluster

Facendo un riepilogo su ciò che finora è stato realizzato, ci ritroviamo con una macchina che funge da DAS sulla quale c'è il nodeAgent principale che controlla una sola istanza(instanceDAS).


Aggiunta Secondo Nodo

Per dare un senso al cluster si aggiunga un secondo nodo.

Nota: non è necessario il supporto cluster su questa seconda macchina.

I passi necessari per raggiungere questo obiettivo sono:

1) creare il node agent

usare il comando asadmin sulla macchina sulla quale vogliamo creare il secondo nodo:

asadmin create-node-agent --host macchinaDAS nodo1

il comando è equivalente a quello usato per creare nodoDAS ma questa volta si devono aggiungere dei parametri per indicare alla funzione di creazione(create-node-agent) del nodo agent che la macchina sulla quale risiede il DAS non è localhost(valore di default) ma è un altra macchina.
Nel comando usato si suppone che la macchina sulla quale è installato il DAS abbia come hostname macchinaDAS.

NOTA BENE: E' consigliabile usare un hostname piuttosto che il numero ip, le api jmx potrebbero creare qualche problema.
Non dimenticare su linux di modificare il file /etc/hosts/ con l'hostname scelto.

NOTA: Quando viene richiesto admin user name e admin password durante la creazione del nodo immettere le credenziali relative al login su DAS.

Il nodo creato è stato chiamato nodo1.

2) avviare il nodo

lanciare dalla console della macchina con il nodo1 il comando

asadmin start-node-agent nodo1

in modo da avviare il nuovo node agent.


3) creare l'istanza1 sulla macchina con nodo1

Tale operazione può essere eseguita invece dal pannello.
Andando sul cluster e aggiungendo come fatto precedentemente per instanzaDAS una nuova istanza associandola al node agent nodo1.

l'istanza creata la chiamiamo istanza1

4) avviare istanza1

Cliccare su cluster, cliccare su istanza1, cliccare su "start instance".


Adesso abbiamo due macchine

macchina DAS: con il DAS, un istanza (istanzaDAS), il node Agent principale (nodeAgentDAS).
macchina 1: con un instanza (instanza1), il node Agent corrispondente nodo1.

Avviare il Cluster

Operazione fattibile dal pannello del DAS.

Cliccare su cluster e su "Start Cluster".

Testare Il Cluster

Per testare il cluster è possibile usare un'applicazione di esempio fornita con il glassfish stesso.
Il file ear dovrebbe risiedere all'interno della cartella samples/quickstart/clusterjsp.

Effettauare il deploy dal pannello prestando attenzione al target sul quale si installa l'applicazione.
Bisogna rimuovere il target server e aggiungere invece il target cluster.

Selezionare il flag Availability nel caso in cui l'applicazione faccia uso delle sessioni e tali sessioni devono essere replicate nei diversi nodi del cluster.

Se tutto è andato bene l'applicazione dovrebbe risultare installata su entrambe le macchine.
Per verificare ciò digitare sul browser il seguente url:

http://localhost:38080/clusterjsp

sia dalla macchina DAS che dalla macchina 1.

NOTA: Come è possible notare dall'url le istanze del cluster ascoltano sulla porta 38080 e non su 8080. Su 8080 invece è in ascolto l'istanza standalone dell'application server che nonostante il cluster resta comunque funzionante. Ovviamente se non necessaria è possibile fermarla e usare solo le istanze configurate all'interno del cluster.



Link:


No comments: