buone soluzioni di failover / alta disponibilità per Linux? [chiuso]


9

Ho diversi casi in cui ho bisogno che le applicazioni vengano migrate da un server a un altro in caso di errore (blocco o arresto del server).

Su Solaris lo facciamo con VCS (Veritas Cluster Server). Quali opzioni sono disponibili per Linux?

Indicare il livello di impegno per l'installazione / manutenzione o il costo (se presente) per ciascuno.

- Altri dettagli aggiunti -

Per dare un'idea del livello di complessità:

  • il server non funzionante potrebbe bloccarsi o arrestarsi in modo anomalo senza preavviso, potrebbe comunque essere "abilitato al ping"
  • il server di ripristino deve avviare le sue applicazioni in caso di failover
  • una volta che il server non si avvia / si spegne e si accende, diventa passivo per non interferire con il server di recupero.

Questa è una raccolta dati o un nodo di calcolo, non un database, quindi potrebbero funzionare soluzioni più semplici.

- ancora più dettagli (scusate) -

l'archiviazione condivisa non è un'opzione, ma non molto stato (se presente) deve migrare da un server all'altro. Manteniamo i due server sincronizzati tramite rsync.

Grazie mille per tutti i post finora.

Risposte:



4

Ho usato una varietà di soluzioni cluster su Linux. Sono anche un sostenitore della gestione della configurazione, quindi aggiungerò un po 'di questo nelle mie descrizioni (Chef o Puppet, cioè)

Veritas Cluster Server (VCS). È passato un po 'di tempo, ma abbiamo distribuito alcuni cluster VCS Linux su RHEL 3.0. Spero che sia disponibile su RHEL 5.0. Dovresti avere familiarità con la difficoltà di impostare questo, come il suo territorio familiare. Come forse saprai, VCS è costoso. Aneddoticamente, VCS non è adatto per essere impostato dalla gestione della configurazione.

Parlando di RHEL, Red Hat Cluster Suite è maturato molto dalla sua versione originale con RHEL 2.1. La fase di installazione / configurazione è piuttosto semplice e la documentazione è molto completa e utile e, come VCS, è possibile acquistare supporto dal fornitore. Per i prodotti commerciali HA, RHCS ha un prezzo ragionevole. Vorrei solo utilizzare la gestione della configurazione per installare i pacchetti e mantenerli "a mano" attraverso l'interfaccia web. Inoltre, ho sentito di alcune persone che lo usano su piattaforme non Red Hat, anche se non ho esperienza diretta con quello.

Anche Linux-HA (drbd / heartbeat) sono fantastici, anche se proveniente da VCS la configurazione può sembrare semplicistica, ma ingombrante. È abbastanza facile da automatizzare con uno strumento di gestione della configurazione.

Come prova di concetto, ho installato un cluster Linux con HACMP di IBM, il loro software di clustering AIX. Non lo consiglierei, poiché ricordo che è più costoso anche del VCS. IBM ha procedure specifiche per l'installazione e la manutenzione di HACMP, non vorrei utilizzare la gestione della configurazione qui.


4

Michael ha ragione sul fatto che la comunità è un po 'fratturata in questo momento e la documentazione è un po' scarsa.

In realtà, è tutto lì, è semplicemente impossibile da capire. Quello che vuoi veramente è l'ebook "Pacemaker Configuration Explained" ... ( Link al PDF ). Ti consigliamo di leggerlo una dozzina di volte, quindi prova a implementarlo, quindi a leggerlo un'altra dozzina di volte in modo da poterlo effettivamente esaminare.

La migliore implementazione supportata dei servizi cluster per Linux a questo punto probabilmente sarà la SLES11 di Novell e la sua HAE (High Availability Extension). È appena uscito un mese o due fa e viene fornito con un bel manuale di 200 pagine che descrive come configurarlo e far funzionare le cose. Novell è stato anche eccellente nel supportare le configurazioni di Pacemaker in varie forme.

Oltre a ciò, c'è l'implementazione di RHEL5, che ha lo stesso pacchetto e documentazione decente, ma penso che sia più costoso di SLES. Almeno, è per noi.

Eviterei Heartbeat in questo momento e andrei con Pacekmaker / OpenAIS perché saranno supportati molto meglio in futuro. TUTTAVIA, lo stato attuale della comunità è tale che ci sono alcuni esperti, ci sono alcune persone che lo gestiscono in produzione e ci sono un sacco di persone che sono completamente all'oscuro. Unisciti alla mailing list di Pacemaker e presta attenzione a un uomo di nome Andrew Beekhof.

Modifica per fornire i dettagli richiesti:

Pacemaker / OpenAIS utilizza un'operazione di "monitoraggio" su una "risorsa primitiva" (ad esempio nfs-server) per tenere traccia di ciò che la risorsa sta facendo. Se il server NFS di esempio non risponde al resto del cluster per X numero di secondi, il cluster eseguirà un'operazione STONITH (Shoot The Other Node In The Head) per chiudere il nodo primario, promuovendo il nodo secondario su attivo. Decidi nella configurazione cosa portare in seguito e le azioni associate da intraprendere. I dettagli di implementazione da lì dipendono dal servizio che si sta tentando di eseguire il failover, dalle finestre di esecuzione per determinate operazioni (come la promozione del nodo primario al master) e il tutto è praticamente configurabile il più possibile.


1

La comunità Linux HA è un po 'partizionata al momento.

Gli strumenti precedentemente noti come Linux HA sono attualmente Pacemaker e OpenAIS , che spesso vengono eseguiti in combinazione con DRBD quando è necessaria un'architettura a nulla condiviso.

Suggerisco di prendere un buon libro su questo argomento prima di immergersi, poiché questa è un'area abbastanza completa e lo stato dei progetti non è necessariamente facile da usare come alcune soluzioni del fornitore.

Esistono anche soluzioni Linux di alcuni dei fornitori di software cluster, ma non posso dirvi molto su quelli poiché non li ho mai usati da solo.


1
Potresti suggerire un buon libro o due su questo argomento?
Matt Simmons,

1

Con Linux abbiamo implementato il clustering con heartbeat e drbd. Heartbeat controlla lo stato del server. DRBD viene utilizzato per la sincronizzazione dei dati tra server. Abbiamo un servizio Oracle in esecuzione su un server e apache su un altro server. Quando il server che esegue Oracle fallisce, il battito cardiaco rileva lo stesso e ripristina il servizio Oracle sul server che esegue apache. e viceversa. Hanno utilizzato questa configurazione per molti altri scopi e sono stati affidabili fino ad oggi.


1

Red Hat Cluster Suite farà ciò che desideri praticamente per ogni possibile applicazione. In combinazione con GFS e Cluster LVM puoi avere una solida memoria condivisa.

La manutenzione non è molto più difficile quindi mantenere in funzione le singole scatole. La migrazione dell'applicazione semplifica, in realtà, l'applicazione di patch alle singole caselle.

RHCS viene fornito con un frontend Web (Luci) e un frontend GTK (system-config-cluster) per rendere selezionabile la configurazione e la migrazione. Ti consentirà di configurare domini di failover per applicazione, criteri di recupero, recinzione, tutto da un'unica console di gestione centrale basata sul web.

Considerando il fatto che RHCS ha in realtà un'opzione di supporto piuttosto solida, sceglierei RHCS.

Non sono sicuro di quanto ti costerebbe, ma immagino sia nel raggio di diverse migliaia di dollari.


1

UltraMonkey , in parte costruito sulla base del framework Linux-HA. L'ho sempre considerato più una soluzione di bilanciamento del carico che un vero cluster, ma gestisce bene il failover.


È ancora aggiornato? il sito web dice:Copyright © 2000-2005, Horms Last Updated: Sat Mar 4 16:33:57 2006 +0900
NickW,

0

Usiamo Linux Virtual Server e mantenuti in vita per la nostra elevata disponibilità. keepalived può fare VRRP sugli host stessi (cosa che credo si basi sulla morte dell'altro server) oppure puoi configurarlo su un host separato per eseguire il bilanciamento del carico, che può avere controlli di disponibilità del servizio. Potrebbe essere possibile configurare i controlli di servizio nella prima situazione ma non ho verificato. La seconda situazione è particolarmente buona se è possibile avere entrambi i server in esecuzione contemporaneamente, altrimenti è possibile passare manualmente.


0

Ho scritto un bilanciamento del carico basato su software per TCP che non richiede una macchina separata. Condivide un singolo indirizzo IP annunciandolo su un indirizzo multicast a livello di collegamento e negoziando tra macchine per evitare che due macchine servano la stessa connessione TCP.

Il lato negativo è che non è davvero pronto per la produzione, ma se si desidera testarlo sulla propria rete di test, sarei contento.

Fluffy cluster è qui

Non rilevo necessariamente una situazione "viva ma malata", ma eseguo il bilanciamento del carico tra i server membri (se il processo di spazio utente muore, gli altri nodi noteranno e rimuoveranno il nodo guasto)


0

Non è gratuito, ma coloro che non hanno il tempo o la competenza per installare la propria soluzione HA su Linux, la risposta è su www.rapidscaleclusters.com. In pochi minuti sei pronto e funzionante, facile da installare ed eseguire, è anche supportato.


non so perché qualcuno l'abbia contrassegnato ... sembra una soluzione praticabile (anche se ci sono sempre problemi tecnici ... almeno questo non sembra un "servizio" che è stata la mia prima impressione).
ericslaw,

0

Sto lavorando a un gestore di cluster di failover open source scritto nello script della shell. È in buona forma anche se può mancare qualche integrazione di cui avrai bisogno. Dai un'occhiata e fammi sapere se ci sono alcune funzioni mancanti che vorresti vedere e usare: https://github.com/nackstein/back-to-work/

se sei bravo a programmare la shell (POSIX shell), puoi partecipare allo sviluppo del progetto: D

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.