Geschwindigkeitsoptimierung von duplicity

Geschwindigkeitsoptimierung von duplicity

duplicity in Kombination mit duply ist eine weit verbreitete Backuplösung aus der Linux Welt. duplicity/duply punkten mit einem großen Funktionsumfang und gelten als absolut zuverlässig. Kritik wird jedoch an ihrer Geschwindigkeit geäussert. In Zeiten von Terabyte Datenträgern kann es durchaus vorkommen, dass ein duplicity Vollbackup oder dessen Restore viele Stunden, wenn nicht sogar Tage läuft. Neuartige Lösungen wie Restic, Attic oder Duplicacy sollen deutlich schneller arbeiten. Zeit für uns, die Geschwindigkeit von duplicity genauer unter die Lupe zu nehmen und Optimierungspotentiale zu prüfen. (Die Arbeitsweise und die Bedienung von duplicity/duply haben wir im Artikel duplicity/duply: Datensicherung auf die Verlass ist vorgestellt.)

Getestete Parameter

Eine Stärke von duplicity ist seine Fähigkeit, sich auf vielfältige Weise individuell konfigurieren zu lassen. Davon bieten sich insbesondere drei Option für die Optimierung der Backupgeschwindigkeit an:

  1. Größe der Volumes
  2. Verschlüsselung
  3. Kompression

duplicity speichert die Backup-Daten nicht in einer großen Datei, sondern teilt diese in mehrere kleine Dateien, sogenannte Volumes, auf. Mit VOLSIZE kann man die Größe der Volumes in Megabyte festlegen. Der Vorteil kleinerer Volumens besteht darin, dass bei einem Übertragungsfehler oder einer Unterbrechung nicht so viele Daten erneut übertragen werden müssen. Kleinere Volumes bedeuten aber auch mehr Overhead, was per se mit einer längeren Laufzeit bestraft wird.

duplicity/duply verschlüsseln Backupdaten grundsätzlich vor der Übertragung mit Hilfe von GPG. Die Verschlüsselung lässt sich mit dem Parameter –disable-encryption deaktivieren – mit einer deutlichen Verbesserung Laufzeit als Konsequenz für die, die auf die Verschlüsselung verzichten können. (Ein Verzicht auf die Verschlüsselung sollte man aber nur dann in Betracht gezogen werden, wenn man das Backupziel vollständig unter Kontrolle hat.)

Neben der Verschlüsselung bietet duplicity/duply auch standardmäßig eine Kompression der Backup-Volumes mit GZip. Der Preis für den geringen Speicherbedarf auf dem Backupziel ist eine längere Laufzeit des Backupjobs. Die Kompression lässt sich mit dem Parameter –no-compression deaktivieren.

Soweit zur Theorie. Was sind aber die messbaren Auswirkungen der drei Optionen auf die Backupgeschwindigkeit? Was sind deren Wechselwirkungen? Wir wollten es genau wissen und haben nachgemessen! Unser Messergebnisse stellen wir im nächsten Abschnitt vor.

Testergebnisse

Testobjekt war ein 2 GB großes Datenverzeichnis. Die Sicherung erfolgte mit duplicity/duply über das lokale Netzwerk auf ein SMB-Share; der Restore nahm den gleichen Weg zurück auf den Terra MiniServer. Die Ergebnisse sind nicht unter streng kontrollierten Bedinungen zu Stande gekommen, bietet aber eine ausreichende Präzision für die Ableitung klarer Handlungsempfehlungen hinsichtlich ihres Laufzeiteffekts.

Die folgenden Laufzeiten haben wir für das Backup (erste Zeitangabe) und Restore (zweite Zeitangabe) in Abhängigkeit dreier unterschiedlicher Volumegrößen und deaktivierter Verschlüsselung (- Enc.) bzw. deaktivierter Kompression (- Comp.) gemessen:

1 MB Volsize 200 MB Volsize 400 MB Volsize
+ Enc. / + Comp. 178 s. / 129 s. 142 s. / 102 s. 139 s. / 96 s.
+ Enc. / – Comp. 136 s. / 48 s. 114 s. / 35 s. 116 s. / 33 s.
– Enc. / + Comp. 156 s. / 55 s. 131 s. / 39 s. 125 s. / 39 s.
– End. / – Comp. 59 s. / 36 s. 43 s. / 26 s. 43 s. / 25 s.

Entsprechend der generellen Erwartung reduzieren größere Volumes die Laufzeit von Backup und Restore. Jenseits der Standardgröße von 200 Megabyte ist der Laufzeiteffekt jedoch nur noch gering.

Einen deutlichen, positiven Laufzeiteffekt hat die Deaktivierung der Kompression. Beim Backup ist der Geschwindigkeitsvorteil rund 20 % und mehr oder weniger unabhängig von der gewählten Volumegröße. Mit aktivierter Kompression lag die Backupgröße bei ca. 1.9 GB. Die geringe Kompressionsrate (<10 %) erklärt sich aus dem Typ der dem Datenpaket zugrundeliegenden Dateien, die bereits ein komprimiertes Format darstellen. Ohne Kompression wuchs das Backupvolumen durch den Overhead auf 2.1 GB an.

Die Deaktivierung der Verschlüsselung bietet ebenfalls einen großen, positiven Geschwindigkeitsvorteil gegenüber den Standardeinstellungen. Backup und Restore beschleunigen um ca. 10-15%. Interessanterweise ist der Vorteil damit weniger deutlich als bei der Deaktivierung der Kompression.

Die Deaktivierung von Verschlüsselung und Kompression bietet – erwartungsgemäß – die deutlichste Geschwindigkeitsverbesserung. Interessanterweise ist der Effekt nicht additiv (1+1=2), sondern deutlich mehr als additiv (1+1=3). Ohne Kompression und ohne Verschlüsselung benötigt das Backup 70% weniger Zeit als in den Standardeinstellungen. Das bedeutet, dass ein Backup, das vorher länger als 24 Stunden lief, in wenigen Stunden weggeschrieben ist. Der Restore benötigt sogar 75% weniger Zeit.

duplicity/duply: zuverlässig, flexibel und – wenn gewollt – auch flott

duplicity/duply generell ob Ihrer geringen Geschwindigkeit zu kritisieren, geht an den Fakten vorbei. Wer von den Standardeinstellungen abweichen kann, kann die Geschwindigkeit seines duplicity Backups deutlich beschleunigen. In der schnellsten getesteten Konfiguration wurde unser Testbackup mit Transferraten von knapp unter 50MB/s geschrieben, der Restore erfolgt sogar mit guten 75MB/s. In den Standardeinstellungen waren es nur rund 15 bzw. 20 MB/s.

Mit Blick auf die gesteteten Parameter stechen vor allem die Verschlüsselung und die Kompression heraus. Wenn über einen ausreichend großen Backupspeicher verfügt, der kann die Kompression deaktivieren und dadurch deutlich Zeit sparen. Dies gilt umso mehr, desto weniger komprimierbar das zu sichernde Datenmaterial ist. Gerade im Falle von komprimierten Bild- oder Audioformaten lässt sich durch die GZip-Kompression von duplicity nicht viel Speicherplatz einsparen. Eine Deaktivierung der Verschlüsselung können all die in Betracht ziehen, die den Backupspeicher unter der eigenen Kontrolle haben (und die Sicherung im lokalen Netzwerk erfolgt oder der Transportweg verschlüsselt ist). Ein Backup auf ein lokales NAS lässt sich so deutlich beschleunigen. Flügel können all die duplicity/duply verpassen, die ihre Sicherung unkomprimiert und unverschlüsselt auf einen lokalen Datenträger oder Netzwerkspeicher ausführen. Was die Volumegröße angeht, so ist unsere Empfehlung, den Standardwert von 200 Megabyte aufgrund seines geringen Laufzeiteffekts nicht zu verändern.

geschrieben von

Christoph Dyllick-Brenzinger

Christoph ist Gründer und Chefentwickler von datamate. Er ist ein absoluter Linux-Fan und hat schon früh seine Leidenschaft für Technik und Programmierung entdeckt. Seine langjährige Erfahrung als Unternehmensberater spürt man regelmäßig, wenn er nach optimalen Lösungen für die Kunden sucht. Wenn er nicht gerade den Tennisplatz unsicher macht oder bei Overwatch sein Liga-Ranking verbessert, verbringt Christoph seine Freizeit mit seiner Frau und seinen drei Kindern.