Cluster, RAC scalabilità e alta disponibilità

sabato 21 aprile 2007 alle 21:51 | Pubblicato su Diario, Installation and Configuration, RAC | 3 commenti

Il termine cluster viene oramai largamente usato in informatica in vari contesti. Quello che più mi intereressa è quello dell’architettura dei sistemi di elaborazione, ovvero cluster di elaboratori (computer cluster). Come definito sulla wikipedia un cluster di elaboratori è un insieme di elaboratori accoppiati strettamente per lavorare insieme in modo tale che per molti aspetti possono essere visti dall’esterno come un unico elaboratore (o computer).

Recentemente mi sono sentito dire da un cliente (pare su suggerimento del fornitore dell’hardware) che il database che gli abbiamo installato lavora in modo “attivo-passivo” e non “attivo-attivo” come dovrebbe. Mi spiego: si tratta di un RAC a due nodi, per la precisione Oracle versione 10.1.05. Hanno comprato da noi l’applicazione e noi gli abbiamo fornito il tutto “chiavi in mano”, cioè installando il RAC e la nostra applicazione. Anche l’applicazione lavora in modalità cluster, ma dal punto di vista del cliente è evidente, perchè uno punta due browser su due indirizzi diversi (corrispondenti a due macchine) e vede la stessa applicazione con gli stessi dati. Sul database invece ha dei dubbi, proprio per come è definito un cluster di computer, per il fatto che viene visto come un unico elaboratore.

La terminologia “attivo-attivo” e “attivo-passivo” non è proprio una terminoligia tecnica standard, è più che altro una descrizione facile per non addetti ai lavori di implementazioni di cluster, limitate a due nodi. In realtà definire un sistema “attivo-passivo” un cluster non è corretto, si tratta di un sistema ad alta disponibilità (high availability system) cioè un sistema in grado di garantire un alto grado di affidabilità anche in situazioni critiche quali guasti hardware (in parole povere, se si “spacca” un elaboratore il sistema continua ad erogare il servizio per cui il sistema stesso esiste). Il primo sistema di questo tipo con cui ho lavorato è Oracle Fail Safe. Per cui mi viene subito in mente che il fornitore del sistema operativo su cui Oracle ha implementato “Oracle Fail Safe” (ms) ha abusato del termine Cluster nel nome del modulo su cui Fail Safe stesso si appoggia: MSCS. L’unica cosa che lo fa sembrare un cluster, secondo me è la possibilità di definire un IP virtuale, facendo apparire il sistema dall’esterno come un unico elaboratore. Mi viene il dubbio se altri fornitori di sistemi operativi come SUN o HP abbiano commesso lo stesso abuso.

Ora, io non posso definirmi un esperto di cluster, questo ruolo lo lascio a persone come Kevin Closson che al riguardo pare ne sappia molto, però su architetture come quella di Oracle RAC credo di aver capito qualcosa. Quello che non ho capito, tornando al cliente dubbioso è come dimostrare che il RAC è un sistema “attivo-attivo” piuttosto che “attivo-passivo”. Credo che con qualche disegnino e un po’ di spiegazioni me la potrei cavare, ma se il cliente finale non vuole entrare nei dettagli tecnici, ma vuole vedere una dimostrazione pratica mi trovo in difficoltà.

E’ anche vero che al cliente dovrebbe interessare il risultato finale, quindi quel misto di Alta Disponibilità (HA) e scalabilità (scalability) che RAC offre.

In ogni caso oggi avevo deciso di scrivere qualcosa proprio sulle architetture cluster per poter evidenziare le varie caratteristiche e peculiarità, da una piccola ricerca su internet ho però riscontrato che le informazioni abbondano e una descrizione breve non è possibile, allora ho introdotto solo l’argomento e mi ripropongo di raccogliere un po’ di materiale e cominciare a scrivere una piccola guida al cluster di computer, storia implementazioni e possibilità. Anticipo subito che quella che ha avuto più successo in questo momento (probabilmente è sempre una questione tecnologica, quindi legata al momento storico) è quella utilizzata da Oracle per il RAC, completata con la versione 10.2 del Clusterware che offre le funzionalità di HA anche ad applicazioni esterne ad Oracle.

Intanto voglio mettere due link che secondo me sono un buon punto di partenza (perdonate la mia simpatia per Linux, ma questo sistema operativo permette a chiunque di sperimentare senza comprare del software).

Linux Virtual Server e The High Availability Linux Project

Personalmente ho fatto dei test con il modulo HA accoppiato a DRBD e l’ho trovato molto interessante, anche se di difficile utilizzo e configurazione.

3 commenti »

RSS feed for comments on this post. TrackBack URI

  1. Il termine attivo-passivo in ambiente Oracle RAC indica la possibilita’ di avere alcuni servizi in running su un nodo ed in not running sugli altri nodi.

    Nel caso in cui si avessero 3 nodi e due servizi configurati (CRM e BUSTE_PAGA per esempio) si potrebbe pensare di mettere in modalita’ running su due nodi il servizio CRM (ed in passivo sul nodo rimanente), il servizio BUSTE_PAGE in running su un singolo nodo (ed in passivo sui rimanenti due).

    Nel caso di crash del nodo con il servizio BUSTE_PAGA in running… in modalita’ ATTIVA-PASSIVA… dovro’ necessariamente attendere che le risorse vengano “spostate” su uno dei nodi disponibili.
    Nel caso in cui cadesse uno dei nodi del servizio CRM, il tempo di attesa sarebbe inferiore, poiche’ il nodo “sopravvissuto” prenderebbe subito in carico le nuove richieste… quello in passivo avrebbe il tempo di prendere in carico le risorse necessarie e iniziare a far parte del “nuovo” cluster a due nodi per il servizio CRM.

    Ciao,
    Marco

    P.S.
    Personalmente non avrei dato al cliente due indirizzi per la stessa applicazione, ma tramite LB avrei fornito un’unico indirizzo… Probabilmente sono state fatte altre considerazioni che non hai riportato per giustificare tale scelta.

  2. Ciao Marco, grazie per il tuo commento. Riguardo al fatto di dare al cliente due indirizzi mi spiego meglio. Il load balancing viene fatto direttamente dall’applicazione, che al momento del login rimanda il richiedente al server in quel momento meno carico, dopo aver consultato tutti gli altri membri del cluster. E’ la stessa identica politica di Oracle RAC. Introdurre un Load Balancer come frontend è da noi supportato, ma ciò ha tre aspetti negativi, a fronte dell’aspetto positivo di presentare un unico frontend: 1) costa, 2) fa perdere il bilanciamento sul carico effettivo degli application server, perchè un load balancer tradizionale non ha modo di interfacciarsi con la nostra applicazione e capire qual’è il nodo più scarico. Solitamente questi load balancer smistano semplicemente il traffico in parti uguali. 3) si introduce un single poin of failure, a meno che qui non si introduca un ulteriore cluster, alzando ancora di più i costi.
    Solitamente al cliente viene dato un unico indirizzo di partenza, ma per effetto del bilanciamento viene reindirizzato e quindi sul browser vede l’indirizzo del singolo application su cui alla fine si collega.

  3. mah, secondo me un sacco di gente si sta buttando sul RAC “abbagliati” molto spesso dall’ottimo lavoro (per loro😉 ) dei commerciali, credono che RAC==FAST ed altri luoghi comuni, quando invece molto spesso mi accorgo basterebbe un bel disegno di database (ottimo design ottime possibilità di scalabitlità) e di un’architettura hardware upgradabile e di gente seria e preparata a gestire il tutto, e non è un problema solo ed esclusivamente italiano

    ovviamente non parlo del caso specifico ma faccio un discorso in generale, se ne paralva proprio con dei miei conoscenti che lavorano in Oracle

    Alessandro


Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Blog su WordPress.com.
Entries e commenti feeds.

%d blogger cliccano Mi Piace per questo: