30.03.2020

Как NVMe революционизирует сервер и хранилище?

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

 Рисунок 1: Ресурсы ввода-вывода хранилища приложений и серверов

Тенденции Центра обработки данных

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

Список новых приложений и требований к вводу/выводу хранилища практически бесконечен: инструменты для анализа больших данных (Hadoop, SAS, Hortonworks, SAP HANA и другие);  базы данных и хранилища значений ключей (MySQL, SQL Server, Oracle, Aerospike, Cassandra, Riak, TokuDB и другие);  большие быстрые данные, такие как видео или изображения;  и унаследованные структурированные и неструктурированные данные (финансовые, медицинские, государственные, геологические и энергетические).  Каждый из них нуждается в скорости, которая предъявляет повышенные требования к базовой инфраструктуре для преобразования данных в информацию практически в реальном времени.

Хотя были разработаны приложения и процессоры, которые теперь могут работать с такой скоростью, окружающая инфраструктура отстает.  Для устранения задержек были разработаны различные стратегии: добавление большего объема ОЗУ, более быстрая технология кэширования; улучшенная инфраструктура ввода-вывода для хранения данных на сервере с использованием твердотельных накопителей (SSD) NAND энергонезависимой памяти (NVM).

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

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

Проблемы Центра обработки данных

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

Тем не менее, центры обработки данных не подвержены риску и сбоям. Они требуют надежных технологий, но стараются избежать слишком больших изменений сразу. Вот почему необходимо сохранить инвестиции в существующие технологии, инструменты, методы и наборы навыков, в то же время внедряя решения для устранения узких мест и повышения гибкости. Современные протоколы ввода-вывода для серверного хранилища, такие как SCSI (SAS) и AHCI (SATA), хорошо зарекомендовали себя и продолжают использоваться для высокопроизводительного и недорогого уровня доступа к вводу / выводу серверного хранилища. Аналогичным образом, улучшения физических интерфейсов, таких как PCIe Gen3, 10 GbE, 40 GbE, InfiniBand и Fibre Channel (FC), улучшили базовую магистраль данных.

 

 

 

Рисунок 2: AHCI/SATA, SCSI/SAS и NVMe

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

Почему NVMe революционный?

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

Изначально будучи развернутым в качестве внутреннего хранилища DAS на серверах или в системах хранения, имеющих доступ к быстрому флэш-хранилищу, NVMe в конечном итоге будет использоваться другими способами.  Например, набор команд SCSI постепенно находил путь от SAS к iSCSI, Fibre Channel Protocol (FCP) и другим, как на внутреннем сервере для доступа к жестким дискам (HDD) или SSD, так и на внешнем интерфейсе.  для серверов для доступа к системам хранения.

В то время как SATA допускает одну очередь команд, способную содержать 32 команды, NVMe включает 65 536 (64 КБ) очередей с командами 64 КБ на очередь.  В результате возможности флэш-памяти хранилища теперь можно передавать по PCIe гораздо быстрее, что позволяет современным многоядерным процессорам выполнять более полезную работу за меньшее время.Как и надежный интерфейс ввода-вывода физического сервера PCIe, который он использует (например, магистраль данных), NVMe обеспечивает гибкость и совместимость, одновременно устраняя сложность, накладные расходы и задержки.  Те, кто находится на переднем крае, быстро примут NVMe.  Другие предпочтут постепенный подход, ориентируясь на NVMe для производительности и емкости ввода-вывода локального сервера.

Однако в некоторых средах могут появиться новые внешние системы хранения на основе NVMe.  Со временем мы также можем ожидать, что NVMe будет развернута на большем количестве серверов и внутри систем хранения (или устройств) для доступа к быстрым хранилищам на основе флэш-памяти NVM.

Почему NVMe выходит за рамки эволюции

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

Эволюционные улучшения включают переход с одной скорости на другую, добавление некоторых новых функциональных возможностей, изменение низкоуровневого кодирования или некоторых других атрибутов для улучшения базовой архитектуры, дизайна или стратегии реализации.  Например, Ethernet идет от 10/100 до 1 GbE к формирующейся витой паре 5 GbE и до 10 GbE, 40 GbE и 100 GbE с использованием медных или оптических кабелей.  Аналогично, набор команд SCSI был обновлен с громоздких параллельных кабелей предыдущих десятилетий до набора последовательных команд, реализованного по протоколу Fibre Channel (FCP) или FCoE, InfiniBand (SRP), IP (iSCSI) или SAS.  И в последние годы PCIe постоянно улучшается с точки зрения увеличения числа линий и улучшения производительности при переходе с Gen1 на Gen2 и Gen3.  Несмотря на значительные изменения, все они представляют собой эволюционные сдвиги.

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

Быстрые серверы и хранилище требуют быстрого ввода/вывода NVMe

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

Думайте об этом, как о стар с одной полосой движения из Чикаго в Лос-Анджелес, реализованной полвека назад, но при этом ей приходится иметь дело с современной транспортной активностью. 

Заторы и задержки были бы невообразимыми.Люди могут найти обходные пути, например, ездить только в нерабочее время или приближаться к офису, чтобы избежать длительных поездок на работу.  Власти установят политику, направленную на уменьшение тупиковой ситуации, например, если некоторым транспортным средствам будет разрешено ездить только в определенные дни, или будет взиматься плата за перегрузку для ограничения объема.  Но эти виды усилий мало что сделают для улучшения ситуации.  Для магистрали передачи данных NVMe является наилучшим решением.  Он открывает базовую инфраструктуру PCIe с использованием новых политик и протоколов.  Это было бы похоже на преобразование старого маршрута 66 в шоссе с шестью полосами движения. В результате ускоренные приложения могут более эффективно использовать больше доступных аппаратных ресурсов.  С финансовой точки зрения, NVMe позволяет приложениям полностью реализовать свой потенциал и максимизировать окупаемость инвестиций в технологии серверов, систем хранения и ввода-вывода.

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

Несмотря на то, что NVMe является новым протоколом, он использует существующие наборы навыков.  Любой, кто знаком с устройствами хранения SAS / SCSI и AHCI / SATA, практически не нуждается в обучении внедрению и управлению NVMe.  Поскольку хранилище с поддержкой NVMe представляется хост-серверу или устройству хранения в виде LUN или тома, можно использовать существующие средства Windows, Linux и другие инструменты ОС или гипервизора.

Например, в Windows, за исключением того, что вы заходите в диспетчер устройств, чтобы посмотреть, что это за устройство и к какому контроллеру оно подключено, оно ничем не отличается от установки и использования любого другого устройства хранения. Опыт работы с Linux аналогичен, особенно при использовании встроенных драйверов, поставляемых с ОС. Одно незначительное отличие Linux в том, что вместо того, чтобы рассматривать устройство / dev / sda в качестве примера, вы можете увидеть имя устройства, например / dev / nvme0n1.

Развертывание NVMe также поможет менеджерам хранилищ освоиться с ним. Первоначально он развертывается как внутреннее хранилище внутри или напрямую подключается к серверам, вместо или в качестве дополнения к SAS / SCSI, AHCI / SATA или традиционным платам PCIe и m.2. Оттуда NVMe найдет свой путь в устройства хранения и серверы данных, даже если доступ к ним осуществляется с использованием традиционных методов доступа к SAN, NAS или объектам.

Также появляются совместно используемые внешние устройства хранения, подключенные к NVMe, использующие соединения PCIe и коммутаторы для общего прямого доступа в стойку к высокопроизводительному хранилищу. Далее на горизонте NVMe по матрице с использованием новой технологии RoCE (произносится как Rocky), которая включает в себя удаленный прямой доступ к памяти (RDMA) по конвергентному Ethernet. Рассматривайте NVMe поверх структуры как альтернативу SCSI на Fibre Channel (например, FCP), SRP или iSCSI с преимуществами более низкой задержки, более высоких скоростей ввода-вывода и повышенной производительности.

Заключение и советы

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