Арифметическая сеть призвана решить проблему обеспечения арифметической мощности, и несколько ключевых технологий арифметической мощности, включая удаленный прямой доступ к данным (RDMA), тесно связаны с показателями производительности сети.
RDMA — это аббревиатура Remote Direct Memory Access, созданная для устранения задержки обработки данных на стороне сервера при передаче по сети.
RDMA передает данные непосредственно в область хранения компьютера по сети, быстро перемещая данные из одной системы в память удаленной системы без какого-либо воздействия на операционную систему, поэтому нет необходимости использовать множество функций вычислительной обработки. Это устраняет накладные расходы на репликацию внешней памяти и переключение контекста, тем самым высвобождая пропускную способность памяти и циклы ЦП для повышения производительности системы приложений.
DMA в традиционном смысле
Прямой доступ к памяти (DMA) — это режим работы, в котором обмен данными ввода-вывода выполняется полностью аппаратно. В этом режиме DMA-контроллер берет на себя полное управление шиной от ЦП, а обмен данными происходит напрямую между памятью и устройствами ввода-вывода, минуя ЦП. Контроллер прямого доступа к памяти отправляет адрес и управляющие сигналы в память, изменяет адрес, подсчитывает количество переданных слов и сообщает ЦП об окончании операции передачи в виде прерывания.
Целью использования метода прямого доступа к памяти является снижение нагрузки на ЦП при передаче больших объемов данных за счет использования выделенного контроллера прямого доступа к памяти (DMAC) для генерации адресов доступа и управления процессом доступа. Преимущества заключаются в том, что операции реализуются аппаратной схемой, скорость передачи высокая, ЦП не вмешивается, а участвует только во время инициализации и завершения, а ЦП работает параллельно с периферийными устройствами для высокой эффективности.
Принцип работы RDMA
Обычные сетевые карты объединяют поддержку проверки оборудования и усовершенствования программного обеспечения, чтобы уменьшить количество копий отправляемых данных, но не количество копий полученных данных, что занимает большое количество вычислительных циклов ЦП.
Рабочий процесс обычной сетевой карты
- Отправитель данных должен скопировать данные из буфера пространства пользователя в буфер сокета в пространстве ядра.
- Отправитель данных должен добавить заголовки пакетов в пространство ядра для инкапсуляции данных.
- Данные копируются из буфера сокета в пространстве ядра в буфер сетевой карты для передачи по сети.
- Получатель данных получает пакет, отправленный с удаленного компьютера, и копирует пакет из буфера сетевой карты в буфер сокетов в пространстве ядра.
- После серии многоуровневых сетевых протоколов для анализа пакетов проанализированные данные копируются из буфера сокетов пространства ядра в буфер пространства пользователя.
- В этот момент выполняется переключение системного контекста и вызывается пользовательское приложение.
Полученные пакеты сначала кэшируются в системе, где они обрабатываются, и соответствующие данные присваиваются TCP-соединению. Затем принимающая система связывает незапрошенные TCP-данные с соответствующим приложением и копирует данные из системного буфера на целевой адрес хранения. Таким образом, возникают ограничения скорости сети: растущая интенсивность связи приложений и тяжелая задача центрального процессора при обработке данных между ядром и памятью приложения требуют от системы постоянного добавления ресурсов центрального процессора, настройки эффективного программного обеспечения и улучшения управления нагрузкой системы.
Ключом к решению проблемы является устранение ненужных и частых передач данных в ЦП хоста и уменьшение задержки сообщений между системами.
RDMA — это прямая передача информации в хранилище компьютера по сети, быстрое перемещение данных из одной системы в память удаленной системы без какого-либо воздействия на операционную систему, поэтому вычислительная мощность компьютера не используется. Он устраняет операции копирования из внешней памяти и замены текста, тем самым высвобождая место на шине и циклы ЦП для повышения производительности приложений. Обычная практика требует, чтобы система анализировала и маркировала входящую информацию, прежде чем сохранять ее в нужном месте.
Рабочий процесс RDMA
- Когда приложение выполняет запрос чтения или записи RDMA, оно не выполняет никакой репликации данных. Без участия памяти ядра запрос RDMA отправляется из приложения, работающего в пользовательском пространстве, на локальный сетевой адаптер ( NIC=Сетевая интерфейсная плата).
- Сетевая карта считывает содержимое буфера и передает его по сети на удаленную сетевую карту.
- Информация RDMA, передаваемая по сети, содержит целевой виртуальный адрес, ключ памяти и сами данные. Завершение запроса может быть полностью обработано в пользовательском пространстве (путем опроса выравнивания завершения на уровне пользователя) или через память ядра, если приложение находится в спящем режиме до завершения запроса. Операции RDMA позволяют приложению считывать данные или записывать данные в память удаленного приложения.
- Целевая сетевая карта подтверждает ключ памяти и записывает данные непосредственно в кэш приложения. Адрес удаленной виртуальной памяти, используемый для операции, содержится в информации RDMA.
Технология нулевого копирования в RDMA
Сетевая технология с нулевым копированием позволяет сетевому адаптеру передавать данные напрямую в память приложения и из нее, что устраняет необходимость копирования данных между памятью приложения и памятью ядра. Обход памяти ядра позволяет приложениям отправлять команды на сетевую карту без выполнения вызовов памяти ядра. Без участия памяти ядра запросы RDMA отправляются из пользовательского пространства на локальный сетевой адаптер и по сети на удаленный сетевой адаптер, что уменьшает количество переключений среды между пространством памяти ядра и пространством пользователя при обработке потоков передачи по сети.
С левой стороны мы видим традиционный протокол TCP/IP и процесс связи, выполняемый обычным сетевым адаптером. Очевидно, что когда прикладной уровень хочет получить сообщение данных от сетевого адаптера, ему необходимо пройти через два буфера и обычный стек протоколов TCP/IP, где мягкое прерывание отвечает за чтение сообщения данных из первого буфера очереди приема. затем копирует его в MSGBuff, и, наконец, прикладной уровень считывает сообщение данных в пользовательское состояние через системный вызов. С другой стороны, правая сторона представляет собой процесс с нулевым копированием, использующий RDMA со следующими правилами.
1) RDMA и его LLP (протокол нижнего уровня) могут быть реализованы на сетевой карте, называемой RNIC (RNIC — это карта сетевого интерфейса RDMA).
2) Обе реализации, упомянутые в 1), проходят следующие этапы: отправленные и полученные данные кэшируются в отмеченном пространстве памяти, а затем это пространство памяти напрямую отображается в пространство приложения в соответствии с правилами, согласованными между двумя сторонами. LLP и RDMA, тем самым уменьшая по крайней мере две копии памяти в традиционном методе реализации, т.е. достигая нулевого копирования. Тонкая линия указывает направление потока данных, на самом деле маркерный кеш сопоставляется напрямую с пространством пользовательского кеша через RDMA.
Состав РДМА
RDMA реализуется тремя протоколами: RDMA, DDP и MPA, которые составляют семейство протоколов iWARP и используются для обеспечения взаимодействия высокоскоростных сетей. DDP должен инкапсулировать сообщения RDMA в пакеты DDP и пересылать их на нижний уровень, основанный на маркерах, с выравниванием блоков данных протокола (MPA), который вставляет идентификатор, длину и проверки CRC в пакеты DDP для формирования данных MPA. сегмент. Уровень IP добавляет в пакет необходимые данные сетевой маршрутизации.
Методы работы с данными
Протокол RDMA обеспечивает семь типов операций управления для удаленного буфера прямых данных. Каждая операция управления RDMA, за исключением операции чтения удаленного буфера, создает только одно соответствующее сообщение RDMA.
- Отправить: операция отправки использует сообщение отправки для отправки данных из приложения-отправителя непосредственно в буфер, который не был явно объявлен приложением-получателем данных. Таким образом, сообщение отправки использует модель передачи данных буфера без тегов DDP для передачи сообщения приложения верхнего уровня в буфер с метатегами, поставленный в очередь принимающего приложения.
- Отправить с недействительным: добавьте оленя для отправки. Как только сообщение кэшируется в буфере однорангового приложения, указанном Stag, и уведомление о прибытии сообщения передается приложению-получателю, приложение-получатель не позволяет приложению-отправителю получить доступ к буферу до тех пор, пока приложение-получатель повторно не объявит буфер доступным. чтобы приложение-отправитель продолжало использовать.
- Отправить с запрошенным событием (Отправить с SE): это сообщение используется для отправки данных приложения-отправителя непосредственно в нетегированный буфер в очереди приложения-получателя данных со всеми функциями отправки и добавленной обратной связью к сообщению.
- Отправить с запрошенным событием и недействительным (Отправить с SE и недействительным): действие, соответствующее этому сообщению, заключается в отправке данных приложения-отправителя непосредственно в буфер, еще не объявленный явным образом приложением-получателем данных, которое имеет все функции отправки. с SE и добавляет отзыв к сообщению. Он имеет все функции «Отправить с помощью SE» и добавляет к сообщению обратную связь.
- Запись удаленного прямого доступа к памяти: соответствует операции записи RDMA и используется для передачи данных из приложения-отправителя в буфер, объявленный приложением-получателем. В этой операции приложение-получатель должно заранее выделить помеченный приемный буфер приложения и позволить приложению-отправителю выполнять запись в буфер напрямую. В то же время приложение-отправитель также получает информацию о расположении, размере и соответствующем Stag указанного буфера в объявлении. Затем приложение-отправитель инициирует операцию записи RDMA, в которой используется модель передачи данных с тегированным буфером DDP для передачи сообщения приложения-отправителя непосредственно в тегированный буфер, объявленный приложением-получателем.
- Чтение с удаленным прямым доступом к памяти: соответствует операции чтения RDMA, при которой данные передаются из отмеченного буфера приложения на противоположной стороне (соответствующей источнику данных) в отмеченный буфер приложения на локальной стороне (соответствующей получателю данных). Приложению верхнего уровня источника данных сначала необходимо заранее выделить тегированный буфер приложения и разрешить операции прямого чтения содержимого этого буфера. В то же время приложение верхнего уровня источника данных должно передавать информацию, такую как местоположение, размер и соответствующий Stag буфера источника данных, который должен быть объявлен локальному приложению верхнего уровня. Получив указанное выше объявление, верхнее приложение получателя данных выделяет соответствующий тегированный буфер приложения и начинает чтение данных с другой стороны.
- Завершить: операция завершения использует сообщение «Завершить», чтобы уведомить локальное приложение о сообщении об ошибке, которое произошло для прекращения текущей операции прямого кэширования данных. Операция Terminate использует модель метатегированного буфера DDP для передачи Terminate в нетегированный буфер на другой стороне.
Приложения RDMA
Преимущество RDMA заключается в использовании традиционного сетевого оборудования для создания Интернета с использованием стандартов TCP/IP и Ethernet, и оно будет использоваться для соединения небольших серверов в кластер, способный обрабатывать большие базы данных, которые сегодня могут использовать высокопроизводительные серверы с более чем дюжиной процессоров. ручка. Когда вы ставите RDMA, TOE и 10 ГБ Ethernet вместе, это довольно впечатляющая технология.
TOE (TCP Offloading Engine, обработка протокола TCP/IP от ЦП к сетевой карте)
Во время связи хоста по сети, ЦП необходимо тратить много ресурсов на обработку пакетов многоуровневых сетевых протоколов, включая репликацию данных, обработку протоколов и обработку прерываний. Технология TOE освобождает ЦП от этих операций и перекладывает вышеупомянутую работу процессора хоста на NIC. Технология TOE требует наличия специального NIC, поддерживающего Offloading, который способен инкапсулировать пакеты многоуровневых сетевых протоколов. В то время как обычные NIC запускают прерывание для каждого пакета, NIC TOE позволяют каждому приложению завершить полный процесс обработки данных перед запуском прерывания, что значительно снижает нагрузку на сервер по реагированию на прерывания.
Сетевая карта ОО выполняет обработку протокола внутри сетевой карты по мере получения данных. Следовательно, данные копируются не в буфер пространства ядра, а непосредственно в буфер пространства пользователя. Этот подход «нулевого копирования» позволяет избежать ненужного копирования данных между сетевым адаптером и сервером.
RDMA быстро становится фундаментальной функцией высокоскоростных кластеров и серверных сетей. Сети InfiniBand и сети на основе архитектуры виртуального интерфейса поддерживают RDMA, в то время как RDMA через TCP/IP для использования с сетевыми картами транспортного разгрузочного механизма в настоящее время находится в стадии разработки. Протоколы, которые поддерживают высокую производительность с использованием RDMA, включают Sockets Direct Protocol, SCSI RDMA Protocol (SRP) и Direct Access File System (DAFS). Библиотеки связи, которые используют RDMA, включают Direct Access Provider Library (DAPL), Message Passing Interface (MPI) и Virtual Interface Provider Library (VIPL). Кластеры, работающие с распределенными приложениями, являются одной из областей, где RDMA может преуспеть, поскольку он может обеспечить более высокую производительность и лучшую масштабируемость по сравнению с другими ранними приложениями RDMA с тем же количеством узлов при использовании с DAPL или VIPL и программным обеспечением баз данных, работающим на кластере. Кроме того, технология RDMA быстро становится фундаментальной функцией высокоскоростных кластерных систем и сетей хранения данных, где iWARP/RDMA является базовым строительным блоком. iWARP (Internet Wide Area RDMA Protocol) — это технология RDMA, основанная на протоколе TCP/IP, которая реализует технологию RDMA поверх существующего стека протоколов TCP/IP путем добавления слоя DDP поверх TCP. Она поддерживает использование технологии RDMA в стандартной инфраструктуре Ethernet, не требуя передачи Ethernet без потерь, поддерживаемой коммутаторами, но серверы должны использовать сетевые карты, поддерживающие iWARP. Однако ее производительность немного хуже из-за влияния TCP. Кроме того, iSER, расширение iSCSI для RDMA, в полной мере использует возможности RDMA. Ранние приложения RDMA включают удаленный доступ к файловому серверу через DAFS и доступ к устройствам хранения через SRP. RDMA быстро становится фундаментальной функцией высокоскоростных кластеров и серверных сетей.
Приложения в NAS и SAN
Традиционное хранилище с прямым подключением (DAS) представляет собой структуру хранения, ориентированную на сервер, с такими ограничениями, как ограничения емкости, ограниченное расстояние подключения и трудности в совместном использовании и управлении. Он не может удовлетворить потребности приложений сетевой эры. Наступление сетевой эры привело к огромным изменениям в технологии хранения данных. Сетевые хранилища (NAS) и сети хранения данных (SAN) могут предоставить богатые, быстрые и удобные ресурсы хранения для прикладных систем в сети, а также обеспечить общие ресурсы хранения и централизованное управление, что сегодня становится идеальной моделью управления хранилищем и приложениями. Однако у структур NAS есть некоторые трудноразрешимые проблемы, такие как ограниченная пропускная способность, ограниченная масштабируемость, ограниченные возможности резервного копирования и неэффективная поддержка служб баз данных. DAFS объединяет преимущества RDMA и возможностей хранения NAS, при этом все операции чтения и записи выполняются непосредственно драйвером RDMA, тем самым снижая нагрузку на систему, вызванную сетевыми файловыми протоколами. В будущем в системах хранения NAS будет использоваться технология DAFS для повышения производительности системы, и они будут сильно конкурировать с системами хранения SAN с точки зрения производительности и цены.
Infiniband
Четыре основных преимущества InfiniBand основаны на стандартных протоколах, производительности 10 ГБ/с, RDMA и транспортной разгрузке. Его преимущество заключается в высокоскоростной передаче RDMA и транспортных разгрузочных механизмов. Сети InfiniBand и сети на основе архитектуры виртуальных интерфейсов поддерживают использование RDMA, в то время как RDMA через TCP/IP с транспортными разгрузочными механизмами NIC поддерживает серверы InfiniBand. Адаптеры каналов хоста (HCA) преобразуют протоколы во внутреннюю шину PCI-X или PCI-Express сервера, а HCA с функциональностью RDMA иногда называют обходом ядра. InfiniBand (IB) — это технология RDMA, основанная на InfiniBand архитектура, для которой требуются выделенные сетевые карты IB и коммутаторы IB. С точки зрения производительности сети InfiniBand, несомненно, являются лучшими, но цены на сетевые карты и коммутаторы также очень высоки.
RoCE, или RDMA через Ethernet, представляет собой технологию RDMA, основанную на Ethernet, которая также была предложена IBTA. RoCE поддерживает использование технологии RDMA в стандартной инфраструктуре Ethernet, но требует поддержки коммутатора для передачи Ethernet без потерь, а сетевые карты должны быть специальными сетевыми адаптерами, поддерживающими RoCE.
Поскольку технология продолжает развиваться, основные технологии RDMA можно разделить на два лагеря: технология IB и IBoE, или IB over Ethernet, которая поддерживает технологии RDMA на основе Ethernet. К этой технологии относятся RoCE и iWARP. IBoE, или IB over Ethernet, можно распространять по Ethernet и использовать с Ethernet-коммутаторами, в то время как протокол IB требует специального оборудования и маршрутизаторов.
С непрерывным развитием сетей вычислительной мощности технология прямого доступа к памяти, первоначально использовавшаяся для одномашинных или локальных приложений, будет применяться в больших пространствах и станет ключевой технологией в сетях вычислительной мощности.
Сопутствующие товары:
- Intel® 82599EN SR1 Однопортовая 10-гигабитная сетевая карта SFP+ PCI Express x8 Ethernet PCIe v2.0 $115.00
- Двухпортовый 82599-гигабитный сетевой адаптер Intel® 2ES SR10 SFP + PCI Express x8 Ethernet PCIe v2.0 $169.00
- Двухпортовая сетевая карта Intel® X710-BM2 DA2 10 Gigabit SFP+ PCI Express x8 Ethernet PCIe v3.0 $245.00
- Четырехпортовая сетевая карта Intel® XL710-BM1 DA4 10 Gigabit SFP+ PCI Express x8 Ethernet PCIe v3.0 $550.00
- NVIDIA Mellanox MCX621102AN-ADAT Сетевая интерфейсная карта SmartNIC ConnectX®-6 Dx Ethernet, 1/10/25GbE, двухпортовый SFP28, Gen 4.0 x8, высокий и короткий кронштейн $315.00
- NVIDIA Mellanox MCX631102AN-ADAT SmartNIC ConnectX®-6 Lx Сетевая интерфейсная карта Ethernet, 1/10/25GbE, двухпортовый SFP28, Gen 4.0 x8, высокий и короткий кронштейн $385.00
- Intel® E810-XXVDA4 Сетевой адаптер Ethernet 25G PCI Express v4.0 x16 Quad-port SFP28 $495.00
- Сетевой адаптер Intel® E810-XXVDA2 25G Ethernet PCI Express v4.0 X8 с двумя портами SFP28 $260.00
- Intel® XL710-BM1 QDA1 Однопортовая 40-гигабитная сетевая карта QSFP+ PCI Express x8 Ethernet PCIe v3.0 $595.00
- Двухпортовая сетевая карта Intel® XL710 QDA2 40 Gigabit QSFP+ PCI Express x8 Ethernet PCIe v3.0 $635.00
- Плата адаптера NVIDIA Mellanox MCX653105A-ECAT-SP ConnectX-6 InfiniBand/VPI, HDR100/EDR/100G, однопортовый QSFP56, PCIe3.0/4.0 x16, высокий кронштейн $690.00
- Плата адаптера NVIDIA Mellanox MCX653106A-ECAT-SP ConnectX-6 InfiniBand/VPI, HDR100/EDR/100G, двухпортовый QSFP56, PCIe3.0/4.0 x16, высокий кронштейн $828.00
- Сетевой адаптер Intel® E810-CQDA2 100G Ethernet PCIe v4.0 x16 с двумя портами QSFP28 $725.00
- Intel® E810-CQDA1 Сетевой адаптер Ethernet 100G PCIe v4.0 x16, один порт QSFP28 $499.00
- Плата адаптера NVIDIA Mellanox MCX653105A-HDAT-SP ConnectX-6 InfiniBand/VPI, HDR/200GbE, однопортовый QSFP56, PCIe3.0/4.0 x16, высокий кронштейн $1400.00
- Плата адаптера NVIDIA Mellanox MCX653106A-HDAT-SP ConnectX-6 InfiniBand/VPI, HDR/200GbE, двухпортовый QSFP56, PCIe3.0/4.0 x16, высокий кронштейн $1600.00