Протоколы сетей хранения данных. Часть I – ATA over Ethernet (AoE)::Журнал СА 9.2005
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Архив номеров
Контакты
   

  Опросы

1001 и 1 книга  
19.03.2018г.
Просмотров: 9863
Комментарии: 0
Потоковая обработка данных

 Читать далее...

19.03.2018г.
Просмотров: 8075
Комментарии: 0
Релевантный поиск с использованием Elasticsearch и Solr

 Читать далее...

19.03.2018г.
Просмотров: 8178
Комментарии: 0
Конкурентное программирование на SCALA

 Читать далее...

19.03.2018г.
Просмотров: 5181
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 5855
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

Друзья сайта  

 Протоколы сетей хранения данных. Часть I – ATA over Ethernet (AoE)

Архив номеров / 2005 / Выпуск №9 (34) / Протоколы сетей хранения данных. Часть I – ATA over Ethernet (AoE)

Рубрика: Сети /  Сети

АНТОН БОРИСОВ

Протоколы сетей хранения данных

Часть I – ATA over Ethernet (AoE)

Задача современных систем обработки информации – надежное хранение данных. Сегодня мы поговорим о SAN (Storage Area Networks), а если быть точнее, то о протоколах, которые обеспечивают их надежность и безопасность обрабатываемых данных.

В крупных компаниях SAN соединяет многочисленные сервера к централизованному пулу дисков хранения. По сравнению с администрированием сотни серверов, где каждый из них имеет собственное дисковое хранилище, сети SAN упрощают эксплуатацию и обслуживание. Однако есть недостаток в использовании SAN – каждое устройство (дисковый массив) «принадлежит» серверу, который инициировал соединение. В отличие от SAN этого недостатка нет у NAS (Network Attached Storage), где доступ от многих серверов к одному файлу не блокируется и информация от такого взаимодействия не теряется. Впрочем, превратить SAN в NAS просто – следует использовать кластерные файловые системы – GFS (Global File System) [2], OCFS2 (Oracle Cluster File System) [3] и аналогичные.

На каких технологиях строятся современные SAN-сети? Широкоизвестным видом является FiberChannel (оптический канал передачи данных). Название FiberChannel не должно вас пугать – этот тип соединения может быть реализован и на основе витой пары (см. Wikipedia [1]). Типичная сеть состоит из нескольких оптических коммутаторов, которые соединены между собой и посредством HBA (Host Bus Adapter) подключены к дискам. Передача данных основана на протоколе SCSI. Не стоит говорить, что это самое дорогое решение.                

Конкурентом технологии FiberChannel является iSCSI-протокол. Передача данных в этом случае производится не по оптическим каналам, а по витой паре (ethernet). Сеть в данном случае представлена ethernet-коммутатороми и UTP-кабелями категории 5e/6. Работа протокола iSCSI полагается на функционирование TCP/IP-протокола.

Следующим протоколом, который используется при разработке SAN-сетей, является AoE (ATA over Ethernet). ATA-протокол инкапсулируется в ethernet-кадры и в отличие от iSCSI не предусмотрен для маршрутизации. Однако AoE обладает интересной реализацией обнаружения AoE-устройств.

Наиболее перспективной и проработанной технологией можно считать протокол HyperSCSI, который в некоторой степени похож на iSCSI, но не использует TCP/IP в качестве своей основы. В заключительной части этого цикла статей я приведу результаты измерения скоростных характеристик, а сейчас немного вас заинтригую – как оказалось, AoE не самый быстрый протокол.

Сегодняшняя статья посвящена, пожалуй, самому молодому и амбициозно продвигаемому протоколу – AoE (ATA over Ethernet). Впервые о нем широко заговорили в 2004 году. Компания – разработчик протокола и на сегодняшний день единственный производитель устройств хранения информации, работающих с этим протоколом – Coraid Inc. [4]. Коротко охарактеризовать данный протокол можно фразой – «ATA-команды инкапсулируются в ethernet-кадры». Протокол уже получил свой номер в организации IANA, поэтому включение его поддержки в маршрутизаторы – дело ближайшего времени. Хотя было бы наивно думать, что сам по себе протокол будет поддержан всеми производителями коммуникационного оборудования. Впрочем, немало зависит и от настойчивости самой фирмы Coraid.

Краткий экскурс в основу протокола AoE

Рассмотрим заголовок ethernet-пакета для протокола AoE (см. рис. 1). Первые 14 байт в заголовке типичны для ethernet-пакета. Что же касается полей Ver, Flags, Error, то они детально расписаны в документации на протокол AoE [5].

Рисунок 1. Заголовок ethernet-пакета для протокола AoE

Рисунок 1. Заголовок ethernet-пакета для протокола AoE

Содержимое поля Arg зависит от того, какую команду передали в поле Command. Существует два варианта – «Выполнить ATA-команду» (Command 0) и «Запросить конфигурационную информацию» (Command 1). Первая команда передается на сторону сервера, и ATA-устройство сервера исполняет ATA-команды, которые скомпонованы в блоке Arg. Ethernet-пакет для протокола AoE запрещается разбивать на более мелкие фрагменты. Вторая команда предназначена для обнаружения и управления AoE-устройствами. Вот такой простой протокол получился.

Итак, на данный момент доступны GPL-драйвера для Linux 2.4, 2.6. В пакет ПО входят как модули (aoe-2.4.XX/aoe2.6.YY), так и утилиты (aoetools) с виртуальным наносервером (vblade). С января этого года AoE-драйверы включены в поставку Linux-ядер версии 2.6. Поэтому, в случае когда вы пересобираете Linux-ядро версии 2.6, можете смело выбрать компиляцию AoE – подсистемы. Также на сегодняшний день готовы порты для BSD-систем. В планах компании стоит выпуск драйверов и под Windows-платформу. Что касается остальных UNIX-систем, то для них готовых драйверов нет, по крайней мере сейчас.

Настройка модулей

Ядро дистрибутива, на котором будут проводиться сегодняшние испытания, – это Linux Kernel серии 2.4.

# wget aoe-2.4-3.tar.gz

# tar xzvf aoe-2.4-3.tar.gz

# cd aoe-2.4-3

# make && make install

Примерный вывод должен быть таким:

Found kernel version 2.4.26

Install directory is /lib/modules/2.4.26/kernel/net/aoe

mkdir -p /lib/modules/2.4.26/kernel/net/aoe

install -m 644 aoe.o /lib/modules/2.4.26/kernel/net/aoe

./mkdevs /dev/etherd

Directory /dev/etherd exists, skipping devnode installation.

./autoload

/sbin/depmod -a

Подготовка AoE-модулей завершена. В /etc/modules.conf прописаны параметры для устройств на основе AoE-протокола и созданы файлы устройств в директории /dev/etherd/.

alias block-major-152 aoe

alias char-major-152 aoe

Следующий наш шаг – это подготовка виртуального наносервера (vblade). Дело в том, что Coraid Inc., помимо раздачи под GPL-лицензией драйверов для AoE, является и единственным производителем устройств хранения информации EtherBlade, которые пока представлены только на рынке США и сопредельных государств. Однако, судя по информации с сайта компании, идет процесс создания дистрибьюторской сети.

Что из себя представляет EtherBlade?

EtherBlade сегодня представлен двумя продуктами – это шасси размеров 3U и 2U. В первом варианте «лезвия» хранятся 10 жестких дисков формата 3,5 дюйма. Во втором варианте уже используются 18 жестких дисков меньшего формата, а именно 2,5 дюйма. Если в самом начале карьеры EtherBlade использовались PATA-диски, то сегодня выпускаются модификации для SATA-дисков. Внутри отдельного лезвия находится контроллер памяти, процессор, ethernet-порт (см. рис. 2). Каждое такое лезвие потребляет около 12 Ватт, и гигабайт его стоимости начинается от 1,75 $. Для более тонкого варианта EtherBlade данные соответственно следующие: 5,5 Вт и 7,06 $. Лезвия подключаются во внешний 1-гигабитный свитч, который в свою очередь может быть подключен в более скоростной 10-гигабитный. Таким образом достигается масштабирование данного решения.

Рисунок 2. Структура единичного «лезвия»

Рисунок 2. Структура единичного «лезвия»

Рисунок 3. EtherBlade

Рисунок 3. EtherBlade

Чтобы не ждать поставки аппаратного «лезвия», можно воспользоваться его виртуальным аналогом – программным vblade.

Настройка наносервера vblade.

# wget vblade-5.tar.gz

# tar xzvf vblade-5.tar.gz

# cd vblade-5.tar.gz

# make && make install

Получились 2 исполняемых файла – vblade и vbladed. Последний является обычным скриптом, который запускает vblade. Его конструкция напоминает нижеследующий вариант (параметры изменены):

# vblade 9 0 eth0 /dev/hda

где «9» – номер шасси, «0» – номер слота (диска или лезвия), «eth0» – название интерфейса, по которому будет происходить обмен данными и «/dev/hda» – собственно устройство, которое в формате «AoE» делается доступным по ethernet.

С другой машины, запустив там предварительно процесс инсталляции драйвера AoE, мы увидим в /var/log/messages следующее:

aoe: aoe_init: AoE v2.4-3 initialised.

aoe: 000c6e784408 e9.0 v4000 has 80418240 sectors

То есть устройство распознано драйвером AoE. Здорово. Теперь запустив fdisk, мы увидим, что на нем находится:

# fdisk /dev/etherd/e9.0

Command (m for help): p

 

Disk /dev/etherd/e9.0: 41.1 GB, 41174138880 bytes

255 heads, 63 sectors/track, 5005 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

            Device Boot      Start         End      Blocks   Id  System

/dev/etherd/e9.0p1   *           1         924     7421998+   b  W95 FAT32

/dev/etherd/e9.0p2             925        1217     2353491    7  HPFS/NTFS

/dev/etherd/e9.0p3            1218        1439     1783183+   c  W95 FAT32 (LBA)

/dev/etherd/e9.0p4            2493        4865    19061122+   f  W95 Ext"d (LBA)

/dev/etherd/e9.0p5            2493        4865    19061091    b  W95 FAT32

Все так и обстоит на самом деле – это действительно структура удаленного хранилища, в нашем случае ATA-диска. Для получения статистики воспользуемся утилитой aoe-stat из пакета aoetools.

# /usr/sbin/aoe-stat

aoe-stat Error: sysfs is not mounted

И это правильно, т.к. sysfs разработан в ядрах серии 2.6. Однако данный факт не помешает нам вручную узнать состояние наносервера.

# cat /dev/etherd/stat

/dev/etherd/e9.0        eth0    up

Досадной мелочью (по крайней мере в драйверах 2.4) является невозможность использовать отдельные разделы в случае, когда наносервер предоставляет для целей хранения весь диск. Чтобы обойти это ограничение, создадим один раздел занимающий весь объем диска. Командная строка для vblade будет выглядеть, например, так:

# vblade 9 0 eth0 /dev/hda1

В этом случае монтирование «лезвия» на удаленной машине не отличается от монтирования локального диска.

# mount /dev/etherd/e9.0 /mnt/tmp

У данного решения есть и минусы. За счет простоты реализации протокола увеличивается нагрузка на подсистему ввода/вывода. Не проработана система шифрования трафика, передаваемого по сети. Как уже отмечалось выше, на рынке представлены только аппаратные продукты одной компании.

В следующей части мы познакомимся с протоколом iSCSI, узнаем, что такое «инициатор» и «iSCSI-target», попробуем подключить Windows- и Linux-клиенты к серверу с хранилищем данных по iSCSI-протоколу.

Приложение

SAN (Storage Area Network) – сеть, спроектированная для подключения устройств хранения (дисковых массивов и магнитных лент) к серверам. Характерно, что SAN отличается от других способов сетевого хранения информации за счет использования методики блочного доступа. Фактически сервер запрашивает информацию типа «блок X с диска Y». Передаваемая информация в SAN-сетях очень похожа на ту, что циркулирует по шине данных в дисках ATA и SCSI.

Ссылки:

  1. http://wikipedia.org.
  2. http://www.redhat.com/software/rha/gfs.
  3. http://oss.oracle.com/projects/ocfs2.
  4. http://www.coraid.com.
  5. http://www.coraid.com/documents/AoEr8.txt.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru