Die Ausgabe des Backup-Systems restic 0.15 wurde veröffentlicht, das die Speicherung von Backups in verschlüsselter Form in einem versionierten Repository ermöglicht. Das System ist ursprünglich darauf ausgelegt, dass Backups in unsicheren Umgebungen gespeichert werden, und der Zugriff Dritter auf Backups sollte das System nicht kompromittieren. Flexible Regeln für das Ein- und Ausschließen von Dateien und Verzeichnissen bei der Erstellung von Backups können definiert werden (das Regel-Format ähnelt rsync oder gitignore). Unterstützung für Linux, macOS, Windows, FreeBSD und OpenBSD wird geboten. Der Projektcode ist in Go geschrieben und wird unter der BSD-Lizenz veröffentlicht.
Backups können im lokalen Dateisystem, auf externen Server mit Zugriff über SFTP/SSH oder HTTP REST, in Cloud-Diensten wie Amazon S3, OpenStack Swift, BackBlaze B2, Microsoft Azure Blob Storage und Google Cloud Storage sowie in beliebigen Speichern, für die rclone-Backends vorhanden sind, gespeichert werden. Zur Organisation der Speicherung kann auch ein spezieller Rest-Server verwendet werden, der eine höhere Leistung im Vergleich zu anderen Backends bietet und im Nur-Erweiterungs-Modus betrieben werden kann, der das Löschen oder Ändern von Backups im Fall einer Kompromittierung der Ursprungsdaten nicht erlaubt. Server und Zugriff auf die Verschlüsselungsschlüssel.
Snapshots, die den Zustand eines bestimmten Verzeichnisses mit all seinen Dateien und Unterverzeichnissen zu einem bestimmten Zeitpunkt widerspiegeln, werden unterstützt. Bei jeder Erstellung eines neuen Backups wird ein zugehöriger Snapshot erstellt, der eine Wiederherstellung des Zustands zu diesem Zeitpunkt ermöglicht. Das Kopieren von Snapshots zwischen verschiedenen Repositories ist möglich. Um den Datenverkehr während des Backups zu sparen, werden nur die geänderten Daten kopiert. Zur besseren Übersicht über den Inhalt des Repositories und zur Vereinfachung der Wiederherstellung kann ein Snapshot mit dem Backup in Form eines virtuellen Laufwerks eingebunden werden (die Einbindung erfolgt über FUSE). Es stehen auch Befehle zur Analyse von Änderungen und zur selektiven Wiederherstellung von Dateien zur Verfügung.
Das System manipuliert nicht ganze Dateien, sondern Blöcke variabler Größe, die mithilfe des Rabin-Signaturverfahrens ausgewählt werden. Informationen werden in Bezug auf den Inhalt und nicht auf die Dateinamen gespeichert (die mit den Daten verbundenen Namen und Objekte werden auf der Ebene der Blockmetadaten bestimmt). Die Deduplication und das Herausfiltern überflüssiger Datenduplikate erfolgt auf Basis des SHA-256-Hashes des Inhalts. Auf externen Servern werden die Informationen in verschlüsselter Form gespeichert (für Prüfziffern wird SHA-256 verwendet, für die Verschlüsselung AES-256-CTR und zur Gewährleistung der Integrität werden Authentifizierungscodes auf Basis von Poly1305-AES verwendet). Es besteht die Möglichkeit, die Integrität der Sicherung anhand von Prüfziffern und Authentifizierungscodes zu überprüfen, um zu bestätigen, dass die Integrität der Dateien nicht beeinträchtigt ist.
In der neuen Version:
- Ein neuer Befehl 'rewrite' wurde implementiert, der es ermöglicht, überflüssige Daten aus dem Snapshot zu entfernen, wenn durch ein Versehen Dateien in die Sicherung gelangt sind, die ursprünglich nicht für die Sicherung bestimmt waren (zum Beispiel Dateien mit vertraulichen Informationen oder sehr große Logs, die keinen Wert darstellen).
- Dem Befehl 'backup' wurde die Option '—read-concurrency' hinzugefügt, um den Grad der Parallelisierung beim Lesen von Dateien festzulegen, was das Kopieren auf schnellen Speichern wie NVMe beschleunigt.
- Dem Befehl 'backup' wurde die Option '—no-scan' hinzugefügt, um die Scanphase des Datei- baums zu deaktivieren.
- Der Befehl 'prune' benötigt deutlich weniger Speicher (bis zu 30%).
- Dem Befehl 'restore' wurde die Option '—sparse' hinzugefügt, um Dateien mit großen leeren Bereichen effizient wiederherzustellen.
- Für die Windows-Plattform wurde die Unterstützung für die Wiederherstellung von symbolischen Links implementiert.
- In macOS wurde die Möglichkeit hinzugefügt, das Repository mit Sicherungen mithilfe von macFUSE zu mounten.
Quelle: opennet.ru
