Мы продолжаем исследовать работу протокола RDMA в СХД Qsan, начатую в предыдущей статье. Безусловно, самым интересным эффектом от применения данного протокола в разрезе его использования для доступа к данным является возможный прирост производительности. По крайней мере идейная составляющая самой концепции протокола RDMA на это недвусмысленно намекает. Так ли это на самом деле?

Чтобы не повторяться здесь с описанием работы протокола в отношении СХД, оставим ссылку на нашу предыдущую статью. Здесь же рассмотрим в практической плоскости, за счет чего мы можем получить заявленный прирост производительности. Стоит сразу оговориться, что само применение термина RDMA происходит зачастую весьма широко. Критиковать мы здесь никого не хотим, поскольку и сами можем допускать подобные вольности ради упрощения повествования. Поэтому будем придерживаться терминологии, которая используется Qsan.
Для блочного доступа к данным как правило используются широко известные протоколы iSCSI и Fibre Channel, которые поддерживаются любыми СХД, например, серии XCubeSAN и XCubeNXT. RDMA использует те же самые протоколы для физического соединения, но логически отличается от них. Варианты RDMA могут быть следующими:
FC-NVMe – использование среды Fibre Channel;
NVMe-oF TCP – использование среды Ethernet;
RDMA over iSCSI/NFS – также использование среды Ethernet.
Несмотря на схожие аббревиатуры и некоторую возможную путаницу с ними на первый взгляд, ничего сложного тут нет. На момент написания статьи, в СХД Qsan поддерживается только RDMA over Ethernet, а поддержка RDMA over FC (FC-NVMe) будет доступна позднее с выходом новых версий FW.
Давайте рассмотрим, чем принципиально различаются между собой NVMe-oF TCP и RDMA over iSCSI/NFS. Независимо от типа протокола для его реализации требуется поддержка RDMA как на уровне hardware (в сетевых картах и коммутаторах), так и на уровне software (в ОС хоста и на стороне СХД).
NVMe-oF TCP подразумевает использование RDMA по всему маршруту “ОС хоста – пространство хранения на СХД”. То есть становится в некотором роде эквивалентом внутреннего NVMe накопителя сервера. Разумеется, для реализации подобного типа соединения обязательно необходимо использовать накопители NVMe на стороне СХД. Именно поэтому данный тип протокола поддерживается только в моделях All Flash NVMe.
Принцип подключения к СХД при использовании NVMe-oF TCP заключается в создании на СХД специальных entity (вместо привычных target) и подключения к ним из ОС хоста при помощи RDMA. В настоящий момент такое подключение поддерживается на VMware и Linux-подобных типах ОС.
RDMA over iSCSI/NFS выглядит несколько проще, поскольку RDMA применяется только на участке внешнего интерфейса между сервером и СХД. По сути, это – несколько модифицированный протокол iSCSI в случае блочного доступа или NFS в случае файлового доступа. Так как работа данного протокола заканчивается на входе в СХД, здесь могут использоваться любые типы накопителей (даже обычные NL-SAS диски). Именно поэтому данный протокол поддерживается не только в All NVMe системах, но и в более доступных гибридных XCubeNXT.
Со стороны СХД необходимо просто создать привычные target или NFS папки и подключиться к ним из ОС хоста с помощью чуть модифицированных команд iscsiadm или mount с указанием использования протокола RDMA. Данное подключение также возможно только на Linux-подобных типах ОС.
Теперь давайте взглянем, насколько производительность может быть улучшена с применением RDMA. В качестве подопытного образца выступает AFA XF4226D с 24 дисками NVMe. В системе создавались два пула по 12 дисков с одинаковым типом RAID (5 или 10). К СХД были подключены два хоста через 4x 25GbE каждый напрямую без коммутатора. Каждый хост с Debian работал со своим пулом. В таблице ниже приведена суммарная производительность обоих хостов в разных режимах работы.

Как видно из приведенных тестов, переход между обычным iSCSI и “улучшенным” RDMA over iSCSI благотворно влияет прежде всего на последовательные операции. А вот переключение на так называемый full NVMe протокол NVMe-oF TCP уже полезно для любых типов запросов ввода/вывода.
Отчасти благодаря поддержке RDMA новые AFA получили значительную прибавку в производительности, поскольку на стандартных версиях блочных протоколов даже обычные SAN порой выглядят ничуть не хуже. Это еще раз подтверждает известный тезис о том, что значительный количественный рывок возможен лишь при повышении “качественной” составляющей какой-либо технологии. Однако, новые технологии подразумевают под собой наличие определенных знаний и опыта при их внедрении. И мы, как дистрибьютеры Qsan, готовы поделиться этими знаниями и опытом с нашими заказчиками.