Schnelles Durchführen einer großen Dateisystemsicherung

Schnelles Durchführen einer großen Dateisystemsicherung

Auf /home ist ein Dateisystem gemountet, das über 2,6 PB Speicherplatz verfügt. Derzeit sind über 300 TB Daten im /home-Verzeichnis verstreut. Ich beabsichtige, die gesamten über 300 TB Daten zu sichern.in täglicher Weisezu /home/fs_backup, aber ich habe festgestellt, dass der folgende Befehl tarextrem langsam ist:

cd /home/fs_backup && tar -cpf backup.tar.gz  --exclude="/home/fs_backup" --one-file-system "/home"

Ich schätze, dass es nur 10 GB/min ergeben würde, was bedeutet, dass die gesamten 300 TB+ Daten nicht in 24 Stunden gesichert werden können. Irgendeine Idee, wie ich eine Kopie der aktuellen Daten unter /home erstellen könnte, egal ob sie gut komprimiert sind – oder überhaupt nicht komprimiert sind – oder nicht in kurzer Zeit. Vielen Dank.

Antwort1

Da Sie bereits festgestellt haben, dass Sie den gesamten Datenträger mit 300 GB nicht innerhalb des vorgeschriebenen 24-Stunden-Zeitraums sichern können, müssen Sie Ihre Anforderungen überprüfen.

Auf Dateiebene kann ein inkrementelles Tool wie star, duplicity, oder sogar rsync/ rsnapshotimmer noch länger als einen Tag brauchen, um das Basis-Backup zu erstellen, danach sollte es aber deutlich schneller gehen. Dies hängt natürlich von der Anzahl und Größe der Dateien ab, die innerhalb jedes 24-Stunden-Backup-Zeitraums geändert werden.

Auf Dateisystemebene kann ein Snapshot für Ihre Anforderungen ausreichen (obwohl dies kein echtes Backup ist), insbesondere weil Sie dann nach Belieben ein echtes Backup vom Snapshot erstellen können, ohne die dafür benötigte Zeit zu berücksichtigen. Wie zuvor kann die Erstellung Ihrer inkrementellen Backups nach dem Erstellen des Basis-Backups erheblich schneller erfolgen.

Sie haben nicht angegeben, wie Ihr Backup gespeichert werden soll, aber für viele kleinere Dateien rsnapshotkönnte so etwas gut passen. (Ich verwende es für dateibasierte Backups vieler unserer internen Dateiserver, da es uns einfachen Zugriff auf einzelne Dateien zu Wiederherstellungszwecken ermöglicht.)

Übrigens sollte ein Backup auf einer anderen Festplatte auf demselben Host nicht wirklich als sicheres Backup betrachtet werden. Es wäre viel besser, ein Backup auf einem ganz anderen Host durchzuführen. (Wenn es sich um /home/fs_backupein Remote-Mount von einem anderen Server handelt, sollten Sie ernsthaft erwägen, duplicityoder rsync/ zu verwenden rsnapshot, um direkt mit dem Remote-Host zu kommunizieren, anstatt über das remote gemountete Dateisystem zu gehen.)

Antwort2

Die schnellste mir bekannte Methode zum Erstellen einer Sicherung ist die Verwendung von star(siehe die neueste Version dieses Programms in schilytools), da dieses Programm einen Ringpuffer beliebiger Größe implementiert, der zwischen einem Dateisystemprozess und einem anderen Prozess liegt, der Archiv-E/A durchführt. Wenn die FIFO-Größe richtig gewählt ist, werden fast alle Dateien mit einem einzigen read()Systemaufruf gelesen, was das Programm (zusammen mit dem optimierten Code) wirklich schnell macht.

Dieser Ringpuffer wird aufgerufen FIFOund verwendet standardmäßig 8MB, kann aber auch auf eine beliebige Größe eingestellt werden. Der maximal nutzbare Wert ist die Hälfte der Menge an RAMin der Maschine.

starunterstützt auch die Arbeit mit inkrementellen Dumps und ich empfehle einen vollständigen Dump, gefolgt von einem inkrementellen Dump, um den Inhalt eines Dateisystems auf eine Weise zu speichern, die im letzten Schritt nur wenig Zeit benötigt.

Vielleicht möchten Sie einen Blick auf die Manpage werfen:http://schilytools.sourceforge.net/man/man1/star.1.html

Beachten Sie, dass auf dieser Manpage empfohlen wird, Sicherungen nicht von einem Live-Dateisystem, sondern auf snapshotDateisystemebene durchzuführen.

verwandte Informationen