Посмотрел на новом месте на штатный ядерный aoe (инициатор) и допиленный местными джедаями ggaoed (таргет), и написал свой, чисто ядерный.
Результат поразил, в первую очередь, прогрессом ядра за последние 10 лет в области сетевого стека и блочной подсистемы. Совершенно не напрягаясь, из 1.6 миллиона IOPS'ов, доступных локально на LVM, размазанном по нескольким NVMe, по 50-гигабитной сети удалось передать 1.55 миллиона. Вот даже картинка с локальным и удалённым запуском fio есть:
https://image-store.slidesharecdn.com/4617ff4c-c52e-4d37-98bf-564e33060a0c-original.png
А по двум таким сетевухам, соответственно, 3 миллиона. Сеть пакеты дропает, кстати, особенно, при загрузке под потолок. 3 миллиона - это с ретрансмитами.
NVMeoF пока мимо, т.к. у них из рабочих транспортов, разве что, инфинибэнд, который вкорячивать через softroce - изврат тот ещё, а over ethernet ещё в разработке, и он, вроде, собирается быть L3, а не L2. Ну и кода раз в 20 меньше получилось.
Под впечатлением купил дешёвых 10-гигабитных сетевушек, буду домашнюю лабу на свой aoe переводить, а то с fiber channel то дети волокно оборвут, то SAN/NAS с 4-гигабитный QLogic'ом само резетится :)