Ein kurzer Überblick über Open Source Backup-Tools

    Mittel zum Sichern von Informationen können in verschiedene Kategorien unterteilt werden:
    - Für den Heim- / Bürogebrauch (Sichern wichtiger Dokumente, Fotos usw. auf dem NAS oder in der Cloud);
    - Für mittlere und große (Offline-) Unternehmen (Reservierung wichtiger Dokumente, Berichte, Datenbanken usw. sowohl auf Servern als auch an Arbeitsstationen von Mitarbeitern);
    - Für kleine Webprojekte (Sicherungsdateien und Datenbanken von einer Hosting-Site oder VPS / VDS auf einen Remote-Host (oder umgekehrt));
    - Für große Webprojekte mit verteilter Architektur (fast das gleiche wie in Offline-Unternehmen, die nur die Arbeit im globalen Netzwerk berücksichtigen und nicht lokal und normalerweise Open Source-Tools verwenden).

    Mit Softwareprodukten für Heim und Büro ist alles ganz einfach: Es gibt viele offene und proprietäre Lösungen, von cmd / bash-Skripten bis hin zu Lösungen bekannter Softwarehersteller.
    Im Unternehmenssektor ist alles ziemlich langweilig, es gibt viele Softwareprodukte, die in vielen Unternehmen, in großen Banken usw. schon lange erfolgreich funktionieren. Wir werden niemanden bewerben . Viele dieser Produkte haben das Leben von Systemadministratoren erheblich vereinfacht, und zwar für nach den Standards einiger Unternehmen recht "bescheidenes Geld".
    In diesem Artikel werden wir uns Open Source-Lösungen zum Sichern von Webprojekten verschiedener Größen genauer ansehen und die Geschwindigkeit von Dateisicherungen testen.
    Der Artikel wird für Webmaster, kleine Webstudios und vielleicht sogar für einen erfahrenen Administrator nützlich sein.

    Was ist erforderlich, um eine kleine Site oder ein Blog oder mehrere Sites beispielsweise von einem VPS zu reservieren, auf dem sich der Speicherplatz bis zum Ende befindet?
    Startet eine Reservierung für den Remote-Host. Das heißt, Um wertvollen Speicherplatz auf Ihrem Hosting oder VPS zu sparen, können Sie beispielsweise über FTP- oder SFTP-Protokolle eine Verbindung von Ihrem Heim- / Bürocomputer (möglicherweise mit einem NAS) manuell herstellen oder Take-Dateien planen und sorgfältig an einem sicheren Ort aufbewahren . Jeder FTP- oder SFTP-Client ist eine gute rsync-Option.

    Mit rsync sieht es ungefähr so ​​aus:
    rsync -avzPch user@remote.host:/path/to/copy /path/to/local/storage

    Das scheint nett zu sein, aber was ist, wenn Sie mehrere Versionen von Datenbanksicherungen speichern müssen? Oder aus irgendeinem Grund war es notwendig, inkrementelle Kopien zu erstellen, und es wäre schön, auch Verschlüsselung hinzuzufügen. Sie können ein wenig sitzen und ein gutes Fahrradskript für Ihre Anforderungen erstellen (z. B. unser rsync-Backup ) oder einige der vorgefertigten Dienstprogramme verwenden.

    Betrachten Sie mehrere Dienstprogramme, die für verschiedene Anwendungen geeignet sind, insbesondere für den oben beschriebenen Fall.

    Duplicity

    Duplicity ist ein konsolenbasiertes Sicherungsprogramm mit zahlreichen Funktionen.
    Es gibt verschiedene grafische Skins für Duplicity - Deja-dup für die Gnome-Umgebung und Probefahrt für KDE. Es gibt auch einen doppelten Konsolen-Wrapper.

    Duplicity sichert verschlüsselte Volumes im Tar-Format lokal oder auf einem Remote-Host. Die Librsync-Bibliothek ermöglicht inkrementelle Dateiaufzeichnungen, gzip wird für die Komprimierung verwendet und gpg verschlüsselt.
    Es gibt keine Konfigurationsdatei. Automatisieren Sie den Sicherungsprozess selbst.

    Anwendungsbeispiele:

    Reservieren eines lokalen Ordners auf einem Remote-Host
    duplicity /usr scp://host.net/target_dir
    Reservieren eines lokalen Ordners auf einen lokalen Ordner
    duplicity sftp://user@remote.host/var/www /home/backup/var/www
    Wiederherstellen von Informationen
    duplicity restore /home/backup/var/www sftp://user@remote.host/var/www

    Über Duplizität Es gab bereits Artikel zu Habré, daher werden wir uns nicht darauf konzentrieren.

    Rsnapshot

    Über rsnapshot wird hier und hier auch viel über Habré gesagt . Und hierein weiterer guter Artikel. Rsnapshot im Allgemeinen, ein gutes Tool zum Erstellen inkrementeller Backups (Snapshots). In Perl geschrieben, verwendet rsync zum Kopieren von Dateien. Es ist schnell genug (schneller als rdiff-backup) und spart aufgrund von Hardlinks guten Speicherplatz. Kann Vor- und Nachsicherungsvorgänge ausführen, kann nicht (ohne Krücken) verschlüsseln und auf einem Remote-Host sichern. Dateien werden in ihrer ursprünglichen Form gespeichert - einfach wiederherzustellen. Bequem organisierte Konfiguration. Es unterstützt mehrere temporäre Reservierungsstufen (täglich, wöchentlich, monatlich). Es gibt eine ziemlich aktive Gemeinschaft.

    Nachdem Sie die erforderlichen Zeilen in die Konfiguration geschrieben haben (was und wo gesichert werden soll), können Sie die Sicherung starten:
    rsnapshot -v hourly
    Standardmäßig werden mehrere stündliche und tägliche Schnappschüsse gespeichert. Rsnapshot unterscheidet sich von anderen Dienstprogrammen dadurch, dass es sofort automatisiert ist (relevant für Debian / Ubuntu), d. H. Die erforderlichen Zeilen werden in die Kronen geschrieben, und die Reservierung der Verzeichnisse "/ home", "/ etc", "/ usr / local" wird in die Konfiguration geschrieben.

    Rdiff-backup

    Rdiff-backup ist Rsnapshot sehr ähnlich, aber im Gegensatz dazu ist es in Python geschrieben und verwendet die Bibliothek Librsync für die Datenübertragung. Kann Dateien auf einen Remote-Host kopieren, den wir übrigens recht erfolgreich verwendet haben und an einigen Stellen noch verwenden. Sie können auch von einem Remote-Host sichern, aber zuerst müssen Sie dort Rdiff-backup installieren. Speichert Informationen über Dateiänderungen (Deltas) in komprimierter Form, gut für große Dateien,
    Metadaten (Rechte, Daten, Eigentümer) werden in separaten Dateien gespeichert.
    Die Sicherung wird über die Konsole gestartet:
    rdiff-backup remote.host::/home/web/sites/ /home/backup/rdiff/
    Das Vorhandensein einer Konfigurationsdatei wird nicht angenommen. Automatisieren Sie sich.

    Obnam

    Obnam - eine offene Client-Server-Anwendung für die Sicherung. Der Programmcode ist in Python geschrieben, um Daten mithilfe des SSH-Protokolls zu übertragen. Es kann auf zwei Arten betrieben werden:
    - Push-Reservierung von einem lokalen Host auf einen Remote-Server, auf dem der Obnam-Daemon ausgeführt wird.
    - Der Pull Daemon selbst übernimmt Dateien von Remote-Hosts über das SSH-Protokoll. In diesem Fall wird der Obnam-Client nicht benötigt.
    Kann Snapshots, Deduplizierung und Verschlüsselung von GnuPG durchführen. Dateisicherungen werden in Volumes gespeichert. Metadaten werden in separaten Dateien gespeichert. Die Wiederherstellung erfolgt über die Konsole.

    Ein kleiner Auszug aus der Beschreibung auf Opennet (http://www.opennet.ru/opennews/art.shtml?num=39323):
    „Mit dem von Obnam angebotenen Backup-Ansatz sollen drei Ziele erreicht werden: hohe Speichereffizienz, Benutzerfreundlichkeit und Sicherheit. Die Speichereffizienz wird erreicht, indem Backups in einem speziellen Repository abgelegt werden, in dem Daten mithilfe der Deduplizierung in der optimalen Darstellung gespeichert werden. In einem Repository können Sicherungen verschiedener Clients und Server gespeichert werden. Gleichzeitig werden Duplikate für alle gespeicherten Sicherungen zusammengeführt, unabhängig von Typ, Erstellungszeit und Sicherungsquelle. Um die Integrität des Repositorys zu überprüfen und nach einem Absturz wiederherzustellen, wird eine spezielle Version des Dienstprogramms fsck bereitgestellt.

    Wenn auf der Servergruppe dasselbe Betriebssystem verwendet wird, wird nur eine Kopie doppelter Dateien im Repository gespeichert, wodurch beim Organisieren von Sicherungen einer großen Anzahl typischer Systeme, z. B. virtueller Umgebungen, erheblich Speicherplatz gespart werden kann. Das Repository zum Speichern von Sicherungskopien kann sowohl auf der lokalen Festplatte als auch auf externen Servern abgelegt werden (um einen Server zum Speichern von Sicherungskopien zu erstellen, sind keine zusätzlichen Programme erforderlich; der Zugriff über SFTP ist ausreichend). "Sie können auf Backups zugreifen, indem Sie eine virtuelle Partition mit einem speziell vorbereiteten FUSE-Modul bereitstellen."

    All dies ist gut, ABER scp mit allen Konsequenzen wird verwendet, um auf den Remote-Host zu kopieren.

    Bacula

    Bacula ist eine plattformübergreifende Client-Server-Software, mit der Sie die Sicherung, Wiederherstellung und Datenüberprüfung über das Netzwerk für Computer und Betriebssysteme verschiedener Typen verwalten können. Derzeit kann Bacula auf praktisch jedem Unix-ähnlichen System (Linux (einschließlich zSeries), NetBSD, FreeBSD, OpenBSD, Solaris, HP-UX, Tru64, IRIX, Mac OS X) und Microsoft Windows verwendet werden.

    Bacula kann auch vollständig auf einem einzelnen Computer oder verteilt auf mehreren ausgeführt werden und Backups auf verschiedene Medientypen schreiben, einschließlich Bänder, Bandbibliotheken (automatische Wechsler / Bibliotheken) und Festplatten.

    Bacula ist ein Netzwerk-Client-Server-Programm zum Sichern, Archivieren und Wiederherstellen. Es bietet zahlreiche Möglichkeiten zur Verwaltung von Data Warehouses und erleichtert die Suche und Wiederherstellung verlorener oder beschädigter Dateien. Aufgrund seines modularen Aufbaus ist Bacula skalierbar und kann sowohl auf kleinen als auch auf großen Systemen verwendet werden, die aus Hunderten von Computern bestehen, die sich in einem großen Netzwerk befinden.

    Bacula verfügt über GUIs und Webschnittstellen (Almir, Webmin) unterschiedlicher Komplexität.
    Vor einiger Zeit musste ich hart und vergeblich mit Almir arbeiten, um es auf Debian Wheezy laufen zu lassen.

    Bacula ist ein zuverlässiges, bewährtes Backup-System, das sich in vielen großen Unternehmen bewährt hat. Bacula unterscheidet sich grundlegend von Obnam in seinem Arbeitsschema. Im Falle der Option ist der Client-Server-Bacula ein zu 100% zentrales System. Sie benötigen außerdem eine Clientanwendung auf dem Host, den Sie sichern möchten. Drei Daemons SD, FD arbeiten gleichzeitig auf dem Server. DIR - Storage Daemon, File Daemon und Director. Es ist leicht zu erraten, wer für was verantwortlich ist.

    Bacula speichert Sicherungsdateien in Volumes. Metadaten werden in der Datenbank (SQLite, MySQL, PostgreSQL) gespeichert. Die Wiederherstellung erfolgt mit dem Konsolendienstprogramm oder über die grafische Shell. Der Wiederherstellungsprozess über die Konsole ist offen gesagt nicht der bequemste.

    Zahlen
    Ich habe beschlossen, die Sicherungsgeschwindigkeit eines kleinen Ordners (626M) mit mehreren Sites in WP zu überprüfen.
    Um dies zu tun, war ich nicht zu faul, um all diese Software bereitzustellen und zu konfigurieren. :)
    Der Test besteht aus zwei Teilen:
    1. Teilnehmer Duplicity, Rsync, Rsnapshot, Rdiff-Backup. Wir kopieren es vom Remote-Server auf den Heimcomputer, und da Rsnapshot keine Remote-Sicherung durchführen kann, funktionieren es und Rdiff-Backup (zum Vergleich) auf dem Heimcomputer, d. H. Sie ziehen Dateien vom Server vom Server und der Rest schiebt sie im Gegenteil auf den Heimcomputer.
    Alle Dienstprogramme wurden mit den minimal erforderlichen Optionen gestartet.

    Rsync
    rsync -az /home/web/sites/ home.host:/home/backup/rsync
    vollständige Sicherungslaufzeit
    :
    real	4m23.179s
    user	0m31.963s
    sys	0m2.165s
    

    Inkrementelle
    Laufzeit
    real	0m4.963s
    user	0m0.437s
    sys	0m0.562s
    

    Belegter
    626M /home/backup/duplicity/

    Speicherplatz : Duplizität
    duplicity full /home/web/sites/ rsync://home.host//home/backup/duplicity
    Vollständige Sicherungsvorlaufzeit
    :
    real	5m52.179s
    user	0m46.963s
    sys	0m4.165s
    

    Inkrementelle
    Laufzeit
    real	0m49.883s
    user	0m5.637s
    sys	0m0.562s
    


    450M /home/backup/duplicity/

    Belegter Speicherplatz : Rsnapshot Vorlaufzeit für
    rsnapshot -v hourly
    vollständige Sicherung
    :
    real	4m23.192s
    user	0m32.892s
    sys	0m2.185s
    

    Inkrementelle
    Laufzeit
    real	0m5.266s
    user	0m0.423s
    sys	0m0.656s
    

    Belegter Speicherplatz:
    626M /home/tmp/backup/rsnap/

    Rdiff-backup
    rdiff-backup remote.host::/home/web/sites/ / home / backup / rdiff /
    Vollständige Sicherung
    Laufzeit:
    real	7m26.315s
    user	0m14.341s
    sys	0m3.661s
    

    Inkrementelle
    Laufzeit
    real	0m25.344s
    user	0m5.441s
    sys	0m0.060s
    

    Rang: Die
    638M /home/backup/rsnap/

    Ergebnisse sind ziemlich vorhersehbar. Rsync erwies sich als das schnellste, wobei Rsnapshot praktisch das gleiche Ergebnis erzielte. Die Duplizität ist etwas langsamer, beansprucht jedoch weniger Speicherplatz. Rdiff-Backup wird voraussichtlich schlechter.

    2. Jetzt interessant. Lassen Sie uns überprüfen, wie Obnam und Bacula funktionieren. Beide Lösungen sind ziemlich universell und weisen einige Ähnlichkeiten auf. Mal sehen, wer schneller ist.
    Obnam
    Als ich zum ersten Mal von einem Remote-Host nach Hause kopierte, musste ich lange warten:
    obnam backup --repository sftp: //home.host/home/backup/obnam/ / home / web / sites /
    Vollständige Sicherung
    23919 Dateien gesichert, hochgeladen 489,7 MiB in 1h42m16s bei 81,7 KiB / s Durchschnittsgeschwindigkeit
    Ausführungszeit:
    real	102m16.469s
    user	1m23.161s
    sys	0m10.428s
    

    die Sicherung --repository der SFTP obnam: //home.host/home/backup/obnam/ / home / Web / sites /
    die Incremental
    Backed up 23919 Dateien hochgeladen 0.0 B in 3m8s bei 0,0 B / s Durchschnittsgeschwindigkeit
    Vorlaufzeit
    real	3m8.230s
    user	0m4.593s
    sys	0m0.389s
    

    Besetzte Position:
    544M /home/tmp/backup/rsnap/
    Kein sehr gutes Ergebnis, wie es mir scheint, obwohl verständlich.
    Wir werden es ein zweites Mal versuchen, aber bereits auf einem benachbarten Server über ein Gigabit-Netzwerk, und die Komprimierung hinzufügen.
    obnam backup --compress-with = deflate --repository sftp: //remote.host/home/backup/obnam/ / home / web / sites /
    Vollständiges Backup
    23919 Dateien gesichert, 489,7 MiB in 2 Minuten mit 3,6 MiB / s hochgeladen Vorlaufzeit der Durchschnittsgeschwindigkeit
    :
    real	2m15.251s
    user	0m55.235s
    sys	0m6.299s
    

    obnam backup --compress-with = deflate --repository sftp: //remote.host/home/backup/obnam/ / home / web / sites /
    Inkrementell
    23919 Dateien gesichert, 0,0 B in 8 Sekunden mit einem Durchschnitt von 0,0 B / s hochgeladen Geschwindigkeit
    Vorlaufzeit
    real	0m7.823s
    user	0m4.053s
    sys	0m0.253s
    

    Belegter Speicherplatz:
    434M /home/tmp/backup/rsnap/
    So schnell und die Backup-Größe ist kleiner. Ich habe nicht versucht, zu verschlüsseln, vielleicht später, wenn noch Zeit ist.

    Bacula
    Für Bacula habe ich eine vollwertige Client-Server-Option vorbereitet. Client und Server im selben Gigabit-Netzwerk.
    Ich begann die Aufgabe im Hintergrund und ging Tee trinken. Als ich zurückkam, stellte ich fest, dass alles fertig war und im Protokoll Folgendes:
    ...
    Scheduled time:         23-Apr-2014 22:14:18
      Start time:             23-Apr-2014 22:14:21
      End time:               23-Apr-2014 22:14:34
      Elapsed time:           13 secs
      Priority:               10
      FD Files Written:       23,919
      SD Files Written:       23,919
      FD Bytes Written:       591,680,895 (591.6 MB)
      SD Bytes Written:       596,120,517 (596.1 MB)
      Rate:                   45513.9 KB/s
    ...
    

    Ich war sogar ein bisschen überrascht. Alles war in 13 Sekunden erledigt, der nächste Start erfolgte in einer Sekunde.

    Insgesamt
    Mit rsnapshot können Sie das Problem der Sicherung von Dateien und Datenbanken (mit einem zusätzlichen Skript) Ihres VPS auf Ihrem Heimcomputer / Laptop / NAS problemlos lösen. Außerdem kann rsnapshot mit einer kleinen Flotte von Servern mit 10 bis 25 Hosts gute Arbeit leisten (Sie können und natürlich mehr, je nach Ihren Wünschen). Rdiff eignet sich gut zum Sichern großer Dateien (Videoinhalte, Datenbanken usw.).
    Duplizität hilft nicht nur, Ihre Daten intakt zu halten, sondern schützt sie auch bei Diebstahl (leider können Sie sich nicht schützen, seien Sie vorsichtig und vorsichtig, bewahren Sie die Schlüssel auf sicher und für andere unzugänglich)).
    Bacula ist ein Open-Source-Industriestandard, mit dem die Daten einer großen Flotte von Computern und Servern eines Unternehmens sicher aufbewahrt werden können.
    Obnam ist ein interessantes Tool mit einer Reihe nützlicher Vorteile, aber ich werde es wahrscheinlich niemandem empfehlen.
    Wenn Ihnen dennoch aus irgendeinem Grund keine dieser Lösungen zusagt, können Sie Ihre Fahrräder neu erfinden. Dies kann sowohl für Sie persönlich als auch für viele Menschen nützlich sein.

    UPD: Eine kleine Pivot-Tabelle:

    Nur registrierte Benutzer können an der Umfrage teilnehmen. Bitte komm rein .

    Welche Tools für RK verwenden Sie?

    • 36,8% Skript (Bash / cmd) 257
    • 10% Duplizität 70
    • 7,8% Rsnapshot 55
    • 5,4% Rdiff-Backup 38
    • 1,1% Obnam 8
    • 28% Bacula 196
    • 28,2% Sonstige 197

    Jetzt auch beliebt: