Trasferimento

Spostare un server live senza romperlo

La maggior parte delle migrazioni fallisce al cutover, non alla copia. Copiare byte è un problema risolto. Ecco come viene fatto il resto, cosa non costa nulla e dove ci fermiamo.

01

La finestra di migrazione gratuita

Una migrazione per istanza entro i primi 14 giorni. Dopo è tempo di ingegneri fatturabile, preventivato prima di iniziare qualsiasi cosa.

Ogni nuovo account riceve assistenza alla migrazione gratuita per 14 giorni dalla prima fattura pagata. Copre tutte le istanze ordinate, fino a 2 ore di tempo ingegneristico ciascuna, che in pratica è molto più di quanto quasi chiunque usi.

La finestra esiste perché l'alternativa è che perdi un fine settimana e concludi che cambiare host non vale la pena. Farlo correttamente ci costa meno che perdere l'account al secondo mese.

Le flotte più grandi hanno un piano, non un cronometro. Dicci quante istanze, cosa eseguono e dove sono ora, e riceverai una sequenza scritta con un punto di rollback a ogni passo.

Il rimborso di 7 giorni è parallelo a questo. Migra al giorno uno, decide al giorno sei che la latenza non è quella che ti serviva, e la moneta torna nell'asset con cui hai pagato.

02

Cosa faremo e cosa non faremo

L'accesso funziona in un solo senso. Aggiungi alla macchina sorgente una chiave che generiamo per il lavoro, noi la usiamo, e tu la rimuovi una volta completato il cutover. La chiave è specifica per ogni migrazione e non lascia mai la workstation dell'operatore. Se il tuo attuale host non lo consente, il piano B è una copia a livello di blocco inviata dal tuo lato verso un target in attesa.

Non abbiamo bisogno della password del pannello di controllo del tuo vecchio provider, e la rifiuteremo se offerta. Nessuno qui vuole la possibilità di agire come te altrove, e un tecnico che detiene una credenziale di un cliente è una responsabilità senza alcun vantaggio.

Faremo

Copiare filesystem o interi dispositivi a blocchi, preparare l'istanza di destinazione, ottimizzare il kernel e i dischi riceventi, eseguire le sincronizzazioni delta, partecipare al cutover con te e restare sul ticket finché il DNS non si è stabilizzato.

Non faremo

Debug della tua applicazione, riscrittura della tua configurazione per una distribuzione più recente, trasferimento di una licenza legata all'hardware di qualcun altro o accettazione di una password. L'accesso avviene tramite una chiave temporanea che revochi dopo.

Preferiremmo non fare

Spostare un database copiando i suoi file mentre è in esecuzione. Funziona finché non funziona, e il guasto si manifesta settimane dopo come corruzione silenziosa. Usa invece una replica e una promozione.

03

A livello di file o a livello di blocco

Due modi per spostare i byte. Quello giusto dipende principalmente dal fatto che tu voglia ritrovare lo stesso sistema operativo dall'altra parte.

ConsiderazioneFile-level, rsyncBlock-level, dd su SSH
Cosa si spostaFile, permessi, attributi estesiL'intero device, byte per byte
DowntimeMinuti, una sincronizzazione delta finaleOre, o una finestra prenotata
Con cosa fai il bootUn'immagine attuale scelta da teEsattamente quello che avevi, incluso il cruft
Cambiare distribuzioneOk, è il puntoNon possibile
Rischio bootloaderNessuno, il target fa già il bootReale, e la console è come lo sistemi
Dischi sparse di grandi dimensioniGestiti beneCopia lo spazio vuoto a meno che tu non lo pianifichi
Quando sceglierloQuasi sempreMacchine legacy che nessuno osa ricostruire

Esiste una terza opzione che spesso è la più veloce: non migrare affatto. Metti in piedi il servizio pulito dalla tua gestione della configurazione, ripristina un dump del database, e butta via la vecchia macchina. Se la tua infrastruttura è riproducibile, è un lavoro di due ore senza alcun passaggio di copia.

04

La sequenza

Sette passi, in questo ordine. Saltare il quinto è come si finisce a servire da due macchine contemporaneamente e accorgersene solo il lunedì.

  1. 01

    Ordina il target e lascialo stabilizzare

    Stessa dimensione o più grande, nella città che vuoi davvero. Esegui il tuo monitoraggio contro di esso mentre è vuoto per un giorno e conferma che latenza e valori del disco corrispondano a quanto dichiarato nella pagina del piano.

  2. 02

    Abbassa prima il TTL

    Porta il record a 300 secondi almeno 48 ore prima del cutover, così il vecchio valore è scaduto ovunque quando devi cambiarlo. Questo passo è inutile se avviene tardi.

  3. 03

    Fai la copia fredda

    La maggior parte dei dati, spostata mentre tutto è ancora attivo sulla vecchia macchina. Ci vuole il tempo che ci vuole e nessuno aspetta.

  4. 04

    Porta i servizi sul target

    Stesse versioni, stessa configurazione, ancora senza traffico. I database si ripristinano qui, da un dump piuttosto che da una copia di file.

  5. 05

    Testa il target per indirizzo

    Sostituisci l'hostname localmente con una voce in hosts e usa il sito per un'ora. Accedi, scrivi qualcosa, carica qualcosa, invia una mail se invia mail.

  6. 06

    Congela, delta finale, switch

    Ferma le scritture sulla sorgente, esegui l'ultima sincronizzazione, verifica un checksum su qualcosa di importante, poi cambia il record. Il periodo di congelamento di solito è sotto i cinque minuti.

  7. 07

    Tieni la sorgente per una settimana

    Acceso, senza servire nulla, e ancora pagato. È l'assicurazione più economica che comprerete mai, e l'unica cosa che dimenticate di copiare salta sempre fuori al quarto giorno.

05

DNS, e test prima di impegnarsi

Una migrazione è un cambiamento DNS, e un cambiamento DNS non è mai istantaneo, qualunque cosa dica il TTL. Alcuni resolver arrotondano, alcune reti aziendali mettono in cache per un giorno, e un piccolo numero di client fissa un indirizzo per la vita di un processo. Pianificate di servire da entrambe le macchine per 24 ore.

Gestire entrambe è più facile di quanto sembri quando l'applicazione è stateless. Dove non lo è, rendete la vecchia macchina di sola lettura al momento del passaggio invece di spegnerla, così un client obsoleto riceve un errore evidente invece di scrivere in un database che nessuno leggerà mai più.

01

Prima di toccare il DNS

Una voce hosts che punta al nuovo indirizzo è l'unico test onesto che esista. Certificati, redirect, URL assoluti e indirizzi hard-coded si rompono tutti qui, davanti a voi, piuttosto che davanti ai vostri utenti.

02

Certificati prima

Emettere sul target prima del passaggio usando una sfida DNS, così qualcosa di valido è già in atto quando arriva la prima richiesta. Una sfida HTTP non può funzionare finché il traffico non è già migrato, il che è troppo tardi.

03

La posta è l'eccezione

La reputazione non viaggia con i dati. Un nuovo indirizzo parte da zero cronologia, quindi scaldatelo per due settimane, mantenete SPF, DKIM e DMARC validi su entrambe le macchine durante la sovrapposizione, e aspettatevi che la prima settimana sia lenta.

04

Il rollback è un TTL, non una ricostruzione

Mentre la sorgente è viva e il TTL è ancora basso, annullare il passaggio richiede un solo cambio di record. Questo è l'intero motivo per cui i passi due e sette non sono opzionali.

06

Domande sulla migrazione

Sì, quotato per iscritto prima che inizi qualsiasi cosa, e di solito una cifra modesta. Nulla inizia finché non avete accettato il numero.

Sì, a livello di blocco, in un'immagine con licenza a €22 al mese. La riattivazione avviene contro il nuovo hardware e occasionalmente richiede un riavvio per assestarsi.

Allora non possiamo aiutare direttamente, e nemmeno voi. Esportate tutto ciò che il pannello vi dà, ricostruite su un'immagine pulita, e trattate l'intero episodio come una lezione sui pannelli che possiedono la macchina.

Di solito meno di due ore su una porta da 10 Gbit/s, spesso molto meno. Il vincolo è quasi sempre la velocità di upload del vecchio provider, non il nostro download.

Sì, ed è più facile perché entrambe le estremità sono nostre. Snapshot, ripristino nella nuova città, test, passaggio. Spostare un'istanza tra le nostre sedi non comporta costi.

Cambiate il record indietro, perché la sorgente è ancora in esecuzione e il TTL è ancora 300 secondi. Questo è il piano, non una contingenza, ed è il motivo per cui esiste l'ultimo passo.

Pronto quando lo sei

Diteci cosa state migrando

Numero di istanze, velocità della porta del vecchio provider, dati totali, e se qualcosa è un database. Un piano scritto torna lo stesso giorno lavorativo, e se la risposta onesta è ricostruire piuttosto che copiare, sarà quello che dirà.