Linux Network Administration — AoE: маленький шаг навстречу SAN
Невозможно писать о gPXE, не написав об iSCSI и AoE. Начнем с AoE.
Когда говорят о сетях хранения данных (SAN), зачастую подразумевают FBP (Fibre Channel Protocol) - серьезный инструмент для масштабных проектов. Профессионалы, работавшие с Fibre Channel, свысока смотрят на бюджетные решения типа AoE и, на мой взгляд, совершают ошибку. Конечно, строить многобюджетные проекты на AoE нельзя. Но и для "малыша" AoE найдется свое применение.
Итак, что же такое AoE?
Ata Over Ethernet - протокол третьего уровня модели OSI, предназначенный для предоставления простого и относительно высокопроизводительного доступа к устройствам хранения данных (SATA) поверх Ethernet протокола. Что это значит? Очень просто - AoE даёт вам фактически прямой доступ к вашим блочным устройствам (или файлам, исполняющим их роль) внутри вашей локальной сети. Например, вы можете создать файл произвольного размера, экспортировать его через AoE, разбить его на логические диски, отформатировать их так, как вам будет угодно и работать с этим файлом по сети как с самым настоящим SATA-устройством. Заманчиво? Надеюсь, что да :)
В целом, всё действительно именно так просто, как кажется на первый взгляд. Почти. Внимательный читатель уже успел обратить внимание, что мы говорим о протоколе 3го уровня. А это значит. что ни о каком IP не может идти и речи. Мы не можем маршрутизировать AoE пакеты. И это печально :) AoE действительно ограничен локально.
Плюс, так как AoE - это всего-лишь завернутые в Ethernet ATA-команды - он не имеет никакого контроля доступа, протокол ATA этого просто не предусматривает. Как не предусматривает он и ограничения на запись-чтение. Но если вас это не пугает (или подобные фичи вас просто не интересуют) - тогда вперед. Ставим и настраиваем!
Я использую Gentoo,чего и вам советую но принцип везде одинаков:
Файл конфигурации демона (/etc/conf.d/vblade)имеет знакомый с детства для любого гентушника интерфейс:
для каждого экспортируемого устройства в файле конфигурации описывается строка вида
где foobar - имя, ограниченное только вашей необузданной фантазией
первый 0 - мажорный номер блочного устройства
второй, соответственно, - минорный
eth0 - имя сетевого устройства для экспорта
/var/aoe/foobar - имя экспортируемого файла
далее, создаём указатель на скрипт демона с нужным нам именем:
Запускаем
Готово.
Фактически, мы сделали всё, что нужно. Осталось только настроить клиент. Для пользователей Gentoo, не забываем что нам необходим модуль ядра aoe. Для остальных - у вас в дженерике уже всё есть :)
если вы хотите иметь доступ к aoe только на определенных интерфейсах:
всё. после этого у вас в /dev/etherd/ должен был появиться файлик e0.0, работа с ним не отличается от любого другого блочного устройства. Наслаждайтесь, но помните, что одновременное монтирование экспортированных через AoE устройств - штука неоднозначная, если ваша файловая система не знает, что с этим делать.
Когда говорят о сетях хранения данных (SAN), зачастую подразумевают FBP (Fibre Channel Protocol) - серьезный инструмент для масштабных проектов. Профессионалы, работавшие с Fibre Channel, свысока смотрят на бюджетные решения типа AoE и, на мой взгляд, совершают ошибку. Конечно, строить многобюджетные проекты на AoE нельзя. Но и для "малыша" AoE найдется свое применение.
Итак, что же такое AoE?
Ata Over Ethernet - протокол третьего уровня модели OSI, предназначенный для предоставления простого и относительно высокопроизводительного доступа к устройствам хранения данных (SATA) поверх Ethernet протокола. Что это значит? Очень просто - AoE даёт вам фактически прямой доступ к вашим блочным устройствам (или файлам, исполняющим их роль) внутри вашей локальной сети. Например, вы можете создать файл произвольного размера, экспортировать его через AoE, разбить его на логические диски, отформатировать их так, как вам будет угодно и работать с этим файлом по сети как с самым настоящим SATA-устройством. Заманчиво? Надеюсь, что да :)
В целом, всё действительно именно так просто, как кажется на первый взгляд. Почти. Внимательный читатель уже успел обратить внимание, что мы говорим о протоколе 3го уровня. А это значит. что ни о каком IP не может идти и речи. Мы не можем маршрутизировать AoE пакеты. И это печально :) AoE действительно ограничен локально.
Плюс, так как AoE - это всего-лишь завернутые в Ethernet ATA-команды - он не имеет никакого контроля доступа, протокол ATA этого просто не предусматривает. Как не предусматривает он и ограничения на запись-чтение. Но если вас это не пугает (или подобные фичи вас просто не интересуют) - тогда вперед. Ставим и настраиваем!
Я использую Gentoo,
1 2 |
echo sys-block/vblade >> /etc/portage/package.keywords |
Файл конфигурации демона (/etc/conf.d/vblade)имеет знакомый с детства для любого гентушника интерфейс:
для каждого экспортируемого устройства в файле конфигурации описывается строка вида
config_foobar 0 0 eth0 /var/aoe/foobar
где foobar - имя, ограниченное только вашей необузданной фантазией
первый 0 - мажорный номер блочного устройства
второй, соответственно, - минорный
eth0 - имя сетевого устройства для экспорта
/var/aoe/foobar - имя экспортируемого файла
далее, создаём указатель на скрипт демона с нужным нам именем:
ln -s /etc/init.d/vblade.vblade0 /etc/init.d/vblade.foobar
Запускаем
/etc/init.d/vblade.foobar start
Готово.
Фактически, мы сделали всё, что нужно. Осталось только настроить клиент. Для пользователей Gentoo, не забываем что нам необходим модуль ядра aoe. Для остальных - у вас в дженерике уже всё есть :)
modprobe aoe
если вы хотите иметь доступ к aoe только на определенных интерфейсах:
modprobe aoe aoe_iflist="eth0 eth1"
1 2 3 4 |
echo sys-block/aoetools >> /etc/portage/package.keywords |
всё. после этого у вас в /dev/etherd/ должен был появиться файлик e0.0, работа с ним не отличается от любого другого блочного устройства. Наслаждайтесь, но помните, что одновременное монтирование экспортированных через AoE устройств - штука неоднозначная, если ваша файловая система не знает, что с этим делать.