Utilizzo di tar e rsync per l'alta disponibilità


13

Ho server cloud Ubuntu in esecuzione a cui non ho accesso diretto ma con ssh. Sto usando 'tar' per clonare o avere un'alta disponibilità di questo server. Ho seguito il tutorial dal link [link text] [1]. Ho provato a installare un nuovo server della stessa versione. Quando ho estratto il tar (tar -xvpzf ~ / clone.tgz -C /) sulla destinazione (nuovo), alla fine termina con il seguente output simile al seguente (non so se è un errore).

tar: var/run: time stamp 2010-11-09 17:09:11 is 7335.159880406 s in the future
tar: var/spool/postfix/usr/lib/zoneinfo: time stamp 2010-11-09 17:08:26 is 7290.159730037 s in the future
tar: var/lib: time stamp 2010-11-09 17:27:51 is 8455.159349527 s in the future
tar: usr/bin: time stamp 2010-11-09 17:28:02 is 8466.159254097 s in the future
tar: usr/share/sgml: time stamp 2010-11-09 17:27:47 is 8451.158909506 s in the future
tar: usr/share/man/man7: time stamp 2010-11-09 17:27:50 is 8454.158393583 s in the future
tar: usr/share/man/man1: time stamp 2010-11-09 17:28:02 is 8466.158166556 s in the future
tar: usr/share/man/man8: time stamp 2010-11-09 17:27:51 is 8455.158057701 s in the  future
tar: usr/share/omf/time-admin: time stamp 2010-11-09 17:27:52 is 8456.157830449 s in the future
---------------------------------------------
---------------------------------------------
---------------------------------------------

Sto usando il seguente comando per creare un file tar delle directory specificate sul sistema di origine.

tar -cvzf ~/clone.tgz --exclude ~/clone.tgz --exclude /etc/hosts --exclude /etc/hostname --exclude /etc/udev/ --exclude /etc/network/interfaces --exclude /etc/resolv.conf  /etc /home /opt /tmp /usr /var /mnt
  • Ci sono delle precauzioni prima di usare tar? (il tar è una creazione di una volta da allora userò rsync)
  • Dovrei includere altre directory come bin o lib? - suggeriscimi
  • Devo escludere qualsiasi directory? Come se avessi un problema con un dispositivo di rete (eth0) (impossibile avviare eth0). Quindi nel comando sopra ho escluso "/ etc / udev /" e dopo questo ho sentito che andava bene. In questo modo, c'è qualcosa che devo escludere da / etc / o da qualsiasi directory che ho incluso? - suggeriscimi.
  • Come posso programmare rsync (bkp incrementale) con la combinazione ssh per sincronizzare le directory (specificate in tar) con la posizione remota (diciamo / mnt / newdir) che potrei tar ed estrarre in seguito in caso di errore del sistema. Rsync può essere programmato per essere eseguito come utente root ma ssh richiederà la password. Cordiali saluti, sudo è completamente disabilitato e anche l'accesso diretto ssh a root è disabilitato.

Se esiste un modo migliore senza danneggiare il server per raggiungere questo obiettivo, può suggerire.

[1]: http://ubuntuforums.org/showthread.php ? t = 525.660

Risposte:


9

Ti consiglierei di usare invece rsync, ti permetterà di fare un sistema live per sincronizzare il sistema senza la necessità di file temporanei. Offre inoltre il vantaggio di eseguire aggiornamenti incrementali quando è necessario aggiornare il clone.

Escluderei solo: / proc / / sys / dev / tmp / mnt Sul sistema clone dovrai assicurarti che / etc / fstab e /boot/grub/grub.cfg siano aggiornati con gli UUID delle partizioni dei sistemi cloni.

Se si dispone di un database come mysql, è necessario fare attenzione e arrestare il DB prima di eseguire la copia.


Sì, ben ricordato, penso che dovrò escludere "/ etc / fstab" e "/boot/gru/grub.cfg". È buono questo?. Inserire i comandi per la sincronizzazione incrementale rsync delle directory specificate.
user3215

Ofcourse /boot/grub/grub.cfg non è affatto incluso
user3215

Come posso aggiornare gli UUID del sistema clone.
user3215

Sarà necessario sostituire gli UUID dalle partizioni originali nella configurazione di fstab e grub con gli UUID delle partizioni del sistema clone. Puoi elencare gli ID delle partizioni con: blkid.
João Pinto,

Intendi dire che gli UUID dovrebbero essere gli stessi su entrambi i sistemi.
user3215

6

Prima di tutto, molti dei provider cloud IaaS offrono potenti funzionalità di snapshot che risolvono abbastanza facilmente.

Su EC2, se si esegue un sistema basato su EBS, è possibile eseguirne uno snapshot periodico. Se succede qualcosa di terribile all'istanza di origine, puoi tornare alla precedente istantanea su una nuova istanza. Se si desidera archiviare un'istantanea, è possibile avviare un'altra istanza con essa allegata e utilizzare qualcosa come tar + s3 senza influire negativamente sulla scatola di produzione.

Ci sono una serie di problemi con questo approccio che potrebbero non essere evidenti in questo momento.

  1. Ti stai bloccando in un'unica tecnologia. Se riesci a farlo funzionare su Ubuntu 10.10 e vuoi andare a 11.04, devi aggiornare il sistema di origine, quindi eseguirne nuovamente l'istantanea. Allo stesso modo, se usi gli snapshot EBS di EC2, hai bisogno di una nuova soluzione se vai al cloud dello spazio di archiviazione.
  2. Non hai alcuna cronologia delle modifiche se usi rsync. Se modifichi qualcosa sul sistema 1, allora qualcosa si rompe, probabilmente romperai anche il tuo sistema di backup quando esegui la risincronizzazione.
  3. Rsync può avere un impatto estremamente elevato sul tuo sistema di produzione.

Quello che vuoi veramente è un sistema di gestione della configurazione e un'alta disponibilità dei dati.

Ti consiglierei di scegliere un sistema di gestione della configurazione, come pupazzo (in linea di principio!), Chef o cfengine. Inizia a fare tutta la tua configurazione nel sistema di gestione della configurazione, quindi puoi semplicemente avviare un sistema generico e applicare la gestione della configurazione ad esso. Aggiungi 'etckeeper' e hai la storia.

Per la disponibilità elevata dei dati, rsync dovrebbe funzionare ed essere molto più diretto in quanto puoi semplicemente copiare i dati che desideri. C'è anche drbd per avere ciò che equivale a un "network RAID1". Questi non sono sostituti per i backup dei dati, che dovrebbero includere snapshot storici (tramite snapshot del dispositivo a blocchi o qualcosa di simile a tar) piuttosto che la sincronizzazione con un host di recupero (cosa succede se qualcuno elimina tutti i dati che vengono risincronizzati nella casella di ripristino, eliminando tutto Lì anche?)


2

I messaggi sono probabilmente causati perché l'orologio del nuovo server è in ritardo rispetto a quello precedente.

Se stai clonando la configurazione e il database del gestore pacchetti (e lo sei), dovresti clonare / bin, / sbin e / lib o il sistema di destinazione sarà in uno stato incoerente. Un altro approccio sarà quello di escludere /etc/dpkg.info / etc / apt / var / lib / apt e / var / lib / dpkg e reinstallare tutti i pacchetti nel sistema di destinazione.

I file in / var / dpkg e / var / apt contengono informazioni su ciò che è installato nel sistema. Se non li si esclude, il gestore pacchetti crederà che tutti i programmi e le dipendenze nel sistema padre siano installati nella destinazione. Ma se non hai copiato / bin, / sbin, ecc ... non lo faranno. È molto probabile che qualcosa si rompa alla prossima installazione o aggiornamento.

Per mantenere la sincronizzazione con rsync ho sempre usato l'autenticazione basata su certificati, non le password. È abbastanza facile da configurare, ricordo che l'ho fatto semplicemente leggendo la pagina man la prima volta. Ecco una guida rapida , se vuoi maggiori informazioni credo che questo meriti una nuova domanda.


No. / var non è escluso. Nel comando sopra dopo "--exclude /etc/resolv.conf" tutto è incluso da /etc/..../var / mnt. In realtà ho specificato due spazi tra resolv.conf e / etc. Qui non sta mostrando.
user3215

scusate ho dimenticato la parte del link
user3215

Ok, quindi dovrei anche includere bin, sbin e lib, va bene qui. Oh .. devo escluderli e installare tutti i pacchetti.
user3215

è davvero necessario escludere /etc/dpkg.info / etc / apt / var / lib / apt e / var / lib / dpkg ..?
user3215

Risposta aggiornata
Javier Rivera,
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.