2016-05-18 19 views
0

Ich arbeite an der Sicherung meiner Serverdaten.Wie tar-Dateien mit einer Größenbeschränkung?

Einige Ordner haben Daten um 600GB, ich muss es als 6 Dateien für 100GB jeweils tear.

Ich habe google es hat eine Idee, es zu tun. (similar topic#1, similar topic#2 und so). wir es von

tar cvzf - data/ | split --bytes=100GB - sda1.backup.tar.gz. 

achive können auch wir können es entpacken mit

cat sda1.backup.tar.gz.* | tar xzvf - 

Meine Frage ist, Gibt es eine Möglichkeit, diese Aufgabe parallel zu tun (jeweils Teer als separater Prozess)? weil es lange dauert, bis es fertig ist!

Oder gibt es eine andere Möglichkeit, dies zu tun?

EDIT
Experiment:

# date;tar czf - ../saravana | split --bytes=1073741824 - data_bkp.;date 
Wed May 18 09:28:32 MDT 2016 
tar: Removing leading `../' from member names 
tar: ../saravana: file changed as we read it 
Wed May 18 09:51:08 MDT 2016 

Ergebnis

-rw-r--r-- 1 root root 1073741824 May 18 09:31 data_bkp.aa 
-rw-r--r-- 1 root root 1073741824 May 18 09:34 data_bkp.ab 
-rw-r--r-- 1 root root 1073741824 May 18 09:38 data_bkp.ac 
-rw-r--r-- 1 root root 1073741824 May 18 09:41 data_bkp.ad 
-rw-r--r-- 1 root root 1073741824 May 18 09:49 data_bkp.ae 
-rw-r--r-- 1 root root 904246985 May 18 09:51 data_bkp.af 


# du -h data* 
1.1G data_bkp.aa 
1.1G data_bkp.ab 
1.1G data_bkp.ac 
1.1G data_bkp.ad 
1.1G data_bkp.ae 
863M data_bkp.af 

Diese nehmen 22 Minuten und 36 Sekunden dauern !!

+0

Was ist das theoretische Maximum? I.e. Wie schnell sind deine Platten? Wie lange dauert es: 'tar cvzf - data />/dev/null'? Speichern Sie auf den gleichen Datenträgern, von denen Sie gerade lesen? –

Antwort

0

Ich wurde während Teer-Prozess gefragt nur ein CPU-Prozess ist voll von vier. Tar-Prozess benötigt nur viel CPU. So

Ich habe versucht, mit der parallelen Bearbeitung pigz

Ich fand zwei parallelen Prozess Tools PIGZ und PBZIP2, für mich Pigz große Werke,

Für 22 GB Testdateien (10MB Dateien meist hoch in count nicht in der Größe) notmal tar nahm 23 ~ 24 Minuten, pbzip2 auch tooks gleiche Zeit (ich nehme nicht viel Forschung auf diesem) und pigz nahm 8 Minuten !!! Also wähle ich pigz.

Sobald ich mit pigz getan haben, alle meine cpu zu 95%-100% geht, macht das andere Prozess langsam, nach einiger google ich eine Lösung gefunden, diese CPU-Auslastung zu begrenzen, CPULIMIT

Schließlich wie ich verwendet habe, Dies!!

$CPULIMIT_PATH -i -l $CPU_LIMIT_VALUE $TAR_PATH -I $PIGZ_PATH \ 
--ignore-failed-read -c sda1.backup.tar.gz 

-i - alle untergeordneten Prozess, wichtig - sonst CPU-Prozess wird gleiche
-l Grenze der CPU in Prozent dafür verwendete ich

CPU_LIMIT_VALUE=$(echo "$(nproc)*45" | bc); 

Diese 45% Prozent aller geben Kern, dh für 2 Kerne 90 und 4 Kerne 180 so.