Il clustering
Sistemi Distribuiti 2002/2003
Introduzione
n
n
n
In termini generali, un cluster è un gruppo di sistemi indipendenti che funzionano
come un sistema unico
Un client interagisce con un cluster come se questo fosse un unico server
Le configurazioni cluster sono utilizzate per ragioni di
disponibilità (availability)
gestibilità (manageability)
¨ scalabilità (scalability)
¨
¨
1
Disponibilità (1/3)
n
Si riferisce alla capacità di gestire le richieste degli utenti nel modo più
continuativo possibile cercando di ridurre al minimo i casi di failure
del sistema. Generalmente un cluster provvede alla necessità di
availability duplicando e rendendo disponibili le risorse su tutte le
macchine che lo compongono. Quando un sistema o un’applicazione
del cluster sono interrotti, il software del cluster reagirà (tramite un
processo chiamato failover) riavviando l’applicazione o suddividendo
le operazioni del sistema interrotto ai restanti sistemi del cluster (load
balancing), dividendo perciò il carico di lavoro, garantendo così un
servizio continuativo all’utente finale.
Gestibilità (2/3)
n
Gli amministratori utilizzano una console grafica per spostare le
applicazioni e i dati all’interno del cluster su server diversi utilizzando
un punto di controllo centralizzato che può essere anche remoto
grazie ad un potente tool: il Cluster Administrator. Queste operazioni
sono eseguite per bilanciare manualmente i carichi di lavoro e per
liberare i server per operazioni di manutenzione senza che sia
necessario interrompere il sistema
2
Scalabilità (3/3)
n
Si riferisce alla possibilità di aggiungere risorse intese come CPU,
memorie o dischi (operazione di scale up) o computer (operazione
di scale out) al sistema per potenziare le performance quando il
carico totale va oltre le capacità del sistema cluster stesso. Questo
permette di aumentare le prestazioni con costi contenuti.
Architetture tradizionali
n
Una struttura hardware tradizionale per ottenere un’alta disponibilità
è quella di duplicare i sistemi con componenti completamente
replicati. Il modello software tradizionale per l’utilizzo di questo
hardware prevede che uno dei sistemi esegua l’applicazione mentre
l’altro resti inattivo, pronto a sostituire il sistema primario in caso di
arresto
n
SVANTAGGI
¨
¨
Aumento costo, senza aumento delle prestazioni
Vulnerabilità a causa di possibili errori intermittenti nelle applicazioni
3
Architettura cluster
n
n
La tecnologia di clustering è facilmente adattabile alla tecnologia
standard dei computer a basso costo e con possibilità di
interconnessione
VANTAGGI
¨
¨
¨
Basso costo
Alte prestazioni
Alta disponibilità (bilanciamento del carico)
Nel clustering di oggi vengono utilizzati due principali modelli software
n il modello a disco condiviso
n il modello senza condivisione
Il modello a disco condiviso
n
n
n
n
il software in esecuzione su qualsiasi sistema del cluster può
accedere a qualunque risorsa
l’applicazione deve sincronizzare e serializzare l’accesso ai dati
condivisi. Sono condivisi dati e disci ma non la memoria principale,
per questo è necessaria la sincronizzazione
Per la sincronizzazione si utilizza in genere un Distributed Lock
Manager (DLM). Un DLM è un servizio fornito alle applicazioni per
mantenere traccia dei riferimenti alle risorse in tutto il cluster
SVANTAGGI
¨
Le attività del DLM possono tuttavia causare un aumento del traffico dei
messaggi e ridurre le prestazioni a causa dell’accesso serializzato
associato ai sistemi aggiuntivi
Possibile soluzione -> modello software senza condivisione
4
Modello senza condivisione
n
n
n
ogni sistema del cluster possiede un sottoinsieme delle risorse del
cluster. Una determinata risorsa può essere di proprietà di un
solo sistema alla volta, il quale è anche l’unico a disporre
dell’accesso a quella risorsa particolare, benché in caso di arresto di
quel sistema un altro sistema determinato in modo dinamico potrà
prendere possesso della risorsa
Le richieste dei client vengono indirizzate automaticamente al
sistema che possiede la risorsa
VANTAGGI
¨
¨
Non vi è accesso serializzato alle risorse
Massima scalabilità
Organizzazione di un Cluster
n
FARM (modello con condivisione)
¨
¨
n
è composta da un gruppo di server che forniscono servizi simili, ma che
non condividono dati
In una Web farm troviamo dati identici replicati in ogni server del farm e
ognuno di questi può gestire le richieste inoltrate dagli utenti usando le
copie locali dei dati che ha al suo interno
PACK (modello senza condivisione)
¨
¨
generalmente vengono definiti packs quei gruppi di server che
condividono dati partizionati e che collaborano in tutte le operazioni di
gestione e mantenimento del sistema e dei servizi forniti
ogni server quindi non potrà gestire qualsiasi richiesta inoltrata
dall’utente, ma ne potrà soddisfare solo una porzione ben definita
5
Cluster Service (tecnologia di base) su Windows 2000
Advance Server
n
n
n
n
n
E’ praticamente il cervello del sistema e su ogni nodo del Cluster vi
è una istanza del Cluster Service
Cluster Service è proprio il componente che assicura che le
applicazioni siano sempre attive e disponibili,eliminando ogni volta i
punti di failure del sistema tramite la politica del Failover
Oltre a gestire il failover, il Cluster Service si occupa anche dei
Cluster Objects, dei dischi, della configurazione del Cluster e di tutte
le comunicazioni che ci sono tra i server del sistema e tutte le
applicazioni che vi appartengono
Fondamentalmente questo servizio viene utilizzato in tutti quei
sistemi come i Back-End system che hanno costantemente bisogno
che le loro applicazioni siano sempre attive
Opera su sistemi formati al più da 2/4 server
Vantaggi del Cluster Service
n
n
n
n
Riduzione drastica del periodo di tempo in cui un server di un
Cluster viene considerato “down” grazie alla politica del Failover
e conseguente applicazione delle varie politiche di Failback
Grande possibilità di operare gli upgrade del sistema senza
perdere in prestazioni proprio perché il Cluster Service è stato
progettato per garantire un aggiornamento del sistema in modo
completamente trasparente all’utente. Questo avviene facendo
migrare da un nodo all’altro le varie applicazioni, operando l’upgrade
sul primo nodo e quindi riportando le applicazioni sul nodo di
partenza.
Grande gestibilità di tutto il sistema grazie alla presenza del
Cluster Administrator che permette all’amministratore di definire
tutte le varie politiche di controllo e di gestione.
Questo tool inoltre permette di visualizzare, monitorare e modificare
tutte le risorse del Cluster da una unica locazione, che può essere
anche remota, senza nuovamente dover portare offline le varie
applicazioni su cui si deve andare ad operare.
6
Network Load Balancing
n
n
n
Questo tipo di servizio viene generalmente utilizzato per bilanciare il
traffico IP in un cluster multi-node
Si usano NLB servers quando si vuol gestire nel migliore dei modi
Web Servers oppure Front-end system che devono supportare un
notevole carico di richieste da parte di più utenti e che non devono
calare in prestazioni anche se un computer della rete smette di
funzionare
Il NLB supporta reti di computer che possono comprendere fino a 32
server.
Vantaggi di NLB
n
Scalabilità
sistemi dinamicamente scalabili
operazione di balancing trasparente all’utente
¨ Scalabilità possibile tramite scale out, eliminazione colli di bottiglia
¨
¨
n
Alta disponibilità
Gestione del failover
Nel Cluster Service, ad ogni failure del sistema, le applicazioni coinvolte
venivano spostate direttamente sull’altro nodo del cluster e in seguito venivano
riportate sul cluster di origine; invece NLB ripartisce automaticamente il traffico
sui server disponibili del cluster
¨ Le operazioni sono automatiche e il tempo di reazione è molto piccolo (10 s); in
questo modo l’utente ottiene sempre le massime prestazioni
¨
¨
LIMITI
Il cluster non riesce a garantire l’integrità dei dati dell’utente quando avvengono
guasti. Ogni applicazione deve gestire autonomamente tale eventualità
n
7
Componenti dell’architettura del cluster server
Componenti software:
n Cluster Service;
n Uno o più Resource Monitor;
n Uno o più Resource DLLs;
n Cluster Network Driver;
n Cluster Administrator;
Componenti hardware:
n Cluster Server Objects (che generalmente comprendono i nodi del
sistema)
n le networks
n le risorse
n i resource type
n gruppi di risorse.
Componenti hardware
n
Nodi: ogni macchina che fa parte del cluster; può essere sia attivo
che passivo
¨
¨
n
ATTIVO: un nodo viene definito attivo quando sta effettivamente
gestendo tutte le richieste che gli vengono inoltrate dai clienti.
PASSIVO: un nodo viene definito passivo quando si viene a trovare in
situazione di standby, ovvero è in attesa che un altro nodo del sistema
“cada”, per sostituirsi ad esso; in questo caso si dice anche che si trova
nello stato idle.
NETWORK: rete attraverso cui i nodi del cluster possono
comunicare
¨
¨
¨
¨
Private network o Interconnect: rete usata esclusivamente per le
comunicazioni interne tra i vari nodi del cluster .
Internet: rete altamente usata, viene impiegata esclusivamente per le
comunicazioni tra i clienti del sistema e i nodi del cluster.
Corporate network: rete impiegata sia per le comunicazioni interne al
sistema, sia per le connessioni con i clienti.
Figura
8
Componenti hardware - Resources
n
RESOURCES: le risorse di un cluster sono entità fisiche o logiche che
hanno le seguenti caratteristiche:
Possono essere portate online oppure offline dal clustering software;
Possono essere amministrate da un sistema di server cluster;
¨ Possono essere possedute da un solo nodo alla volta;
¨ Forniscono servizi ai clienti del cluster;
¨
¨
Una risorsa può assumere i seguenti stati:
Offline: è lo stato in cui una risorsa risulta non disponibile sia ai clienti sia a
qualsiasi altra risorsa;
¨ Online: è lo stato in cui una risorsa è attiva e disponibile;
¨ Failed: si ha quando una risorsa non riesce né ad essere riportata online, né
offline dopo un determinato intervallo di tempo.
¨ Pending states: la risorsa si trova negli stati online pending oppure offline
pending quando è in corso il processo o di attivazione o di disattivazione della
stessa. Se dopo un determinato intervallo di tempo la risorsa si trova ancora
nello stato pendente, allora il suo stato verrà settato su failed.
¨
Componenti hardware - Resource types
n
RESOURCE TYPES:
¨
¨
le risorse di un cluster sono organizzate per tipo e sono caratterizzati da
un particolare set di codici di controllo
Il Cluster Server definisce diversi tipi di risorse e fornisce le appropriate
resource DLL per gestire questi tipi:
n
n
n
n
n
n
n
Generic Application
Generic Service
Physical Disk
IP Address
Network Name
Time Service
Ai resource types sono associate anche delle particolari proprietà,
definite anche attributi. Due tipi di proprietà:
¨
¨
Common: può essere applicata a tutte le risorse del cluster
Private: può essere applicato solo a determinate risorse
9
Componenti hardware – Resource Group
n
n
n
RESOURCE GROUP: sono fondamentalmente collezioni di cluster
resources, tipicamente composti da risorse dipendenti o correlate
logicamente fra loro
Ogni risorsa di un gruppo può dipendere da altre risorse all’interno
del cluster e queste dipendenze indicano quale tra le risorse deve
essere attiva e disponibile prima di farne partire un’altra
Le dipendenze tra risorse diventano di estrema importanza quando
ci troviamo in una situazione di failure di un server e le risorse
devono essere trasferite: l’ordine di trasferimento, infatti, è proprio
dettato da queste relazioni di interdipendenza tra le risorse
La quorum resource
n
n
Ogni cluster ha una particolare ed importantissima risorsa: la Quorum
Resource.
Può diventare quorum resource qualsiasi risorsa con le seguenti
caratteristiche:
deve poter offrire un mezzo di “arbitraggio persistente”. Questo significa che la
quorum resource deve permettere solo ad un singolo nodo per volta di prendere
il possesso fisico della stessa e soprattutto di mantenerne il controllo dopo
averne preso possesso.
¨ deve poter offrire un supporto fisico di immagazzinamento dei dati che possa
essere accessibile anche agli altri nodi del cluster.
¨
n
n
n
E’ fondamentale e garantisce che solo un set di nodi attivi e comunicanti
possa operare come un cluster, nella situazione in cui i nodi di un sistema
siano attivi ma non possano comunicare tra di loro (esempio di più set di
nodi)
La quorum resource, inoltre, ha accesso alla più recente versione del
cluster database e dei dati essenziali per un eventuale recovery del sistema
Generalmente l’unica risorsa che può diventare quorum resource è il disco
10
Componenti software
n
Le comunicazioni tra i vari nodi di un cluster sono monitorate e
gestite dal Cluster Network Driver un particolare componente
software avente due funzioni fondamentali:
¨
¨
n
n
garantire una comunicazione tra server sempre disponibile e attiva
tramite il monitoraggio continuo dello stato di tutte le network del
sistema
rilevare le possibili failure di un nodo, mantenendo però attive le
comunicazioni tra gli altri server (heartbeats)
Generalmente le risorse sono implementate come Dynamically
Linked Library (DLL) e vengono memorizzate nello spazio di
indirizzamento dei vari Resource Monitors
Per default il Cluster Service crea un solo Resource Monitor per
interagire con tutte le risorse presenti in un nodo, ma è anche
possibile che ne esistano più di uno su di una singola macchina
Componenti software
n
n
Il Cluster Service usa le DLL per portare online le risorse, gestire le
loro interazioni con le altre risorse del cluster e, più importante di
tutto, per monitorare il loro stato di salute, evitando così situazioni di
failure.
Il resource monitor si trova in un processo separato dal Cluster
service sostanzialmente per due motivi:
¨
¨
principalmente per proteggere il Cluster Service dalle failure delle
risorse
in secondo luogo per permettere al Resource Monitor di agire
ugualmente se per caso si ha una failure del Cluster Service portando
nello stato di offline tutte le risorse e i gruppi che si trovavano sul nodo
“caduto”.
11
Componenti software – Cluster administrator
n
n
E’ un tool grafico che permette l’amministrazione delle applicazioni e
dei servizi
Le funzioni offerte da questo componente agli amministratori di
sistema sono molteplici e spaziano dal poter configurare le
caratteristiche dei vari gruppi di risorse al definire le diverse politiche
di failover e failback, dal monitoraggio delle attività del cluster alla
manutenzione dello stesso.
Networks
<
12
Resource monitor
<
13
Scarica

presentazione