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