Вычислительное хранение (Computational Storage). Основы.

А не замахнуться ли нам на Вильямапонимаете линашего Шекспира?

Предпосылки

Спираль прогресса через круг гиперконвергентных решений “все-в-одном” вернулась к пониманию преимуществ разделения ресурсов. Теперь в ходу слово “дезагрегация” с представлением вычислительной структуры в виде некоего улья со специализацией: пчела-вычислитель, пчела-ускоритель, пчела-хранитель и т.д. Независимые модули для сборки позволяют быстро собирать соответствующую сиюминутной задаче комбинацию аппаратного обеспечения и так же быстро ее пересобирать для задач с другими требованиями.

Свобода распоряжения ресурсами неразрывно связана с технологиями виртуализации в сочетании с быстрым интерфейсом передачи данных. До недавнего времени накладные расходы на перемещение данных в сети были существенным фактором. NVMe для прямого подключения и NVMe-oF для коммутируемой сети обеспечивают скорость передачи, и – главное, задержки сравнимые с локальным подключением таких скоростных устройств, как SSD и GPU. Про интерфейсы NVMe и NVMe-oF подробно рассказывается на ресурсе https://nvme.smb-solution.ru/.

Наряду с разделением аппаратных ресурсов по специализации, активно развивается идея локальной обработки данных – Edge Computing (периферийных вычислений).

Цитата: “Объем общемировых данных вырастет с 45 зеттабайт в 2019 году до 175 в 2025. Почти 30% этих данных нужно будет обрабатывать в режиме реального времени”. (Исследование IDC с компанией Seagate).
Seagate также задается вопросом – насколько необходимо пересылать сырые данные в центр обработки и как часто:

Источник: исследование Seagate

По мнению исследователей, лишь 8% генерируемых данных подлежат немедленной и 36% – периодической пересылке для централизованной обработки. Прогноз на 2022 год составляет 16 и 56% соответственно.

Что предлагается взамен централизованной обработке?

Локальная обработка данных. Источник: ARM

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

Smart-всечтоугодно

Обретение “интеллекта” периферийными устройствами стало возможно благодаря современным микропроцессорам, имеющим достаточно мощный набор средств при низком потреблении энергии. Процессоры ARM управляют всем и вся, в том числе на них строятся интеллектуальные, или “умные” сетевые адаптеры SmartNIC. SmartNIC забирает на себя нагрузку, связанную с шифрованием проходящих данных, поддержкой функций ускоренной передачи и виртуализации ресурсов.
Успешный опыт построения интеллектуальных сетевых адаптеров переносится теперь на устройства хранения. Общее название технологии – вычислительное хранение, отражает ее суть – не только хранение данных, но и обработка их. Термины еще не устоялись, в обиходе “Smart Storage” и “Computational Storage” для обозначения системы хранения с интеллектом, а также “SmartSSD” и “Intelligent SSD” для умных накопителей хранилища.

Smart Storage и SmartSSD

В рамках SNIA организована техническая группа, курирующая вопросы архитектуры и стандартизации протоколов вычислительного хранения. На данный момент доступна предварительная модель – Computational Storage Architecture and Programming Model V0.5.

Модель описывает сценарии вычислительного хранения, которые могут быть реализованы на уровне как флеш-накопителя (SmartSSD), так и контроллера системы хранения (Smart Storage). Варианты иллюстрируются рисунком ниже:

Проект архитектуры вычислительного хранения. Источник: SNIA

Хост-адаптеры по коммутируемой шине (PCIe, Ethernet) имеют доступ к устройствам хранения либо непосредственно (Computational Storage Drive, CSD), либо через контроллер управления (Computational Storage Array, CSA). Все умные элементы сети хранения содержат собственный процессор обработки – Computational Storage Processor.

Слева-направо:
– традиционный SSD;
– процессор вычислительного хранилища. В общем случае, он может быть отдельным устройством, управляющим локальной группой SSD по локальной шине;
– SmartSSD с процессором обработки в составе контроллера управления;
– SSD с процессором обработки, который можно включать как традиционный SSD;
– контроллер массива с процессором обработки, к которому подключаются традиционные SSD.

В зависимости от аппаратного оснащения смарт-устройства хранения, оно может быть с фиксированным набором сервисов (Fixed Computational Storage Service, FCSS) или программируемым (Programmable Computational Storage Service, PCSS). Примеры фиксированных функций: компрессия, RAID функции, стирающее кодирование (Erasure coding), шифрование,… В область памяти исполняемого кода программируемого смарт-адаптера помещается контейнер с заданием, которое формирует хост-контроллер. Это может быть более сложная обработка исходных данных – например, транскодирование изоражений или обработка их заданными фильтрами в киноиндустрии, определение номера автомобиля в видеонаблюдении,…

Программно-аппаратная модель иллюстрируется рисунком из презентации компании NGD Systems:

Уже, практически, все есть

Как ни странно, частично необходимые компоненты для устройства вычислительного хранения уже присутствуют даже в контроллере SSD. Добавляется исполнительный процессор к процессору, управляющему флеш чипами. Динамическая память (DRAM) – необходимая составляющая контроллера SSD, в случае необходимости ее объем увеличивается. Область хранения исполняемого кода – вообще не проблема!

Внутреннее устройство контроллера SmartSSD иллюстрирует следующий рисунок:

Внутреннее устройство контроллера SmartSSD. Источник: SNIA

Как видно из рисунка, единой шиной объединены три процессора: процессор управления NAND flash, процессор внешнего интерфейса и исполнительный процессор. Все они могут обращаться к разделяемой динамической памяти. В качестве разного рода процессоров могут задействоваться ядра многоядерного процессора управления (см. ниже).

Про контроллеры интерфейса, так же – как про контроллеры RAID, вообще говорить не приходится. Некоторые из них уже имеют ARM внутри.

Зачатком использования вычислительного хранения можно считать накопители с встроенным шифрованием, доступные уже много лет.

Два подхода

На сегодня продвигаются различающиеся подходы к реализации вычислительного хранения. Используется универсальный процессор (ARM) или FPGA (программи́руемая по́льзователем ве́нтильная ма́трица, ПЛИС) для контроллеров с программируемым набором сервисов. Для контроллеров с фиксированным набором сервисов больше подходят специализированные чипы (ASIC) или интегральные контроллеры интерфейса с расширенными функциями.

FPGA решения Xilinx

Адаптеры на основе FPGA – детище Xilinx. Компания работает в паре с Samsung. В частности, их совместное решение продвигается на станице описания SmartSSD.

SmartSSD Samsung под управлением Xilinx KINTEX

Vitis unified software platform – фреймворк на C++ для создания низкоуровневых акселераторов и исполняемых API приложений для FPGA.

ПЛИС Xilinx предоставляет логические элементы и ядра ЦП для ускорения, а контроллер SSD обеспечивает интерфейс и управление чипами NAND. Собственный высокоскоростной одноранговый канал соединяет контроллер SSD с FPGA для работы со сверхмалой задержкой. Этот внутренний канал масштабируется по мере добавления SmartSSD в систему.

В портфеле Xilinx присутствует SmartNIC Alveo U25, сердце которого составляют четыре ARM процессора и матрица FPGA, так что опыта им не занимать!

Внутреннее устройство SmartNIC Alveo U25 Xilinx

Видение мира вычислительного хранения с точки зрения Xilinx – в докладе SDC 2020: https://youtu.be/kGmo3M0vLsI?list=PLH_ag5Km-YUYEHj-8YEhmlA6z7Bml_3Kq.

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

ARM решения

Кому, как не ARM принимать самое активное участие в становлении вычислительного хранения!

В качестве строительных блоков предлагаются высокопроизводительный процессор Cortex-R82 с технологией ускорения операций машинного обучения Neon, энергоэффективный недорогой процессор среднего класса Cortex-A55 и CoreLink NIC-450 для высокопроизводительны сетевых соединений с малой задержкой.

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

Архитектура контроллера SmartSSD на процессорах ARM. Источник: ARM

Перераспределяя ресурсы процессора, можно настраивать контроллер смарт-накопителя в пользу производительного хранения или обработки.

Ресурсы:
https://community.arm.com/iot/b/internet-of-things/posts/arm-cortex-r82-high-performance-64bit-realtime-applications-processing?_ga=2.173376163.1844878565.1605111658-1125616906.1604731238

Видение мира вычислительного хранения со стороны ARM – в докладе SDC 2020:https://youtu.be/3U1yQVbN5YI?list=PLH_ag5Km-YUYEHj-8YEhmlA6z7Bml_3Kq

Опубликовано
В рубрике Общая