Login
Newsletter
Werbung

Mi, 21. Juni 2017, 12:39

Software::Systemverwaltung

Synchronisationsprogramm casync in erster Version

Lennart Poettering hat die erste Version von casync veröffentlicht. casync ist ein allgemeines Synchronisationsprogramm, das Ideen von rsync, Git und Tar zusammenbringt, insbesondere aber für die sichere und effiziente Verteilung von Images von virtuellen Maschinen gedacht ist.

Erzeugung der Segmente von casync

Lennart Pöttering

Erzeugung der Segmente von casync

Lennart Poettering, Autor von PulseAudio und Systemd, hat nach eigenen Angaben bereits einige Monate an dem neuen Werkzeug gearbeitet, dessen erste Version er jetzt veröffentlicht hat. Dem Entwicklungsstand entsprechend sollte man casync v1 noch mit etwas Vorsicht nutzen, alle nötigen Funktionen sind allerdings implementiert.

Ausgangspunkt der Entwicklung war der Wunsch, Dateisystem-Images effizient und sicher zu synchronisieren. Die weiterhin starke Zunahme von virtuellen Maschinen und Containern führt zu einer ebensolchen Explosion von Images. Diese Images enthalten vielfach dieselben Dateien, so dass man viel Traffic sparen könnte, wenn jede davon nur einmal übertragen wird. Bei Aktualisierungen kann noch viel mehr Traffic gespart werden, da man nur die geänderten Dateien, und auch von diesen nur die geänderten Teile, übertragen muss.

Eine Reihe von Programmen existiert bereits, die zwar die Synchronisation leisten können, dabei aber nicht so effizient vorgehen oder andere Nachteile haben. So funktioniert rsync gut mit Verzeichnisbäumen, aber nicht mit Images, und kann auch keine Deduplizierung leisten. Das Synchronisationsprogramm von Docker vermischt Versionsverwaltung und Update-Verwaltung, OSTree dagegen liefert einzelne Dateien über einen eingebauten Webserver aus, was viele einzelne Anfragen erfordert. Keines der bestehenden Werkzeuge ist aber nach Meinung Poetterings wirklich gut, wenn es um Sicherheit und Repoduzierbarkeit geht.

Poetterings Lösung casync zerlegt Images in Segmente, die eine variable Größe aufweisen und anhand ihrer sha256-Prüfsumme abgelegt werden - dies ist analog zu Git mit einer verbesserten Prüfsumme. Segmente können mehrere kleine Dateien umfassen, große Dateien dagegen sind über mehrere Segmente verteilt. Alle Segmente werden in einem einfachen linearen Index aufgeführt. Die Gesamtheit der Dateien kann als Tar-ähnliches Archiv gespeichert werden. Die Synchronisation übers Netz erfolgt durch das Kopieren der benötigten Segmente. Offensichtlich müssen Segmente, die auf Ausgangs- und Zielsystem bereits gleich sind, nicht mehr übertragen werden. Die weiteren technischen Details von casync können der langen Ankündigung entnommen werden.

Der Quellcode von casync ist im Github-Repositorium von Systemd zu finden und steht unter der LGPLv2.1. Binärpakete wurden bereits für Ubuntu, Fedora und Arch Linux erstellt. Poettering plant, dem Programm einige weitere Funktionen hinzuzufügen. Um casync als Backup-Programm nutzen zu können, will er eine Verschlüsselung einbauen. Die Validierung der Metadateien, die durch einen kryprografischen Hash gesichert sind, soll künftig automatisiert erfolgen. Die gesamte Funktionalität von casync soll sich künftig als dynamische Bibliothek in andere Programme einbinden lassen. In fernerer Zukunft soll es mit casync möglich sein, ganze Home-Verzeichnisse auf andere Systeme oder in die Cloud zu synchronisieren. Eine weitere Erweiterung soll Dateien aus dem lokalen Netz statt aus einem anderen Netz beziehen, sofern sie bereits lokal vorhanden sind.

Werbung
Kommentare (Insgesamt: 17 || Alle anzeigen )
Re: Wo auch sonst. (WANNABE, Sa, 24. Juni 2017)
Re[5]: Wo auch sonst. (Verflucht, Do, 22. Juni 2017)
Re[4]: Lennart Poettering (Verflucht, Do, 22. Juni 2017)
Re[3]: Lennart Poettering (LH_, Do, 22. Juni 2017)
Re[3]: Lennart Poettering (LH_, Do, 22. Juni 2017)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung