Задача - обеспечить возможность в любое время доставить на любой из компьютеров пользователей дистрибутивные файлы объёмом от 10 MB до 10 GB из некоторого, заранее обусловленного набора, не вводя, при этом, в ступор связь между сегментами сети.
Решение - BitTorrent.
Загружаем файл на один из центральных серверов, доступных оператору реализуемой схемы по высокоскоростному каналу передачи данных. На сервере регулярно отрабатывается скрипт, пробегающий содержимое директории хранения и генерирующий с помощью btmakemetafile (из пакета bittorrent) "торрент"-файлы. Содержимое директории с "торрент"-файлами доступно через HTTP и локально, их раздачу обеспечиваем с помощью Nginx и Rsync. Начальную публикацию данных с центрального сервера обеспечиваем с помощью утилиты btdownloadheadless (из пакета bittorrent).
На серверах, во всех удалённых сегментах устанавливаем "rtorrent" или "utorrent". Регулярно загружаем обновлённые "торрент"-файлы с центрального сервера с помощью утилиты "rsync". "Rtorrent" или "uTorrent" выкачивают файлы с центрального сервера и предоставляют возможность ими воспользоваться.
На всех серверах распространения необходимо будет регулярно запускать скрипт, сверяющий списки "торрент"-файлов и непосредственно файлов контента и удаляющий непарные - эдакая упрощённая реализация снятия раздачи. Учитывая то, что, далее, генерировать "торрент"-файлы мы будем с именем, повторяющем в точности имя файла распространения и сложностью разбора внутренностей файлов на платформе Windows, примем за критерий парности "торрент"-файла и файла контента совпадение их имён.
Теперь пользователю компьютера любого из сегментов достаточно выбрать "торрент"-файл на странице сайта на центральном сервере, например, по адресу "http://share.storage.local/". Преимущества протокола BitTorent известны всем, клиент может получать данные со множества узлов, а самый быстрый узел в каждом из сегментов - его сервер.
Инструкция оператора схемы будет состоять из одного пункта и одного замечания:
Пункт #1 - загрузить файл на сервер с помощью SFTP.
Замечание #1 - загружать файлы размером от 50 MB в конце рабочего дня, чтобы не замедлять работу сети.
Замечание #1 - загружать файлы размером от 50 MB в конце рабочего дня, чтобы не замедлять работу сети.
В соответствии со способом реализации схемы файлы ресурсов будут доступны как по протоколу BitTorrent, так и по протоколу HTTP. Какой из них выбрать пользователю для получения требуемого? По мере разумения каждый выберет то, что ему ближе; один выберет то, что проще, но существенно дольше - HTTP, другой то, что чуть сложнее, но эффективнее - BitTorrent.