По мере роста трафика данных между компонентами высоконагруженных систем, все острее встает проблема его точной, а скорее даже точечной доставки. Идеальным решением в данном случае могла бы стать универсальная технология обмена информацией, обладающая высокой пропускной способностью и осуществляющая эффективное взаимодействие как локальных, так и сетевых устройств, то есть по сути объединяющая их в единую матрицу масштаба ЦОД или ядра сети. Забавно, но факт: одна такая «матрица» (а точнее, технология коммутации данных) появилась практически одновременно с фильмом братьев Вачовски. Речь идет о стандарте Infiniband.
Технология Infiniband берет свое начало в 1999 году, когда были объединены два конкурирующих проекта под авторством крупнейших производителей коммуникационного оборудования того времени: Compaq, IBM, Hewlett-Packard, Intel, Microsoft и Sun. С точки зрения архитектуры она представляет собой коммутируемую сеть высокоскоростных соединений между вычислительными модулями и устройствами хранения масштаба суперкомпьютера или вычислительного центра. При проектировании стандарта Infiniband в него были заложены следующие приоритеты:
- Иерархическая приоритизация трафика;
- Низкая латентность;
- Масштабируемость;
- Возможность резервирования;
ну и, наверное, самое главное – возможность выбора подходящей из диапазона скоростей, от высоких до очень высоких. В таблице ниже приведена симплексная пропускная способность Infiniband в пересчете на полезный трафик для различных режимов и количества линий.
SDR | DDR | QDR | FDR | EDR | |
1X | 2 Gbit/s | 4 Gbit/s | 8 Gbit/s | 13.64 Gbit/s | 25 Gbit/s |
4X | 8 Gbit/s | 16 Gbit/s | 32 Gbit/s | 54.54 Gbit/s | 100 Gbit/s |
12X | 24 Gbit/s | 48 Gbit/s | 96 Gbit/s | 163.64 Gbit/s | 300 Gbit/s |
SDR – Single Data Rate; DDR – Double Data Rate; QDR – Quad Data Rate; FDR – Fourteen Data Rate; EDR – Enhanced Data Rate.
Шина Infiniband является последовательной, так же как, скажем, PCIe или SATA, но в отличие от последних, может использовать как волоконную, так и медную среду передачи, что позволяет ей обслуживать и внутренние, и сильно внешние соединения. Кодирование передаваемых данных производится по схеме 8B/10B для скоростей до QDR включительно и по схеме 64B/66B для FDR и EDR. Медные линии Infiband обычно оконцовывают коннекторами СХ4 (на фотографии слева), для высокоскоростных линков сейчас все больше применяется оптика.
Продвижением и стандартизацией Infiniband занимается InfiniBand Trade Association – консорциум заинтересованных производителей, включающий в себя IBM, Hewlett-Packard, Intel, Oracle и другие компании. Что же касается непосредственно оборудования, то есть адаптеров и коммутаторов Infiniband, то лидирующие позиции на рынке занимают Mellanox и QLogic (приобретена Intel в начале 2012 года).
Рассмотрим более подробно архитектуру сетей Infiniband на примере небольшой SAN.
Адаптеры Infiniband делятся на две категории: Host Channel Adapters (HCA) и Target Channel Adapters (TCA). НСА устанавливаются в сервера и рабочие станции, ТСА – в устройства хранения; соответственно, на долю первых приходится управление и передача данных, вторые исполняют команды и также передают данные. Каждый адаптер имеет один или несколько портов. Как уже говорилось, одной из особенностей Infiniband является высокоточная маршрутизация трафика. Например, перемещение данных с одного стораджа на другой должно быть инициировано НСА, но после передачи управляющих директив сервер выходит из игры – весь трафик движется напрямую из одного хранилища в другое.
На фото слева показан адаптер HCA QLogic QLE7340 (QDR, 40 Гбит/с).
Как можно заметить, количество соединений между абонентами Infiniband избыточно. Это сделано для увеличения скорости передачи и обеспечения резервирования. Совокупность конечных пользователей, подключенных к одному или нескольким коммутаторам, называется подсетью; карта подсети, то есть набор доступных маршрутов между пользователями, находится в памяти менеджера подсети – таковой обязательно должен быть, хотя бы один. Несколько подсетей может объединяться в одну сеть с помощью маршрутизаторов Infiniband.
Infiniband разрабатывался не только как средство оптимальной передачи данных, но и как стандарт прямого обмена содержимым памяти серверов; так, на его основе работает протокол RDMA (Remote Direct Memory Access), позволяющий удаленно получать и передавать области памяти без участия операционной системы. В свою очередь, на RDMA базируется серия более специализированных протоколов, расширяющих его функциональность.
Существуют также протоколы водружения поверх Infiniband стандартного стека протоколов TCP/IP, они включены, думается, во все наборы ПО для Infiniband, как фирменные, различных производителей сетевых устройств, так и открытые.
График роста скоростей Infiband
В принципе, можно сказать, что Infiniband находит свое применение везде, где передаются большие объемы данных с высокими скоростями, идет ли речь о суперкомпьютерах, высокопроизводительных кластерах, распределенных базах данных и т.д. Скажем, такой активный участник ассоциации ITA, как Oracle, уже достаточно давно использует Infiniband как, можно сказать, единственное средство для внутренних соединений в своей фирменной кластеризации и даже разработала собственный протокол передачи данных поверх Infiband – Reliable Datagram Sockets (RDS). Инфраструктура Infiniband — достаточно дорогое удовольствие, поэтому широко распространенной ее назвать трудно. Но шансы встретиться с ней лично определенно есть, если вы в своей карьере идете навстречу большим гигабитам в секунду и терабайтам. Тогда и закопаетесь в тему глубоко, ну а пока можно ограничиться просто ликбезом – вы его как раз и прочитали.
Автор: saul