bitrider
Goto Top

Dateien MASSENWEISE umwuchten oder löschen

RAID Systeme umlagern

Suche Lösungsansätze für folgende Aufgabe:

Altes RAID-System 2TB - Windows 2003 Server - soll auf ein neues System mit 4TB umgezogen werden. ( Als einzige Verbindung zwischen den Systemen gibt es 1 GB-LANface-sad )

Dazu müssen 2TB an Bilddaten - 4Mio Dateien - in 25000 Ordnern auf das neue System kopiert werden.

Erschwerend kommt hinzu, dass sowohl die (Teil-)Ordnernamen als auch die Dateinamen mindestens 40 Stellen lang sind. ( Dämlich - aber Gott gegebenface-wink )
d.h. in der root - dir /b > datei.txt ergibt eine Dateigrösse von > 1GB !!!

Frage1: Wie kann man MÖGLICHST SCHNELL die Dateien von S1 nach S2 kopieren?

Frage2: Wie kann man MÖGLICHST SCHNELL den Dateibaum löschen OHNE die Platten zu formatieren? ( Auf einem Teil des Systems wird noch gearbeitet )


Danke für Ideen.

Content-Key: 47642

Url: https://administrator.de/contentid/47642

Printed on: April 20, 2024 at 04:04 o'clock

Member: Supaman
Supaman Dec 30, 2006 at 17:51:06 (UTC)
Goto Top
bei vielen kleinen dateien geht die kopiergeschwindigkeit über explorer bzw dateimanager arg in den keller, egal ob nun lan oder von platte zu platte.

das schnellste dürfte ein image der partition sein, z.b. mit acronis.

möglicherweise kann man auch mit einer replikationssoftware arbeiten, das ist zwar nicht schneller, kann aber im laufenden betrieb nebenbei gemacht werden. erster durchlauf replikation von allen dateien, danach ein zweiter durchlauf der nur noch die geänderten dateien kopiert.

zu frage 2:
da wird dir nur der klassische weg bleiben. wobei das löschen des dateibaums den betrieb nicht beeinträchtigen dürfte.
Mitglied: 16568
16568 Dec 30, 2006 at 18:30:23 (UTC)
Goto Top
Sehe ich teilweise auch so...

Also, wenn der Transfer echt nur über Netz geht, Total Commander nehmen.
Im Vergleich zum Win-Explorer geht das mit dem schneller.
Image, bäh, das is sicher eine Möglichkeit, halte ich bei dieser Dateimenge jedoch für unangemessen.
Was auch eine Möglichkeit wäre, sofern Hotswap...
Oder eben echt ein Sync-Tool...

Das mit dem Dateibaum, hm, da würde ich sagen, solltest Du Dich an das Forums-Mitglied Biber wenden, denn das Löschen kann in der Tat teilweise system-beeinträchtigend werden.
Besser wäre hier ein nettes Bätschelchen, das die Ordnerstruktur so nach und nach killt; sprich erst den einen Unterordner, dann den nächsten, etc...


Lonesome Walker
Member: bitrider
bitrider Dec 30, 2006 at 19:00:31 (UTC)
Goto Top
Danke.

hmmm ... Image: 2TB ist immer noch SEHR unhandlich.

Wo erstellen und wohin dann damit?

--

Hast du eine bestimmte Replikationssoftware im Sinn?
Member: Supaman
Supaman Dec 30, 2006 at 19:49:05 (UTC)
Goto Top
ich hab gute erfahrungen mit vice versa pro 2 ( http://www.tgrmn.com ) gemacht. kann (fast) alles, ist einfach zu bedienen und kostet nicht viel. für deine anwendung dürfte interesant sein, das man prozesspriorität und die transferrate einstellen bzw. herunterregeln kann.
Member: Biber
Biber Dec 30, 2006 at 23:22:49 (UTC)
Goto Top
Moin bitrider,

ich würde versuchen, den Prozess soweit wie möglich zu parallelisieren, das heißt, ab einer gewissen "Tiefe" der vorhandenen Verzeichnisstruktur einzelne MOVE-Prozesse (also etwas mit wenig Overhead) zu starten.
Und vorher die "leere" Ordnerstruktur mit XCopy anlegen.

Ich denke, ein Dutzend Parallel-Bätche wird ein halbwegs zeitgemäßes System verkraften.

Beispiel: Wenn die Daten von einem Quellverzeichnis d:\Data nach \\neuServer\Altdaten sollen:
>Xcopy /s /T d:\data\*.* \\neuServer\Altdaten\ 
>for /d %i in (d:\data\*.*) do @for /d %j in ("%i\*.*") do Start  /min Move /y "d:\data\%~nxj\*.*" "\\neuserver\Altdaten\%~nxj\"  
Dann würden in jedem vorhandenen Unterverzeichnis unter d:\data je ein MOVE-Prozess losgetreten werden... wenn in dieser zu wenig Unterzeichnisse sind, halt eine Ebene tiefer anfangen.
Vielleicht kannst Du mal kurz antesten, ob diese (theoretisch funktionierende) Strategie auch in der Praxis funktioniert.
Das Erzeugen der Ordnerstruktur kann ja nicht schaden... und ein paar MOVEs auch nicht...

Wenn das Prinzip funktioniert, lässt es sicher auch mit einer weiteren halben Zeile auf rekursive Abarbeitung der Verzeichnisstruktur aufbohren.

Das abschließende Löschen der leeren Verzeichnisse mit einer For/R-Anweisung und ggf. wieder gestarteten Parallel-Threads halte ich nicht für problematisch.

Ach, übrigens... wie groß wäre denn eine mit "dir /b A:d >ordner.txt" erzeugte Datei?

Gruß
Biber
Member: bitrider
bitrider Dec 31, 2006 at 01:20:57 (UTC)
Goto Top
Hallo Biber!

du bist offensichtlich auch ein FAN-DER-DOS-BOX face-wink

<grins> TIPPER haben immer andere Ansätze als MAUSER

ich würde versuchen, den Prozess soweit
wie möglich zu parallelisieren, das
heißt, ab einer gewissen
"Tiefe" der vorhandenen
Verzeichnisstruktur einzelne MOVE-Prozesse
(also etwas mit wenig Overhead) zu starten.

JA!
So hab ich mir's auch vorgestellt.

Und vorher die "leere"
Ordnerstruktur mit XCopy anlegen.


hm - klingt nicht falsch; aber ich versteh nicht, warum's GUT ist?!

Ich denke, ein Dutzend Parallel-Bätche
wird ein halbwegs zeitgemäßes
System verkraften.

Jeder (x)copy macht eine Systemlast von 2-3%
... da gehen schon ein paaaar.



Beispiel: Wenn die Daten von einem
Quellverzeichnis d:\Data nach
\\neuServer\Altdaten sollen:
>Xcopy /s /T d:\data\*.*
> \\neuServer\Altdaten\ 
> >for /d %i in (d:\data\*.*) do @for /d %j
> in ("%i\*.*") do Start  /min Move  
> /y "d:\data\%~nxj\*.*"  
> "\\neuserver\Altdaten\%~nxj\"  
> 
Dann würden in jedem vorhandenen
Unterverzeichnis unter d:\data je ein
MOVE-Prozess losgetreten werden... wenn in
dieser zu wenig Unterzeichnisse sind, halt
eine Ebene tiefer anfangen.
Vielleicht kannst Du mal kurz antesten, ob
diese (theoretisch funktionierende) Strategie
auch in der Praxis funktioniert.
Das Erzeugen der Ordnerstruktur kann ja
nicht schaden... und ein paar MOVEs auch
nicht...

Den echten transfer mit einem move zu machen ist ne coole Idee!

Wenn das Prinzip funktioniert, lässt es
sicher auch mit einer weiteren halben Zeile
auf rekursive Abarbeitung der
Verzeichnisstruktur aufbohren.

Das abschließende Löschen der
leeren Verzeichnisse mit einer
For/R-Anweisung und ggf. wieder gestarteten
Parallel-Threads halte ich nicht für
problematisch.

Ach, übrigens... wie groß
wäre denn eine mit "dir /b A:d
>ordner.txt" erzeugte Datei?


1,65MB
Meine erste Idee war, wie kann ich mehrere xcopys parallel laufen lassen.
Weil der stumpfe xcopy *.* ziel /s dauert ewig...
Dann hab ich mich geärgert weil
xcopy TEILVERZEICHNIS1\*.* ziel /s
gibt's nicht.
Gruß
Biber
Member: n.o.b.o.d.y
n.o.b.o.d.y Dec 31, 2006 at 09:29:11 (UTC)
Goto Top
Moin!

Will mich ja in eure Batchschreiberei nicht einmischen, aber wollte mal so am Rande bemerken:

Wie sieht das mit der Übernahme der Verzwichnisberechigungen aus, sollen die mit auf den neuen Server übernommen werden? Wenn ja, dann würde ich robocopy aus dem Res.-Kit statt xcopy empfehlen.

my 5 ct.

Ralf

P.S: Allen einen guten Rutsch!
Member: bitrider
bitrider Dec 31, 2006 at 13:07:00 (UTC)
Goto Top
Moin!

Will mich ja in eure Batchschreiberei nicht
einmischen, aber wollte mal so am Rande
bemerken:


MachNur-MachNurface-smile Bin für ALLES dankbar!

Wie sieht das mit der Übernahme der
Verzwichnisberechigungen aus, sollen die mit
auf den neuen Server übernommen werden?

Berechtigungen klassisch... ALLE dürfen ALLES ...

Wenn ja, dann würde ich robocopy aus dem
Res.-Kit statt xcopy empfehlen.

In meiner Verzweiflung hab ich robocopy dann auch verwendetface-smile
Aber bis man die Parameter-Liste gelesen (und teilweise verstanden) hat, hat man nen weissen Bartface-smile

Also RICHTIG cool ist es nicht...

Und nachdem diese Aufgabe bei jedem von uns IMMER IMMER wieder kommt (vielleicht nicht in DEM Umfang) will ich da eine richtige Lösung !!!

Bisher finde ich den Parallelprozess-Gedanken immer noch am nettesten.


my 5 ct.

Ralf

P.S: Allen einen guten Rutsch!


Member: Biber
Biber Dec 31, 2006 at 15:18:09 (UTC)
Goto Top
Moin bitrider,

ich wollte auch nur meine Strategieüberlegungen loswerden, noch keine Patentlösung anbieten... face-wink

Zu Deinen Fragen:
Und vorher die "leere" Ordnerstruktur mit XCopy anlegen.
hm - klingt nicht falsch; aber ich versteh nicht, warum's GUT ist?!

Weil sich der MOVE-Befehl nur verwenden lässt, wenn denn das Zielverzeichnis schon da ist.

Zu n.o.b.o.d.y. /Ralfs Ergänzungen:
Wenn die Strategie denn Parallelisierung sein soll, wäre sicherlich
- der MOVE-Befehl der schlankeste. Aber auch der am wenigsten mächtigste - da geht weder Verzeichnisse anlegen noch Rechte übertragen noch rekursives Verzeichnisse-Abarbeiten.
- Robocopy wäre der komfortabelste Allrounder. Allerdings auch ein Klotz, der sich schlecht in einem Dutzend Parallelthreads starten lässt. Kennt aber auch ein /MOVE.
-XCopy wäre ein brauchbarer Kompromiss zwischen Funktionalität und Ressourcenfresserei - mit zwei Einschränkungen. Erstens ist XCopy einer der wenigen M$-Befehle, der dokumentierterweise den Fehler "Zu wenig Hauptspeicher zum Weitermachen" kennt. Und der kennt den Fehler nicht nur, sondern stürzt sich auch in der Tat bei größeren Datenmengen sehenden Auges in genau dieses Verderben. Zweitens hat XCopy alles mögliche an Parametern, aber eben keinen /Move oder /DeleteAfterCopy-Parameter.

Zwischen den drei Werkzeugen würde ich abwägen und - wie oben beschrieben - ich wäre dann zu der Strategie gekommen, die Verzeichnisstruktur mit "XCopy /T" anzulegen und das Verschieben mit dem MOVE-Befehl abzufackeln.

Falls es natürlich irgendwo ein Multi-Thread-Kopiertool gibt, das ähnlich wie ein Downloadmanager die Daten in Parallel-Prozessen kopiert, würde ich auch dieses nehmen. (Aber erfinden würde ich keins... bestenfalls Aufwand in 5 oder 6 Zeilen Batch stecken.)

@bitrider:
Hast Du denn mal einen kurzen Test gemacht, wie sich so ein "Multi-Thread-Kopieren" verhält?
Mir fehlen hier ein bisschen Deine TByte-großen Testdaten.... face-wink

Gruß
Biber