Вцентрах обработки данных широко применяется технология хранения данных NVMe over Fabric, или NVMeOF, как ее иногда называют. Причиной быстрого внедрения является способность NVMe over Fabric обеспечивать доступ к хранилищам данных с малыми задержками и высокой производительностью.
Разговор об NVMe Over Fabric мы начнем с рассмотрения NVMe. Энергонезависимая память Non-volatile Memory Express была разработана с целью решить ключевую проблему флэш-памяти, связанную с пропускной способностью. Как вам, конечно же, известно, быстродействие твердотельных накопителей (SSD) гораздо выше, чем у жестких дисков, благодаря отсутствию механических частей. Поэтому операции SSD никогда не приостанавливаются, пока разгоняется электромотор или головка накопителя перемещается в нужное место. Но проблема SSD в том, что их быстродействие часто превышает скорость шины данных, которая изначально проектировалась для работы с жесткими дисками. Таким образом, возможности твердотельного накопителя, подключенного к старому интерфейсу, такому как SATA, ограничиваются скоростью контроллера.
Спецификация NVMe проектировалась с целью полностью реализовать потенциал SSD, исключив зависимость от устаревших контроллеров запоминающих устройств. Вместо таких интерфейсов, как SATA, диски NVMe обмениваются данными с процессором через соединение PCIe. В последнее время NVMe широко применяется в ноутбуках высокого уровня благодаря небольшим размерам, малому весу и высочайшему быстродействию.
NVMe Over Fabric — архитектура, которая позволяет удаленно обращаться к хранилищам NVMe. В действительности у протокола NVMe Over Fabric много общего с iSCSI, но NVMe Over Fabric гораздо быстрее, чем iSCSI. Конечно, возникает вопрос, чем объясняется преимущество NVMe Over Fabric в быстродействии. Ведь никто не мешает настроить хранилище NVMe таким образом, чтобы оно функционировало как устройство iSCSI. Поэтому различие в производительности должно быть учтено в архитектуре NVMe Over Fabric.
Как и iSCSI, NVMe Over Fabric представляет собой сетевой протокол, обеспечивающий связь между компьютером и запоминающим устройством через сеть. Быстродействие протокола NVMe Over Fabric гораздо выше, чем iSCSI, потому что в его основе лежит использование удаленного прямого доступа к памяти RDMA (и поддержка таких технологий RDMA, как iWARP и InfiniBand).
RDMA — сокращение от Remote Direct Memory Access (удаленный прямой доступ к памяти). Как видно из названия, RDMA реализует метод прямого доступа, с помощью которого можно обратиться к памяти одного компьютера с другого компьютера. В сущности, RDMA обходит операционную систему, перекладывая операции копирования на сетевое оборудование. В итоге передача данных ускоряется, поскольку их можно пересылать непосредственно в память приложения или получать оттуда без участия сетевого протокола на уровне операционной системы.
Конечно, совершенно исключить операционную систему нельзя. Она по-прежнему должна знать, что происходит, чтобы координировать операции по пересылке данных. Необходимое условие при этом, чтобы операционная система была наделена совместимостью с RDMA. Например, компания Microsoft поддерживает RDMA с момента выпуска Windows Server 2012 благодаря компоненту SMB Direct. Аналогично поддержка RDMA в VMware появилась с 2015 года, и, кроме того, технология широко поддерживается в различных дистрибутивах Linux.
Каким образом RDMA оказывается полезной для NVMe Over Fabric? Как отмечалось выше, у NVMe Over Fabric и iSCSI много общего. Протокол iSCSI посылает собственные команды SCSI через сетевую структуру. NVMe Over Fabric делает, в сущности, то же самое. Поскольку RDMA исключает почти всю обработку, выполняемую при обычном обмене данными по сети, скорость связи приближается к теоретическому максимуму для NVMe. Конечно, сетевые каналы вносят задержки, но они очень невелики. В некоторых случаях задержки составляют всего 10 микросекунд по сравнению с локальными хранилищами NVMe.
Несмотря на широкие перспективы NVMe Over Fabric, технология еще не достигла зрелости. При развертывании NVMe Over Fabric важно помнить, что в реализациях систем хранения данных каждого поставщика есть небольшие различия, поэтому решения NVMeOF одного поставщика не обязательно совместимы с продуктами другого.