Copia l'host Linux sul nuovo hardware


13

Devo fare l'host per ospitare le migrazioni dal vecchio hardware al nuovo hardware. In particolare, da HP BL460G7 a HP BL460G8. Sia il vecchio che il nuovo server hanno 2 x 600 GB da 2,5 "e sono configurati per RAID1. Posso permettermi 30 minuti di downtime per server.

Esistono quattro server da migrare, il più piccolo ha un totale di 120 GB allocati in volumi logici e il più grande ha allocato 510 GB. Tre server eseguono RHEL5 e uno esegue RHEL6.

Mi sto scervellando su come farlo entro un determinato periodo di tempo e senza distruggere il sistema operativo e i dati critici.

Il mio unico pensiero è questo:

  • rimuovere un'unità dal vecchio server (il server è acceso)
  • rimuovere entrambe le unità dal nuovo server (il server è spento)
  • rimuovere l'unità G7 dal carrello e metterla da parte
  • rimuovere l'unità G8 dal carrello e installarla nel carrello G7
  • installare l'unità G8 nel carrello G7 nel vecchio server
  • attendere che il controller RAID ricostruisca l'array RAID1
  • al termine, chiudere il vecchio server
  • rimuovere l'unità G8 nel carrello G7
  • installare l'unità G8 nel carrello G8 e inserirla in G8 (unità singola installata)
  • avviare il server G8
  • attendere l'avvio del sistema operativo
  • quando il sistema operativo è stato avviato, inserire l'unità rimanente
  • attendere la ricostruzione dell'array RAID

Sembra sano?

EDIT: RHEL5 sono RHEL5.10 e RHEL6 è RHEL6.6

Avrei dovuto anche notare che due dei sistemi fanno parte di un caldo cluster a quattro nodi che esegue una replica pressoché costante degli "eventi" dell'applicazione (parte di un sistema di infrastruttura critico). Disponiamo di backup ma utilizziamo il solo in caso di errore totale del sistema.

Test precedenti hanno mostrato un "dd" massimo tra i sistemi di circa 50 Mbps che è troppo lento.

EDIT: Avrei fatto affidamento su kudzu per raccogliere e gestire le modifiche hardware.


Quali versioni specifiche di RHEL5 e RHEL6 vengono utilizzate?
ewwhite,

Risposta modificata
user1174838

Non tentare di adattare i dischi G7 all'interno del server Gen8: c'è molto di più del semplice vassoio fisico.
Chopper3,

Degradare intenzionalmente un RAID con dati importanti non sembra un buon piano.
Kasperd,

Risposte:


18

Va notato che potrebbero essere necessari altri passaggi, a seconda della distribuzione. In particolare i driver (grazie per averlo sottolineato @ewwhite).

  1. Avvia il nuovo server da livecd / usb.
  2. Preparare le partizioni e il blocco di avvio sulle nuove unità.
    • A seconda della configurazione, ciò potrebbe essere fatto copiando MBR / bootblock.
  3. Crea i filesystem.
  4. Esegui un rsync dal vecchio server al nuovo.
    • Potresti voler ripetere l'operazione per vedere quanto tempo richiederà il follow-up rsync - se è inferiore a 30 minuti, continua.
    • Questo è il momento, puoi effettivamente provare, se si avvia un nuovo sistema. Fai solo attenzione a non causare conflitti IP (o altri).
  5. Chiudi tutti i servizi che scriverebbero sul filesystem
    • Preferibilmente riavviare su livecd / usb
  6. Sincronizza nuovamente i dati dal vecchio server al nuovo
  7. Riavvia il nuovo server e usalo

In questo modo, hai ancora intatto il server originale, quindi se qualcosa va storto, c'è un modo semplice per tornare indietro. Ma richiede alcune conoscenze (grub / rsync / partitions), quindi suggerisco di fare un po 'di lavoro preliminare e test in anticipo, prima di farlo dal vivo.


In realtà ci sono differenze di driver tra le due piattaforme, quindi è importante sapere quali versioni minori di RHEL sta usando.
ewwhite,

Ah sì, non dovrei rispondere a nulla relativo alle distribuzioni aziendali ... scusa per quello ...
Fox,

@Fox: non cancellato dalla domanda popolare. La tua risposta è buona
Sven

1
@ user1174838 che non dovrebbe essere un ostacolo ... l'unico problema che vedrei è una grande quantità di piccoli file.
Fox,

1
E, non dimenticare questa meravigliosa soluzione, che il doppio rsync riduce al minimo i tempi di inattività del server: poiché la maggior parte dei dati viene trasferita sul server in esecuzione, il secondo rsync (sul server ora fuori servizio) copia solo il ultime differenze.
Peter - Ripristina Monica il

6

Due cose:

  • Costruirei di nuovo e sincronizzerei i dati.
  • L'assegnazione / finestra di downtime sembra essere troppo breve. 30 minuti possono lavorare in situazioni specifiche, ma non dovrebbero YOU essere dettare il requisito downtime realistica basata su ciò che serve per realizzare in realtà il lavoro?

A seconda dei dati contenuti in ciascun server, la quantità di dati varia e dello schema di provisioning, può essere logico installare il sistema operativo necessario sul nuovo Gen8 ProLiant e sincronizzare le impostazioni e altre parti di dati in un punto in cui è possibile sospendere il dati.

Magari fai una copia seed e ricava i tuoi tempi di inattività dal tempo necessario per raccogliere le modifiche al file sui successivi rsync. Se devi accelerare il processo di trasferimento o avere molti file di piccole dimensioni, ci sono tecniche che possono aiutarti .

Faccio spesso questi tipi di transizioni. Con installazioni Linux simili, raramente è necessario più di un elenco di pacchetti accurato (facilmente ottenibile tramite Yum o RPM), le directory di configurazione (ad es. /etc) E le partizioni dei dati. Se non disponi già di un sistema di provisioning kickstart, puoi sfruttare il /root/anaconda-ks.cfgfile per avere un'idea di come è stato creato il sistema G7.

Per rispondere alla tua domanda sul semplice spostamento dei dischi, in base alle specifiche versioni RHEL che hai citato, questo è assolutamente possibile. È possibile spostare i dischi / contenitori e i metadati di HP Smart Array sono compatibili tra i controller P410 e P420 che potrebbero trovarsi nei sistemi. Tuttavia, non lo farei senza prima aggiornare completamente il firmware delle unità e dei componenti nel nuovo sistema.


Alcuni commenti davvero buoni in questa discussione, grazie a tutti. Tornerò al PM e richiederò una finestra di modifica più ampia.
user1174838,

1

Se la tua versione precedente del sistema operativo è in grado di gestire il nuovo hardware (principalmente controller RAID), puoi provare CloneZilla .

Per verificare se è possibile spostarsi da un hardware all'altro, è necessario passare tutti i dati dal vecchio al nuovo server facendo alcuni trucchi con dd.

Avvia il nuovo server con una distribuzione live come SystemRescueCD , configura con un indirizzo IP e un comando dd come questo:

nc -l 8000 | dd of=/dev/sda

Sul server corrente eseguire

dd if=/dev/sda | nc ${newserverip} 8000

Questo farà una copia grezza del tuo server / dev / sda sul nuovo server / dev / sda. In questo modo è possibile eseguire un test senza tempi di inattività sul server originale e correre rischi quasi nulli.


2
Se si lasciano processi in esecuzione sul vecchio server che scrivono su file sul vecchio disco, in particolare server di database e simili, è molto probabile che ciò ti lascerà con un filesystem corrotto (copiato) e dati corrotti nei file (copiati). Non usare mai un disco grezzo a meno che non sia montato o montato in sola lettura.
Guntram Blohm sostiene Monica

@GuntramBlohm Lo so, è solo per verificare se sei in grado di clonare il vecchio server su nuovo, senza tempo di attesa. Una volta testato, puoi clonare il server, ovviamente spegnendolo o arrestando i servizi chiave.
alphamikevictor,

CloneZilla e le relative tecniche impiegheranno più di 30 minuti a copiare i dati tra i sistemi.
user1174838,

0

Il project manager ha negato la mia richiesta di una finestra di interruzione più ampia.

La procedura proposta delineata nella domanda ha funzionato bene nei test. I tempi di fermo sono stati inferiori a 20 minuti. Ho usato l'utility hpacucli per monitorare i progressi sul G7 e poi sul Gen8, è stato molto utile per questo.

Devo ancora farlo con rabbia ma, come detto, ha funzionato bene nei test per RHEL 5.10 su BL460G7 a BL460 Gen8.

Non ho aggiornato il firmware.

La risincronizzazione RAID1 iniziale nel G7 ha richiesto poco più di un'ora. La risincronizzazione nel Gen8 ha richiesto meno di 50 minuti. Questo mi preoccupava, ma non sono stato in grado di trovare alcun problema.

Grazie ancora per tutti i commenti e suggerimenti utili.

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.