Ich möchte Daten über 2 Ebenen eines HP-UX-Servers übertragen. Ich muss einige dieser Übertragungen durchführen, von denen einige hauptsächlich binär sind (Oracle-Tabellenbereich ...) und andere eher Textdateien (Protokolle ...). Die verwendete Datengröße der Datenträger liegt zwischen 100 GB und 1 TB. Außerdem werde ich die Blockgröße auf einigen dieser Partitionen von 1 KB auf 8 KB ändern ...
Dinge, nach denen ich suche:
- Garantiert Datenintegrität
- Schnellste Datenübertragungsgeschwindigkeit
- Behält Dateieigentum und Berechtigungen bei
Im Moment habe ich über dd, cp und rsync nachgedacht, bin mir aber nicht sicher, welches davon das Beste ist und wie ich sie am besten verwende ...
Antwort1
Sie möchten dd nicht verwenden. Dies ist für die Arbeit an einer Datei oder einem Stream gedacht, nicht an einem ganzen Dateisystem.
rsync ist dafür ausgelegt, das zu tun, was Sie wollen, aber wie der vorherige Poster bereits sagte und wie meine Tests gezeigt haben, ist es nicht das schnellste Programm. Das liegt daran, dass es für so etwas gedacht ist: „Okay, ich sehe mir Datei A an. Befindet sich Datei A auf dem Ziel? Wenn ja, ist sie neuer, älter, gleich?“ usw. rsync ist ein bisschen kompliziert, weil es mehr als einmal ausgeführt werden soll … wie der Name schon sagt, dient es zum Synchronisieren zweier Standorte.
Für die von Ihnen gewünschten Aufgaben ist eine Tar-Kopie meiner Erfahrung nach schnell, einfach und zuverlässig. Tar kennt Hardlinks. Tar kennt Geräte. Tar bewältigt nahezu alle Situationen, die in Ihrem Dateisystem auftreten können (außer wirklich langen Pfaden. Wenn Sie nicht Gnu Tar verwenden, sollten Sie vorsichtig sein, wenn Sie am Anfang Ihres Pfadnamens einen / setzen).
Wie dem auch sei, ich hatte in den letzten 20 Jahren 99,98 % Erfolg, indem ich Folgendes gemacht habe:
cd /my/source; tar cf - subdirectory | (cd /destination/path; tar xf -)
...Das Unterverzeichnis, das Sie kopieren möchten, wird in /destination/path angezeigt.
Wenn Sie Ihren Fortschritt verfolgen möchten, können Sie im letzten Teil dieser Zeichenfolge „xvf“ statt „xf“ verwenden.
...meine 0,02 % Fehler waren auf wirklich lange Dateipfade zurückzuführen... :-(
Tar garantiert keine Dateiintegrität. Solange Sie jedoch keine Fehlermeldungen sehen, ist es meiner Meinung nach sehr zuverlässig. Berechtigungen und Eigentümerschaft werden ordnungsgemäß beibehalten.
ABER! Ihr Beitrag erwähnt ausdrücklich die Dateiintegrität und ich entschuldige mich dafür, dass ich in meiner Antwort vor so vielen Jahren keine Lösung angegeben habe ...
Nach dem Teer mache ich einfach das. So tun, als hätte ich eine
cd /path/to/source/dir; tar cf - * | (cd /path/to/dest/dir; tar xf -)
Ihre Dateigarantie können Sie nun folgendermaßen erhalten:
find * -exec md5sum {} /path/to/dest/dir/{} \; > /path/to/dest/dir/md5-manifest.txt
Wenn Sie fertig sind, können Sie entweder die Manifestdatei betrachten oder ein Awk-Skript schreiben (als Übung für den Benutzer überlassen), um die zweizeilige Ausgabe der Find/MD5sum-Befehle zu vergleichen.
Antwort2
Schauen Sie sich andieser Beitrag. Einige Antworten schlugen vor, zu verwenden tar
. Andere schlugen vor, zu verwenden rsync
. Sie sprechen über das Kopieren von Daten zwischen zwei Maschinen. Ihr Problem ist ähnlich, aber Sie müssen die Dateien lokal kopieren, anstatt dies über das Netzwerk zu tun.
Antwort3
Ich würde die Verwendung von empfehlen rsync
, da es Funktionen bietet, die die meisten Ihrer Probleme gezielt angehen. Wenn Sie entsprechende Optionen verwenden (z. B. die -a
Option), bleiben alle Dateieigentümer, Berechtigungen und Zeiten erhalten. Darüber hinaus rsync
verwendet automatisch Prüfsummen, um sicherzustellen, dass alle übertragenen Dateien intakt am Ziel ankommen, sodass die Datenintegrität gewährleistet ist (vorausgesetzt, die Ausführung ist erfolgreich).
Der einzige Punkt, an demrsync
Mainicht optimal ist die Geschwindigkeit, insbesondere im Vergleich zu einer leichteren Alternative wie cp
, aber ich bezweifle, dass Sie einen großen Unterschied bemerken würden, es sei denn, Ihre Verarbeitungsleistung ist sehr gering.
Antwort4
Grundsätzlich haben Sie drei Möglichkeiten:
- Kopieren Sie die gesamte Partition/das gesamte Blockgerät
- Das gesamte Dateisystem sichern
- Kopieren der Dateninnendas Dateisystem
Wählen Sie eine der drei Optionen, je nachdem, was Sie sichern mussten und welche Ergebnisse Sie erzielen möchten. Für Ihren speziellen Fall denke ich, dass Option Nr. 1 (Blockgerätkopie) in Verbindung mitAbonnierenist der richtige Weg. Sehen wir uns jedenfalls eine Sammlung der verfügbaren Optionen an.
Fall 1: Partitionskopie
PRO: Beim Kopieren eines gesamten Blockgeräts können Sie sicher sein, dass nichts zurückgelassen wurde.
CONTRA: Die Arbeit mit Blockgeräten ist weniger bequem als die Arbeit mit Dateien. Die Auswahl des falschen Blockgeräts oder der falschen Optionen kann Ihre Daten zerstören.
Wenn Sie eine binäre Kopie eines gesamten Block-Devs haben möchten, müssen Sie dd oder ein ähnliches Tool verwenden. Andere sehr nützliche Tools sindAbonnieren(ein hashfähiger DD-Fork) undAbonnieren(ein noch fortgeschritteneres DD-ähnliches Tool).
Fall 2: Dateisystem-Dump
PRO: Wenn Sie ein ganzes Dateisystem kopieren, können Sie sicher sein, dass alle darin enthaltenen Daten und Metadaten gesichert wurden.
CONTRA: Wenn Sie mehrere Dateisysteme sichern müssen, müssen Sie mehrere Durchgänge durchführen (einen für jedes Dateisystem).
Ein nützliches Werkzeug für den Umgang mit Dateisystemen istFSArchive. Darüber hinaus verfügen viele Dateisysteme über integrierte Dienstprogramme zum effizienten Sichern ihrer Inhalte (z. B. hat XFS xfsdump, Ext2/3/4 verwenden dumpe2fs usw.).
Fall 3: Kopieren der Daten innerhalb des Dateisystems
PRO: Wenn Sie Daten aus dem Dateisystem kopieren, können Sie sehr genau auswählen, was gesichert werden soll. Dies gewährleistet schnelle Sicherungs-/Wiederherstellungszeiten und kleine Sicherungsabbilder.
CONTRA: Sie müssen genau wissen, was und wie gesichert werden soll. Besondere Sorgfalt ist bei wichtigen Metadaten geboten (z. B. Eigentümer, Berechtigungen, ACLs, EAs usw.).
Rsyncist hier dein bester Freund.SchnappschussUndRdiff-Sicherungsind wunderbare Tools, die auf rsync/librsync aufbauen.Teerist das Schweizer Messer jedes Unix-Systemadministrators.