The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Использование zsync для минимизации трафика при синхронизации больших файлов, например, ежедневных сборок Ubuntu
Для пользователей, желающих минимизировать сетевой трафик и ускорить загрузку
ежедневных тестовых снапшотов Ubuntu, предоставлена возможность загрузки только
изменившихся с момента прошлой загрузки частей iso-образа. Для загрузки только
изменений вместо полной копии следует использовать утилиту zsync.

По сути zsync является вариантом rsync, нацеленным на эффективную синхронизацию
единичных больших файлов и реализующим логику синхронизации на стороне клиента.
Для работы zsync не требуется установка особого сервернего ПО, достаточно
создать небольшой индексный файл в котором будут сохранены контрольные суммы
блоков данных и использовать обычный http-сервер, допускающий загрузку
отдельных частей файла.

Устанавливаем zsync:

   sudo apt-get -y install zsync

Загружаем iso-образ:

   zsync http://cdimage.ubuntu.com/daily-live/current/raring-desktop-amd64.iso.zsync

Если загрузка осуществляется первый раз, то zsync автоматически загрузит весь
файл. Если файл загружается повторно, zsync загрузит индекс (для iso-образа
ubuntu примерно полтора мегабайта), оценит изменений между локальным и
удалённым файлом и загрузит только изменившиеся блоки данных.

Для создания zsync-индекса, при желании организовать распространение своих
файлов через zsync, следует использовать утилиту zsyncmake:

   zsyncmake file.iso

после чего будет создан файл file.iso.zsync.

Для корректной отдачи .zsync-индексов в конфигурацию Apache в файл mime.types следует добавить:

   application/x-zsync             zsync
 
10.01.2013 , Источник: http://www.omgubuntu.co.uk/2013/01/...
Ключи: zsync, rsync, file, sync / Лицензия: CC-BY
Раздел:    Корень / Пользователю / Файлы, копирование, архивация

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Dmitry (??), 22:46, 10/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А где хранится адрес откуда скачивать блоки образа? Ведь при создании индекса zsyncmake создается только индекс.
     
     
  • 2.2, Аноним (-), 23:10, 10/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > А где хранится адрес откуда скачивать блоки образа? Ведь при создании индекса
    > zsyncmake создается только индекс.

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

     
  • 2.3, Аноним (-), 23:13, 10/01/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А где хранится адрес откуда скачивать блоки образа? Ведь при создании индекса
    > zsyncmake создается только индекс.

    Блоки грузятся из основного файла, который выложили для загрузки. Этот файл логически разбивается на сегменты, для которых в индексе хранятся контрольные суммы. Когда zsync загружает индекс, он сверяет контрольные суммы того что уже есть на стороне пользователя и то что различается грузить с удалённого сервера используя HTTP/1.1 заголовок Range.

     
     
  • 3.14, Sw00p aka Jerom (?), 20:05, 20/02/2013 [^] [^^] [^^^] [ответить]  
  • +/
    хммм а разве не одно и тоже получает? он же вроде должен весь файл сверить поблочно и это равносильно скачиванию с сервера или я чтото недопонял

    как реализован механизм контрольных сумм и чего ?

     
  • 2.6, XoRe (ok), 01:05, 14/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > А где хранится адрес откуда скачивать блоки образа?

    Обычно индекс лежит там же, где и файл.
    Как-то так:
    http://server/файл.iso
    http://server/файл.iso.zsync

     
     
  • 3.15, Sw00p aka Jerom (?), 20:08, 20/02/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> А где хранится адрес откуда скачивать блоки образа?
    > Обычно индекс лежит там же, где и файл.
    > Как-то так:
    > http://server/файл.iso
    > http://server/файл.iso.zsync

    а на чьей стороне происходит сверка контрольных сумм ?

     
     
  • 4.16, Аноним (-), 05:07, 07/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Клиентской ясен фиг. Клиент качает .zsync и смотрит что у него есть и насколько оно совпадает с вот этим вот описанием. Что не совпадает - качается с сервака.
     

  • 1.4, pavlinux (ok), 16:47, 12/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А чё, торрент уже не феншуйно?
     
     
  • 2.5, Пользователь Debian (?), 02:37, 13/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Торрент не умеет эффективно выкачивать изменения в уже имеющимся файле. Основное применение rsync это *инкрементная* передача данных.
     
     
  • 3.7, XoRe (ok), 01:16, 14/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Торрент не умеет эффективно выкачивать изменения в уже имеющимся файле.

    o'rly?
    Сегмент (англ. part — часть) — все файлы для передачи делятся на небольшие куски — сегменты, которые, затем, передаются по сети в произвольном порядке для оптимизации обмена.

    1. Выкладываете новый torrent файл
    2. Пользователи его тыкают
    3. bittorent клиент анализирует имеющийся у клиента iso, сравнивает crc каждого сегмента
    4. Клиент закачивает только изменившиеся сегменты
    5. PROFIT!

    В остальном, программа имеет право быть. Хотя это отдельная программа.
    Её профит скорее для сервера - можно использовать http сервер, со всеми его плюшками (бекенды, балансировка, и т.д.), не нужно поднимать *sync сервер.
    Клиент все равно должен использовать специальную программу для скачивания
    Было бы классно, если бы был плагин к FF с такой функциональностью.

     
     
  • 4.8, Пользователь Debian (?), 01:29, 14/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, не знал про такую особенность протокола.
     
     
  • 5.9, pavlinux (ok), 02:44, 14/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Спасибо, не знал про такую особенность протокола.

    Через Magnet по-моему (или что-то ещё нужно) можно вообще обновлять
    без уведомления клиентов. Просто в папку кидаешь новый файл с тем же
    именем, а оно само по клиентам расползается.
      
    А ещё есть PerFS, P2PFS, и другая распределённая хрень.

     
  • 4.10, Pilat66 (?), 12:00, 14/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Насчёт торрента - если в начало файла добавится один байт, сработает ли ?
     
     
  • 5.12, pavlinux (ok), 02:06, 15/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Насчёт торрента - если в начало файла добавится один байт, сработает ли ?

    Не, там всё сдвинется на один байт.

     

  • 1.11, Аноним (-), 13:55, 14/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    чем jigdo не угодила?
    постоянно недельные деб исошки обновляю ею
     
     
  • 2.13, qux (ok), 22:59, 27/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Поправьте если не так, но это может профильный кейс для jigdo (сборка iso из кучи rpm-файлов и одного со служебной информацией). В случае если большой файл "атомарный", это не прокатит.

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру