Migrazione del server: il modo più efficiente


10

Mi è stato assegnato il compito di migrare uno dei nostri siti tra server (due host diversi). Entrambi gli ambienti sono Linux.

Il sito trasmette video, quindi il server è attualmente pieno di file multimediali (immagini e video). Il mio primo pensiero è stato che avremmo usato rsycnc per trasferire tutto, ma voglio essere il più efficiente possibile e fare tutto il più rapidamente possibile. Ho pensato che alcuni di voi potrebbero avere consigli su come accelerare il processo o se rsync è anche la scelta giusta qui.

Grazie in anticipo. Ci scusiamo per le mie conoscenze limitate sulle cose di amministratore di sistema ...

EDIT: stiamo correndo su uno stack LAMP di base (centos) e ci stiamo spostando su red hat nello spazio rack.


1
Definire "efficiente" in questo contesto. Veloce, affidabile, robusto o cosa? E no, non puoi averli tutti.
John Gardeniers,

1
rsync è quasi sicuramente la scelta migliore per la migrazione dei dati; c'è ancora la configurazione e possibili database ecc. che altri hanno menzionato che hanno altre opzioni migliori.
fukawi2,

Risposte:


12

Molto è coinvolto nella "migrazione di un'applicazione da un server a un altro" - non c'è davvero modo di rispondere in modo completo a tutti i casi d'uso. TU puoi rispondere abbastanza completo per la configurazione, però, se ci si avvicina in modo sistematico:

  1. Fai un elenco di tutto ciò di cui la tua applicazione ha bisogno.
    • Server web?
    • Server database?
    • Server email?
    • Linguaggio di scripting (PHP, Ruby / Rails, Perl, qualcos'altro)?
    • Programmi ausiliari (ImageMagick, ecc.)?
  2. Crea un elenco di importanti elementi di configurazione.
    • Indirizzo IP, maschera di rete, gateway, ecc.
    • Server DNS
    • Elementi specifici dell'applicazione (directory temporanee, ecc.)
  3. Prendi le liste da (1) e (2) e scrivi uno schema della migrazione.
    Ciò dovrebbe includere cose come l'installazione e la configurazione di qualsiasi software / pacchetto necessario, il download e il caricamento del database, ecc.
  4. PROVA LA MIGRAZIONE
    Copia tutto esattamente come faresti se il server diventasse attivo, ma non renderlo attivo. Attaccalo su una rete isolata quando hai finito e testa tutto.
    Se si dispone di una procedura di test standard per l'applicazione, è necessario eseguirla sul server migrato.
  5. Se tutto non è andato alla perfezione, vai su (3), aggiorna (1) e (2), quindi rivedi il tuo piano.
  6. Quando le migrazioni di prova procedono perfettamente, esegui la migrazione effettiva.
    A seconda di quanto sia complesso il processo di migrazione, ciò potrebbe significare semplicemente eliminare e ricaricare un database, oppure potresti voler cancellare la macchina e fare tutto da zero.

Al termine, avrai una lista di controllo per la tua specifica applicazione, nel tuo particolare ambiente. Tale elenco di controllo probabilmente si evolverà man mano che sviluppi l'app, ma può servire come punto di partenza in 3-5 anni quando devi migrare di nuovo.

Altre cose da considerare includono l'implementazione della gestione della configurazione di Puppet o Chef.
(Se diventerai "l'amministratore di sistema", dovresti prenderli in considerazione, altrimenti passali alla persona / squadra responsabile.)


5

Bene, hai a che fare con la configurazione del server e il contenuto del server, ed è altamente improbabile che la stessa tecnica funzionerà per entrambi.

Hai un database? In tal caso, anche quello dovrà essere spostato. Rsync funziona alla grande per contenuti statici. Basta eseguirlo una volta per spostare l'elenco dei dati, quindi dire ogni poche ore per mantenere le cose sincronizzate fino al passaggio. Assicurati di disabilitare rsync cron prima della migrazione!

Per quanto riguarda la configurazione, non abbiamo idea di cosa stai eseguendo, quindi non possiamo davvero dare consigli.


Grazie! Attualmente stiamo girando su CentOS con uno stack Apache / PHP / MySQL (piuttosto standard) con WHM. Stiamo spostando tutto su Redhat Linux su Rackspace.
Codice fantasma
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.