Server Linux ridondanti in Datacenter indipendenti

Ho 2 server CentOS linux in centri dati separati su each sito del paese. Queste macchine Linux gestiscono un piccolo sito Web su Apache con un back-end MySQL. Attualmente non esiste alcuna connettività VPN tra di loro e l'unico modo per comunicare è attraverso lo spazio pubblico IP.

La domanda che ho è che cosa sarebbe il modo migliore per renderli ridondanti nell'evento se uno di loro fallisce l'altro si assume (rapporto master / slave)? Vorrei essere in grado di farlo con i due server che ho attualmente senza aggiungere un terzo. Sto indovinando che avrei bisogno di creare una VPN tra i due e quindi utilizzare qualcosa come DRDB per MySQL.

  • Permessi di file Plesk - Apache / PHP in conflitto con account utente
  • Il server si blocca sotto il carico
  • Rotazione log di accesso Apache
  • Come posso patch RHEL 4 per le vulnerabilità di bash in CVE-2014-6271 e CVE-2014-7169?
  • Vantaggi per avere un solo server VPS di posta elettronica
  • Windows Firewall equivalente a iptables
  • Cosa raccomanderesti?

  • Imansible passare drbd a secondario
  • Apache2 PHP Site - Colpire MaxClients limitare la diagnosi?
  • Cosa significano i record del registro di controllo per ModSecurity?
  • Configurare Apache, Tomcat, mod_jk e mod_rewrite per servire tomcat dal livello superiore
  • Servire html da linux ramdisk
  • Sono stati eseguiti tutti i registri di if / when "at" jobs?
  • 3 Solutions collect form web for “Server Linux ridondanti in Datacenter indipendenti”

    MySQL ha funzionalità di replica integrate – nessuna necessità di DRBD. Vedi qui .

    Questa replica si verifica nel normale protocollo MySQL, sulla port TCP 3306. Il protocollo nativo support la crittografia TLS, ma una VPN potrebbe non essere una ctriggers idea, alla luce delle recenti vulnerabilità . Sta a te!

    Da lì, è sufficiente che la tua applicazione utilizzi MySQL per essere a conoscenza di entrambi i server in qualche modo o per elaborare un altro tipo di meccanismo di failover in base all'applicazione. Sembra che tu abbia un'istanza locale della tua applicazione web in each posizione, quindi solo indicando ciascuno alla sua istanza MySQL locale può fare il trucco.

    Fare attenzione, però – se stai replicando in entrambe le direzioni, probabilmente non si desidera che entrambi i server MySQL siano scritti contemporaneamente; potrebbero essere apportte modifiche in conflitto ai diversi server.

    DRDB funziona solo come soluzione di failover. Come dice Shane, la replica di MySQL è molto più sensibile. Mentre si potrebbe implementare questo come master / slave si hanno le complicazioni di promuovere lo slave quando si rileva una rottura. Una soluzione migliore è quella di utilizzare la replica master-master.

    Ma ci sono limiti all'efficacia di questo – le scritture replicate vengono implementate da un thread singolo – per cui lo "slave" deve lavorare più duro del master per applicarli. Vi è inevitabilmente un ritardo – anche se di solito questo è abbastanza piccolo da non essere un problema.

    Althouh mysql support la crittografia SSL, non fornisce una grande quantità di funzionalità per il tuning del controllo di accesso. È banale impostare il perno o lo stordimento per avvolgere una port specifica in SSL. E le connessioni di replica sono aperte, quindi la width di banda è molto bassa. O anche limitare l'accesso alla port MySQL all'indirizzo IP remoto utilizzando iptables.

    Ma è ancora necessario affrontare il problema di individuare i guasti e recuperare il nodo fallito. Presumibilmente si sta facendo bilanciamento rotondo nei server HTTP – nel qual caso i client tenteranno di rimanere sugli stessi server per la durata della session. I webserver otterranno la migliore prestazione dall'istanza DBMS locale – pertanto è sufficiente cercare di accedere al sistema remoto quando viene rilevato un guasto del sistema locale. Non preoccuparti di provare ad automatizzare il ripristino – purché lo script.

    Leggere attentamente la replica di MySQL – se fai le basi allora le scritture in conflitto dovrebbero essere molto, MOLTO rare.

    DRBD ha il grande svantaggio che la comunicazione non sarà crittografata. Quindi vai per la replica di mySQL.

    Nell'installazione non utilizzerebbe alcun clustering automatico, in quanto non posso vedere un modo sicuro per evitare situazioni split-brain.

    Ma è ansible triggersre manualmente uno script che lo farà

    • Promuovere il MySQL secondario al Master
    • Inserisci il tuo IP logico utilizzato per contattare il tuo servizio
    • Avvia il tuo webserver su quel IP

    Dall'altro lato devi prevenire l'avvio se torna in linea e ti serve una strategia di fallback.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.