Casync — утилита для частой синхронизации файловых систем, «вдохновлённая» rsync и Git
Леннарт Поттеринг (Lennart Poettering) из компании Red Hat представил свой новый проект, над которым работал в последние месяцы, — casync.
Как пишет сам автор, утилита casync появилась под вдохновением от классического средства синхронизации файлов rsync и популярной системы контроля версий Git. Таким образом, в основу решения положено пересечение идей алгоритма rsync и контентно-адресуемых файловых систем (т.е. ФС для CAS, Content-Addressable Storage). Новый инструмент призван обеспечить эффективное хранение и доставку образов файловых систем, ориентирован на использование в интернете при необходимости частых обновлений ФС. В качестве предполагаемых сфер применения называются интернет вещей (IoT), контейнеры, виртуальные машины, приложения, портируемые сервисы и образы операционных систем. При этом автор возлагает надежды, что в дальнейшем casync может пригодиться и для бэкапов, и для синхронизации домашних каталогов пользователей.
Поттеринг пришёл к созданию casync после изучения имеющихся решений, таких как tarball-архивы со слоями в Docker, а также OSTree и «другие системы». Используемые в них подходы, по мнению разработчика, не удовлетворяют всем реальным требованиям к системам с циклом частых обновлений, которые нуждаются одновременно в разумном потреблении трафика (использовать дельты изменений для обновлений образов), в установке лимитов на количество используемого дискового пространства на серверах (сколько дельт хранить) и у клиентов, в удобном взаимодействии с CDN-сетями, в простоте для пользователей, администраторов и разработчиков.
Исходный код casync написан на языке Си и опубликован на GitHub под свободной лицензией GNU LGPL 2.1. Там же можно найти примеры базовых команд утилиты, а в блоге разработчика опубликовано подробное объяснение, как работает casync и какие возможности предоставляет.
Дмитрий Шурупов по материалам 0pointer.net.