È possibile dd il disco corrente da cui si è avviato?


23

Ho una copia di FreeNAS in esecuzione su un disco USB live. E vorrei fare un backup.

Mentre provo a evitare di rompere un sistema perfettamente funzionante, sarei in grado di accedere al dddisco mentre il sistema operativo è in esecuzione?

O dovrei spegnere la macchina e scappare ddda un'altra macchina?

Risposte:


16

È possibile eseguire ddsul disco in esecuzione. Ciò dovrebbe essere evitato in caso di pesanti modifiche alla struttura del disco. Inoltre, dovresti fschkaver finito la destinazione. Più silenzioso è il sistema durante il backup, meglio è.

L'esecuzione di un backup a freddo (file system non montato) è l'opzione migliore se si desidera utilizzare `dd '.

Esistono opzioni migliori per il backup di un sistema in esecuzione.

  • taro cpioleggerà i file e si occupa ragionevolmente bene dei file aperti. Probabilmente ti mancheranno alcune delle modifiche che si verificano durante il backup.
  • rsyncsi comporta come tarper quanto riguarda i file aperti e le modifiche mancanti durante il backup. Può essere usato per fare il backup iniziale e fa molto bene i backup incrementali. Quando si esegue un backup incrementale, è possibile saltare la copia di parti invariate del file.

Se si esegue il backup di un file system con file di dati del database, verificare il supporto per i backup a caldo.


I punti positivi sull'utilizzo di strumenti di livello superiore - tar, cpioe rsynctutti i lavori all'interno del file system , quindi questo può essere opportuno. dd, OTOH, funziona direttamente con i blocchi del disco, bypassando l'FS.
Piskvor

16

È tecnicamente possibile (come in "sparare te stesso nel piede"), ma altamente sconsigliabile, specialmente se una delle partizioni del disco è scrivibile.

Immagina questo scenario:

  • dd inizia a leggere il disco all'inizio e si dirige allegramente verso la fine.
  • Quando è a metà strada, il sistema operativo scrive un file sul disco. Il file è in qualche modo frammentato: una parte di esso è fisicamente posizionata verso l'inizio del disco e un'altra verso la fine.
  • Nessun problema per il sistema operativo: scrive il file bene e lo spinge fuori dalla sua cache di scrittura; ora è scritto correttamente sul disco.
  • Il problema è con il tuo backup: ddè già passato e ha copiato la prima parte del file, quindi acquisirà uno stato incoerente quando arriva alla seconda parte - ogni parte proviene da una versione diversa!

Se sei in grado di rimontare tutte le partizioni sul disco USB come di sola lettura, questo problema non dovrebbe verificarsi (l'enfasi su " non dovrebbe "); ciò richiede però una significativa preparazione all'installazione / offline anticipata e la configurazione del tempo di avvio per la /partizione - Non penso che tu possa normalmente rimontare /r / o al volo, ci saranno più cose sospese che richiedono r / w accesso.

Quindi, eseguire la copia probabilmente non romperà il sistema in esecuzione, ma non ti darà un backup praticabile , rendendo il moot dell'attività. Consiglio vivamente di rendere la copia offline, il che richiederebbe lo spegnimento della macchina.


1
Grazie per un'ottima risposta, speravo in una facile via d'uscita, ma hai ragione, non riesco a immaginare un buon scenario derivante da ciò che hai sottolineato.
stuartc

1
@stuartc: richiederebbe una grande collaborazione da parte del driver FS - informando il processo di copia di ogni cambiamento che è avvenuto dall'avvio della copia e se arriva a uno stato coerente. Se questo è un grosso problema, cerca nei filesystem che supportano lo snapshot, come ad esempio btrfs.
Piskvor

4

Non dovresti mai creare un'immagine di una partizione montata. Non importa se ti sei avviato o no.

Ma avrai difficoltà a provare a smontare la partizione da cui hai avviato.


4

Per questo, uso dump(8)su FreeBSD. Per esempiodump -auLf /mnt/some-other-disk/root.dmp /

L' -Lopzione consente la copia di un file system live eseguendo un'istantanea.

I dump possono essere ripristinati utilizzando restore(8).

Potrebbe funzionare solo con UFS; Non ne sono sicuro.


0

È incredibile quanti suggerimenti di backup non menzionino quanto segue:

Il sistema linux (e la maggior parte dei sistemi operativi multi-thread) devono generalmente essere inattivi durante il backup e il ripristino.

Ciò si ottiene più facilmente non eseguendo un sistema operativo su di esso mentre si sta tentando di immaginarlo.

Per il backup e il ripristino, può essere montato e probabilmente deve esserlo, ma non dal sistema operativo in esecuzione come root (/).


Motivo: in ogni sistema operativo multi-tasking, incluso Linux, ci sono thread di codice simultanei in esecuzione che influenzano i file, il che rende impossibile eseguire backup o ripristini accurati di file di sistema.

In particolare, mentre si acquisiscono file, potrebbe esserci qualche altra attività di creazione o eliminazione di file in modo tale che il backup non rappresenti un'immagine vera e accurata del file system in un dato momento. Se si tenta di ripristinare questo backup, si avrà un danneggiamento dei dati che causerà arresti anomali e altre anomalie.


Opzioni: i backup devono essere eseguiti da software e / o sistemi disco speciali (come Acronis su Windows, ad esempio che può eseguire il backup di un sistema operativo in esecuzione) o da un sistema operativo secondario esterno che accede ai file del sistema operativo non in esecuzione che si sta tentando di backup o ripristino.

!!! Quindi, quando vedi pagine web che ti dicono di usare Deja-dup per esempio per fare i tuoi backup, questo funziona solo per /homee poi SOLO se non stai eseguendo programmi che influenzano /homementre stai eseguendo deja-dup. (E anche allora potresti voler incrociare le dita a meno che tu non sappia davvero cosa potrebbe toccare i tuoi file tramite un demone.)


0

Lo faccio già con successo nell'ambiente di test, con fsck e rsync alla fine per migliorare le possibilità di una buona copia del dispositivo.


1
Puoi spiegare come si usa rsyncper migliorare un dump dell'intero disco (intero file system) realizzato con  dd? (E, se hai accesso a rsync, perché non dovresti usarlo come strumento di backup principale piuttosto che come strumento secondario di accompagnamento?) ... ... ... ... ... ... ... ... ... ... ... Per favore, non rispondere nei commenti; modifica la  tua risposta per renderla più chiara e completa.
Scott,
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.