ATA over Ethernet
ATA over Ethernet (AoE) — протокол для предоставления доступа к блочным устройствам по L2 сети. Подходит для построения недорогих производительных сетевых хранилищ.
Терминология
- Target (Цель) — сервер AoE, предоставляющий доступ к блочным устройствам по соответствующему протоколу;
- Initiator (Инициатор) — клиент AoE;
- Shelf (полка) — логическая группа слотов (блочных устройств) AoE;
- Slot (слот) — блочное устройство AoE;
Требуемое ПО
В ОС Альт требуемое ПО для работы с данным протоколом представлено пакетами:
- aoetools — вспомогательные утилиты для диагностики AoE;
- vblade — наиболее популярный демон AoE;
- ggaoed — также демон реализующий AoE.
Для работы сервисов AoE необходимо будет подключить модуль ядра aoe
с помощью команды:
# modprobe aoe
Данный модуль можно прописать в ОС для автоматической загрузки при старте:
# echo aoe >> /etc/modules
Конфигурирование AoE Target
vblade
Для случая с демоном vblade Вам понадобится включёный сетевой интерфейс. Следует учитывать, что при настройке работы блочных устройств по сети, их трафик необходимо отделить от других типов трафика или методом размещения в отдельном VLAN, или методом физической изоляции среды передачи данных. Также не следует назначать сетевым интерфейсам адреса, так как AoE трафик работает на втором уровне.
vblade использует RAW sockets для осуществления сетевого взаимодействия. В том случае, когда нежелательно запускать vblade от администратора, возможно использовать filesystem capabilities для предоставления необходимого доступа:
# setcap cap_net_raw+ep /usr/sbin/vblade
Предоставить блочное устройство (или файл) можно простой командой:
# vblade 9 1 eth1 /dev/sdc
Таким образом vblade начнёт отдавать локальное блочное устройство /dev/sdc с интерфейса eth1 как устройство 1 в слоте 9.
Для штатного включения демона необходимо выполнить команду:
# systemctl enable --now vblade
ggaoed
ggaoed — функциональный современный демон AoE, но написан с расчётом на системные примитивы Linux и потому не является мультиплатформенным. В комплекте с демоном поставляется утилита ggaoectl, которая отображает текущие параметры и статистику.
Для настройки демона необходимо отредактировать конфигурационный файл /etc/ggaoed.conf, который может выглядеть так:
[e2kbootsector]
path = /dev/sdc
shelf = 1
slot = 1
direct-io = true
interfaces = eth1
broadcast = true
read-only = true
Для штатного включения демона необходимо выполнить команду:
# systemctl enable --now aoed
Проверка
По окончании настройки и запуска демона станет возможной проверка корректности работы сервиса. Сначала необходимо выполнить сканирование сети на предмет AoE устройств:
aoe-discover
Затем можно просмотреть найденные в сети устройства:
$ aoe-stat
e9.1 10GB eth2 1024 up
В случае, если команда aoe-stat
не показывает желаемый результат, необходимо провести диагностику проблем сетевой связности.
Конфигурирование AoE Initiator
После подгрузки модуля aoe
в ОС появится директория /dev/etherd с файлами устройств. Возможно запустить процедуру обнаружения AoE устройств также с помощью простейшей команды:
# echo 1 > /dev/etherd/discover
В случае с текущим примером мы обнаружим файл блочного устройства dev/etherd/e1.1.