Вычислительное хранение (computational storage— это развивающаяся область ИТ и одно из ключевых направлений развития средств хранения данных, в котором вычислительная мощность тесно связана с хранением. Портал ComputerWeekly обсуждает, для чего оно может быть использовано.

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

Одним из факторов, стимулирующих развитие вычислительного хранения являются данные, а точнее, растущие объемы данных, с которыми все чаще приходится сталкиваться организациям. Они обращаются к науке о данных, аналитике данных и машинному обучению, чтобы извлечь из этих данных необходимые сведения, но эти методы очень требовательны к ресурсам хранения и, как правило, ограничены скоростью ввода-вывода (I/O) или чувствительны к задержкам. Поэтому разумнее обрабатывать данные как можно ближе к месту их хранения, а не перетаскивать гигабайты или терабайты в память и обратно.

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

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

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

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

Известные продукты

Одним из наиболее известных поставщиков систем вычислительного хранения является NGD Systems. Ее продукты, по определению SNIA, относятся к категории CSD. Интеграция вычислений в твердотельные накопители NVMe достигается за счет использования специализированной интегральной схемы (ASIC), которая включает в себя функции контроллера SSD и четырехъядерного процессора Arm Cortex-A53.

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

Благодаря встроенным ядрам Arm устройства NGD могут работать под управлением Ubuntu Linux, что упрощает разработку и развертывание приложений, или Azure IoT Edge. Доступ к самому накопителю также может осуществляться как к обычному SSD.

Такой тип архитектуры хорошо подходит для периферийных развертываний, когда достаточно места или достаточно мощности доступно только для одного периферийного сервера, но стоит задача удовлетворить высоким требованиям к анализу данных в реальном времени, например, видео с камеры наблюдения. Или, например, база данных MongoDB может быть разделена между несколькими CSD SSD внутри одного сервера, а не между несколькими серверными узлами, что позволяет уменьшить площадь и общую стоимость дата-центра, а также снизить задержки при репликации данных. Среди других сценариев применения: автомобильный искусственный интеллект, сети доставки контента и гипермасштабируемые дата-центры. NGD предлагает полностью интегрированную In-Situ Processing Development System (ISDP), которая позволяет разработчикам и интеграторам создавать и внедрять приложения.

У Samsung есть аналогичный CSD-продукт, но ее SmartSSD объединяет ПЛИС Xilinx и NVMe SSD-контроллер Samsung внутри стандартного твердотельного накопителя форм-фактора 2,5 дюйма (U.2) емкостью до 4 Тб. Этот продукт продается под брендом Xilinx.

Xilinx предоставляет платформу разработки Vitis, которая позволяет вести разработку на языках Cи, C++ или OpenCL. Она также дает возможность организациям создавать ускоренные приложения с помощью набора библиотек с открытым исходным кодом, оптимизированных для ПЛИС Xilinx в SmartSSD. Существуют библиотеки Vitis для ускорения выводов ИИ, аналитики данных, количественных финансов и др. Xilinx утверждает, что, с помощью слоя гиперускорения Bigstream, SmartSSD может сделать аналитику Apache Spark в 10 раз быстрее.

Между тем, продукты NoLoad от Eideticom являются CSP, поскольку содержат процессор, но не хранилище. Они соединяются с хранилищем и хост-ЦПУ через NVMe, что позволяет масштабировать вычисление и хранение независимо друг от друга. Более того, благодаря поддержке NVMe-oF данные могут храниться на внешних массивах.

Устройства NoLoad используют ПЛИС в качестве ускорителя и доступны в виде карты PCIe форм-фактора U.2 — как корпус для накопителя или в формате EDSFF, основанном на формате SSD Ruler от Intel. NoLoad может поддерживать целый ряд функций, таких как сжатие, шифрование, коррекция ошибок, дедупликация, аналитика данных и машинное обучение.

Устройства NoLoad уже развернуты в Лос-Аламосской национальной лаборатории как часть системы хранения данных нового поколения для высокопроизводительных вычислений (HPC). Они используются для разгрузки ключевых задач хранения данных в файловой системе Lustre/ZFS, что приводит к повышению производительности и снижению затрат на систему хранения.

Также для хранения данных предназначена система Pliops, которая использует карту PCIe с ПЛИС для ускорения операций «ключ-значение», которые используются в таких приложениях, как СУБД. Процессор хранения данных Pliops (PSP) реализует оптимизированную структуру данных для связанных с базами данных операций, таких как индексирование, поиск или сортировка, и ускоряет их без необходимости внесения программных изменений в приложения. Для этого он заменяет базовый механизм хранения «ключ-значение», такой как InnoDB, используемый по умолчанию в MySQL, своим аппаратным ускорителем. Pliops утверждает, что такая реализация может поддерживать в 10 раз больше запросов в секунду, при этом более эффективно используя пространство SSD-накопителя, что сразу же приносит пользу бизнесу.

Графические процессоры тоже могут работать с вычислительным хранением

Возможно, самым экстремальным примером ускорителя вычислительного хранения является решение Nyriad. Компания разработала программно-определяемую платформу хранения под названием Nsulate, которая использует графический процессор Nvidia для ускорения функций коррекции ошибок. Она позиционируется в качестве альтернативы RAID для высокопроизводительных масштабируемых систем хранения данных, требующих высокого уровня надежности.

Утверждается, что Nsulate способна справиться с десятками одновременных отказов устройств в режиме реального времени без снижения производительности, поскольку может восстановить потерянные данные быстрее, чем они будут получены из хранилища. Это означает, что замена вышедшего из строя накопителя перестает быть приоритетной задачей для ИТ-команды. Nyriad утверждает, что GPU может одновременно использоваться и для других рабочих нагрузок, например, машинного обучения.

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