ATA over Ethernet

Материал из ALT Linux Wiki
Версия от 10:17, 21 апреля 2022; Elena Mishina (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

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.