Archiv

Archiv für 18. Juli 2012

HardlinkBackup 2.0 auf der Zielgeraden

18. Juli 2012 6 Kommentare

Lange habe ich kein signifikantes Update für HardlinkBackup erstellt. Der Grund ist einfach: Seit vielen Monaten arbeite ich an der Version 2.0, die im Wesentlichen eine Neuimplementierung von HardlinkBackup ist. Der Grund liegt darin, dass ich durch den ursprünglichen Ansatz bedingte Nachteile (allen voran der hohe Hauptspeicherbedarf bei großer Dateianzahl) ausmerzen wollte, sowie eine flexible Basis für zukünftige Erweiterungen schaffen wollte. Ich habe die Wünsche der Benutzer nicht vergessen, die Neubauaktion war nur um einiges aufwändiger, als ursprünglich gedacht!
Doch jetzt legt sich langsam der Staub und HardlinkBackup 2.0 nähert sich der Fertigstellung. Es müssen momentan noch ein paar Kleinigkeiten umgesetzt werden; die wesentlichen Features sind fertig:

  • Neue Benutzeroberfläche – Die Benutzeroberfläche von HardlinkBackup 2.0 ist komplett neu und – aus meiner Sicht – wunderschön gelungen (zumindest für ein Backupprogramm). Ich habe sie an den Metro-Stil des kommenden Windows 8 angelehnt und versucht, HardlinkBackup dabei noch funktionaler zu machen.
    Und so sieht sie aus:

    (siehe unten für weitere Screenshots)
  • Lange Pfad- und Dateinamen – Dieses Feature ist der Wunsch vieler Benutzer. HardlinkBackup 2.0 nutzt die entsprechende Windows-API um Dateinamen mit 255 Zeichen und Pfadnamen bis zu 32.767 Zeichen zu unterstützen (das sind die unterstützen Längen von NTFS). Diese Unterstützung ist Voraussetzung dafür, die in den darauffolgenden Versionen vorgesehene Unterstützung der Volumenschattenkopien umzusetzen, mit deren Hilfe sich in Benutzung befindliche Dateien sichern lassen.
  • Backup leerer Verzeichnisse – Ein kleineres Feature, das aus der Umstellung des Backupalgorithmus resultiert. HardlinkBackup 2.0 sichert auch leere Verzeichnisse korrekt. Verzeichnisse behalten nun auch ihre Änderungszeitpunkte korrekt.
  • Beliebig große Backups – Einer der Gründe für den Komplettumbau ist die Unterstützung von Backups mit Millionen (oder meinetwegen auch Milliarden) von Dateien. Dadurch hat sich der zweistufige Backupprozess von Version 1 grundlegend geändert. HardlinkBackup 2.0 benötigt weniger Hauptspeicher als Version 1 und der Speicherbedarf nimmt auch nicht mehr mit der Dateianzahl zu.
  • Performanceverbesserungen – Ich habe noch keine Messungen gemacht, gehe aber davon aus, dass HardlinkBackup 2.0 schneller als Version 1 arbeitet – vor allem auf moderner Hardware. Version 2 nutzt die Rechenkerne moderner CPUs besser aus und erhöht den Festplatten- / SSD-Durchsatz. Das Einlesen findet teilweise parallel zum Sichern statt, was die Backupzeiten verkürzen sollte. Auch das Löschen von Backupsätzen wurde parallelisiert und geschieht dann schneller als bisher – leistungsstarke Hardware vorausgesetzt.
  • Backup von Linkstrukturen – HardlinkBackup 2.0 berücksichtigt jetzt die bestehenden Links der Quellverzeichnisse und kann die Linkstrukturen im Backup reproduzieren. Dadurch lassen sich auch Backupverzeichnisse unter Beibehaltung der Hardlinks sichern. Neben Hardlinks werden auch symbolische Links und NTFS Junctions unterstützt.
  • Neue Backup-Modi – Neben dem standardmäßigen und namensgebenden Hardlink-Modus unterstützt HardlinkBackup zwei neue Backup-Modi: Im Move-Modus werden keine Hardlinks verwendet, sondern stattdessen die unveränderten Dateien in den neuen Backupsatz verschoben. Dadurch können ebenfalls ältere Backupsätze ohne Verlust aktueller Dateien gelöscht werden. Im Mirror-Modus werden die Quellverzeichnisse zu einem Backupverzeichnis gespiegelt. Auch dieser Modus kommt ohne Hardlinks aus.
  • Erkennung verschobener und umbenannter Dateien über Prüfsummen – Beim Backup berechnet HardlinkBackup 2.0 nun Prüfsummen und sichert sie in der Indexdatei. Diese Prüfsummen können verwendet werden, um verschobene oder umbenannte Dateien relativ sicher zu erkennen und anstatt die Dateien neu zu kopieren mit dem älteren Backup zu verlinken. Dadurch lässt sich weiter Speicherplatz auf dem Backupziel sparen.
  • Sicherung der Sicherheitsbeschreibungen von Dateien – HardlinkBackup 1 konnte bereits die Sicherheitsbeschreibungen (ACL’s) sichern. Allerdings gingen sie verloren, wenn HardlinkBackup nicht genügend Rechte zum Schreiben der Berechtigungen im Zielverzeichnis hatte. HardlinkBackup 2.0 stellt nun das Übertragen sicher; über eine Option läßt sich steuern, ob die Sicherheitsbeschreibungen übertragen werden sollen, oder nicht.
  • Neue Aufgabenplanung – Aus Kompatibilitätsgründen benutzte HardlinkBackup 1 die Aufgabenverwaltung von Windows XP und nicht die Neue in Windows Vista und 7 (bzw. Server 2008). Deshalb tauchten unter Windows 7 die Aufgaben von HardlinkBackup nicht in der Aufgabenplanung der Systemsteuerung, sondern nur unter „C:\Windows\Tasks“ auf. HardlinkBackup 2 nutzt unter Windows Vista und höher die neue Aufgabenplanung.
  • Zweites Backupziel – Aus dem professionellen Einsatz kam der Wunsch, zwei Backupziele gleichzeitig zu beschreiben. Dem bin ich mit HardlinkBackup 2.0 nachgekommen. So kann man z.B. ein Backup „in einem Rutsch“ auf ein lokales und eine Netzwerklaufwerk sichern.
  • Batchmodus – HardlinkBackup 2.0 kann nun auch mehrere in der Kommandozeile übergebene Backups hintereinander ausführen. Dabei wird dann nur die Aktion beim Beenden des zuletzt ausgeführten Backups durchgeführt.

Neben dieser umfangreichen Feature-Liste plane ich auf jeden Fall auch nach dem Release von Version 2.0 relativ schnell nachfolgende Updates nachzuschieben, um weitere gewünschte Features schnell umzusetzen. Zwei Features stehen dabei ganz oben auf der Liste: Unterstützung des Schattenkopiedienstes sowie Einbindung von Start- und Ende-Skripten.

Bevor HardlinkBackup 2.0 jedoch released werden kann, muss ich zunächst die Realisierung abschließen ;). Da sich ja viel geändert hat, muss auch noch viel getestet werden. Dabei benötige ich eure Unterstützung! Sobald die Umsetzung fertig ist, werde ich die Betatest-Konditionen hier veröffentlichen.

Backupübersicht

KategorienAllgemein, HardlinkBackup, Software Tags: