Elevata disponibilità del server per una piccola impresa


11

Dopo aver avuto un po 'di paura con un server che non sarebbe venuto fuori una mattina, i più alti hanno deciso che l'azienda ha bisogno di un'alta disponibilità / failover sull'installazione.

Abbiamo 5 server principali (4x Linux, 1x OpenBSD) che devono essere in esecuzione affinché l'azienda funzioni. Tre dei server sono abbastanza standard (File / Web / Database), il quarto gestisce la maggior parte del routing di rete e proxy Web, mentre il quinto supporta il nostro sistema telefonico e ha hardware non standard.

Il mio capo ha dichiarato che il tempo di inversione per un errore del server dovrebbe essere inferiore a 30 minuti.

La mia esperienza in questo campo è inesistente (sono solo un programmatore che è stato "promosso"), quindi immagino che la mia domanda si riduca davvero a:

  • È qualcosa che dovrebbe anche essere tentato da qualcuno con una media capacità di amministratore del server. In tal caso, cosa dovrei leggere e con chi dovrei parlare?

Grazie.


Risposte:


5

Penso che dovresti iniziare riunendo i numeri per descrivere il costo associato al soddisfacimento del "requisito" dichiarato per vedere se rientra anche nel budget. Se non ti senti a tuo agio con tutti i metodi "normali" che verrebbero utilizzati per soddisfare il requisito (clustering di failover, hypervisor con funzionalità di "migrazione a caldo", ecc.), Probabilmente faresti bene a trovare un consulente che possa dare una mano.

Ci saranno dei costi associati allo studio di fattibilità, ma costerà molto meno scoprire che una buona soluzione non si adatta ai requisiti dichiarati (il che significa che le aspettative devono essere impostate in modo più realistico dal management-- o loro bisogno di fare più soldi) di quanto costerà per fare qualcosa di stupido che finisce per non soddisfare affatto il requisito e far esplodere un sacco di soldi nel processo.

Sembra che il tuo capo abbia appena estratto quel numero dall'aria. Forse ha fatto alcune analisi e sa qual è il costo orario associato ai tempi di inattività di vari sistemi, ma ne dubito. Sembra un numero a torta che non è legato alla realtà. Sarei sorpreso se tutti i tuoi sistemi necessitassero di quel tipo di disponibilità. Nel corso dello studio del business potrebbe essere che scopri che solo un sottoinsieme di funzionalità deve avere un tale grado di uptime e tolleranza agli errori (e, quindi, tale soluzione alla fine costerebbe meno). Sono sicuro che i telefoni e l'applicazione line-of-business sono lì, ma potresti avere una certa tolleranza per i tempi di inattività su alcuni degli altri sistemi.

Il mio istinto dice che probabilmente troverai una vittoria nell'utilizzo delle tecnologie di virtualizzazione per creare un sistema di failover basato sulla migrazione di macchine virtuali tra hardware ridondante. Se si adatta al tuo budget o meno dipenderà dalla tua attività, poiché avrai sicuramente bisogno di un tipo di SAN per farlo funzionare in modo efficace.

Tuttavia, non scartare i cluster di failover "tradizionali". Ci sono sicuramente "vittorie" anche lì, se le tue applicazioni sono adatte a tale configurazione.

Mi chiedo se il tuo capo abbia pensato a scenari di fallimento catastrofico (ustioni, alluvioni, tornado, furti, ecc.). Se ciò non è già stato pianificato, sarebbe un'occasione d'oro per lavorare in una pianificazione generale della continuità aziendale e nel caso di emergenza.

Chiedi aiuto a qualcuno che può entrare e studiare la tua attività e formulare raccomandazioni. Non te ne pentirai.


Grazie per la magnifica risposta. Sono sicuro che anche l'intervallo di tempo di 30 minuti è stato inventato sul posto.
Matteo,

In realtà, sospetto che "30 minuti" sia direttamente collegato al numero di reclami dei clienti che riceve in 30 minuti. I sistemi di failover per applicazioni puramente TCP / IP non sono così difficili. D'altra parte, i sistemi di failover per sistemi telefonici o VoIP che hanno un qualche tipo di collegamento con il PSTN, sono egregiamente costosi.
Ernie,

2

"Questa strada porta molto dolore e dolore ..."

Quindi, qual è il piano di continuità aziendale? Hai un piano di Disaster Recovery?

Ne hai discusso? Annotato? TESTATO?

Devi avere una conversazione adeguata con i "superiori" e arrivare davvero alla fine dei requisiti per l'alta disponibilità perché è diverso per i diversi servizi.

Qual è stato davvero il "punto dolente" che hanno provato quella mattina?

Era?

  • I telefoni hanno smesso di funzionare? Problema abbastanza grave (e visibile). E sì - questo avrà bisogno di una "soluzione", ma spero che questo sia sotto un accordo di supporto?
  • Sito Web fallito? OK: abbastanza visibile ma non inaspettato e, a meno che tu non abbia una presenza web ENORME, non è poi così importante. OK per avere questo server inattivo per alcune ore.
  • Server database inattivo? Spaventoso ... Spero che tu abbia dei buoni backup! Non perdere i dati altrimenti l'azienda fallirà. Ma, finché i dati sono al sicuro, è un server importante e dovrebbe avere un piano di ripristino.
  • File e stampa (e app interne ecc.). Questo è PITA per la maggior parte delle persone in quanto si siederanno intorno e non faranno nulla per una mattina mentre lo aggiusti.

Presumo che tu abbia acquistato hardware di alta qualità per i tuoi sistemi principali? Bene, perché risparmiare sull'hardware è una falsa economia in quanto questi server sono dotati di "doppio" tutto nella confezione.

Presumo anche che tu sappia COME ricostruire un server, scambiare ventole, alimentatori, creare un server rack, configurare reti a doppio percorso in switch ridondanti? Lo hai fatto abbastanza volte per capire cosa funziona e cosa no, cosa è normale e cosa è errato? In caso contrario, ottenere aiuto e formazione (o almeno pratica ed esperienza).

Forse gran parte del problema era PAURA. Non avevano la minima idea che potesse accadere un simile problema (e quanto fossero importanti i server per la loro attività) e non sapevi davvero cosa stavi facendo (?) Un problema di fiducia?

È necessario ottenere tutto quanto sopra PRIMA di scendere lungo la via HA molto costosa. Può l'azienda permettersi questa costosa attrezzatura (e la maggior parte, per definizione, sarà sempre e solo utilizzata in caso di guasto e spesso mai usata!)


Qual è un bel modo di dirlo; l'infrastruttura IT dell'azienda è cresciuta organicamente. Non esiste un piano di Disaster Recovery (ad eccezione di numerosi puntamenti e urla) e i nostri backup sono molto semplici. Il problema del mattino era un problema di alimentazione con il server che gestisce il routing per la maggior parte della nostra rete. In effetti, il nostro CRM, e-mail e telefoni sono rimasti inattivi per 30-40 minuti. Essendo un call center, durante quel periodo non fu fatto molto lavoro.
Matteo,

1
Il piano di ripristino di emergenza viene mantenuto sul server con le procedure di backup ... oops ... è quello che è andato in crash ...
Bart Silverstrim,

@Matthew - Se il tuo call center e la tua rete non funzionano, è ovvio che l'intera linea di business si interrompe. Pertanto, è necessario impegnarsi con l'alta dirigenza in una serie di piani e progetti per mitigarlo in futuro. Non lasciare che il management ti stia fottendo e aspettati che solo il TUO lavoro lo risolva: TUTTA L'IMPRESA FERMATA! Sii grato di aver ricevuto una lieve sveglia, non hai perso dati o server importanti (o, auspicabilmente, clienti). Prima cosa ... qualcuno dei tuoi server su UPS?
Guy,

1

Evan colpisce alcuni punti positivi, ma qui ci sono forse alcuni modi specifici per ottenere un tempo di recupero inferiore a 1 ora a fronte di guasti.

Piccola impresa probabilmente significa piccolo hardware, quindi potrebbe non essere un sacco di costi fare alcune cose semplici che in realtà aggiungono una quantità significativa di resilienza di fronte ai problemi. L'idea principale è avere l'hardware aggiuntivo pronto per l'uso.

Innanzitutto, mettiti comodo con il pensiero di un IP virtuale. Questo è l'indirizzo IP con cui gli utenti parleranno, ma può risiedere su qualsiasi server a cui lo dai. Questo è l'indirizzo IP che sei gli utenti e le applicazioni vorranno parlare. E sarà la più utile in definitiva per qualsiasi soluzione tu scelga. Avere un VIP significa che non dovresti dover riconfigurare nessuna delle applicazioni quando esegui il failover. Inoltre, tieni presente che avere hardware ridondante ha anche l'impatto di un sovraccarico amministrativo, facendo due aggiornamenti di configurazione invece di 1.

Se iniziamo con il tuo server proxy di routing / web, è probabilmente il più semplice poiché il loro non sarà uno stato reale che deve essere archiviato sulla scatola stessa. Quindi basta ottenere un duplicato della stessa scatola e configurarlo allo stesso modo. Terrei entrambi collegati al segmento LAN, e supponendo che tu sia internet su un'altra interfaccia, scamberei i cavi se il loro è un errore. Dal punto di vista del routing, imposti tutti i tuoi client lan per indirizzare l'indirizzo .1 (VIP) per la loro route predefinita e il server proxy fornisce al server A l'indirizzo .2 e al server B l'indirizzo .3. In questo modo possono entrambi essere gestiti per gli aggiornamenti di configurazione (vale per entrambi). E tutto ciò che devi fare per eseguire il failover è rimuovere l'assegnazione IP .1 da .2 e spostarla su .3, quindi spostare la connessione Internet sull'altra interfaccia. Non è molto complicato, facile da fare e da capire, e costa l'hardware aggiuntivo di una seconda scatola. Se riesci a ottenere ridondanza sul lato Internet, potresti aggiungere un po 'di complessità e ottenere il failover automatico usando qualcosa come VRRP.

Senza specifiche, è difficile da dire, ma il tuo server web potrebbe essere altrettanto semplice. Aggiungi un secondo server con configurazione identica, crea un vIP tra i due e sposta il VIP sul backup di fronte al fallimento. In genere non mi dispiace se lo stato della sessione viene perso in caso di failover (è un problema critico causare un failover). Quindi, se gli utenti devono accedere di nuovo, non è un grosso problema. Ancora una volta, vrrp può essere probabilmente utilizzato per il failover automatico.

Passando al tuo DB, questo è significativamente più complesso. La maggior parte dei DB ha una sorta di modello primario / secondario, in cui si esegue il backup del DB originale sul secondario, quindi si copiano tutti i registri delle transazioni o le modifiche del DB sul secondario. Ancora una volta, è possibile combinare questo con i VIP per le applicazioni / gli utenti che accedono effettivamente al DB. Tuttavia, il failover è più complicato. A seconda dell'errore del primario, potrebbe essere necessario mettere in funzione le unità per copiare e conservare i registri delle transazioni. Quindi porta l'attivo secondario. Se riesci a tollerare alcuni dati persi, puoi portare subito l'attivo secondario. Dopo il failover, il server B ora sei il principale e il tuo lavoro sarebbe ripristinare il server A e trasformarlo nel nuovo backup in modo che sia pronto per il fallimento quando il server b alla fine ha problemi.

I file server sono sempre la parte più difficile, poiché a differenza dei DB, è molto più difficile ottenere una funzionalità integrata del file system. Tuttavia, è possibile raggiungere un certo livello di resilienza disponendo di un secondo server e scrivere semplicemente uno script che scansiona il filesystem alla ricerca di modifiche e copia tutti i nuovi file su di te secondari. Fondamentalmente puoi eseguire rsync su un cron che credo per farlo. Ancora una volta, usi un VIP che dai agli utenti, che ti sposterai in caso di failover. Nel tuo script, ti consiglio caldamente di verificare che il sistema sia il proprietario del VIP prima di trasferire i file. Davvero davvero non vuoi che rsync venga eseguito nella direzione sbagliata e sovrascrivi le modifiche che stai facendo gli utenti. Questo potrebbe perdere alcuni file se il loro è un errore,

Non ho idea di cosa potresti fare sul tuo sistema telefonico ... dipende davvero dal venditore e da come è configurato. Il fornitore potrebbe avere una soluzione pronta all'uso per la resilienza.

Alcune ultime parole di avvertimento. Assicurati di testare accuratamente tutte le impostazioni che stai per seguire. Assicurati di sapere come eseguire il failover senza perdere tali informazioni critiche. Test test test per assicurarsi che funzionerà quando ne hai bisogno. Accertarsi di disporre di processi in grado di applicare correttamente le modifiche alla configurazione, gli aggiornamenti del software, ecc. Sia ai backup primari che a quelli di backup. La buona notizia è che probabilmente è possibile eseguire il failover controllato quando si desidera arrestare un server per l'aggiornamento, ecc. Non è un'impostazione attiva-attiva, quindi non si ha idea se il secondario funzionerà quando è necessario.

Lavoro nelle telecomunicazioni e le nostre apparecchiature sono estremamente ridondanti, incluso nella maggior parte dei casi la ridondanza geo-grafica. Il nostro punto di errore numero 1 è la ridondanza non viene testata dopo le modifiche e gli utenti apportano modifiche che non sanno come funziona il modello di ridondanza. Tuttavia, abbiamo l'ulteriore problema che tutte le nostre apparecchiature devono supportare il failover automatico in non più di alcuni secondi. Puoi tollerare un intervento manuale nei failover se devi essere attivo e funzionante entro 30-60 minuti. Devi solo essere preparato. In bocca al lupo.


perché usare un "IP virtuale" quando puoi usare il DNS? ecco a cosa serve. se un determinato servizio si sposta su un server diverso con un IP diverso, aggiorna il record A nel DNS in modo che corrisponda. gli utenti finali non dovrebbero avere bisogno di conoscere o ricordare gli indirizzi IP.
Cas

è anche una buona idea sfruttare il fatto che un indirizzo IP può avere più nomi che lo puntano in modo da poter impostare i record A o CNAME per servizi particolari - ad esempio "ntp", "file", "www", "ftp "," mx "e così via. in questo modo puoi spostare i servizi tra le macchine (o aggiungere altre macchine in un secondo momento) e semplicemente aggiornare la voce DNS per quel servizio.
CAS

DNS è un'opzione che può essere utilizzata. Nello spazio del corriere non lo usiamo davvero per nulla di critico, di solito non vale la complessità aggiunta. Sicuramente userei ancora i VIP per controllare il failover, ma potresti avere l'indirizzo DNS che punta a qualsiasi VIP che stavi usando. I nomi descrittivi sono carini, ma con recenti vulnerabilità di sicurezza ... e un totale di 5 server, perché ne hai bisogno? Se vai con DNS, assicurati di impostare la scadenza della cache.
Kevin Nisbet,

1

I punti di tutti gli altri sono fantastici, quindi solo un paio di commenti.

30 minuti è impossibile da garantire, soprattutto per tutto. Puoi dire che è un obiettivo, ma non c'è modo che possa essere una garanzia, perché c'è sempre il fattore X. Potresti avere 2 linee ISP e un camion si schianta contro l'edificio e li porta fuori entrambi perché non pensavi che averli indirizzati da estremità opposte dell'edificio fosse un esempio.

Come inizio per i costi, raddoppia tutto. Hai 5 server quindi devi raddoppiare quello. Non è necessario essere tutti sull'hardware, puoi virtualizzare, ma capisci cosa intendo. Inoltre, tutto deve essere a conoscenza dell'HA che aumenterà anche i costi, potresti scoprire che dovrai sostituire il tuo router con uno nuovo e oh ne hai bisogno 2. Non dimenticare di raddoppiare le alimentazioni e ottenere il generatore, perché non puoi garantire che la compagnia elettrica eseguirà il backup entro 30 minuti.

Questi esempi stanno pensando che sia più o meno una configurazione hot standby che è ciò che sospetto stia pensando il tuo capo.

Quello che trovo migliore per la piccola impresa è progettare un piano per recuperare e classificare tutto.

Scopri quali sono i servizi

critico (business stop)

importante (il business rallenta)

routine (le aziende possono farne a meno per un po ').

Ad esempio, i telefoni del tuo call center sono fondamentali, quindi forse vale la pena acquistare un secondo server e un secondo ISP e la tua interruzione di corrente media è di circa 15 minuti, quindi avremo un UPS che durerà 60 minuti (non dimenticare le stazioni di lavoro). Ora diciamo che l'ERP è solo importante, il che significa che puoi funzionare senza di esso per un po '. Forse i tuoi call center lo usano, ma se è inattivo, possono tornare a carta e penna o blocco note e quindi aggiornare l'ERP dopo. La procedura per farlo se è inattivo potrebbe essere più economica, quindi provare a renderlo un servizio critico. E quelli di routine potrebbero essere qualcosa di simile agli stampatori, ok è un dolore, ma possiamo fare un paio di giorni se tutti vanno giù.

Questo ti dà anche l'ordine di sistemare le cose se un giorno colpisce davvero il fan :)


1

È possibile? Sicuro. È conveniente? Probabilmente non per una "piccola impresa", specialmente se hai un capo che ti dà numeri arbitrari con cui lavorare, e sta chiedendo l'alta disponibilità da un dipartimento IT che è composto da un programmatore delegato (visto più volte in altri luoghi e non è mai piuttosto per i tuoi livelli di stress, se la tua situazione era come la loro).

Il failover è possibile ma di solito richiede hardware ridondante, SAN per condividere dati tra server, ecc ... in altre parole, buona fortuna ottenere fondi se non assumono un amministratore dedicato per occuparsene.

L'hardware del sistema di chiamata che hai citato è un hardware specializzato e hai accennato a essere un callcenter. Dovresti parlare con il fornitore delle opzioni per renderlo ridondante. Fare scherzi con questo potrebbe annullare il supporto in primo luogo.

Altri sistemi che molto probabilmente potresti ottenere un po 'di ridondanza investendo in soluzioni di tipo VMWare (o Hyper-V o XenServer, ma prima guarderei VMware e XenServer). Quindi puoi guardare come ottenere una SAN, un paio di server robusti con switch di rete veloci e utilizzare LiveMotion per migrare i server virtualizzati tra i server hardware in caso di errore, nonché bilanciare parte del carico tra i server quando necessario.

Hai detto che stai eseguendo Linux su quei sistemi. Con i soldi per ottenere più server, puoi invece impostare DRBD con un programma heartbeat e STONITH per replicare i dati tra i server e sostituirli quando uno non è disponibile; dovresti cercare di installare un sistema in cui hai letteralmente duplicato ogni server, oltre a raddoppiare il consumo di energia e la dissipazione del calore nella stanza del server (se hai una stanza del server). Questo può essere fatto per il costo dell'hardware e della sanità mentale. Inoltre dovresti testarlo, avresti dei tempi di inattività durante la configurazione e hai ancora la possibilità che a volte non funzioni in quanto c'è ancora la possibilità di problemi di ritaglio che devono essere risolti (divisi cervello, per esempio).

L'ultimo è un piano per far funzionare un paio di sistemi come sistemi di ardesia vuoti e avere un ottimo piano di backup per consentire di ripristinare i dati su uno dei sistemi "vuoti" se un server muore. Avere hardware in loco ti darà alcune opzioni se / quando un server muore; ma avrai comunque dei tempi di inattività durante il ripristino dei dati e avrai bisogno di istruzioni su come installare correttamente le tue applicazioni sul nuovo server. A seconda della velocità con cui lavori e della dimensione dei dati, potresti avere tempi di inattività che durano da alcune ore a un giorno o due. Si fa avete una, nota bene il backup di lavoro per i server, con un piano di recupero in atto, sì?

Dovresti provarlo? La mia prima reazione è che se ti gratti la testa a uno dei suggerimenti o senti una falla nello stomaco nel tentativo di pensare a queste cose, allora non dovresti. Avresti bisogno di una società di consulenza per esaminare il problema, capire i costi e implementarlo, oppure devi assumere un amministratore di sistema dedicato per farlo per la tua azienda.

Il fatto che ti stanno dicendo di farlo e stai dicendo che sei "solo un programmatore che è stato" promosso "e hai un PHB che ti dice di dare ridondanza con un tempo massimo di fallimento di 30 minuti è che sei gentile di un torrente.

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.