Что такое NVME-oF? И как работает самый быстрый протокол данных?

В последние годы мы наблюдаем рост производительности технологий хранения данных, которая, в конечном счете, достигла физических пределов, обусловленных устаревшими протоколами обмена данными в дата-центрах. Несмотря на использование 100GbE и новых сетевых технологий, таких как InfiniBand, эти устаревшие протоколы продолжают замедлять производительность флэш-накопителей, поскольку изолированы внутри устройств. В этой статье мы поговорим о спецификации Non-Volatile Memory Express (NVMe). Затем мы уделим внимание NVMe over Fabrics (NVMe-oF) и NVMe over RDMA over Converged Ethernet (NVMe over RoCE) — новым спецификациям протокола, разработанным для устранения проблемных точек в современных сетях хранения данных.

NVMe-oF

Поскольку небольшая задержка и широкая пропускная способность всегда были важны для облаков и дата-центров, речь часто заходит о NVMe over Fabrics. Эта спецификация появилась менее 10 лет назад. И поскольку является относительно новой, люди часто имеют ошибочное представление о ней и о том, какие преимущества она несет бизнесу. Технология NVMe-oF постоянно развивается и набирает популярность в ИТ-индустрии, а многие вендоры начали выпускать решения с поддержкой NVMe-oF для корпоративного сектора. И сегодня, для того чтобы соответствовать уровню развития технологий для дата-центров, важно иметь правильное представление о том, что такое NVMe-oF, возможности спецификации и производительность, которую она способна предложить. А также понимать, как ее можно взять на вооружение и использовать вкупе с различными новыми решениями.

NVMe и NVMe-oF

Флэш-массивы, целиком построенные на флэш-памяти (All-Flash Array — AFA) появились как ответ на потребность в более высокой производительности в дата-центрах. Способные обеспечить 1 млн операций ввода-вывода в секунду (IOPS) без особых усилий, - они оказались существенно быстрее по сравнению с существующими на рынке технологиями хранения данных. Однако многие из этих массивов продолжали использовать не совсем новую технологию хранения данных SATA SSD, базирующуюся на командном протоколе Advanced Host Controller Interface (AHCI) и поддерживающую IDE. AHCI изначально был разработан для жестких дисков, а не для отличающихся более высокой скоростью работы твердотельных накопителей. Эта технология, в основе которой лежит SCSI, привела к возникновению так называемого «узкого горлышка» в современных твердотельных накопителях и контроллерах массивов, поскольку шина SATA III с AHCI не позволяет достигать скоростей обмена данными более 600 МБ/с.

Типичные скорости шины

Шина

Теоретическая скорость

Скорость передачи данных

SCSI

2.56 Гбит/с

320 Мб/с

SATA III

6 Гбит/с

600 Мб/с

InfiniBand

10 Гбит/с

0.98 Гб/с

10G FibreChannel

10.52 Гбит/с

1.195 Гб/с

PCIe v4.0

16.0 GT/s

31.5 Гб/с
(слот x16)

PCIe v5.0

32.0 GT/s

63 Гб/с
(слот x16)

Чтобы полностью реализовать потенциал твердотельных накопителей, нам нужна технология, которая сможет осуществлять обмен данными на более высокой скорости. NVMe — вот та спецификация, которая позволяет твердотельным накопителям реализовать потенциал флэш-памяти. Эта технология была представлена в 2014 г, и её основными задачами стали повышение скорости работы приложений (сокращение времени отклика) и внедрение новых и улучшенных возможностей. Существует множество форм-факторов твердотельных накопителей на базе NVMe, и наиболее известные — это AIC (карта расширения), U.2, U.3 и M.2. Твердотельный накопитель на базе NVMe соединяется с компьютером или сервером посредством высокоскоростной шины Peripheral Component Interconnector Express (PCIe), к которой он подключается напрямую. NVMe снижает дополнительную работу центрального процессора и сокращает время между операциями, увеличивая количество операций ввода-вывода в секунду и пропускную способность. К примеру, NVMe SSD предлагает скорость записи свыше 3000 МБ/с, что в 5 раз выше в сравнении с твердотельным накопителем, оборудованным интерфейсом SATA, это в 5 раз выше и в 30 раз выше по сравнению с жестким диском.

NVMe поддерживает множество операций ввода-вывода, выполняемых одновременно, это означает, что масштабные задачи могут быть разбиты на более мелкие, которые будут обрабатываться независимо друг от друга. Это чем-то напоминает работу многоядерного процессора, который обрабатывает несколько потоков команд одновременно. Каждое ядро процессора может работать независимо от других ядер и решать индивидуальные задачи.

Еще одно преимущество NVMe над AHCI заключается в длине очереди (Queue Depth — QD). Тогда как ACHI и SATA могут обслуживать очереди длиной 32 (1 очередь из 32 команд), NVMe способна справиться с очередями длиной до 65 тысяч команд каждая. Это не только позволяет сократить задержку, но и увеличивает производительность серверов, которые обрабатывают большое количество запросов параллельно.

Глубина очереди и команд

Протокол

Теоретическая скорость

Скорость передачи данных

SAS

1

254

SATA (AHCI)

1

32

NVMe

65 000

65 000

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

В 2016 г. была выпущена новая спецификация — NVMe-oF. Она позволила реализовать скоростные преимущества протокола NVMe, применяемого для подключения массивов, в сетевой фабрике, используя в качестве транспорта Ethernet, Fiber Channel, RoCE или InfiniBand. Таким образом, в NVMe-oF в качестве транспорта используется не шина PCIe, как в случае с NVMe, а альтернативный транспортный протокол. Концепция сетевой фабрики подразумевает отправку и получение сообщений без общей памяти для конечных точек. Для передачи данных через сетевую фабрику команды и ответы NVMe помещаются в так называемые капсулы, каждая из которых может вмещать несколько команд или ответов.

В случае с NVMe-oF цели представляются как пространства имен, что эквивалентно LUN в протоколе SCSI. NVMe-oF позволяет серверам связываться с этими накопителями на гораздо более длинных дистанциях, сохраняя ультракороткое время задержки, лежащее в пределах микросекунд. Короче говоря, мы получаем более высокую скорость обмена данными между системами и флэш-накопителями без заметного увеличения времени задержки фабрики. Короткое время отклика частично обусловлено длиной очереди NVMe, о которой мы упомянули выше. NVMe-oF поддерживает очереди такой же длины, как и NVMe — 65 тысяч. Благодаря этому выдающемуся значению спецификация NVMe-oF применима для строительства мощных параллельных архитектур между серверами и накопителями, в которых для каждого отдельного устройства будет своя очередь.

Реализация NVMe в фабрике

Существуют 3 способа реализации NVMe в фабрике — с помощью RDMA, Fiber Channel и TCP.

NVMe-oF TCP

NVMe-oF over RDMA

Эта спецификация базируется на технологии Remote Direct Memory Access (RDMA) и позволяет данным и памяти перемещаться между компьютерами и накопителями по сети. RDMA — это способ обмена информацией между оперативной памятью двух компьютеров через сеть без вовлечения в эту процедуру процессоров, кэшей и операционных систем этих компьютеров. Поскольку RDMA работает без участия операционной системы, это обычно самый быстрый механизм передачи данных по сети, который нагружает систему в наименьшей степени.

NVMe over RDMA

Для передачи данных по IP-сетям используется протокол TCP. Внедрение RDMA обычно осуществляется посредством модели Virtual Interface Architecture, через конвергентную сеть Ethernet (RDMA over Converged Ethernet — RoCE), с помощью технологий InfiniBand, Omni-Path или iWARP. Наиболее популярные на сегодняшний день — RoCE, InfiniBand и iWARP.

NVMe over Fibre Channel

Вариант NVMe over Fibre Channel (FC) часто обозначается как FC-NVMe, NVMe over FC или еще иногда NVMe/FC. Fiber Channel — это надежный протокол для передачи данных между массивами и серверами, который используется в большинстве корпоративных сетей хранения данных. Здесь команды инкапсулируются внутрь FC-фреймов. В основе лежат стандартные правила FC и стандартный протокол FC Protocol, который обеспечивает доступ к общей флэш-памяти NVMe. Несмотря на то, что команды SCSI инкапсулируются внутрь FC-фреймов, их интерпретация и перевод в команды NVMe требует ресурсов и влияет на производительность.

NVMe over TCP/IP

Это один из новейших способов реализации NVMe-oF, который подразумевает передачу данных с помощью протокола TCP по сетям IP (Ethernet). Данные передаются внутри датаграмм TCP по физическим сетям Ethernet. По сравнению с RDMA и Fiber Channel протокол TCP представляет собой более дешевую и гибкую альтернативу. Кроме того, в сравнении с RoCE, который также предназначен для передачи данных по сетям Ethernet, работа NVMe over TCP/IP больше похожа на FC-NVMe, поскольку они оба используют для ввода-вывода семантику сообщений.

Вне зависимости от того, используете ли вы NVMe-oF на базе RDMA, Fibre Channel или TCP, вы получаете самодостаточное решение на базе NVMe. Любая реализация дает высокую производительность и низкое время отклика, присущие NVMe.

NVMe over RDMA over Converged Ethernet (RoCE)

Среди протоколов с технологией RDMA особо выделяется RoCE. Мы знаем, что собой представляют RDMA и NVMe-oF. И теперь у нас есть Converged Ethernet (CE), поддержка RDMA по сети Ethernet. CE — это как улучшенная версия Ethernet. Ее также называют Data Center Bridging и Data Center Ethernet. Она инкапсулирует транспортный пакет InfiniBand по Ethernet. Такое решение задействует механизм Link Level Flow Control для обеспечения нулевых потерь, даже если сеть перегружена. Протокол RoCE позволяет получить меньшее время задержки по сравнению с его предшественником, iWARP.

Существуют две версии RoCE — RoCE v1 и RoCE v2. RoCE v1 — это протокол уровня Ethernet Layer 2 (канал). Он позволяет соединить два хоста, которые находятся в одном и том же широковещательном домене Ethernet. Таким образом, он не может быть использован для маршрутизации между подсетями. Вторая версия, RoCE v2, базируется на протоколе UDP/IPv4 или UDP/IPv6. RoCE v2, в свою очередь, относится к уровню Ethernet Layer 3 (интернет), и здесь возможность маршрутизации пакетов имеется. Поддержка RoCE v2 в программном обеспечении встречается пока нечасто, но количество соответствующих продуктов постепенно увеличивается. Например, она была добавлена в Mellanox OFED начиная с версии 2.3, а также в ядро Linux 4.5.

Mellanox oF

NVMe over RoCE представляет новый тип сетей хранения данных. Этот протокол предлагает существующий уровень производительности служб корпоративных данных и широкий выбор аппаратного и программного обеспечения, присущий сетям хранения данных. Хотя протокол RoCE использует преимущества Converged Ethernet, он может работать и в неконвергентных сетях. Для использования NVMe over RoCE в фабрике, технологию Converged Ethernet должны поддерживать сетевая карта, коммутатор и флэш-массив. Кроме того, сетевая карта и флэш-массив должны поддерживать RoCE (такие сетевые карты сокращенно называются R-NIC). Серверы с R-NIC и флэш-массивы с поддержкой NVMe over RoCE подключатся к имеющимся коммутаторам CE автоматически.

Поддержка NVMe-oF over RoCE в продуктах VMware

VMware добавила поддержку общего хранилища NVMe на базе NVMe-oF. Поддержка NVMe over Fibre Channel и NVMe over RDMA для внешних подключений появилась в vSphere 7.0. Хосты ESXi могут использовать RDMA over Converged Ethernet v2 (RoCE v2). Осуществление доступа к NVMe-хранилищу посредством RDMA выполняется хостом ESXi с помощью адаптера R-NIC на вашем хосте и адаптера хранения SW NVMe over RDMA. Для обнаружения хранилищ NVMe настроить необходимо оба адаптера.

При использовании NVMe-oF цели представляются хосту в виде пространств имен в активном/активном или асимметричном режимах доступа (ALUA). Это позволяет хостам ESXi обнаруживать и использовать представленные пространства имен. Внутренне ESXi эмулирует цели NVMe как цели SCSI и представляет их как активные/активные цели SCSI или в виде целей SCSI ALUA.

Требования NVMe over RDMA:

  • массив NVMe поддерживает протокол RDMA (RoCE v2);
  • совместимый хост ESXi;
  • коммутаторы Ethernet поддерживают сеть без потерь;
  • сетевой адаптер поддерживает RoCE v2;
  • адаптер SW NVMe over RDMA;
  • контроллер NVMe;
  • сегодня RoCE работает на фабриках с потерями, которые поддерживают ZTR (Zero Touch RoCE) или требуют сконфигурированной сети для передачи данных без потерь только на уровне Layer 2 либо на уровнях Layer 2 и Layer 3 (с использованием PFC).

При настройке NVMe-oF на хосте ESXi существуют несколько рекомендаций, которым стоит следовать:

  • не используйте разные протоколы для доступа к одному и тому же пространству имен;
  • убедитесь, что хосту представлены все активные пути;
  • вместо NMP для целей NVMe должен быть использован HPP (High-Performance Plugin);
  • для ваших целей NVMe вы должны иметь выделенные линии, VMkernels и адаптеры RDMA;
  • выделенная линия с Layer 3 VLAN или Layer 2;
  • ограничения:
  • Namespaces-32;
  • Paths=128 (максимум 4 пути/пространства имен на хосте).

Заключение

Все большее количество пользователей хранят данные в облаках. И это стимулирует спрос на внутренние хранилища для дата-центров с более высокой скоростью обмена данными. Спецификация NVMe предложила более современный способ подключения накопителей на базе флэш-памяти. Благодаря NVMe и NVMe-oF мы смогли в лучшей мере воспользоваться преимуществами флэш-памяти. И сегодня NVMe-oF и ее разновидности рассматриваются как будущее технологий хранения информации. Эти накопители и системы считаются сердцем центров обработки данных, поскольку в фабрике важна каждая миллисекунда. Технология NVMe сокращает количество команд ввода-вывода с отображением в память и приспосабливает драйверы устройств операционной системы для получения более высокой производительности и сокращения времени задержки.

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

Сергей Попсулин
23/08.2020


Комментарии

Похожие статьи:

Обзор Synology FS6400 - тестируем скорость в 1С и знакомимся с брендированными SSD Synology

Новый флагман корпоративного сегмента от Synology, модель на двух процессорах Xeon Silver с 24 отсеками для SSD и встроенной виртуализацией. Мы протестируем, как на ней работает 1С Предприятие, и познакомимся с новыми брендированными SSD от Synolo

Эпичный хостинг: изучаем как AMD меняет рынок VDS-хостинга на примере компании VDSina.ru

Сегодня хостеры могут размещать до 1024 виртуалок на одной машине, что позволяет им демпинговать, наращивая клиентскую базу в условиях жёсткой конкуренции. Мы выясним, почему 64-ядерные процессоры AMD EPYC лежат в основе нового в

Новая схема адресации памяти в IBM Power10 изменит взгляд на ИИ приложения

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

Как Microsoft планирует сделать свои дата-центры "зелёными"

По мере роста облачного бизнеса растет и его влияние на окружающую среду. Многие компании стремятся к нулевым чистым выбросам, но Microsoft идёт ещё дальше: компания не просто сводит выбросы к нулю, а стремится удалить углерод, который она выбра

Обзор мультигигабитных коммутаторов Zyxel XGS1210-12 и XGS1010-12 со скоростью 1/2.5/10 Гбит/с

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