Kopieren einer tief verschachtelten Verzeichnisstruktur

Kopieren einer tief verschachtelten Verzeichnisstruktur

Ich muss im Rahmen einer Anwendungsmigration eine Verzeichnisstruktur auf einen neuen Host kopieren. Die Verzeichnisstruktur sieht wie folgt aus:

{10 - ff} / {00 - ff} / {00 - ff} (nicht inklusive) / uniquefilename

Es gibt also Millionen von Dateien. Die dritte Ebene des Baums ist nicht vollständig ausgefüllt, und nicht jedes Verzeichnis der dritten Ebene enthält eine Datei.

Ein du dauert sogar bei einem Ordner der zweiten Ebene SEHR lange. Die Verwendung von tar | nc würde 10 Tage dauern. Ich kann einen Ausfall von 1 Tag haben, aber nicht von 10.

Antwort1

Verwenden Sie rsynchierfür.

  1. Bevor Sie auf den neuen Server umsteigen müssen, migrieren Sie rsyncdas gesamte Verzeichnis von einem Host zum anderen. So wie es klingt, wird dies lange dauern.
  2. Führen Sie es nach Abschluss rsyncerneut aus, um alle während des ersten Rsync geänderten Dateien abzufangen.
  3. Führen Sie die regelmäßigen rsyncDurchläufe so lange durch, bis Sie die Umstellung durchführen möchten. Dies dient lediglich dazu, das zu übertragende Datenvolumen gering zu halten.
  4. Führen Sie eine Unterbrechung durch und stoppen Sie alle Schreibvorgänge auf dem alten Server.
  5. Führen Sie eine letztersync
  6. Starten der Dienste auf dem neuen Server

Antwort2

Wenn diese Verzeichnisstruktur den Großteil der Daten auf dem Gerät/der Partition ausmacht, ignorieren Sie die Verzeichnisstruktur, sofern sie das Problem verursacht.

Hängen Sie stattdessen das Gerät aus (oder mounten Sie es schreibgeschützt erneut) und verwenden Sie dd(1)netcat, um die Dateisystemblöcke auf eine Partition derselben Größe auf dem neuen Host zu kopieren.

Wenn irrelevante Daten außerhalb der gewünschten Hierarchie vorhanden sind, löschen Sie diese nach der Migration.

Sie können auch in Erwägung ziehen, das Laufwerk herauszuziehen und an den neuen Host anzuschließen, wenn das Netzwerk zwischen den Hosts einen Engpass darstellen könnte.

Antwort3

Für eine einmalige Kopie und wenn Sie Quelle und Ziel auf demselben System mounten können, können Sie

find [source top dir] | cpio -dump [target mountpoint]

Es kopiert und behält die Dateiattribute bei. Im CPIO-Tool sollte auch ein Komprimierungsparameter vorhanden sein.

verwandte Informationen