NVMe — разработано для флеш-памяти

Что такое NVMe? Спецификация на протоколы доступа к твердотельным накопителям (SSD), подключенным по шине PCI Express, (от англ. Non-Volatile Memory Express), разработанная рабочей группой из более сотни компаний. В чем преимущество стека NVMe? Очевидно, он обеспечивает беспрецедентную скорость и максимальную пропускную способность для твердотельных накопителей. Обычные SSD не обеспечивают пропускной способности, необходимой приложениям с особенно интенсивным обменом данными, таких как массивные базы данных, для которых NVMe дает небывало низкие задержки и высокие пиковые скорости.

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

Обычные протоколы SAS предназначены для механических жестких дисков. Быстрое развитие флеш-носителей и постоянно растущая потребность в улучшенной производительности различных систем обозначили недостатки SAS-протоколов. Протоколы признаны слабым звеном в разработке СХД на базе флеш-памяти. По сравнению с жесткими дисками SAS пропускная способность и максимальное количество операций ввода-вывода в секунду (IOPS) на SSD значительно улучшились, а в некоторых случаях задержка была снижена до сверхнизкого уровня 100 мкс. Емкость SSD продолжает расти. Возникает вопрос: как решить проблему слабого звена – протокола передачи? Организация NVM Express разработала стандарт протокола NVMe, удалив планировщик ввода-вывода и сложные уровни протокола SCSI в системах жестких дисков SAS, заменив их на легкий стек NVMe.

Стек протокола NVMe
Стек протокола NVMe

 

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

  1. Больше взаимодействий, (требуется преобразование между PCIe и сложным стеком SAS/SCSI, а затраты на обработку весьма высоки), это затрудняет получение большего количества IOPS. Диски NVMe могут напрямую подключаться к интерфейсам PCIe, упрощая взаимодействие протоколов для повышения производительности.
  2. Протокол SAS поддерживает одну очередь, а NVMe — до 65536 (64K) очередей, каждая с глубиной до 65536 команд. Множественные очереди позволяют достичь высокого уровня параллелизма при обработке, для соответствия высокой производительности многоканальных микросхем с выбором кристалла, присущей SSD. Механизмы блокировки должны быть добавлены к одиночным очередям SAS в многоядерных средах, тогда как NVMe сразу поддерживает механизмы без блокировки, чтобы максимально использовать преимущества параллелизма для настройки нескольких ядер при одновременном снижении накладных расходов.

NVMe, безусловно, более эффективный протокол, но относительно новый. Протокол SAS проверен многолетней практикой, является весьма зрелым и, соответственно, обладает некоторыми преимуществами:

  1. Собственная поддержка многопортовых и двухпортовых дисковых технологий. Протокол стабилен и надежен в многоядерных системах, в то время как двухпортовая технология PCIe по-прежнему нуждается в доработке.
  2. Хорошая поддержка операций «горячей» замены. Механизмы ввода-вывода не позволяют неисправностям распространяться по всей системе. Добавление функции «горячей замены» в PCIe технологически сложно, что означает необходимость накопления информации, прежде чем будет обеспечена высокая надежность протокола.
  3. Сеть SAS гибкая и легко масштабируется. Особенности сетевого развертывания были полностью учтены с самого начала разработки протокола SAS. Опора протокола на обмен маршрутами упрощает последующее расширение. Напротив, масштабируемость PCIe довольно ограничена, когда речь идет о глубине каскада и общем количестве поддерживаемых устройств.

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

Аналитики прогнозируют, что поставки SSD превысят объемы SAS в 2017 году, и этот разрыв заметно увеличится с течением времени. PCIe SSD является основным направлением развития, для которого лучше всего подходит протокол NVMe. Ускоряющиеся темпы развертывания ЦОД и облачных решений также повышает привлекательность NVMe SSD для сценариев гибридных приложений. Для высокоскоростных операций с кэш-памятью используются новые носители SCM, такие как 3D XPoint. Сверхвысокие требования к производительности могут быть реализованы только за счет использования линий PCIe, что стимулирует дальнейшую разработку и использование стека NVMe. Помимо использования в локальных SSD-модулях PCIe, организация NVM Express выпустила в июне 2016 года спецификацию NVMe over Fabrics, что позволило перенести стек на протоколы RDMA/FC и тем самым обеспечить высокопроизводительное решение для удаленного доступа к твердотельным накопителям и решить проблему совместного использования межсайтовых и локальных ресурсов SSD.

В чем заключаются проблемы СХД с применением NVMe?

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

NVMe SSD представляет собой тип жесткого диска, поэтому он должен обладать возможностями быстрой замены без прерывания обслуживания. Однако PCIe не обладает надежными возможностями «горячей» замены, особенно когда речь заходит о внезапной «горячей» установке PCIe. В результате некоторые настройки могут привести к прерыванию обслуживания и ошибкам системы. Кроме того, СХД корпоративного класса требуют высокой надежности и, следовательно, дублированной схемы контроллеров как минимум, в то время как реализация двухпортовой технологии на основе PCIe в конструкции SSD представляет определенные сложности. Некоторые из выпускаемых дисков SSD не имеют встроенных двухпортовых PCIe (например, ряд SSD NVMe от Intel, которые используют внутренний PCIe-коммутатор для реализации дублированных портов. Использование таких упрощенных схем защиты неизбежно приведет к снижению надежности системы.

Еще одним вызовом для NVMe СХД является сложность проведения оптимизации на системном уровне. Некоторые полагают, что использование системы NVMe в качестве простого накопителя NVMe SSD дает огромные преимущества в производительности системы. Однако не все так просто. Архитектура системы ввода-вывода требует доработки, чтобы сделать ее более подходящей для параллельной обработки в многоядерных конфигурациях. Такая доработка позволит полностью использовать преимущества NVMe.

Опыт Hiawei в области NVMe

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

SSD-накопители Huawei поддерживают двухпортовую технологию. Два порта PCIe 3.0x2 независимы друг от друга. Это позволяет устранить взаимные помехи, обеспечивая при этом улучшенную работоспособность в процессе восстановления системы и обработки исключений. Дублированием контроллера также обеспечивается повышенная надежность системы.

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

«Горячая» замена NVMe SSD
«Горячая» замена NVMe SSD

 

На рисунке выше при выполнении «горячей» замены NVMe SSD переводит PCIe в неисправное состояние. SSD могут быть извлечены в любое время и любым способом в системе OceanStor Dorado V3 Huawei, что является явным преимуществом для систем NVMe. В конструкции диска PCIe предусматриваются следующие варианты использования:

  • При стандартном процессе обработки ошибки AER будут передаваться до тех пор, пока процесс ввода-вывода не будет остановлен на обслуживаемой стороне, что может привести к шквалу ошибок и, в свою очередь, сильно усложнить процедуру обработки. Huawei отключает AER на диске PCIe, после чего отключаются процессы ввода-вывода. В результате распространение шквала ошибок останавливается.
  • Если операция извлечения выполняется не достаточно быстро, то канал восстанавливается и ошибки распространяются в обратном направлении. Для этого случая в системе Huawei предусмотрено быстрое отключение каналов диска PCIe в процессе обработки.
  • В случае обнаружения неожиданного «горячего» добавления устройства запуск функции DPC (отключение нижестоящего порта) может быть инициирован другими критическими ошибками, хотя ошибка «Неожиданное отключение» не возникает. Отключение канала может пройти быстрее, и возврат пакетов, отправленных на верхний уровень, происходит гораздо быстрее, чем при стандартных процессах обработки.
  • Даже при медленном извлечении дисков функция быстрого разъединения линии связи поможет обеспечить надежность системы.

В разработке систем NVMe компании Huawei помогает богатый опыт работы с жесткими дисками, в основе которого лежат всесторонний мониторинг работоспособности, прогнозирование жизненного цикла, мониторинг неисправностей аппаратного и программного обеспечения, а также средства восстановления и изоляции носителей, работающих в этих окружениях. Всё это помогает сгладить процесс развертывания NVMe. Запатентованная функция включения/выключения питания через разъем P3 обеспечивает эффективное решение для устранения аппаратных неисправностей и большинства программных сбоев на SSD, что эффективно снижает частоту отказов.

Для использования высокой производительности NVMe необходима оптимизация на уровне системы. Huawei разработала набор механизмов определения очередности операций ввода-вывода. Эти механизмы полностью удаляют мьютексы(блокировки) на уровне диска из трактов ввода-вывода, чтобы избежать конфликтов при блокировке очереди. Данный подход существенно улучшает производительность обработки на стороне хранилища. Пример схемы определения очередности операций ввода-вывода приведен ниже; показаны несколько потоков и очередей (такая схема позволяет добиться максимальной производительности).

Очередность операций ввода-вывода в системах NVMe
Очередность операций ввода-вывода в системах NVMe

 

Huawei полностью готова вступить в эру All-flash NVMe

Система хранения Huawei OceanStor Dorado V3 на базе флеш-накопителей предназначена для поддержки критически важных тяжело нагруженных приложений организаций любого масштаба. Массивы обеспечивают производительность до 4 миллионов IOPS при сохранении прогнозируемого и стабильного уровня задержки в 0,5 мс. Организации ускоряют работу своих основных процессов при обеспечении полной надежности системы. OceanStor Dorado V3 работает по протоколу NVMe, а недавно разработанная аппаратная архитектура поддерживает двухпортовые SSD-накопители NVMe и возможности «горячей» замены в непредвиденных ситуациях. Недавно разработанная параллельная программная архитектура обеспечивает максимальные эксплуатационные преимущества NVMe.

Huawei OceanStor Dorado5000 V3
Huawei OceanStor Dorado5000 V3

 

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