The OpenNET Project / Index page

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

13.06.2018 20:35  Компания Alibaba открыла код P2P-системы доставки файлов Dragonfly

Alibaba, одна из крупнейших китайских IT-компаний, открыла исходные тексты распределённой системы доставки файлов Dragonfly, использующей механизмы P2P-коммуникаций для построения сети распространения контента. Система подходит для организации загрузки файлов, создания распределённых кэшей, систем доставки приложений и образов изолированных контейнеров. Код проекта написан на языках Go, Java и Python (в будущем все компоненты планируется переписать на языке Go), и распространяется под лицензией Apache 2.0.

По заявлению разработчиков, в отличие от других похожих систем Dragonfly обеспечивает более высокую эффективность, экономит пропускную способность и гарантирует надёжность до 99.9999%. Отмечается, что Dragonfly является одним из наиболее важных компонентов инфраструктуры компании Alibaba и ежемесячно обслуживает около двух миллиардов загрузок, суммарным размером более 3.4 ПБ. По сравнению с централизованными серверами загрузки контента, Dragonfly позволяет добиться постоянного времени отдачи, не зависящего от числа клиентов, одновременно загружающих данные.

Например, тестовая конфигурация на базе двух 24-ядерных серверов с 64 ГБ ОЗУ и каналом связи в 2000Mb/s при использовании утилиты wget смогла обеспечить отдачу 200-мегабайтного файла не более чем 1200 одновременно подключенным пользователям. Время загрузки файла в пике при этом составляло около 14 минут. При повторении теста с использованием Dragonfly, благодаря применению P2P-механизмов удалось добиться отдачи файла с постоянным временем загрузки в 12 секунд, независимо от числа пользователей, одновременно запрашивающих файл.

Кроме передачи файлов большая ставка делается на применение Dragonfly для оптимизации доставки приложений и образов контейнеров для DevOps-применений. Dragonfly может интегрироваться с различными платформами контейнерной изоляции, не требуя изменения их движков. В том числе Dragonfly отлично интегрируется с системами управления контейнерами Docker и Pouch. По сравнению с традиционными средствами доставки контейнеров Docker, Dragonfly позволяет до 57 раз увеличить пропускную способность и на 99.5% сократить трафик, исходящий от реестра контейнеров.

Базовые компоненты Dragonfly:

  • Supernode - написанный на языке Java менеджер кластера, выполняющий роль P2P-сервера, отвечающего за планирование P2P-задач и создание кэша CDN. Supernode разбивает файл на блоки и определяет какие узлы/клиенты (peer) будут участвовать в доставке этих блоков;
  • Dfdaemon (dfget) - написанный на языке Go процесс для распространения файлов или образов, который работает на стороне клиента (peer) и участвует непосредственно в доставке запрошенных блоков файла. Dfdaemon также может выполнить функции зеркала репозитория или прокси для Docker;
  • Getter - написанный на Python модуль, отвечающий за передачу файлов и организацию совместного доступа к ним.

Основные особенности:

  • Использование P2P-технологии для передачи файлов - каждый клиент Dragonfly является звеном, транслирующим уже полученные данные другим клиентам. Каждый файл разбивается на несколько блоков, которые отдельно передаются между разными узлами (peer). Работа каждого узла P2P-сети обеспечивается отдельным клиентом. Централизованный менеджер кластера имеет информацию о разбивке файлов и о том, какие блоки имеются на каком клиенте, а также осуществляет первичную загрузку файлов из исходного файлового сервера;
  • Возможность интеграции с инструментариями контейнерной изоляции для организации распределённой доставки образов контейнеров;
  • Возможность ограничения суммарной пропускной способности на уровне всего хоста, а не только на уровне отдельных соединений;
  • Работа в форме пассивной сети доставки контента (CDN), позволяющей избежать повторяющихся удаленных загрузок;
  • Гарантированное обеспечение целостности передаваемых файлов, без необходимости дополнительной проверки пользователем контрольных сумм;
  • Оптимальное хранение данных на диске и эффективный ввод/вывод. Например, применяются такие техники, как предварительная проверка дискового пространства, отложенная синхронизация, запись блоков в оптимальном порядке, разбиение операций сетевого чтения и записи на диск;
  • Высокая производительность: система управления кластером (компонент Cluster Manager) замкнут на самом себе и не зависит от внешних СУБД и распределённых кэшей;
  • Автоматическая изоляция сбойных узлов для повышения стабильности всей сети доставки файлов;
  • Отсутствие нагрузки на базовый сервер, который предоставляет исходные файлы - по сути нагрузка на такой сервер сводится к нескольким загрузкам файла менеджером кластера;
  • Поддержка штатных HTTP-заголовков, в том числе возможность подстановки информации об аутентификации через HTTP-заголовки;
  • Эффективное управление нагрузкой на реестр аутентификации (Registry Auth Service);
  • Простая настройка, для начала работы необходимо внести минимальные изменения в конфигурацию. Для развёртывания сети требуется создание сервера с менержером кластера и установка на каждый клиент специального ПО.


  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Для Linux предложена новая ФС NOVA, спроектированная для NVM-памяти
  3. OpenNews: Выпуск открытой P2P-системы синхронизации файлов Syncthing 0.14
  4. OpenNews: Представлена распределённая система доставки web-контента CacheP2P
  5. OpenNews: Релиз GNUnet 0.10, фреймворка для построения безопасных P2P-сетей
  6. OpenNews: Система построения CDN-сети Traffic Control получила статус первичного проекта Apache
Лицензия: CC-BY
Тип: Программы
Ключевые слова: dragonfly, alibaba, cdn, proxy, p2p
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Аноним (-), 21:58, 13/06/2018 [ответить] [показать ветку] [···]     [к модератору]
  • –15 +/
    А вот мне интересно Мой оператор - бывший Сибирьтелеком Ныне стал Ростелекомом... весь текст скрыт [показать]
     
     
  • 2.8, Paul Zhirnov (?), 22:35, 13/06/2018 [^] [ответить]     [к модератору]  
  • +3 +/
    твой ип-адресс записывается в трекере и в dht и считается живым в течении часа п... весь текст скрыт [показать]
     
  • 2.9, username (??), 22:36, 13/06/2018 [^] [ответить]    [к модератору]  
  • +5 +/
    Ну, это обычное дело когда у вас часто меняется ип. Ничего страшного в этом нет, будут слать пока не отпадут по своим таймаутам. Трафик незначительный.
    Может вам лучше к врачу?
     
     
  • 3.15, Аноним (-), 23:33, 13/06/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Может лучше автобан незапрошенных соединений делать?
     
  • 2.23, Аноним (-), 05:22, 14/06/2018 [^] [ответить]     [к модератору]  
  • +2 +/
    Я приятном удивлении от формулировки вопроса Полагаю, что тут комбинация несколь... весь текст скрыт [показать]
     
  • 2.52, XoRe (ok), 22:30, 17/06/2018 [^] [ответить]     [к модератору]  
  • +/
    Тоже мне проблема Настройте ddns, чтобы он обновлял ip раз в минуту по крону И... весь текст скрыт [показать]
     
  • 1.3, Аноним (-), 22:25, 13/06/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –11 +/
    Чем полезна эта алибаба? Это аналог амазона чтоль?
     
     
  • 2.4, Аноним (-), 22:28, 13/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Что такое "амазон"?
     
     
  • 3.12, Аноним (-), 22:37, 13/06/2018 [^] [ответить]    [к модератору]  
  • +23 +/
    Запрещённая в РФ организация.
     
     
  • 4.18, Аноним (-), 23:53, 13/06/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    Причем запрещенная со стороны Amazon.
     
  • 2.13, Crazy Alex (ok), 22:38, 13/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Примерно да. Причём от торговли всякой ерундой до облаков и онлайн-контента. А вообще - википедия в помощь.
     
  • 2.24, Аноним (-), 05:23, 14/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > Чем полезна эта алибаба? Это аналог амазона чтоль?

    Она полезна своим акционерам, в первую очередь. Мегакорпорация

     
  • 2.27, лютый охохоня... (?), 07:47, 14/06/2018 [^] [ответить]     [к модератору]  
  • –10 +/
    Алибаба это сборище китаёз-мошенников Без репутации, стыда, чести и совести За... весь текст скрыт [показать]
     
     
  • 3.30, Аноним (-), 08:54, 14/06/2018 [^] [ответить]     [к модератору]  
  • +3 +/
    Еще как смешно На али выходит в два раза дешевле, чем у местных барыг, а на ёбе... весь текст скрыт [показать]
     
     
  • 4.50, Аноним84701 (ok), 00:38, 16/06/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Брал через амазон у дядюшки Ляо ultrabay адаптер под халявную SSD Тянет заявле... весь текст скрыт [показать]
     
  • 3.34, Аноним (-), 09:13, 14/06/2018 [^] [ответить]     [к модератору]  
  • +3 +/
    Походу ты очень скромный человек Настолько скромный что постеснялся прочитать п... весь текст скрыт [показать]
     
  • 3.37, Аноним (-), 11:03, 14/06/2018 [^] [ответить]     [к модератору]  
  • +2 +/
    А у меня другой опыт За три года мы с женой больше 200 покупок сделали там в су... весь текст скрыт [показать]
     
     
  • 4.39, Аноним (-), 12:56, 14/06/2018 [^] [ответить]    [к модератору]  
  • +/
    Зачем, если можно найти тех, кто продаёт за пол цены? Потом хоть будет повод поныть, что кинули. :D
     
  • 3.42, Клыкастый (ok), 14:20, 14/06/2018 [^] [ответить]    [к модератору]  
  • +/
    ебей это дааааа..... выигрываешь аукцион. если не заплатил ты - кары небесные. если продавец не выслал товар - только деньги назад. через месячишко. всё для людей ©
     
     
  • 4.48, нах (?), 15:26, 15/06/2018 [^] [ответить]     [к модератору]  
  • +/
    через месячишко - это если тебе повезло и продавец выставил срок доставки в две ... весь текст скрыт [показать]
     
  • 1.11, Аноним (-), 22:37, 13/06/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –6 +/
    >гарантирует надёжность на уровне 99.9999%

    Почему не 99.99999%? Ощущение, будто не пост на техническом ресурсе, а колонку маркетологов прочитал

     
     
  • 2.17, kptO (?), 23:42, 13/06/2018 [^] [ответить]    [к модератору]  
  • +13 +/
    Потому что на пятой девятке начинается гомеопатия, а ресурс "технический"
     
  • 2.22, Аноним84701 (ok), 03:34, 14/06/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Потому что читать все же лучше целыми предложениями да и по ссылкам на источник... весь текст скрыт [показать]
     
  • 2.25, Аноним (-), 05:27, 14/06/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    > колонку маркетологов прочитал

    Про колонку маркетоловов знаете, а по технической части полный ноль. Странный персонаж. Вот, популярно: https://en.wikipedia.org/wiki/High_availability

     
  • 2.28, КО (?), 08:30, 14/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    >>гарантирует надёжность на уровне 99.9999%
    >Почему не 99.99999%?

    Потому, что они заметили что из мегабайта убегает куда-то один байт. А в Вашем случае только из десяти должен убегать. :)

     
  • 1.16, max (??), 23:39, 13/06/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    странная новость, уже достаточно давно был открыт код
     
     
  • 2.19, Аноним (-), 23:54, 13/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > странная новость, уже достаточно давно был открыт код

    Будто у кого-то есть какая-то потребность в этом.

     
  • 2.20, Аноним (-), 01:34, 14/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    На Опеннет иногда попадает то, что интересно, но ранее не освещалось.
     
     
  • 3.47, Аноним (-), 20:33, 14/06/2018 [^] [ответить]    [к модератору]  
  • +/
    Нужно было написать что 5 лет назад был открыт исходный код в новости.
     
     
  • 4.53, XoRe (ok), 22:34, 17/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > Нужно было написать что 5 лет назад был открыт исходный код в
    > новости.

    2 года

     
  • 2.33, Аноним (-), 09:08, 14/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > странная новость, уже достаточно давно был открыт код

    странная- не странная.. новая-не новая... какая вам разница о чем флудить?

     
  • 1.21, Аноним (-), 02:09, 14/06/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Го , питон , жаба прям зоопарк.
     
     
  • 2.31, Аноним (-), 08:56, 14/06/2018 [^] [ответить]    [к модератору]  
  • +/
    Ты конечно же можешь предъявить написанную тобой альтернативу на православных сях?
     
  • 1.26, Стоп (?), 07:13, 14/06/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –3 +/
    Отдать один файл куче пользователей. Такой часто в жизни встречается, если не брать торренты?

    Какие-то странные кейсы у китайских лазадовцев.

     
     
  • 2.29, КО (?), 08:33, 14/06/2018 [^] [ответить]    [к модератору]  
  • +/
    >Отдать один файл куче пользователей.

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

     
     
  • 3.32, Аноним (-), 09:01, 14/06/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Причуды причудливых еще причудливей Ведь файл не только отдается большому колич... весь текст скрыт [показать]
     
     
  • 4.46, КО (?), 17:27, 14/06/2018 [^] [ответить]    [к модератору]  
  • +/
    Но для этого они должн сначала на ноды уйти. Скачивать файл с сервера 1000 раз, чтоб потом один раз отправить одному человеку из 1000 нод - то еще развлечение.

    P.S. Но здесь - http://www.opennet.ru/opennews/art.shtml?num=48777
    Пояснили зачем. "В сумме вредоносные образы были загружено более 5 миллионов раз".
    Тут да - распределенная закачка самое оно.
    Только назвать этот случай "полезным", рука не поднимается. :)

     
     
  • 5.49, нах (?), 15:34, 15/06/2018 [^] [ответить]    [к модератору]  
  • +/
    >  Только назвать этот случай "полезным", рука не поднимается. :)

    то есть как это не полезным? Кому-то тот cdn принес пользы на $90000

     
  • 3.36, тигарэтоя (?), 09:47, 14/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    >>Отдать один файл куче пользователей.
    > Причем, по их задумке, контейнер для Докера. Ну еще бы аналог ютюба,
    > но зачем тыще людей одновременно понадобится один и тот же контейнер.
    > Хотя причудливы порой пути человеческие.

    серверов с тем же докером, может быть сотни. очевидно, что было бы быстрее, например, обновлять контейнеры в случае, когда registry распределен. Когда клиент один и 1 реестр, то пофигу, а вот когда клиентов сотни - очевидно, что узким местом и станет тот-самый-один-реерстр.

     
  • 3.40, Andrey Mitrofanov (?), 12:57, 14/06/2018 [^] [ответить]    [к модератору]  
  • +/
    >>Отдать один файл куче пользователей.
    > Причем, по их задумке, контейнер для Докера. Ну еще бы аналог ютюба,
    > но зачем тыще людей одновременно понадобится один и тот же контейнер.
    > Хотя причудливы порой пути человеческие.

    Интернет-магазин заменяет броузер _быстрой_ доставкой бинарей.

    Ужас-ужас.  Они уже даже не 'curl |sudo bash' продают, а 'aria2c -x NNN |$ld-как-его-там'.  //Они победили Ленарта по анти-bash-у, мофоко по анти-файерфоксу и w3c по анти-web-у!?

     
  • 2.35, тигарэтоя (?), 09:43, 14/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > Отдать один файл куче пользователей. Такой часто в жизни встречается, если не
    > брать торренты?
    > Какие-то странные кейсы у китайских лазадовцев.

    если бы ты когда-либо делал хоть что-то близкое к cdn то вопроса не возникло бы, ящитаю.
    на позапрошлой моей работе раздавались патчи к игре с нескольких серверов (p2p в лончере так и не довели до работающего). вот в этом случае сабж бы помог крайне сильно, например.

     
     
  • 3.41, Аноним (-), 13:16, 14/06/2018 [^] [ответить]    [к модератору]  
  • +/
    Не в таргеме работал, случайно? :3
     
  • 3.44, Стоп (?), 14:29, 14/06/2018 [^] [ответить]    [к модератору]  
  • +/
    1) Сколько клиентов ставили бы докер для загрузки ваших бинарей?
    2) То что описано в тестах и для судя по описанию, это явный случай B2B во внутренней сетке. Ваши клиенты живут во внутренней сети?
     
  • 1.38, th3m3 (ok), 12:41, 14/06/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –2 +/
    Может я чего-то не так понимаю, но почему бы просто не взять IPFS? И зачем это цирк костылей - Go, Java и Python? Почему им было сразу не взять Rust?
     
     
  • 2.43, Клыкастый (ok), 14:23, 14/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > Может я чего-то не так понимаю, но почему бы просто не взять
    > IPFS? И зачем это цирк костылей - Go, Java и Python?
    > Почему им было сразу не взять Rust?

    Переделай как считаешь нужным.


     
  • 2.45, noise_poise (?), 16:50, 14/06/2018 [^] [ответить]    [к модератору]  
  • +/
    https://groups.google.com/forum/#!topic/golang-nuts/7WUj3nASuLo
     
  • 1.54, XoRe (ok), 22:40, 17/06/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    > Отсутствие нагрузки на базовый сервер, который предоставляет исходные файлы - по сути нагрузка на такой сервер сводится к нескольким загрузкам файла менеджером кластера;

    Зато присутствие нагрузки на пиров (и на их канал), о чем как-то умалчивается.
    А, да, ещё на пирах должен быть запущен отдельный демон:
    > Dfdaemon (dfget) - написанный на языке Go процесс для распространения файлов или образов, который работает на стороне клиента (peer) и участвует непосредственно в доставке запрошенных блоков файла.

    Так что ребята из алибабы просто написали свой вариант торрента.
    Плюс добавили фишек для докера.

     

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


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