Как вычислительный накопитель меняет вычисления

19.07.22Микроэлектроника, Процессоры

Открытие микропроцессора демократизировало вычисления, и с тех пор программируемые умные устройства перекочевали на большее количество устройств. Следовательно, обработка данных на большинстве устройств стала ближе к источнику данных, включая ПК, смартфоны, промышленные датчики и камеры наблюдения. Но есть одно исключение: центр обработки данных. Как только системы x86 нарушили монополию центральных процессоров в центре обработки данных, обработка приложений остановилась на сервере. Конечно, аппаратное обеспечение, такое, как сетевые коммутаторы и массивы хранения, имеет мощные процессоры, но, за редким исключением, они предназначены для работы со встроенным кодом, а не для запуска пользовательских приложений.

Графический процессор изменил все это, ускорив машинные алгоритмы и алгоритмы глубокого обучения и подпитывая новое поколение приложений ИИ. И теперь мы находимся на пороге еще одного эпохального перехода к более локализованным вычислениям для операций с интенсивным использованием данных с помощью вычислительных накопителей и устройств.

Вычислительное хранилище встраивает процессоры в устройства хранения — обычно на уровне SSD или NVMe-накопителей, а не в модулях флэш-памяти NAND. Здесь мы рассмотрим, как вычислительная система хранения данных работает с точки зрения архитектур хранения, самих дисков, требований к кодированию и доступных продуктов.

Основы архитектуры

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

Тем не менее, Ассоциация производителей сетей хранения данных (SNIA) работает над разработкой документации и стандартов для вычислительных технологий хранения. Самый последний проект архитектуры вычислительного хранилища и модели программирования SNIA определяет функции и возможности нескольких категорий вычислительных устройств хранения (CSx­es), а именно:

  • Вычислительный накопитель (CSD), обеспечивающий постоянное хранение и различные вычислительные услуги.
  • Вычислительный процессор хранения (CSP), действующий как дискретный процессор хранения без локального хранилища, но используемый для добавления локальной обработки в массив хранения.
  • Вычислительный массив хранения (CSA), объединяющий несколько CSD или обычных дисков с CSP.
  • Служба вычислительного хранилища (CSS), предоставляющая доступ к алгоритмам и функциям, действующим на вычислительном накопителе или CSA.

Служба вычислительного хранилища может быть программируемой и включать в себя загрузчик изображений, встроенную ОС или контейнерную платформу, которую хост может настроить с помощью настраиваемых сервисов, таких, как фильтры пакетов, вычисления логического вывода на основе глубокого обучения или узел кластера Hadoop. Службу вычислительного хранилища, с помощью встроенных функций, так как можно задействовать для сжатия данных, шифрования, вычисления избыточности и кодов со стиранием для Raid массива, операций с базами данных и регулярных вычислений.

Вычислительные накопители меняют технологии

В проекте документа SNIA описываются две операционные модели, которые определяют, как хост-система получает доступ к вычислительному хранилищу:

  • Прямое управление, при котором хост-система использует интерфейс накопителя, например PCIe, для доступа к вычислительному накопителю или процессору и выполнения функций с помощью своего API.
  • Прозрачное управление позволяет хост-системе получать доступ к вычислительным функциям с помощью стандартного API хранилища.

Спецификация SNIA описывает тип действий, которые должен выполнять CSx, включая:

  • Операции управления, такие как обнаружение служб и конфигурация устройств, программирование, инициализация и мониторинг.
  • Операции, среди которых хранение, поиск и обмен данными с соседними вычислительными накопителями.
  • Безопасность, такая как аутентификация, авторизация, шифрование и аудит.

Спецификация SNIA касается логической работы CSx. Она не охватывает физический интерфейс между хостами и устройствами. Однако в большинстве реализаций используется NVMe с устройствами, подключенными к интерфейсу NVMe, фабрике NVMe или шине PCIe.

Все доступные вычислительные накопители основаны на дисках NVMe или картах PCIe и используют один и тот же протокол для связи между центральным процессором и процессорами дисков.

По словам Скотта Шедли, сопредседателя рабочей группы и вице-президента по маркетингу NGD Sys­tems, рабочая группа SNIA по вычислительным системам хранения данных склоняется к NVMe и PCIe в качестве стандарта интерфейса, основываясь на вариантах использования вычислительных хранилищ и материалах участников. Однако по мере развития технологии вычислительные накопители со встроенными операционными системами, скорее всего, будут предоставлять порт TCP/IP для дополнения или замены интерфейса NVMe PCIe.

Вычислительные накопители на практике

Все доступные вычислительные накопители основаны на дисках NVMe или картах PCIe и используют один и тот же протокол для связи между центральным процессором и процессорами дисков. Устройства используют либо программируемую пользователем вентильную матрицу (ППВМ, FPGA), либо систему на кристалле Arm (SoC) для локальной обработки, и они различаются по своей функциональности и гибкости. Продукты на основе ППВМ, как правило, более ограничены, чем устройства Arm. Популярные реализации включают в себя:

  • Карта ускорителя привода PCIe, 2 или M.2 NVMe со встроенной флэш-памятью или память с высокой пропускной способностью и ППВМ с предварительно запрограммированными функциями управления данными и объемами, такими, как сжатие, кодирование стирания, дедупликация, шифрование и операции с файловой системой или базой данных.
  • Плата ускорителя PCIe или накопитель U.2 или M.2 NVMe со встроенной памятью, контроллером и незапрограммированной ППВМ. Эти продукты позволяют пользователям добавлять пользовательские функции в вычислительный накопитель, используя язык высокого уровня, такой, как Xil­inx Vitis, или язык описания аппаратного обеспечения ППВМ низкого уровня.
  • Карта ускорителя PCIe или флэш-накопитель U.2 или M.2 NVMe со встроенной однокристальной системой Arm, которая либо предварительно загружена определенными функциями преобразования данных, либо полностью программируется с помощью пользовательского кода Arm. Насколько нам известно, NGD является единственным поставщиком, использующим процессоры Arm в вычислительном накопителе, и они предварительно загружены со встроенной ОС Linux.

Поставщикам вычислительных накопителей нравится интерфейс NVMe, потому что каждая серверная ОС включает драйверы для доступа к хранилищу и функциям. NGD, например, использует Lin­ux на Arm со стандартным диском NVMe, позволяя пользователям получать доступ к устройству через графический интерфейс, интерфейс хост-диска или даже туннель SSH к сетевому интерфейсу вычислительного накопителя, сказал Шэдли. Он добавил, что техническая рабочая группа SNIA определяет новые команды NVMe и создает пользовательские библиотеки для упрощения загрузки и выполнения программ CSD.

Хотя несколько вычислительных накопителей могут работать параллельно, они не могут напрямую отправлять данные и вычислять запросы между собой. Вместо этого они требуют, чтобы хост-процесс одновременно отправлял вычислительные команды на каждый диск. Шедли сказал, что будущие версии позволят осуществлять одноранговую связь вычислительных накопителей, например, для отправки результатов с одного устройства на другое для дальнейшей обработки. Такая одноранговая система была бы полезна в сетях глубокого обучения, где выходные данные одного уровня модели становятся входными данными для другого.

Разработка и загрузка кода

Вычислительные накопители, использующие ППВМ, должны быть запрограммированы перед использованием. Хотя ППВМ можно запрограммировать после развертывания — в этом вся суть программируемости в полевых условиях — этот процесс не так прост, как загрузка образа контейнера или файла архива Java. Таким образом, текущие вычислительные накопители на основе ППВМ не могут быть загружены кодом на лету. Вместо этого продукты предварительно загружаются с фиксированными функциями, что устраняет необходимость в пользовательском программировании.

В случае программируемых вычислительных накопителей NGD CSD код Arm загружается из центрального процессора в накопитель с использованием интерфейса NVMe. «Чтобы запустить код в наших ядрах Arm, процесс процессора x86 должен быть кросс-компилирован в Arm», — сказал Шадли.

Зарождающееся и проприетарное состояние вычислительных хранилищ означает, что поставщики не предоставляют публичный доступ к технической документации или API. Потенциальные покупатели должны ознакомиться со всей доступной технической документацией и документацией по программированию и приобрести аппаратное обеспечение во временное пользование, чтобы провести тщательную оценку перед совершением этой стратегической покупки, учитывая неограниченный потенциал проприетарных продуктов.

Поставщики вычислительных хранилищ

Компании, поставляющие вычислительные хранилища:

  • Eideti­com Com­mu­ni­ca­tions предлагает ППВМ с несколькими предварительно запрограммированными функциями либо на плате расширения PCIe, либо на диске U.2.
  • NGD Sys­tems предлагает платформу New­port на базе Arm в виде карты расширения PCIe, EDSFF (линейка), диска U.2 или M.2.
  • Sam­sung SmartSSD — это ППВМ, которую можно запрограммировать с помощью среды разработки Xil­inx Vitis или Xil­inx HDL. Sam­sung сотрудничает с компаниями, чтобы обеспечить индивидуальную разработку IP.
  • Scale­Flux — это предварительно запрограммированная ППВМ с алгоритмами сжатия/распаковки данных, предназначенная для повышения производительности операций ввода-вывода в секунду, уменьшения задержки и увеличения емкости для приложений баз данных с использованием Aerospike, MySQL и Post­greSQL. Он доступен в виде карты PCIe или диска U.2.

NGD также работала с академическими исследователями над вычислительным хранилищем Catali­na, разработанной для высокопроизводительных вычислительных приложений, хотя нам неизвестно о каких-либо коммерческих реализациях.