Festplatte spiegeln unter Linux

Hallo :)

Da mir Datensicherheit ein wichtiges Anliegen ist, möchte ich meine Festplatte Regelmäßgig spiegeln. Ich besitze 2 gleiche Sata 2 Festplatten.

Die einfachste Möglichkeit ist natürlich dd. Das Problem ist nur, dass beim Spiegeln der ganzen Platte die Durschnittsgeschwindigkeit bei ~ 7 MB/s liegt. Bei einzelnen Partitionen aber bei ~ 60 MB/s. Mit 7 MB/s dauert mir das Spiegeln einer 250 GB Platte einfach zu lange.
Weiß jemand woran das liegen könnte?

Da ich es eh nicht so toll finde, dass ich während dem Spiegeln keine Anzeige über den Fortschritt habe, wäre es toll, wenn mir jemand ein anderes Programm (für die Konsole) empfehlen könnte, dass das kann.

xblax
 
Du könntest die Daten auch mit rsync auf die andere Platte übertragen, allerdings sind sowohl dd als auch rsync eine ziemlich unbrauchbare Lösung. Setze einfach ein Software-RAID auf und die Synchronisierung der Platten läuft ganz von allein nebenbei ohne daß der Datendurchsatz spürbar negativ beeinflußt wird.
 
Hm ein Raid ist nicht so ganz, was ich mir vorgestellt habe. An dem PC soll nämlich während der Spiegelung gar nicht gearbeitet werden.
Will eigentlich Linux von CD booten und dann so schnell und effektiv wie möglich die Platten spiegeln.
 
so wie ich das verstanden habe, soll sie gespiegelt werden, also wohl danach auf das byte gleich sein. Dann wird sie wohl auch bootbar sein
 
Ja bootbar sollte sie schon sein.
Nach der Sicherung sollten einfach beide Festplatten identisch sein.
Ein Raid möchte ich nicht, da ich dann nicht mehr vor eigenen Fehlern geschützt bin.

Edit:
so wie ich das verstanden habe, soll sie gespiegelt werden, also wohl danach auf das byte gleich sein. Dann wird sie wohl auch bootbar sein

Korrekt ;)
 
Das Problem ist, dass dd nicht ganz so funktioniert wie es soll.

Wenn ich eine 1 GB große Datei mit dd auf die Festplatte schreibe, dann kann ich das auf zwei Arten machen:

1. dd if=/root/file of=/dev/sdb8
~ 60 MB/s

2. dd seek=146818098 if=/root/file of=/dev/sdb
~ 15 MB/s

Block 146818098 ist der Anfang von sdb8. Das Ergebnis ist beides mal das Gleiche, hab ich überprüft.
Wenn ich jetzt eben die ganze Platte und nicht nur einzelne Partionen mit
dd if=/dev/sda of=/dev/sdb
spiegeln will hab ich ein Problem weil es so langsam ist.

Beim Lesen von Daten hab ich dieses Problem nicht. Interessant ist auch, dass die Festplatte bei der Methode mit dem direkten Schreibzugriff seltsame Geräusche von sicht gibt. Schreibe ich direkt auf die Partition sind sie weg.
Ich schließe also, dass da beim Schreibzugriff auf die Platte irgendwas anders läuft.
Die Frage ist also: Was? Warum? Wie kann ich es ändern?

Hoffe mal irgendwer kann mir helfen ;(
 
dd arbeitet direkt auf Hardware-Ebene also ohne daß der Kernel die Lese- und Schreibzugriffe großartig steuert (lediglich die Hardware-Treiber sind mit im Spiel, aber nicht die für das Dateisystem). Da der Zugriff über einen Dateisystem-Treiber speziell lesend meist wesentlich performanter ist als das direkte kopieren von Sektoren, dürfte hier die Ursache für die Geschwindigkeitsunterschiede liegen. Versuche es einfach mal mit rsync. Schreibe also den Bootloader auf die zweite Platte und synchronisiere die Daten dann mit rsync. Wichtig: /dev/* und /sys/* sollte dabei excluded werden. Die dort befindlichen Dateien werden eh beim Booten angelegt.
 
Ich boote von einer LiveCD und keine der Partitionen auf sda oder sdb sind gemountet. Also kann ich mir nicht vorstellen, dass das Dateisystem eine Rolle spielt. Ich schreibe ja hier im Beispiel die Daten direkt in /dev/sda8 und nicht ins Dateisystem.

Bei Rsync blicke ich auf die Schnelle noch nicht durch. Kannst du mir schnell ein Beispiel geben, wie ich 2 Festplatten spiegeln kann? (sda nach sdb)
 
Hab mir die Manpage angeschaut.
Wenn ich es richtig verstanden habe, dann ist Rsync dafür da um Verzeichnisse zu synchronisieren und nicht um ganze Devices zu spiegeln.
 
Original von xblax
Hab mir die Manpage angeschaut.
Wenn ich es richtig verstanden habe, dann ist Rsync dafür da um Verzeichnisse zu synchronisieren und nicht um ganze Devices zu spiegeln.

Im Prinzip erreichst du das gleiche, wenn beide Platten vorher identisch partitioniert und formatiert sind. Vorteil bei rsync ist, daß es 1. auch im laufenden Betrieb geht und 2. brauchst du ab dem zweiten Mal nur noch die Daten synchronisieren, die sich tatsächlich geändert haben.
 
Original von soox
versuch mal die block size bei dd ein wenig zu erhoehen.

Hat leider nicht den gewünschen Erfolg gehabt.
Es wurmt micht immer noch, dass ich direkt auf /sdaX schneller schreiben kann als auf /sda. Ist doch im Grunde das Gleiche?

Die Rsync Mehtode wird wohl eher nicht so gut für mich funktionieren. Hab auch noch NTFS und verschlüsselte Partitionen auf der Platte.

Werd jetzt nochmal eine andere LiveDistribution testen, wenn es dann auch nicht geht bin ich erstmal ratlos -.-
 
Im Zweifelsfall wende dich halt mal wegen der Unterschiede in der Schreibgeschwindigkeit an die Entwickler von dd. Die können dir sicherlich am besten erklären warum es da Unterschiede gibt.
 
Du könntest dir G4U mal anschauen. Liest mit dd die Festplatte oder Partitionen aus, komprimiert das ganze bei bedarf und schiebt es dann auf eine Festplatte oder einen FTP Server. Basiert auf nem BSD, kann man prima von CD booten oder auch auf die Festplatte legen und per Grub booten. Deine Festplatte wäre, wenn du komprimierst halt nicht bootbar. Dafür hättest du mehrere Versionen deiner Daten und nicht nur eine.
 
Hab das ganze jetzt noch mit Knoppix und mit der Gentoo Live CD getestet. Überall das gleiche.
Daraufhin hab ich jetzt mal ne Mail an die Entwickler geschickt.

@ Aspartam
Werde es mir evtl. mal bei Gelegenheit anschauen, auch wenn es nicht wirklich das ist, was ich gerne hätte.

Falls ich eine Lösung finde, werde ich es posten. Danke schonmal für eure Hilfe :)
 
Die Rsync Mehtode wird wohl eher nicht so gut für mich funktionieren. Hab auch noch NTFS und verschlüsselte Partitionen auf der Platte.

Dürfte also doch eher problematisch werden, oder hab ich die Aufgabe von Rsync falsch verstanden?
 
Zurück
Oben