• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

Datenplatte spiegeln - "dd" oder "cp" Kopie?

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
  • Thread Starter Thread Starter
  • #21
Jetzt mal ein "Fun" Fact, man sollte sich bei "dd" auch sicher sein, das die Festplatten gleiche Kapazitäten besitzen...

Mit "cp" oder "rsync" wäre mir spätestens dann, mit großes Sicherheit, aufgefallen, das ich ein 1,5 TB Medium auf ein 1 TB Medium spiegele... hab mich nur beim prüfen der Daten eben gewundert warum ich überhaupt keine Daten sehe... gab wohl einen Fehler dadurch, aber "dd" hat munter die Platte befüllt, jedenfalls das was ging. Ärgerlich.

Ich kopiere jetzt wahlweise mal die Daten mit "rsync" - werde dann auch mal sehen ob und was für eine Fehlermeldung kommt, wenn kein Platz mehr ist. Hätte ich mir bei "dd" in dem Fall aber auch gewünscht. Aber gut, muss man wohl vorher prüfen...
Allerdings ist das auch ziemlich doof, wenn man zum Beispiel bei "in der Theorie" baugleiche USB-Stick Abbilder macht, und diese auf andere Sticks ziehen will, die aber, aus was für Gründen auch immer, eine etwas geringere Kapazität besitzen.

Aber war wohl Lehrgeld, die Erfahrung zu machen....

--- [2017-07-23 17:10 CEST] Automatisch zusammengeführter Beitrag ---

@nik: Nur noch kurz, das stimmt wohl, ich hab das mit der Bulksize aber noch nicht 100% raus, kommt so wie es verstehe wohl aber darauf an wie viel "Puffer" / Cache die Datenträger haben und wie die Lese/Schreibgeschwindigkeiten sind. Utopisch hohe Werte würden die Datenübertragung ja meist dann auch nicht direkt verbessern, wenn das Schreiben das Bottleneck wäre. Oder?
 

nik

肉まん

Registriert
19 Feb. 2017
Beiträge
962
Ort
deine Mülltonne
@theSplit: Richtig, da die Standard aber gerade mal 512b entspricht, ist es in jedem Fall besser, wenn du da einfach die Blockgröße des Datenträger nimmst.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
  • Thread Starter Thread Starter
  • #23
Rsync hat ein etwas komisches Verhalten beim kopieren, es könnte auch an den Festplatten liegen.
Aber der Kopiervorgang "pausiert" regelmäßig nach ein paar Kopiervorgängen für 15-20 Sekunden und geht dann normal weiter.

Kann man das irgendwie verhindern? Warum "blockt" da etwas? Ist rsync "zu schnell" für die Hardware?

Edit: Mit "cp" gab es auch diese periodischen Pausen, von daher hab ich es gar nicht weiter damit versucht gehabt.
 
Zuletzt bearbeitet:

musv

Bekannter NGBler

Registriert
15 Juli 2013
Beiträge
3.454
Ort
/dev/null
Ich möchte eine Festplatte, 1 TB, auf eine andere spiegeln … Es handelt sich allerdings um eine reine Datenplatte die nur eine Partition mit FAT32 bzw. NTFS … beinhaltet,
Nein, du möchtest die Platte nicht spiegeln, sondern den Inhalt der einen auf die andere kopieren.

Allerdings würde ich bei großen Datenplatten ein vernünftiges Dateisystem verwenden. Präferenz wäre xfs, danach käme ext4. Oder musst du an die Daten zwingend mit Randgruppenbetriebssystemen rankommen?

Was wäre der schlaueste Weg in diesem Fall?
rsync

cp hat halt den Nachteil, dass es im Abbruchsfall das Kopieren nicht an derselben Stelle wieder aufnehmen kann. Früher hat man noch cpio --passthrough verwendet. Aber das fand ich schon immer zu umständlich.

dd willst du dafür nicht nehmen, da du mehrere Unsicherheitsfaktoren hast. Fehler an den Quelldateien bekommst du gar nicht mit. Und wenn die Zielplatte auch nur etwas kleiner als die Quellplatte ist, dann hast du ein Problem, was du aber erst am Ende des Kopiervorganges präsentiert bekommst. dd nimmt man, wenn die Übernahme der Partitionierung im Vordergrund steht.

Kann man das irgendwie verhindern? Warum "blockt" da etwas? Ist rsync "zu schnell" für die Hardware?
Kann mehrere Faktoren haben. Zum einen ist sicherlich NTFS ein Problemfall, da die ntfs3g-Treiber über fuse arbeiten. Damit ist ntfs3g halt kein Kerneltreiber und entsprechend langsamer.

Überwachen kannst du das Ganze mit iotop.
 
Zuletzt bearbeitet:

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
  • Thread Starter Thread Starter
  • #26
@musv: Ja, die Platten müssen überall laufen, auch unter Windows oder mal nen MediaPlayer der nur FAT32 unterstützt.

Das mit dem Spiegeln habe und das einfach abgebrochen wird, wenn das Zielmedium keinen Platz mehr hat, habe ich schon bei dd festgestellt.

Habe wie gesagt nun auch rsync genommen, ich habe lediglich noch nicht ganz raus, wie ich damit einen mit "Strg + C" abgebrochenen Kopiervorgang wieder aufnehmen kann. Habe zwar gesehen es gibt eine "Append" Funktion, aber die wird vermutlich die Daten nur "anhängen" an bereits existierende Dateien?
Also wie das mit dem "Resume" funktioniert, wäre nett wenn du das kurz anreißen könntest welchen Befehl man dafür verwendet.

Das NTFS geringfügig bzw. entsprechend langsamer ist, ist mir auch schon aufgefallen, jetzt kenne ich mal einen Grund :)

iotop muß ich mal testen.

@drfuture: Du meinst sicherlich weil es über den gleichen IO Controller geht? Deßhalb mal hinten und "vorne" testen?
Ich bin noch nicht dazu gekommen, da ich schon einiges kopiert hatte, aber das sollte ja relativ leicht machbar sein das mal auszuprobieren. :)
 

Metal_Warrior

Defender of Freedom
Teammitglied

Registriert
10 Aug. 2013
Beiträge
6.830
Ort
/dev/mapper/home
@theSplit: rsync synchronisiert. Daher der Name. Es checkt am Anfang die Unterschiede und gleicht an. Daher gibt es auch sowas wie eine "setze abgebrochenen Kopiervorgang fort"-Funktion nicht wirklich, weil er quasi ständig damit rechnet, dass auf dem Ziel identische Dateien sind.

Beliebte Optionen sind -au (alle Rechte etc. beibehalten und update, d. h. überschreibe am Ziel nur, was auch älter als die Quelle ist).
 

musv

Bekannter NGBler

Registriert
15 Juli 2013
Beiträge
3.454
Ort
/dev/null
Habe wie gesagt nun auch rsync genommen, ich habe lediglich noch nicht ganz raus, wie ich damit einen mit "Strg + C" abgebrochenen Kopiervorgang wieder aufnehmen kann.
Wie Metal Warrior schon gesagt hat, es setzt das Kopieren einer abgebrochenen Datei nicht fort, sondern kopiert diese neu. rsync erkennt aber, welche Dateien schon korrekt kopiert wurden und kopiert dann nur noch den Rest. Auch die Option -u (skip files that are newer on the receiver) ist halt sinnvoll.

Das NTFS geringfügig bzw. entsprechend langsamer ist, ist mir auch schon aufgefallen, jetzt kenne ich mal einen Grund :)
Um mal in der Geschichte etwas weiter auszuholen:

Wie wir alle ja wissen, ist M$ böse. Also haben sie die Specs von NTFS nie rausgegeben. Bis 2005 gab's nur einen Unstable-Treiber, der auch noch im Linux-Kernel enthalten ist. Lesen war damit sicher. Beim Schreiben konnte man sich durchaus das Dateisystem zerschießen. Im Jahre 2005 setzte sich dann ein netter Tscheche hin und bastelte einen Wrapper, mit dem man den Windows-Treiber nutzen konnte. Das Ganze nannte sich Captive NTFS und funktionierte eigentlich ziemlich gut. Auch hier kam Fuse zum Einsatz.

Ein paar Jahre später etablierte sich dann NTFS-3g, was auch heute noch (und auch bei Dir) zum Einsatz kommt. NTFS-3G wurde anfangs in extrem mühevoller Reverse-Engineering-Arbeiit entwickelt. Erst Jahre später gab sich M$ geschlagen und kooperierte.

Fuse ist ein Kerneltreiber, der eine Schnittstelle zum Userspace und die entsprechenden Libs zur Verfügung stellt, um beliebige Dateisystemtreiber zu implementieren. Bekanntestes Beispiel neben ntfs3g ist die Webdav-Geschichte.

iotop muß ich mal testen.
Es gibt noch mehr Monitoring-Tools, um die Gründe für das Stocken herauszufinden. Bei top gibt's z.B. den wa-Wert (oben techts). Ein hoher Wert lässt darauf schließen, dass die CPU auf die Festplatte warten musst. Das tritt u.a. auch auf, wenn der RAM ziemlich ausgelastet ist und das System anfängt zu swappen (Klick). iostat gibt Dir ebenfalls hübsche Informationen.

Aber wie gesagt, bei Dateisystemtreibern, die auf fuse basieren, kannst du keine Performance erwarten, die du bei nativen Kerneltreibern (xfs, ext, btrfs) erhältst.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
  • Thread Starter Thread Starter
  • #29
Vielen Dank für die Infos und auch fürs "Historische", klingt spannend :T

Jetzt hätte ich allerdings noch eine Frage, Metal_Warrior schlägt "-au" als Switches vor. Das macht soweit auch Sinn, wobei ich so kopiert hatte, das Timestamps beibehalten werden, mit folgendem:
[src]rsync -r -X --noatime --progress QUELLE ZIELPLATTE[/src]

wenn ich das mit dem Überspringen von neueren Dateien dazunehme und auch das beibehalten von Rechten (was bei FAT32 oder NTFS ja nicht angewendet wird):
[srch]rsync -r -a -u -X --noatime --progress QUELLE ZIELPLATTE[/src]

Ich hatte beim kopieren dann noch "--preallocate" verwendet. (Kurze Zwischenfrage, würde das generell existierende Dateien überschreiben?)

Das Preallocate hatte ich genommen, weil ich vermutet habe das dies das "blocking" umschifft, tats aber nicht.
Komischerweise, wenn man mit "dd" "spiegelt" und eine anständige Bulksize hat, kommt dieser Schluckauf nicht.

Am RAM sollte es dann eigentlich aber nicht liegen, ich habe 16 GB verbaut.

Für 800 GB habe ich fast 10+ Stunden gebraucht mit rsnyc, mit dd für 1 TB knappe ~7-8 Stunden mit angezeigten, durchgängigen, 42,9 MB die Sekunde.
Also eigentlich besser, aber ich geb zu, das ist natürlich nicht direkt ideal gewesen damit zu kopieren, aber es wäre theoretisch um einiges schneller gegangen.


Ich vermute mal, das dies wirklich mit der Bulksize zu tun hat, Festplatten haben ja einen Cache, der voll läuft und dann irgendwann "geflushed" wird, also das die Daten die im Zwischenspeicher liegen, auch wirklich geschrieben werden.
Und wie es schien wartetet rsync (cp aber auch) auf die Quellfestplatte, nicht aber auf die Zielfestplatte, diese hat keine Aktivität angezeigt, nur das Quellmedium hat munter aufgeleuchtet, obwohl die beiden Festplatten sich bis auf die Kapazität nicht viel nehmen,

----

Zu guter Letzt noch einmal eine andere Frage zu rsync - woran erkennt rsync das die Datei, die sich auf dem Zielmedium befindet, bereits existiert und auch die Gleiche Größe besitzt bzw. korrekt kopiert wurde?

An der Dateigröße + Änderungszeit und einer internen Prüfsumme bei gleichem Dateinamen?


Update: @drfuture: Habe mal wie du vorgeschlagen hast, jetzt beim kopieren von Daten die Quellplatte "hinten" am Rechner angeschlossen, die andere klemmt "vorne". Und siehe da, der Kopiervorgang blockt wirklich nicht mehr! :T
 
Zuletzt bearbeitet:

Metal_Warrior

Defender of Freedom
Teammitglied

Registriert
10 Aug. 2013
Beiträge
6.830
Ort
/dev/mapper/home
@theSplit: Es hätte -auX gereicht - a steht für archive (impliziert damit -rlptgoD). Und nein, das preallocate überschreibt nix, das reserviert nur schonmal Speicherplatz. Braucht man nie. (Nachtrag: Warum ich -au vorgeschlagen habe: Braucht man oft, daher verwende ich gern "meine' Standardparameter, auch wenn ich sie grad nicht brauche, so wie das u in deinem Fall, weil Kopie nach leerer Platte. BTW: Ich hoffe, du hast die Platte vorher partitioniert und formatiert, nach deiner Aktion mit dd, sonst hast du nämlich bald die nächsten Probleme.)

Zeit ist völlig irrelevant - du willst was kopieren, das länger dauert. Warte 3 Minuten, schau nach, wie viel er schon kopiert hat (df -h hilft), rechne die Durchschnittsgeschwindigkeit aus, die daraus resultierende Dauer und schlag 10% für etwaige Schwankungen drauf. Dann geh ins Bett, wenns länger als 2 Stunden dauert.

Edit: Erkennen gleicher Dateien - erstmal gleicher Pfad und Dateiname (ist ja klar), dann müsste Änderungsdatum, Dateigröße und zu guter Letzt Gesamthash der Datei geprüft werden. Jedenfalls wird zu Beginn nicht sehr viel Information ausgetauscht, um die Dateiliste zu erstellen.
 
Zuletzt bearbeitet:

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
  • Thread Starter Thread Starter
  • #31
@Metal_Warrior: Also wegen Repartionierung der Festplatte, habe ich gemacht, vor allem weil ich, nach fehlgeschlagenem dd, nicht mehr darauf als Dateisystem zugreifen konnte. Hab daher mit gparted komplett neu partitioniert und formatiert. :)
 
Oben