Авторские статьи

Дружище zsync спешит на помощь.


Кто главный друг среди протоколов передачи данных в Linux? Правильный ответ BitTorrent. Качая не маленькие образы любимой Ubuntu с помощью BitTorrent, мы помогаем Canonical, разгружая её сервера и её зеркала.

Но BitTorrent не всесилен. Его плюс, что при закачивании файла, мы передаём куски файла (chunks - чанки) друг другу и качаем не с помощью централизованной технологии сервер-клиент как http, а используем распределённую p2p сеть. Но представьте, что вы хотите помочь Canonical и тестируете новые релизы Ubuntu и проверяете всё ли хорошо с переводами установщика или нет ли проблем при установке на экзотическое железо.

Каждый раз качать обновлённый iso образ даже по BitTorrent протоколу это всё равно заново скачивать ~700 мб!
Выход?

Нужно качать только "изменения". Инкрементное копирование придумано давно и используется, например, в замечательной утилите и протоколе rsync. Но проблема rsync в том, что ему нужна поддержка на стороне сервера.

Подробнее об плюсах и минусах в статье Comparison with rsync - zsync.moria.org.uk/paper/ch02s07.html.

Главное выход есть и это утилита zsync!
Как это работает?

Рядом с большим файлом, который будет раздаваться по http, кладут метафайл .zync. Скачав себе этот файл, вы скармливаете его zsync и он скачает вам большой файл, пользуясь информацией из метафайла.

Стойте! И чем это отличается от wget?

Отличия начинаются тогда, когда большой файл чуток изменят и сразу же автоматически изменится его контрольная сумма и большинство протоколов будут считать его абсолютно новым файлом и будут правы.

Вы будете вынуждены скачать снова большой объём информации из-за небольших изменений. Zsync скачает только изменения и применит их к старой версии большого файла и вы получите новый большой файл.

Вот реальный пример. Хочется потестировать Ubuntu 12.10. Зная, что образы iso будут изменяться постоянно на сервере и на определённых этапах постоянно будут нужны новые образы, чтобы протестировать локализацию установщика, решаем использовать zsync.

Новые образы будут выкладываться по адресу cdimage.ubuntu.com/daily-live/current/ и там копируем ссылку на файл cdimage.ubuntu.com/daily-live/current/quantal-desktop-i386.iso.zsync

Первый раз ну-у-у очень не хочется качать все 700 мб и хитрим. Берём образ Ubuntu 12.04 и делаем копию с новым именем quantal-desktop-i386.iso в специальную папку в которой будут в дальнейшем появляться служебные файлы zsync.

Командуем zsync http://cdimage.ubuntu.com/daily-live/current/quantal-desktop-i386.iso.zsync

Zsync обнаружил подкинутый quantal-desktop-i386.iso и сообщил мне, что 63% уже есть (Target 63.6% complete) и осталось докачать только 37%!

#################### 100.0% 45.5 kBps DONE      
reading seed file quantal-desktop-i386.iso: ****
Read quantal-desktop-i386.iso. Target 63.6% complete.      
*********************************************
downloading from cdimage.ubuntu.com/daily-live/current/quantal-desktop-i386.iso:
#################### 100.0% 168.7 kBps DONE      
verifying download...checksum matches OK
used 472367104 local, fetched 270778956

Две трети файла качать не нужно. Не плохо? Отлично!

С выходом обновленных образов достаточно повторять команду в данной папке и zsync обновит ваш образ. Учитывая что образы будут несильно отличаться друг от друга, то и скачивание будет быстрым и не напрягающим.

Согласитесь что это здорово и точно лучше скачивания wget по http и даже лучше скачивания каждый раз заново файла по BitTorrent!

Peer2peer связь:
BTSync на службе у админа. Описание работы, параметры, FAQ.

Дата последней правки: 2014-06-19 10:29:10

RSS vasilisc.com   


Разделы

Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи об Astra Linux
Статьи о FreeBSD
Статьи об Ubuntu
Статьи о Snappy
Статьи об Ubuntu Phone
Статьи о Kubuntu
Статьи о Xubuntu
Статьи о Lubuntu
Статьи об Open Source
Карта сайта