Un cluster è un gruppo di computer (nodi) che lavorano insieme per fornire una soluzione condivisa. Ad alto livello, un cluster può essere visto come composto da tre parti (spesso definite come stack di cluster).
Concetti di base
- Risorse: Questi sono i motivi per cui il cluster è i servizi che devono essere mantenuti altamente disponibili.
- Agenti di risorse: Si tratta di script componenti del sistema operativo che avviano, arrestano e monitorano le risorse, dato un insieme di parametri delle risorse.
- Agenti di recinzione: Si tratta di script che eseguono azioni di fencing di un nodo, dati un dispositivo target e fencing.
- Scherma: La possibilità di disabilitare i nodi.
- Quorum: Incapsula la capacità di determinare se il cluster può continuare a funzionare in sicurezza o meno.
Tipi di cluster
I quattro tipi sono i seguenti:
- Alta disponibilità (HA): Utilizzato per la tolleranza ai guasti per mantenere i servizi server disponibili per dipendenti o clienti.
- Bilanciamento del carico: Bilancia il carico tra più sistemi quando un servizio deve essere disponibile per più sistemi contemporaneamente (può essere utilizzato per altri tre tipi di cluster).
- Distribuito: I lavori saranno gestiti da diversi sistemi.
- Parallelo (Beowulf): I lavori sono gestiti da più processori su più sistemi.
Oltre alla configurazione ci sono diversi tipi di cluster:
- Raggruppamento manuale: Ti consente di classificare, unire e dividere i cluster manualmente se l'output degli algoritmi di ordinamento automatico dei picchi non è soddisfacente.
- Unire i cluster: Quando più cluster sembrano corrispondere alla stessa unità.
- Dividi i cluster: Puoi creare un nuovo cluster disegnando un poligono attorno a una serie di picchi nella vista delle funzioni, nella vista dell'ampiezza, nella vista dell'ampiezza del modello o nelle viste degli attributi dei picchi.
NOTA: Qui in Rackspace, utilizziamo principalmente cluster HA e talvolta LB. In Rackspace utilizziamo il termine Red Hat Cluster Suite (RHCS) su RHEL 6 e Pacemaker Configuration System csd daemon daemon (PCS) su RHEL 7 per fornire connettività tra i nodi del cluster e fornire una piattaforma per i servizi in cluster.
La suite cluster fornisce strumenti per la creazione, la configurazione e il controllo del cluster.
Motivi per avere un cluster
Esistono diversi motivi per utilizzare un cluster. Li utilizziamo per fornire un back-end resiliente e altamente disponibile per le soluzioni. Questo è principalmente per servizi di back-end come MySQL, NFS o Redis, dove il servizio può essere dietro un front-end di server web.
L'elevata disponibilità viene fornita tramite il failover automatico:se si verifica un errore su un nodo del cluster, i servizi del cluster in esecuzione su quel nodo verranno trasferiti automaticamente su un nodo che funziona correttamente.
I cluster utilizzeranno generalmente l'archiviazione condivisa (SAN) in modo che i dati siano persistenti quando i servizi si spostano tra i nodi.
Nel caso in cui un nodo non risponda, in genere quel nodo verrà riavviato (recintato) da altri nodi al fine di preservare l'integrità dei dati dello storage condiviso e la proprietà dell'IP mobile.
Linux Open Source ad alta disponibilità Clustering
Alcuni fornitori di sistemi operativi Linux offrono software di clustering, come SUSE Linux HAE; Red Hat Enterprise Linux (RHEL); e Oracle Real Application Clusters (RAC).
Sebbene consentano di creare un cluster di failover, presentano una serie di sfide, che sono altamente manuali e soggette a errori umani.
Le estensioni HA open source di Linux richiedono un alto grado di competenza tecnica, creando problemi di complessità e affidabilità che sfidano la maggior parte degli operatori.
SUSE
SUSE Linux Enterprise Server e Red Hat Enterprise Linux entrambe le soluzioni offrono sia un ambiente SAN che SANless, ma richiedono che un software di replica chiamato DRBD sia installato e configurato nel sistema operativo per supportare la replica dei dati nell'ambiente SANless. Sfortunatamente, ciò richiede un pesante scripting personalizzato, che può richiedere molto tempo per essere testato e convalidato e richiede un nuovo test quando vengono apportati aggiornamenti all'ambiente. Dal momento che queste aziende sono prima di tutto società di sistemi operativi, il loro supporto è orientato ai problemi a livello di sistema operativo e spesso c'è poca o nessuna esperienza di HA per aiutare un cliente con i loro problemi.
Oracle Reak Application Clusters (RAC)
Oracle RAC è una soluzione ad alta disponibilità, ma è progettata principalmente per il livello di gestione del database. Ciò significa che avrai bisogno di una soluzione HA diversa per quei componenti che effettuano il monitoraggio, la gestione e il ripristino dei livelli dell'applicazione. Oracle RAC è anche molto costoso e richiede l'aggiornamento a Oracle Enterprise Edition oltre a pagare per l'opzione RAC, rispetto ad altre soluzioni di clustering Linux, come SIOS Protection Suite.
SIOS Protection Suite per il clustering Linux
SIOS Protection Suite per Linux offre una combinazione strettamente integrata di clustering di failover ad alta disponibilità, monitoraggio continuo delle applicazioni, replica dei dati e policy di ripristino configurabili, proteggendo le vostre applicazioni business-critical da downtime e disastri. Sebbene SIOS Protection Suite possa operare in un ambiente SAN per supportare un tradizionale cluster HA basato su hardware, l'architettura adotta un approccio "shared-nothing" al clustering di server consentendogli di eseguire SANless. Offre una soluzione robusta, versatile e facilmente configurabile con criteri di failover/ripristino failback automatici e manuali per un'ampia varietà di applicazioni.
SIOS Protection Suite per Linux include:
- SIOS LifeKeeper: Fornisce un software di clustering di failover flessibile che monitora l'intero stack dell'applicazione.
- SIOS DataKeeper: Fornisce una replica dei dati a livello di blocco basata su host veloce ed efficiente per il mirroring dell'archiviazione locale in una configurazione cluster senza SAN o la replica in posizioni remote o nel cloud per il ripristino di emergenza.
- Kit di ripristino per applicazioni multiple (ARK): Con strumenti di configurazione e convalida automatizzati integrati nel prodotto per proteggere le applicazioni ei dati business-critical da tempi di inattività e disastri.
È la profonda conoscenza del team SIOS nel ripristino delle applicazioni e nell'automazione della soluzione di monitoraggio e ripristino delle applicazioni che ne semplifica l'utilizzo e rappresenta una scelta migliore e meno costosa rispetto alle soluzioni di clustering Linux offerte da SUSE, Red Hat e Oracle.
Inoltre, SIOS LifeKeeper supporta tutte le principali distribuzioni Linux, inclusi Red Hat Enterprise Linux, SUSE Linux Enterprise Server, CentOS e Oracle Linux e supporta un'ampia gamma di architetture di storage. Il software SIOS è stato adattato e ottimizzato per essere eseguito su questi sistemi operativi e i componenti sono stati testati in modo da garantire che la soluzione cluster SANless funzioni su ciascun sistema operativo.
Infine, con SIOS Protection Suite per Linux, puoi eseguire le tue applicazioni business-critical in un ambiente cloud flessibile e scalabile, come Amazon Web Services (AWS) senza sacrificare prestazioni, alta disponibilità o protezione dai disastri.
Clustering Linux in AWS
Sebbene i fornitori di servizi cloud, come AWS, forniscano opzioni di disponibilità elevata, non forniscono il livello di disponibilità elevata e ampiezza di protezione nell'intera infrastruttura applicativa che i clienti richiedono e che una volta ottenevi utilizzando i cluster prima del cloud computing. Ecco perché AWS collabora con SIOS. SIOS Protection Suite per Linux raggiunge questi livelli desiderati di alta disponibilità per i nostri clienti comuni e le applicazioni critiche che stanno spostando nel cloud AWS.
SIOS Protection Suite per Linux su AWS fornisce tutti gli elementi necessari per creare un cluster Linux ad alta disponibilità in un cloud privato virtuale (VPC) all'interno di una singola regione AWS in due zone di disponibilità. Supporta inoltre la protezione immediata per sistemi SAP, database Oracle e altre applicazioni business-critical.
SIOS e AWS offrono SIOS Protection Suite Quickstart su AWS, che ti aiuta a creare un cluster Linux ad alta disponibilità completamente configurato e operativo in pochi e brevi passaggi. Configura un'architettura AWS per SIOS Protection Suite per Linux e la distribuisce nel tuo account AWS in circa mezz'ora. Questo Quick Start, disponibile in AWS Marketplace, è rivolto agli utenti aziendali che desiderano distribuire SIOS Protection Suite per Linux su AWS nel proprio ambiente di test o produzione.
Gruppo SIOS per Linux
SIOS è un'azienda ad alta disponibilità che negli ultimi 20 anni si è concentrata sulla fornitura di HA specificamente progettata per SAP, SQL, Linux, Oracle e altre applicazioni. La sua esperienza è incorporata nel suo prodotto e l'installazione e la configurazione richiedono una frazione del tempo e dei costi rispetto allo scripting personalizzato con le distribuzioni Linux. Inoltre, SIOS testa e convalida nuove versioni di sistemi operativi e applicazioni in modo che i suoi clienti non debbano farlo. Quando un cliente chiama SIOS per il supporto, viene connesso a un esperto di alta disponibilità, qualcuno che si concentra solo su HA e lo fa da molto tempo.
In Linux il software più utilizzato è Pacemaker
Panoramica del pacemaker
L'infrastruttura del cluster High Availability Add-On fornisce le funzioni di base per consentire a un gruppo di computer (denominati nodi o membri) di lavorare insieme come un cluster. Una volta formato un cluster utilizzando l'infrastruttura del cluster, è possibile utilizzare altri componenti in base alle proprie esigenze di clustering (ad esempio, configurare un cluster per la condivisione di file su un file system GFS2 o configurare il failover del servizio). L'infrastruttura del cluster svolge le seguenti funzioni:
- Gestione cluster.
- Gestione della serratura.
- Scherma.
- Gestione della configurazione del cluster.
Architettura pacemaker
Un cluster configurato con Pacemaker comprende daemon di componenti separati che monitorano l'appartenenza al cluster, script che gestiscono i servizi e sottosistemi di gestione delle risorse che monitorano le diverse risorse. I seguenti componenti formano l'architettura Pacemaker:
Base informativa del cluster (CIB)
Il daemon delle informazioni di Pacemaker, che utilizza XML internamente per distribuire e sincronizzare la configurazione corrente e le informazioni sullo stato dal Designated Coordinator (DC), un nodo assegnato da Pacemaker per archiviare e distribuire lo stato e le azioni del cluster tramite il CIB a tutti gli altri nodi del cluster.
Daemon di gestione delle risorse cluster (CRMd)
Le azioni delle risorse del cluster Pacemaker vengono instradate tramite questo daemon. Le risorse gestite da CRMd possono essere interrogate dai sistemi client, spostate, istanziate e modificate quando necessario.
Ciascun nodo del cluster include anche un daemon di gestione delle risorse locali (LRMd) che funge da interfaccia tra CRMd e le risorse. LRMd trasmette i comandi da CRMd agli agenti, come l'avvio, l'arresto e l'inoltro delle informazioni sullo stato.
Spara all'altro nodo alla testa (STONITH)
Spesso implementato insieme a un interruttore di alimentazione, STONITH funge da risorsa cluster in Pacemaker che elabora le richieste di fencing, spegnendo forzatamente i nodi e rimuovendoli dal cluster per garantire l'integrità dei dati. STONITH è configurato in CIB e può essere monitorato come una normale risorsa cluster.
corosync è il componente - e un demone con lo stesso nome - che soddisfa le esigenze di appartenenza di base e di comunicazione dei membri per i cluster ad alta disponibilità. È necessario per il funzionamento del componente aggiuntivo High Availability.
Oltre a quelle funzioni di appartenenza e messaggistica, corosync anche:
Gestisce le regole e la determinazione del quorum.
Fornisce funzionalità di messaggistica per le applicazioni che coordinano o operano su più membri del cluster e quindi devono comunicare informazioni stateful o di altro tipo tra le istanze.
Strumenti di configurazione e gestione di pacemaker
Pacemaker offre due strumenti di configurazione per la distribuzione, il monitoraggio e la gestione del cluster.
PCS può controllare tutti gli aspetti di Pacemaker e il daemon heartbeat di Corosync. Un programma basato su riga di comando, pcs può eseguire le seguenti attività di gestione del cluster:
- Crea e configura un cluster Pacemaker/Corosync.
- Modifica la configurazione del cluster mentre è in esecuzione.
- Configura in remoto sia Pacemaker che Corosync in remoto, nonché avvia, arresta e visualizza le informazioni sullo stato del cluster.
Interfaccia utente Web pcsd
Un'interfaccia utente grafica per creare e configurare cluster Pacemaker/Corosync, con le stesse caratteristiche e capacità dell'utilità pcs basata sulla riga di comando.
Per mantenere l'integrità e la disponibilità del cluster, i sistemi cluster utilizzano un concetto noto come quorum per prevenire il danneggiamento e la perdita dei dati. Un cluster ha il quorum quando più della metà dei nodi del cluster sono online. Per ridurre la possibilità di danneggiamento dei dati a causa di un errore, Pacemaker interrompe per impostazione predefinita tutte le risorse se il cluster non ha il quorum.
In un sistema di cluster, possono esserci molti nodi che lavorano su diversi dati di produzione vitali. I nodi in un cluster multinodo occupato potrebbero iniziare a funzionare in modo irregolare o diventare non disponibili, richiedendo un'azione da parte degli amministratori. I problemi causati dai nodi del cluster errati possono essere mitigati stabilendo una politica di fencing.
Quando Pacemaker determina che un nodo è guasto, comunica ad altri componenti dell'infrastruttura del cluster che il nodo è guasto. STONITH blocca il nodo guasto quando viene notificato l'errore. Altri componenti dell'infrastruttura del cluster determinano le azioni da intraprendere, inclusa l'esecuzione di qualsiasi ripristino necessario. Ad esempio, DLM e GFS2, quando vengono informati di un errore del nodo, sospendono l'attività fino a quando non rilevano che STONITH ha completato il fencing del nodo guasto. Dopo aver confermato che il nodo guasto è protetto, DLM e GFS2 eseguono il ripristino. DLM rilascia i blocchi del nodo guasto; GFS2 recupera il journal del nodo guasto.
La recinzione a livello di nodo tramite STONITH può essere configurata con una varietà di dispositivi di recinzione supportati, tra cui:
- Gruppo di continuità (UPS): Un dispositivo contenente una batteria che può essere utilizzata per isolare i dispositivi in caso di interruzione di corrente.
- Unità di distribuzione dell'alimentazione (PDU): Un dispositivo con più prese di alimentazione utilizzato nei data center per la distribuzione di energia pulita, nonché per i servizi di recinzione e isolamento dell'alimentazione.
- Dispositivi di controllo della potenza della lama: Sistemi dedicati installati in un data center configurato per recintare i nodi del cluster in caso di guasto.
- Dispositivi a luci spente: Dispositivi connessi alla rete che gestiscono la disponibilità dei nodi del cluster e possono eseguire funzioni di fencing, accensione/spegnimento e altri servizi da parte degli amministratori in locale o in remoto.
Classi di risorse aggiuntive ad alta disponibilità di Red Hat
Esistono diverse classi di agenti di risorse supportate da Red Hat High Availability Add-On:
- LSB: L'agente Linux Standards Base astrae i servizi conformi supportati dall'LSB, vale a dire quei servizi in /etc/init.d ei codici di ritorno associati per gli stati di servizio riusciti e non riusciti (stato avviato, interrotto, in esecuzione).
- OCF: L'Open Cluster Framework è un superset di LSB (Linux Standards Base) che definisce gli standard per la creazione e l'esecuzione di script di inizializzazione del server, parametri di input per gli script che utilizzano variabili di ambiente e altro ancora.
- sistema di sistema: Il più recente gestore di servizi di sistema per sistemi basati su Linux, systemd utilizza set di file unit anziché script di inizializzazione come LSB e OCF. Queste unità possono essere create manualmente dagli amministratori o possono anche essere create e gestite dai servizi stessi. Pacemaker gestisce queste unità in modo simile agli script di inizializzazione OCF o LSB.
- Il nuovo arrivato: Proprio come systemd, Upstart è un gestore di inizializzazione del sistema alternativo per Linux. Upstart utilizza i lavori, al contrario delle unità negli script systemd o init.
- PIETRA: Un agente di risorse esclusivamente per servizi di scherma e agenti di recinzione che utilizzano STONITH.
- Nagios: Agenti che estraggono i plug-in per il sistema Nagios e lo strumento di monitoraggio dell'infrastruttura.
Risorse di monitoraggio
Per garantire che le risorse rimangano integre, puoi aggiungere un'operazione di monitoraggio alla definizione di una risorsa. Se non specifichi un'operazione di monitoraggio per una risorsa, per impostazione predefinita il comando pcs creerà un'operazione di monitoraggio, con un intervallo determinato dall'agente della risorsa.
Vincoli delle risorse
È possibile determinare il comportamento di una risorsa in un cluster configurando i vincoli. Puoi configurare le seguenti categorie di vincoli:
- Limiti di posizione: Un vincolo di posizione determina su quali nodi può essere eseguita una risorsa.
- Limiti sugli ordini: Un vincolo di ordine determina l'ordine di esecuzione delle risorse.
- vincoli di ubicazione: Un vincolo di colocation determina dove verranno collocate le risorse rispetto ad altre risorse.
Come scorciatoia per configurare un insieme di vincoli che individueranno un insieme di risorse insieme e garantiranno che le risorse inizino in sequenza e si interrompano in ordine inverso, Pacemaker supporta il concetto di gruppi di risorse.
Gruppi di risorse
Uno degli elementi più comuni di un cluster è un insieme di risorse che devono essere posizionate insieme, avviate in sequenza e arrestate nell'ordine inverso. Per semplificare questa configurazione, Pacemaker supporta il concetto di gruppi.
Si crea un gruppo di risorse con il comando pcs Resource, specificando le risorse da includere nel gruppo. Se il gruppo non esiste, questo comando crea il gruppo. Se il gruppo esiste, questo comando aggiunge risorse aggiuntive al gruppo. Le risorse inizieranno nell'ordine specificato con questo comando e si fermeranno nell'ordine inverso rispetto all'ordine di partenza.
Riferimenti
- Componenti del cluster - Clusterlabs
- Sindrome del cervello diviso - Techtarget
- Gruppo Linux - SIOS
- Raggruppamento - phy
- Cluster Linux - Linux.org
- Introduzione ai cluster - Linux Blimp
- Panoramica del pacemaker - Red Hat
Utilizza la scheda Feedback per inserire commenti o porre domande. Puoi anche avviare una conversazione con noi.