Hadoop был создан для запуска на чипах компьютеров широкого употребления с сетевым подключением с низкой скоростью. Но Hadoop кластеры стали больше и организации превысили лимит мощности. Для решения проблемы были найдены специализированные решения такие как твердотельные накопители и сети InfiniBand, у которых есть запас роста.
InfiniBand был представлен миру в 2000 году как сетевой протокол, который был быстрее чем TCP/IP — первоначальный сетевой протокол в сетях Ethernet. Благодаря использованию прямого удаленного доступа к памяти (Remote Direct Memory Access (RDMA) InfiniBand позволяет напрямую записывать/копировать данные из памяти удаленного компьютера, обходя операционную систему и возможные задержки.
Вы можете получить 40гигабит/сек пропускной способности на порте InfiniBand QDR (Quad Data Rate), который сейчас наиболее широко используется. Это в 4 раза больше стандартной ширины канала в 10Gigabit Ethernet (10GbE). Вы получаете возрастание в скорости при агрегировании портов (в том числе и Ethernet).
Протокол Ethernet изначально занимал доминирующую позицию при выборе для подавляющего большинства энтерпрайз-сетей. В это время InfiniBand постепенно внедрялся на рынке высокопроизводительных компьютерных систем, суперскорость InfiniBand и отсутствие задержек давали преимущество этому протоколу в больших массивах параллельных кластеров. Больше чем 50% суперкомпьютеров из ТОП 500 прошлого года используют InfiniBand. Этот протокол любят высокоскоростные биржи, разные финансовые сервисы и другие большие пользователи портов InfiniBand, чаще всего используется оборудование InfiniBand производителей Mellanox и Intel.
Но когда протокол InfiniBand был внедрен на Hadoop, он показал меньшую производительность, по сравнению с показателями InfiniBand в среде суперкомпьютеров. Этому есть несколько причин. Многие решения были спозиционированы в сторону Ethernet на большинстве энтерпрайз-рынков. Также сыграло свою роль восприятие InfiniBand как чего-то экзотического и очень дорогого (что не всегда правда).
Это не новость, что InfiniBand на Hadoop далеко не мейнстрим. У всех распространителей платформы Hadoop есть поддержка Hewlett-Packard, IBM и Dell. Эти вендоры также поддерживают InfiniBand в соответствующих внедрениях. Если вы посмотрите на чем построены внедрения, которые используют около 20% интеграторов Hadoop, вы узнаете, что и Oracle и Teradata поддерживают InfiniBand
Почему выбирают InfiniBand
Несколько интересных моментов, на что стоит обратить внимание при использовании InfiniBand через 10GbE. Есть один человек, кто может видеть изнутри многие моменты использования InfiniBand-on-Hadoop. Это Панда Дабалесвор, профессор Школы компьютерных наук и инжиниринга Университета Огайо и глава исследовательской группы Network-Based Computing Research Group.
Архитектура высокопроизводительных систем обработки данных (HiBD) для библиотек InfiniBand для распределённой файловой структуры Hadoop (HDFS)
Панда руководит проектом HiBD в университете Огайо, где разрабатывает, развивает и поддерживает проект библиотек для Hadoop версии 1 и 2 (HDFS и MapReduce). Они поддерживают нативный RDMA, который используются для обмена данными в InfiniBand. Apache Hadoop и Hortonworks сейчас поддерживаются в плагине для Cloudera. Исследователи также написали код для поддержки InfiniBand в БД с поддержкой кеширования оперативной памяти. Этот код также работает в библиотеках, поддерживающих Apache Spark и HBase.
Панда проводивший исследования в среде коммутируемых суперкомпьютеров на протяжении 25 лет и работавший с InfiniBand с тех пор, как он появился, подтверждает, что InfiniBand не сильно распространён в среде платформы Hadoop, но он ожидает, что это изменится в скором будущем.
«В среде суперкомпьютеров произошел технологический прорыв. Но в среде enterprise у них есть некоторые недостатки» — сказал Панда порталу Datanami. «С т.з. энтерпрайза они его догнали. Так что нам нужно подождать 1-2 года, чтобы увидеть более широкое использование InfiniBand так сказать «в народе».
С тех пор как архитектура HiBD интегрировала первую библиотеку InfiniBand несколько лет назад, пакет был скачан более чем 11 000 раз. По данным сайта группы, его используют более чем 120 организаций по всему миру.
Также он отметил то, что общая тенденция во всех внедрениях InfiniBand — это желание добиться максимальной масштабируемости и производительности избегая узких горлышек во вводе-выводе. «Традиционно [Hadoop] разрабатывался в Ethernet, но даже если у вас будет 10GbE, особенно в больших массивах данных, вы будете шокированы. Это именно та инфраструктура, где выгоды нашего проектирования стали явны, так что вы действительно можете максимально гибко масштабировать ваши приложения и получить максимум производительности и скалируемости от них» — сказал исследователь.
«Общее заблуждение в сообществе Hadoop в отношении InfiniBand, что он слишком дорогой и слишком «хорош» для кластеров в недорогих, наиболее распространённых устройствах. Это так, если у вас маленькие сборки. Но для кластеров побольше InfiniBand экономически гораздо выгоднее чем Ethernet
«Если вы идете в совсем большие кластерные системы, InfiniBand FDR гораздо более эффективнее и выгоднее чем 10GbE» — сказал профессор. – «Если у вас кластер из 4 или 16 нод, вы не увидите разницы, но если у вас 1000 нод, 2000 или 4000 нод, вы увидите существенную разницу в стоимости».
«Как и в гонке машин, где общую скорость замедляют самые медленные машины, в Hadoop, кластеры могут работать не быстро из-за медленных частей структур» – сказал Панда. «У вас может быть очень хорошее оборудование, но если у вас слабые шины, вы не получите всех выгод технологии. Мы видим, что ввод/вывод и сеть должны быть сбалансированы для получения самой лучшей производительности».
Предостережение насчет Hadoop
До сих пор переменная скорость в сети играет главную роль для производительности Hadoop, есть и другие не совсем очевидные факторы. Как обычно, дьявол кроется в деталях.
В июле этого года Microsoft и Barcelona Supercomputing Centre запустили проект Aloja для того, чтобы установить спецификацию для производительности платформы Hadoop. Этот проект определил более чем 80 настраиваемых параметров Hadoop, которые влияют на производительность. Включая факторы, связанные с физическим оборудованием: таким как размер памяти, тип хранилища и скорость сети, так софтверные факторы: количество менеджеров памяти и преобразователей данных, размер блока HDFS и размер виртуальных машин.
Исследователи проекта увидели, что простое добавление InfiniBand в структуру никак не влияет на производительность Apache Hadoop, которую измеряют в бенчмарк-тестах. Однако, добавление InfiniBand в диски SSD в той же сети показывает прирост производительности в 3,5 раза по сравнению с SATA и Gigabit Ethernet. В тоже время, простое добавление дисков SSD в гигабитной сети Ethernet, увеличивает продуктивность только в 2 раза.
Это перекликается с мнением профессора Панды: — «Что получится если вы будете использовать диски SSD? Ваша скорость ввода-вывода увеличится, но это также означает, что у вас должна быть высокопроизводительная сеть. При использовании Ethernet от 1 до 10 гигабит выгоды очевидны, но у с InfiniBand вы получаете больше преимуществ, так как в самой основе этой технологии есть возможность больше нагружать вашу сеть. Это значит, что вы получите лучшие решения, такие же как, например, RDMA, которые будут лучше работать на сетях такого типа».
Не все поддаются «очарованию» InfiniBand. Эрик Самер, нынешний CTO и сооснователь Rocana, в своем посте на сайте Quora приводит аргументы в пользу 10GbE.
Эрик считает, что InfiniBand сильно превышает требования обычных пользователей – «Факт в том, что как только мы переходим к большинству всех совместимых уровней ИТ-инфраструктуры, появляется перерасход мощности. По ряду многих причин я даю не утешительные прогнозы, актуальная ширина полосы пропускания закончится в районе 25Gb на один IP адрес, через порт 4X QDR 40Gb». (Честно говоря, те библиотеки, которые развивает Панда в среде HiBD, уже изначально поддерживают InfiniBand, что исключает служебный поток данных).
Сравнение производительности Hadoop на 10GbE, и InfiniBand через IP и библиотеку HiBD для нативного InfiniBand QDR.
Саммер говорит о своем развернутом Hadoop 10GbE (возможно через витую пару). «Повсеместность Ethernet – это факт, от которого не отмахнуться, и с такими платформами как Hadoop, я склонен говорить о том, что лучше делать ставку на те технологии, которые развивают сетевые технологии и упрощают передачу данных (Cloudera Impala, происходящие изменения Tez в Apache Hive и т.д.). Я также твердо уверен в том, что те же самые данные из кеша можно использовать при передаче в большем количестве пакетов, и это оптимизирует передачу моих данных из датацентра к получателю на той стороне».
Заявка RoCE
Также InfiniBand конкурирует с новой технологией, которая претендует дать те же выгоды что и InfiniBand, но через Ethernet. Называется это RDMA через конвергентную сеть Ethernet (RDMA over Converged Ethernet — RoCE) и показывает более быструю пропускную способность и меньшие задержки чем традиционный Ethernet.
Группа исследователей профессора Панды также развивает библиотеки RoCE для свичей и сетевых Hadoop устройств и для ПО решений, которые поддерживают кеширование памяти. Mellanox поддерживает и протокол RoCE и протокол InfiniBand в своих устройствах.
Какую бы технологию для соединения не выбрали пользователи, профессор Панда советует хорошо подумать и взвесить все за и против разных вариантов – «Вопрос в том, какое необходимо качество маршрутизации и управления. Если организация чувствует себя комфортно с хорошим сисадмином, который разбирается в Ethernet, вариант с RoCE для них предпочтительнее. Но если некоторые организации имеют хорошую компетенцию в InfiniBand, то тут не может быть мук выбора между InfiniBand или RoCE».
Растет объем данных, и у компаний возникает необходимость в более быстром анализе этих данных. Это вынуждает их строить новые кластеры – большие и быстрые — с дисками SSD и многоядерными процессорами. Становится очевидным, что подход RDMA – или InfiniBand или RoCE – должен быть адаптирован организациями, занимающими большими данными с высокой степенью нагрузки.
Ссылки по теме:
» Unravelling Hadoop Performance Mysteries (EnterpriseTech)
» Why Big Data Needs InfiniBand to Continue Evolving
» Hadoop: что, где и зачем
» Самая популярная сеть для суперкомпьютеров или Почему мы выбрали InfiniBand?
SIM-Networks – отказоустойчивое облако (InfiniBand) в Германии, SSD хостинг и VPS.
Комментарии (7)
amarao
15.11.2016 19:10Весь инфинибэнд пропитан понтами и баблом на 100500%. Если конфигурация вида «пять серваков с коммутатором» не вызывает ни у кого никаких эмоций, то конфигурация «пять серверов с infiniband и infiniband-коммутатор» вызывает трепет и зарезание костов.
TL;DR; даже если вы сделаете InfiniBand себе в продакшене, то у вас всё время будет не хватать денег на лаборатории и стенды. И все будут его ненавидеть, потому что каждый новый порт — это дорого.
В то же самое время лабораторию можно собрать на неуправляемом хламе за копейки и иметь очень похожую коммутацию.
Не подскажете, сколько стоит неуправляемый infiniband-коммутатор на 12 портов? Я вот нашёл БУшный 1G catalyst за $12. Новый — $80. На этом можно собрать приличную лабу.
А теперь, барабанная дробь, бушный ib-свитч на 12 портов: $400. За Б/У. цена различается на полтора порядка. И эти «полтора порядка» будут преследовать всех и всегда. Либо заливать всё деньгами, либо «а на лаборатории денег нет».
evg_krsk
16.11.2016 11:37Тоже первым делом на новом месте спросил коллег: почему для кластера хранения куплен б.у. IB-коммутатор, вместо 10G-ethernet коммутатора с низкими задержками (cut-through, сразу вспомнил нексусы/аристы)? Ответили: таких коммутаторов б.у. нету, а новые стоят ещё дороже чем IB. Сам не считал по деньгам, но видя GPL на нексусы, склонен доверять.
Или же и 1G/10G store-and-forward мыльниц хватает в т.ч. для задач хранения (Ceph) с их задержками? Для хадупа то думаю хватит, задержки некритичны, а вот на что большее способны 12/80$?
amarao
16.11.2016 13:50ceph необъятен по областям применения. На шпинделях можно хоть голубиной почтой пакеты гонять. На SSD всё чуть интереснее — ceph'а на чистом lo-тесте на быстрых DC-grade SSD при записи на единичную SSD (то есть «самое быстрое что может быть») получались цифры latency примерно такие:
avg = 0.63 ms 99.9% < 1.14 ms max = 8.25 ms
Т.е. быстрее, чем 630 мкс не будет, а в реальных инсталляциях — 0.63+0.63 + net_latency. Так что не очень ощутимо.
На NVME оно с одной стороны быстрее, с другой стороны, пики latency там всё равно очень ощутимые, так что latency коммутатора не самый острый фактор, imho.evg_krsk
16.11.2016 16:44Спасибо. А если не секрет, какие коммутаторы вы сами используете там где стоят SSD под цефом (не для лабы)?
amarao
16.11.2016 19:40Какие есть по специфике инсталляции. У нас нет NFV и гарантированого QoS на каждом этапе (более того, cinder такого и не умеет в полном объёме), так что гоняться за копеечными latency смысла нет.
igor_suhorukov
Так логично, если поверх него гонять IP пакеты. IPoIB имеет в раз 8 больше задержки на типичных сценариях использования хадупа.
Вот куда все java программы на InfiniBand будут двигаться