Backup zwischen Linux Servern

aargau

Cadet 2nd Year
Registriert
Juli 2007
Beiträge
21
Hallo zusammen

Aktuell mach ich Backups 1x im Monat mit Windows Server automatisiert. Da das aber eher schlecht als recht läuft und ich aktuell eh mein ganzes Netzwerk sowie Wohnort etc. umkremple muss eine alternative her.

Neu habe ich mein ganzen Speicher nicht mehr auf Windows Server Basis sondern auf zwei Linux Servern mit Alpine Linux.
Der zweite Server steht an einem anderen Ort und ist via openVPN über Internet Angebunden (Max. 10Mbit Upload).
Nun möchte ich Wöchentlich ein Backup vom Standort A zu Standort B schreiben.
Dabei möchte ich keine "Versionierung" der Daten, also am Zielort soll nur 1:1 die Datei liegen wie sie auch auf dem Fileserver liegt...
Es sollen aber keine Daten gelöscht werden wenn diese auf dem File Server gelöscht wurden. Somit kann eine Datei zumindest nicht verloren gehen.
Ich weis, dass ich so bei einem Recovery unter Umstand sehr viel Müll hätte aber da muss ich wohl oder übel durch ausser ihr habt eine bessere Idee.

Das ganze wäre grundsätzlich per rsync ja relativ einfach zu realisieren. Nur habe ich etwas zweifel ob das Backup so in geeigneter Zeit abgeschlossen werden könnte.

Ich habe aktuell ca. 3TB an Daten, das meiste davon sind kleinere Daten (Fotos, PHP Dokumente, Datenbankfiles, Musik etc.). Für ein Vollbackup brauche ich nahezu einen vollen Tag (Lokal).
Pro Woche kommen wohl nur ein wenige bis keine Daten dazu die Synchronisiert werden müssen. Nur nach einer Fotosession könnte mal wieder etwas mehr anstehen.
Rein vom Traffic sehe ich also eigentlich keine Probleme dabei, hingegen beim abgraben was nun geändert wurde schon.
Wie gesagt, es sind sehr viele Dateien.

Unter Linux gibt es ja kein "Archiv Bit" womit man nicht einfach mal alle Daten gegeneinander Prüfen müsste, das macht mir etwas sorgen. Denkt ihr eine Simple Lösung mit Linux und rsync ist dennoch in einer Nacht realisierbar über das Internet?
Hab ich ev. einen Denkfehler und rsync ist rasend schnell und weis direkt was zu Syncen ist?
Wie gesagt: Eigentlich ist es egal welcher Stand auf dem Backup herscht, es soll nur das was auf dem FileServer in dieser Woche geändert wurde übertragen werden und auf dem Ziel wenn nicht existierend überschrieben werden, da ansonsten einfach viel zu viel Datenspeicher benötigt werden würde.

Ich kann damit Leben wenn ich per Zufall mal ein File überschreibe und das erst nach dem Backup bemerkte und der Inhalt dann halt weg ist. Primär geht es mir darum, dass meine Fotos sicher sind.

Zu dem ganzen hier mache ich ca. 1x Monatlich ( je nach dem wie viel neues wirklich angefallen ist) ein Fullbackup auf eine externe HDD welche danach an einem dezentralen Ort liegt. Im allerallerschlimmsten fall sollten also maximal 1Monat Daten verloren gehen. Über diese Realisierung mach ich mir aktuell aber noch keinen Kopf, da momentan eh keine neuen Daten anfallen.

Ev. noch zum Verständnis:

Auf dem Fileserver ist ingesammt ein Speicher von ca. 8TB verfügbar, es hat aber sehr viel das NICHT gesichert werden muss (TV Aufnahmen, Film Sammlung, etc...). Dieser Speicher ist auf 5x 2TB Disks auf einem HW Raid5 gespeichert.

Auf dem Backup Server ist eine 4TB HDD verfügbar -> ohne Raid.

Als Alternative wäre es auch möglich das ganze über einen Windows Server zu machen, der Fileserver bleibt aber immer ein Linux Server.

Wichtig ist mir nur, dass wenn keine Daten geändert wurden das Backup in sehr sehr kurzer Zeit durchgeführt ist (ideal unter 1H) und wenn Daten dazukommen halt je nach Datenmenge und Internet Verbindung.
 
Grade rsync macht sowas: nur geänderte Daten übertragen. Selbst wenn du nur 1 bit in einer Datei änderst wird dann am Ende nur ein kleiner Teil der Datei übertragen.
Ubrigens hat Linux kein Archiv Bit aber dafür eine modification time.

http://en.wikipedia.org/wiki/Rsync#Algorithm
 
Also ich habe auf meinem Synology NAS DS213j eine Zeitlang mit Rsync gesichert. Und da war das größte Problem die Schwache CPU. Ansonsten hat der für das prüfen von 500GB Fotos ohne Änderung nur wenige Minuten gebraucht.
Sollte also kein Problem sein.
 
By default rsync determines which files differ between the sending and receiving systems by checking the modification time and size of each file. As this only requires reading file directory information, it is quick, but it will miss unusual modifications which change neither.
(http://en.wikipedia.org/wiki/Rsync#Algorithm)

Das hört sich ja gut an, wenn da wirklich zuerst nur die Verzeichnisse auf den Timestamp geprüft werden. Somit würden schonmal 99% aller Ordner durch und nur die Ordner die "geänderte" Daten haben werden noch weiter geprüft.
Ich denke das einfachste wird sein das ganze einfach mal auszuprobieren. Ich habe den Datenspeicher aktuell 1:1 auf beiden Orten somit müsste man ja sehr schnell sehen wie lange das Backup wirklich dauert. Zum test noch ein paar Daten ändern und hinzufügen und eine Lösung wäre fertig.

Sannyboy111985 schrieb:
Also ich habe auf meinem Synology NAS DS213j eine Zeitlang mit Rsync gesichert. Und da war das größte Problem die Schwache CPU. Ansonsten hat der für das prüfen von 500GB Fotos ohne Änderung nur wenige Minuten gebraucht.
Sollte also kein Problem sein.

Das hört sich gut an. Habe zwar in den beiden Linux Systemen auch nicht die Monster CPUs schlechthin (Intel Atom / Intel Celeron) aber in der Nacht ist mir der Load des Systems relativ egal, da die Disks selber eh mit LUKS verschlüsselt sind braucht das wohl im Endeffekt deutlich mehr load als das abgleichen.
Wenn 500GB wirklich nur ein paar Minuten dauert dann wird das locker reichen in einer Stunde mit den ca. 3TB Daten.

-> Ich teste es einfach mal aus.
 
Zuletzt bearbeitet:
eine andere Möglichkeit wäre, ZFS oder BTRFS zu nutzen. Erstens kann man da wunderbar mit Snapshots arbeiten, zweitens diese auch übertragen (z.B. per ssh). Abgesehen von einem ersten Initialisieren der Partitionen beschränkt sich dann nur noch das Übertragungsvolumen auf die Unterschiede zwischen den jeweiligen Snapshots.

Andere Vorteile wie Copy-on-write, "Selbstheilung", komprimierung oder dedup mal außen vor...
 
So ich hab nun heute mal etwas Zeit gefunden mich mit rsync auseinander zu setzen.
Generell bin ich erstaunt wie schnell das ganze durchläuft wenn man auf Zielseite einen leeren Ordner angibt und das ganze mit -n nur Simuliert. Meine Daten sind in weniger als zwei Minuten durchgeglichen und die Internet Verbindung wird dabei wirklich 100% Ausgelastet -> also schon mal gut.
Nur hab ich das ganze nun mal "live" laufen lassen und da stockt es doch etwas mehr. Gerade grosse Daten wie VMs dauern ewig und das obwohl ich eigentlich keine Checksumme vergleiche sondern, also keine speziellen Parameter verwende.

Denkt ihr es macht sinn die Backup HDD kurzfristig am Lokalen Ort einzubauen und die Daten 1x komplett mit rsync zu Backupen und nicht eine Kopie der Festplatte per Samba zu verwenden?

Oder hab ich was vergessen? Parameter habe ich: "-ave ssh root@xyz:/daten"
 
Na sicher !

Wenn ich es hier simulieren lasse, läuft das ganze auch super schnell durch - selbst bei 2TB (bei leerem Ziel)

Sobald es aber an den Transfer der Daten geht, hängt es von der Lese- und Schreibgeschwindigkeit zwischen Ursprung und Ziel ab; dazu kommt dann noch, dass viele kleine Daten deutlich länger brauchen als wenige sehr große

bei dir würde noch das "bottleneck" Netzwerk hinzukommen

Volles Backup direkt an der angeschlossenen Platte,

spätere inkrementelle Backups dürften recht schnell flutschen


Interessante Diskussion zu Prüfsummen und Datenintegrität, was besonders beim Transfer über das Netzwerk sehr zu empfehlen ist:

http://unix.stackexchange.com/questions/2445/resume-transfer-of-a-single-file-by-rsync
 
Ich hab mal temporär den Parameter für das Überspringen von neueren Daten auf dem Ziel deaktiviert und siehe da: Es flutscht innert wenigen Sekunden durch. Neue Files werden auch brav Kopiert. Nehme ich den Parameter aber wieder weg, hängt er sich einfach auf, Transferrate über das openVPN ist bei wenigen Paketen bis gar nichts. denke also das da nichts mehr gemacht wird.

Werde die Platte vom Backup Server mal Formatieren und direkt via rsync Lokal kopieren, dann stimmen auch die Rechte und alles sicher überein.

Generell bin ich aber begeistert, dass das in wenigen Sekunden durchflutscht wenn keine Unterschiede vorhanden sind.
Bei Windows hat nur schon das eine halbe Nacht gedaurt, wohlgemerkt war es ein lokales Backup.....
 
Habe hier von einem langsam Rechner auf einen schnellen den Ordner eines Webserver synchronisiert.
Es handelt sich um sehr viele kleine Dateien.

Code:
rsync -avze ssh quellserver:/var/www /var/www

Wobei ich dabei auf dem Zielserver eingeloggt war.
Beim 1. Mal hat es natürlich gedauert, es war auch eine Menge an Dateien.

Wenn ich aber jetzt synchronisiere, und es haben sich nur 100e Dateien geändert, flutscht das richtig durch.

Wenn du viele VMWare Images synchronisieren willst - sind diese denn "geshrinkt"?
Warum läuft das eigentlich noch einmal über VPN und nicht direkt? Du musst ja nur einen Port freigeben - den für SSH.

MfG.
 
davidbaumann schrieb:
Warum läuft das eigentlich noch einmal über VPN und nicht direkt? Du musst ja nur einen Port freigeben - den für SSH.

MfG.

Sicherheitstechnisch ist die Sache mit VPN natürlich sicherer, über einen offenen SSH Port holt man sich schnell Loginversuche aus fernen Ländern ins Haus :).

@aargau

Anstatt rsync über ssh zu realisieren würde ich es per NFS probieren. Die zu kopierenden Dateien werden durch das ssh ja nochmal zusätzlich verschlüsselt, was Load auf beiden Seiten verursacht und gut Performance kostet. Außerdem hast du ja schon mittels OpenVPN eine Verschlüsselte Verbindung.

Gruß

Ride
 
Zurück
Oben