Zsync – это утилита для передачи файлов с открытым исходным кодом, построенная на основе алгоритма rsync. Она помогает загружать частичные/дифференциальные файлы по протоколу HTTP. Утилита позволяет загружать только новые части файла из централизованного расположения, где старая версия файла уже находится на вашем компьютере.
В то время как rsync предназначен для синхронизации данных с одного компьютера на другой, zsync позволяет распространять файлы, когда файл, размещенный на сервере, использующем любой веб-сервер, может быть распространен среди многих и легко загружен.
Как это работает
Утилита командной строки будет выполнять все дифференциальные вычисления в клиенте, а не на сервере, как в rsync. Метаданные сервера будут созданы только один раз и сохранены как часть контрольного файла. А остальные операции и принятие решений будут выполняться клиентским приложением. Это позволит сократить объем обработки, необходимой на стороне сервера, даже если тысячи клиентов пытаются извлечь файл.
Сервер
Сервер вычислит контрольную сумму и заранее создаст контрольный файл. Он содержит контрольные суммы, размер блока файла, длину и права доступа к файлу. Поскольку остальные сравнения выполняются на стороне клиента, на сервере не выполняется никаких вычислений контрольной суммы, и каждый раз клиент запрашивает данные.
Клиент
Клиент Zsync написан на «C» и способен сначала извлекать метаданные с сервера. Утилита сравнит данные текущей контрольной суммы файлов (сгенерированные rsync) и запросит оставшиеся данные с сервера.
Как создать файлы .zsync
Существует несколько способов создания и передачи файлов с использованием Zsync –
-
Передача сжатых файлов (gzip, tar и т. д.)
Запустив команду «zsyncmake» для целевого файла, утилита автоматически проверит сжатый файл и создаст файл .zsync для содержимого. Это одно из главных отличий от «rsync», который не поддерживает сжатые файлы. Если вы хотите поделиться сжатыми отдельными файлами, такими как rpm, deb и т. д. может не помочь использовать возможности zsync. В то же время это будет полезно для файлов ISO, которые содержат несколько типов файлов, и для каждый выпуск может иметь свои изменения.
-
Сжатие и передача
Zsyncmake способен сжимать файл в формате gzip перед передачей файлов. И этот вид сжатия будет лучше, чем использование любого стандартного инструмента сжатия, поскольку он может предложить лучшую эффективность передачи.
1 |
zsyncmake -z file-name |
Приведенная выше команда создаст сжатую версию файла, файл .zsync и URL-адрес, предполагая, что эти два файла будут обслуживаться из одного корня документа веб-сервера.
Пример Zsync – Загрузки Debian/Ubuntu ISO
Одним из лучших вариантов использования zsync является распространение ISO-образов Ubuntu/Debian в виде загрузок .zsync. Вы можете выбрать Ubuntu iso .zsync из приведенной ниже ссылки, и инструмент загрузит “только новые изменения в файл”, не нужно загружать весь образ ISO.
Скачать с помощью zsync
1 |
zsync http://releases.ubuntu.com/19.04/ubuntu-19.04-desktop-amd64.iso.zsync |
Если вы загружаете этот файл в первый раз, вы сможете увидеть сообщения, как показано ниже, и начнется загрузка –
1 2 |
No relevant local data found - I will be downloading the whole file. If that's not what you want, CTRL-C out. You should specify the local file is the old version of the file to download with -i (you might have to decompress it with gzip -d first). Or perhaps you just have no data that helps download the file downloading from http://releases.ubuntu.com/19.04/ubuntu-19.04-desktop-amd64.iso: |
Ссылки
- Официальный сайт
- Технический документ разработчика Колина Фипса
- Справочная страница для Zsync
- Справочная страница для Zsyncmake
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.