Questa è una situazione in cui mi trovo spesso:
- Ho un server di origine con un disco rigido da 320 GB al suo interno e 16 GB di RAM ( specifiche esatte disponibili qui , ma poiché questo è un problema che incontro spesso anche su altre macchine, preferirei che la risposta funzionasse su qualsiasi macchina Linux "ragionevole")
- Ho un server di backup con diversi terabyte di spazio sul disco rigido ( qui le specifiche esatte , vedere la dichiarazione di non responsabilità sopra)
Voglio trasferire 320 GB di dati dal server di origine al server di destinazione (in particolare, i dati da /dev/sda
).
- I due computer sono fisicamente uno accanto all'altro, quindi posso far passare i cavi tra di loro.
- Sono su una LAN e sto usando un nuovo router , il che significa che la velocità della mia rete dovrebbe "idealmente" essere 1000Mbit, giusto?
- La sicurezza non è un problema. Sono su una rete locale e mi fido di tutte le macchine della rete, incluso il router.
- (facoltativo) Non ho necessariamente bisogno di un checksum firmato dei dati, ma il controllo degli errori di base (come i pacchetti rilasciati o l'unità che diventa illeggibile) dovrebbe essere rilevato piuttosto che scomparire nell'output.
Ho cercato questa domanda online e ho testato diversi comandi. Quello che appare più spesso è questo:
ssh user@192.168.1.100 'dd bs=16M if=/dev/sda | gzip' > backup_sda.gz
Questo comando si è rivelato troppo lento (ha funzionato per un'ora, ha ottenuto solo circa 80 GB attraverso i dati). Sono stati necessari circa 1 minuto e 22 secondi per il pacchetto di test da 1 GB e alla fine sono stati due volte più veloci quando non sono compressi. I risultati potrebbero anche essere stati distorti dal fatto che il file trasferito è inferiore alla quantità di RAM sul sistema di origine.
Inoltre (e questo è stato testato su provini da 1 GB), ottengo problemi se uso il gzip
comando e dd
; il file risultante ha un checksum diverso quando viene estratto sulla destinazione, rispetto a quando viene reindirizzato direttamente. Sto ancora cercando di capire perché questo sta accadendo.
/dev/sda
come immagine o solo i file. Perché rsync non è un'opzione? È /dev/sda
montato mentre sei dd
ed?