Viele kleine Dateien sind immer nervig. Aber 10 Tage sind schon extrem.
Unser inkrementelles Backup liest täglich ca. 20 mio. files verteilt auf 6TB in ca. 12h. Da werden dann natürlich nur die geänderten auch übertragen.
Ich würde die Ursache für die lange Dauer eher bei der Software suchen.
Das ist aber dann viel eher eine Frage nach der Prüfung bzw. den Settings...
Wenn du nen Binärvergleich machst, wird das um Welten länger dauern, als wenn du simpel nur Zeitstempel vergleichst
Geht man nach deinen Werten, wären das im Schnitt 322KB pro File (20 Mio, 6TB)
Das ganze bei 12h bedeutet, dass du ca. 145MB/sec schaffst. Da ja nicht alle Daten übertragen werden beim Inkr. Backup, sondern nur die geänderten Files, heist aber 145MB/sec auch, das du pro Sekunde ca. 461 Files prüfst. (~322 KB pro File in 145MB/sec) Gehe ich davon aus, das das Prüfen einer Datei genau einen Zyklus Kopfbewegung dauert und setze dafür die Latenz einer HDD an, dann heist das, du müsstest im Schnitt alle ~2ms ein File checken um auf 461 Files die Sekunde zu kommen. 2ms erreichst du nicht mit ner 7,2k Platte
Nichtmal mit ner 15k SAS Platte aktuellster Generation.
Der Vergleich hinkt also etwas
Das zu erreichen bedarf definitiv mehr wie nur nem simplen Raid 5 aus sechs HDDs, wie es der TE hier zu haben scheint... Entweder mit SSDs gepaart, mit SSDs als Cache oder riesigen Memory Caches. Ggf. auch ein System, was die Daten nicht Random von den Platten holt, sondern Mechanismen in der Controller Logik, die entweder die einzelnen Platten bei Random Last verschiedene Teile lesen lassen oder das immer sequenzielle Bereiche gelesen werden und dann die Daten analysiert werden. -> letzteres glaube ich allerdings nicht, da die Kopiersoftware ja sagt, was gelesen werden muss. Unabhängig der Lage der Daten auf den HDDs.
Wenn ich den TE richtig verstehe, dann heist ca. 8 Jahre alter Server auch, das entsprechend alte HDDs da verbaut sind.
Raid 5 mit ~2,5TB Daten heist bei 6 HDDs ebenso, das wohl minimum 640GB HDDs verbaut sein müssten.
Ende 2006 (also heute abzgl. 8 Jahren) wurde gerade so die erste WD 2TB HDD vorgestellt...
Man müsste nun explizit schauen, was da für HDDs verbaut sind/waren und was zu der Zeit gerade am Markt an 10k/15k "Größen" vertreten war. Aber ich glaube kaum, das es 600GB SAS 10k/15k Platten waren. Klingt für mich eher wie schnöde 7,2k Platten mit "Serverinterface" ala SAS oder U320 SCSI, oder gar "nur" SATA.
Bei derartigen Datenmengen und vor allem auch Files heist das Zauberwort wohl paralelle Verarbeitung der Jobs. Robocopy wie viele andere Tools auch vergleichen nur in einem Stream die Files. Was auch heist, das bei nem Raidsystem wohl zwar die Blöcke von allen HDDs gelesen werden, aber nur ein Bruchteil der Daten überhaupt genutzt wird. Im Endeffekt dürfte die verarbeitete Datenmenge (bis auf die Files, die wirklich kopiert werden) unwesentlich klein sein. Man erhält wohl sozusagen nur den Speed einer Single HDD.
PS: auch ist für den TE ja interessant gewesen, dass er die Daten ja übertragen wollte/will
Sprich es werden auch alle! Files kopiert... Was das Problem nicht minder einfach macht... Bei nem Single Kopiestream heist das dann ebenso, dass im Endeffekt der Randomspeed einer einzelnen HDD für den Kopierspeed verantwortlich ist. Und das ggf. (bei 322KB und 64KB Blocksize) minimum sechs Blöcke, bei ungünstiger Verteilung im Filesystem noch viel mehr Blöcke gelesen werden müssen. Bei günstiger Verteilung auf der Platte selbst wären es zwei Kopfbewegungen. Bei ungünstiger Verteilung auf den Platten deutlich mehr.
10 Tage bei 2,5TB Daten heist ca. 3MB/sec.
Nehme ich ebenso die 322KB durchschnittliche Filegröße, wären das nach obiger Rechnung ca. 105ms. Für Random Load durchaus akzeptabel würde ich sagen... Die 20-25ms einer 7,2k HDD hat es ja auch nur ohne Last. Degraded Zustand sollte man auch nicht vernachlässigen...
PS: auch spricht er von 2003 Server, hat man da nicht aufgepasst, dann ist das Alignment bei der Partitionierung für die Tonne
2003 Server beginnt den ersten Block bei Sektor 63. Unmittelbar nach dem MBR. -> und das heist bei 4KB Clustersize des Filesystems, das minimum zwei Blöcke auf der HDD gelesen werden müssen. Im Raidbetrieb ungünstigerweise also auch zwei Blocke. Man sollte bei 2003 Server definitiv das Partition-Offset so einstellen, dass die Zahl durch 4 teilbar ist.
Dann passts...