Come proteggersi dalla perdita di server con un budget limitato


22

Sono una piccola azienda con un budget limitato che fornisce siti Web e database per clienti di beneficenza e no profit.

Ho alcuni server VPS Debian Linux e mi assicuro di avere backup giornalieri su un VPS diverso da quello su cui è ospitato il servizio.

Recentemente una delle mie società di hosting mi ha detto che due unità si sono guastate contemporaneamente e che i dati sono andati persi per sempre. Accadono cose, dissero scusa, cos'altro potevano fare? Ma mi ha fatto riflettere sui modi economicamente vantaggiosi di riavviare un VPS in caso di un guasto hardware o di altro host.

Attualmente avrei dovuto

  1. Fai girare un nuovo VPS
  2. Ottieni il backup dell'ultimo giorno (che include database, root Web e configurazione specifica del sito Web) sul VPS e configuralo come l'ultimo ecc.
  3. Aggiorna DNS e attendi che si propaghi.

Probabilmente ci vorrebbe un giorno o giù di lì per raggiungere questo obiettivo, con la propagazione del DNS un grande sconosciuto, anche se il TTL è impostato piuttosto basso (circa un'ora).

Alcuni host forniscono snapshot che possono essere utilizzati per replicare un set up in un nuovo VPS, ma c'è ancora l'IP e questo non aiuta nel caso in cui la società host annulli / sospenda completamente un account (ne ho letto comportamento da parte di determinati provider di hosting e mi ha spaventato! Non sto facendo nulla di spammy / malizioso e tengo d'occhio la sicurezza, ma mi rendo conto che hanno letteralmente il potere di farlo e sono abbastanza avverso al rischio).

È questo, combinato con la scelta di host affidabili, il meglio che posso fare senza cercare una soluzione incredibilmente costosa?


1
Molto scettico
sull'affermazione

Apparentemente uno fallì poi un altro mentre il nuovo stava ricostruendo.
artfulrobot,

dai un'occhiata a drbd.linbit.com , questo potrebbe adattarsi alle tue esigenze ..
The Unix Janitor

2
@symcbean: il problema è che una ricostruzione RAID-5 richiede la lettura di tutti i dati di tutti i dischi rimanenti. È un'operazione piuttosto lunga (ore se non giorni). Un sistema RAID-5 economico può avere una configurazione 9 + 1 utilizzando unità desktop. Tutti questi 9 dischi verranno sottoposti a stress oltre i limiti di progettazione in una ricostruzione RAID. In effetti, allora ci si aspetta un fallimento.
MSalters,

1
Beh, in realtà hanno pool di archiviazione e processori + pool di memoria come entità separate, ma la domanda non riguarda ciò che è accaduto o meno su un determinato provider; è più generale di un'implementazione specifica.
artfulrobot,

Risposte:


28

Per me, scegliere host affidabili e fare backup regolari - entrambi di cui sembra che tu stia già facendo - è importante e puoi fare senza iniziare a pensare alla pianificazione della continuità aziendale, alle configurazioni ad alta disponibilità, agli SLA e così via.

Dico alle persone che hai un uptime del 99% gratuito (cioè senza spendere nulla in più per l'alta disponibilità). Sono circa tre giorni e mezzo di inattività all'anno. Ogni 9 in più in quel periodo di attività aumenta il costo di circa tre o dieci volte.

Se le persone non sono pronte a pagare quel tipo di denaro, secondo me è un errore indurle a pensare che possano ottenere una protezione aggiuntiva di qualsiasi significato.


3
Questa è un'ottima risposta Ho una configurazione e un tipo di client molto simili a @artfulrobot (utilizziamo persino la stessa società di hosting) e la sua domanda e la tua risposta mi hanno fatto capire che è mia responsabilità comunicare ai miei clienti le limitazioni e i rischi, in un inglese molto semplice, per assicurarsi che abbiano aspettative realistiche. La maggior parte di loro è molto non-tecnica, quindi c'è una probabilità molto reale che pensano che tutto funzioni in qualche modo magicamente, senza sosta e all'infinito. Non voglio gestire le loro aspettative durante / dopo un grave fallimento, devo farlo prima!
Simon Blackbourn,

Non sto dicendo che i fallimenti siano completamente non correlati, ma in teoria la ridondanza 1 + 1 dovrebbe darti due nove extra per il doppio del costo. Suggerisci che il costo per due nove extra è compreso tra 9 e 100 volte. 2x contro ~ 30x è una differenza enorme.
MSalters,

2
@MSalters è vero, contro alcuni tipi di errore (errore del server). Contro, ad esempio, il fallimento del sito, non fa nulla, a meno che i due server si trovino in siti diversi, e ciò diventa estremamente complesso in termini di amministratore di rete. Considera anche solo i costi di capitale e trascuri i maggiori costi di gestione: mantenere due server perfettamente sincronizzati non è banale, a seconda del tipo di cosa che stanno facendo, e c'è il costo amministrativo dei bilanciatori del carico. La mia sensazione è che i server ridondanti su un singolo sito, condividendo il carico LB, ti offrano altri nove in cambio di 3-4 volte il costo.
MadHatter supporta Monica il

Modo semplice e buono per presentarlo. (Ma ... aggiungerei un po 'di prezzo da qualche parte, dato che da 3 a 10 volte "gratis" è ancora gratuito;). O, ovviamente, intendi il costo complessivo del servizio stesso? )
Olivier Dulac il

@OlivierDulac proprio così!
MadHatter supporta Monica il

8

Le piccole imprese con budget limitati, in particolare le organizzazioni non profit, in genere non saranno in grado di permettersi un'elevata disponibilità. La domanda è, se praticamente non hai un budget, come è comunemente il caso in situazioni come questa, qual è la tua strategia di ripristino?

Ho alcuni clienti come questo, ed è quello che faccio:

Innanzitutto, per alcuni di essi ho un backup incrementale e un dump completo del database ogni sei ore. Un client stava già utilizzando CrashPlan Pro, quindi l'ho appena usato. Qualunque cosa tu faccia, devi assicurarti di avere un backup ripristinabile.

Ho un semplice playbook responsible che ho messo insieme in circa un'ora (non avendo precedentemente lavorato con ansible) che installa nginx, php-fpm e MariaDB e li prepara per ospitare un sito web o siti. L'esecuzione di questo playbook ha come risultato un server (o server) pronto ad ospitare una tipica applicazione Web e posso semplicemente ripristinare l'host virtuale nginx, i file dell'applicazione e il database.

Il risultato di ciò è che posso richiamare un tale sito Web dal backup in pochi minuti, al contrario del modo manuale che potrebbe richiedere un'ora o più.


Ehi, sembra perfetto. Lo esaminerò. Grazie.
artfulrobot,

L'alta disponibilità è prontamente disponibile anche per i piccoli clienti di buoni fornitori. Ottengono economia di scala.
JamesRyan,

@JamesRyan Sì, ma non ottieni economia di ... economia. Dimmi se ha senso eseguire due istanze Amazon e un bilanciamento del carico elastico per un sito Web che vede 300 hit al mese?
Michael Hampton

@MichaelHampton che non è nemmeno lontanamente quello che stavo suggerendo. Una società che ospita VPS per centinaia di client può distribuirli su hardware ridondante anziché semplicemente metterne un gruppo su un singolo server fisico e incrociare le dita.
JamesRyan,

4

La complessità dell'implementazione dipende dallo stack dell'applicazione, ma idealmente si vorrebbe impostare un "hot standby" (presso un altro fornitore), con i dati replicati in tempo reale (o il più vicino al tempo reale) possibile.

Realizzare il business case per avere 2 server "live" è semplice come confrontare la potenziale perdita di entrate durante un periodo di "recupero dalle immagini" con le spese di un altro server.


Grazie. Sto usando uno stack LAMP. Immagino che il tempo reale sarebbe qualcosa come la replica di MySQL, anche se può essere piuttosto difficile da gestire. E raddoppia i server che devo gestire. Forse avrebbe senso avere una casella specifica bassa che avesse una copia live di tutti gli altri server, quindi era solo la propagazione DNS. Quindi potrei clonarlo su un nuovo VPS e cambiare il DNS (hmmm.).
artfulrobot,

La replica di MySQL è in genere abbastanza semplice da impostare e configurare, a parte il tempo impiegato per il trasferimento del set di dati iniziale. Per quanto riguarda il DNS, oggigiorno la maggior parte dei risolutori rispetta i TTL bassi e l'impostazione del TTL di un record su 60 secondi di solito funziona bene.
Mark R.

La replica di MySQL è più complessa quando è necessario aggiungere nuovi database aggiuntivi e credo che sia ancora difficile avere un server come schiavo per più di un master (replicando diversi dbs su un server di standby). Inoltre, ovviamente, è necessario proteggere l'accesso tra i server, ad esempio lo stunnel, quindi è una PKI da mantenere, ecc. A meno che non si disponga di una lan privata ma è escluso dalla necessità che questo avvenga con una società di hosting separata.
artfulrobot,

C'è sempre replicate-do-db e tunnel SSH con le chiavi.
Mark R.

Utilizzato per eseguire il tunnel SSH standard ma non era affidabile. Stunnel è geniale una volta che lo hai installato e funzionante, però.
artfulrobot,

2

Ricorda che il tempo di attività non è uguale all'integrità dei dati. Puoi avere un tempo di attività del 99,99% e perdere tutti i tuoi dati due volte in un anno, purché il server sia stato riavviato "abbastanza presto". La maggior parte dei provider VPS garantisce che il server è in esecuzione, NON che i dati siano al sicuro. I tuoi dati sono il tuo problema :(.

Quello che stai cercando è qualcosa che memorizzerà i tuoi backup su un server separato e (IMHO) nemmeno nello stesso provider. A seconda delle dimensioni dei dati di cui stai parlando, un disco rigido portatile potrebbe essere utilizzato come terza linea di difesa offline. Esegui il backup dei tuoi dati come hai fatto, quindi copia regolarmente (o, se possibile, solo le modifiche) sul disco rigido portatile o anche su un computer locale. Esistono anche opzioni ragionevolmente economiche come Backblaze per le soluzioni di backup, ma il prezzo dipenderà dalla quantità di dati di cui stai parlando. Se è possibile eseguire backup incrementali, sarà molto più economico dei backup completi, ma i backup incrementali possono essere molto difficili a seconda di dove sono archiviati i dati (file flat = facile, database = non così semplice).


Sì, lo faccio :-) E sì, le società di hosting non si preoccupano dei dati, ho già affrontato la corruzione del disco prima!
artfulrobot,

0

La risposta dipende totalmente dalla tua architettura e dai tuoi requisiti. Qualche tempo fa 3 dischi si sono guastati su un mio server, eliminando 20+ vm quando un Raid 6 fallito.

Ne ho scritto a

https://www.linkedin.com/pulse/20140827173324-2064263-how-i-nearly-lost-my-business-to-3-hard-discs

Ma: poiché questo è fondamentale, disponevamo di backup: ogni giorno per cose non importanti, 15 minuti per database ed e-mail. Diamine, ora ho aggiunto un server che viene replicato su un'altra macchina ogni 30 secondi.

Non dici nulla sullo stack, niente su qualsiasi budget - quindi il consiglio migliore e unico qui è quello di andare a qualche provider cloud e iniziare a utilizzare i loro meccanismi di backup. Ma inizia a definire ciò di cui hai effettivamente bisogno.

Inoltre, il budget per questo backup dovrebbe essere compreso nel prezzo. Deve essere pagato. E qualunque infrastruttura ti serva ... ne hai bisogno. Quindi non è "ridicolo costoso".


TomTom: aoe + openfiler e un paio di scatole e puoi creare un micro-san ad altissima disponibilità
symcbean,
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.