`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

ATA over Ethernet – союз протоколов

Статья опубликована в №42 (610) от 6 ноября

+11
голос

Дисковое пространство серверов весьма ограничено, а современные приложения нуждаются в системах хранения высокой емкости. Поэтому их размещение в сети делает задачу масштабирования достаточно легкой. В то же время построение SAN на базе Fibre Channel доступно далеко не всем организациям. Протокол ATA over Ethernet (AoE) позволяет реализовать простой способ подключения дешевых дисковых массивов к сети.

Протокол AoE был создан компанией Brantley Coile (заметим, свое название она получила по имени разработчика). Подобно протоколу Fibre Channel, который передает команды SCSI по оптоволокну, AoE предназначен для транспорта дисковых команд ATA через стандартную сеть Ethernet без использования TCP/IP. Это значит, что протокол не является маршрутизируемым и предназначен только для построения SAN. Он позволяет применять недорогие ATA-диски для создания практически неограниченных систем хранения, которые могут разделяться любыми серверами ЛВС.

AoE является открытым стандартом и обеспечивает прямой сетевой доступ к дисковым устройствам таким клиентам, как веб-серверы, почтовые серверы и кластеры. Эти системы посредством обычных Ethernet-коммутаторов могут использовать протокол для доступа к произвольно большим массивам так называемых AoE-серверов. Последние могут представлять собой небольшие печатные платы, называемые также лезвиями, которые включают процессоры и дисковые накопители и монтируются в стойку.

Протокол содержит сообщения-запросы, посылаемые AoE-серверу, и сообщения-ответы, возвращаемые хосту-клиенту. Формат этих сообщений достаточно простой и состоит из двух классов: ATA- и Config/Query-сообщения. Хотя каждый из них имеет свои собственные поля, оба класса разделяют общий формат заголовка – первые 24 байта сообщений. Этот общий заголовок (рис. 1) обеспечивает достаточно информации, чтобы распределять сообщения между хостами-клиентами и AoE-серверами.

Общий заголовок выполняет четыре функции. Во-первых, он обеспечивает механизм корреляции запросов и ответов. Во-вторых, определяет Ethernet-адрес AoE-сервера, физически расположенного в стойке с лезвиями. В-третьих, позволяет идентифицировать запросы и ответы. И наконец, в-четвертых, он содержит информацию об ошибках.

ATA over Ethernet – союз протоколов
Рис. 1

Существенная особенность AoE-сообщений – возможность образовывать очередь. Это позволяет исключить простои дисков, поскольку как только будет обработан один запрос, они могут приступить к следующему. Для доставки сообщений AoE использует механизм «лучшее из возможного» (best effort), который является нативным для технологии Ethernet. Таким образом, при отсутствии ответа в течение разумного отрезка времени повторная посылка сообщения возлагается на ПО хоста-клиента. Чтобы согласовать ответы с запросами и определять неполученные ответы, хост может использовать поле Tag. AoE-серверы копируют его из запроса в ответ без изменений, так что запрашивающее устройство может определять соответствие ответа. Когда он получен, внутренняя таблица тегов просматривается и находится соответствующий запрос. Программа лимита времени способна сканировать эту таблицу, отыскивая запросы, оставшиеся без ответа. Вот все методы, с помощью которых AoE обеспечивает информацию, необходимую для надежного функционирования.

Следующая особенность обеспечивает способ нахождения определенных лезвийных AoE-серверов. По своим размерам они чуть больше, чем 3,5-дюймовый дисковод. Обычно их устанавливают в разъемы конструкции, похожей на небольшую полку. Эти полки монтируются в простую релейную стойку и подсоединяются к сегменту локальной сети. Общий заголовок имеет поля, которые помогают отслеживать расположение лезвий. Каждая полка снабжена DIP-переключателями, которые позволяют однозначно ее идентифицировать. Каждое лезвие может считывать установленное переключателями значение, а также номер своего разъема. Эти два числа представляются в общем заголовке как адреса полки и разъема. В спецификации AoE они называются старшими и младшими числами (их не следует путать со значениями специальных устройств в ОС UNIX и Linux).

Данные поля могут использоваться для нахождения Ethernet-адреса определенного лезвия. Делается это посредством широковещательных Ethernet-сообщений. Протокол Ethernet имеет предустановленный адрес, с помощью которого можно разослать сообщения всем устройствам, подключенным к локальной сети. Согласно протоколу AoE обрабатываться будут только запросы, содержащие уникальные адреса полки и разъема, остальные будут отброшены. Если, к примеру, требуется найти Ethernet-адрес лезвия, установленного в шестой полке и в четвертом разъеме, то посылается широковещательное сообщение, в котором соответствующие поля имеют значения 6 и 4. Ответит только это лезвие.

Старшее и младшее числа также имеют широковещательные значения. На запрос с этим значением ответят все AoE-серверы, что позволяет обработать одно сообщение более чем одним сервером. Скажем, если значение полки широковещательное, а значение разъема уникальное, то сообщение будет обработано всеми серверами, установленными в этот разъем во всех полках. Аналогично можно сформировать запрос для всех лезвий в одной полке.

В заголовке также имеются еще два флага. Для того чтобы предотвратить случайную обработку запроса, AoE-серверы будут принимать только те сообщения, которые содержат 0 в бите R. Клиентская машина в своем запросе сбрасывает этот бит в 0, а сервер устанавливает его в 1 в ответе.

Другой флаг используется для указания ошибки. Бит Е устанавливается в 1 в ответе, если запрос не был завершен по каким-либо причинам. Поле Error в этом случае содержит сообщение об ошибке.

Наконец, поле Class содержит 0 для АТА-сообщений и 1 для сообщений класса Config/Query. Вот мы и подошли к тому, чтобы более подробно их рассмотреть.

Класс сообщений АТА

Напомним, что АТА – потомок интерфейса ST506 и чипа контроллера диска WD 1010, появившихся в начале 80-х. Эти чипы встраивались в адаптер шины хоста (HBA), используемый в ПК, совместимых с IBM PC.

Чип имел ряд регистров, с помощью которых выполнялось управление передачей дисковых данных. Набор регистров содержал информацию о цилиндрах, треках и секторах, имелся счетчик секторов, указывавший, какое их количество должно быть считано или записано, а также командный регистр.

К примеру, в случае команды чтения данные передавались с диска в буфер HBA, адаптер извещал хост, что они готовы, и хост перемещал данные в свою локальную память.

С приходом IDE функции контроллера были перенесены от НВА непосредственно на дисковод. Скорость передачи данных из внутреннего буфера в память хоста увеличилась в несколько раз. Все это в конечном итоге вошло в стандарт АТА, который описывал как физическое соединение с диском, так и логический интерфейс. Регистры начальных параметров, использующие для описания геометрии диска три координаты: количество цилиндров, треков и секторов, были заменены 24-разрядным адресом логического блока (LBA). При 512-байтовом секторе LBA ограничивал диск объемом 137 ГБ. Когда объемы выпускаемых дисков превысили этот лимит, была введена 48-разрядная адресация LBA. Это было достигнуто добавлением новых 48-разрядных команд и разрешением загружать старые регистры дважды. Отметим, что АоЕ также позволяет использовать 48-разрядные команды LBA и, следовательно, диски объемом 144 ТБ, чего должно хватить на некоторое время.

Сообщения АТА (формат заголовка которого приведен на рис. 2) содержат запросы и ответы для выполнения АТА-транзакций. Последние определяют три возможности: нет данных для передачи, данные будут записываться на диск и данные будут считываться с диска. При этом регистры параметров не содержат информации о том, какая из вышеперечисленных операций произойдет. Когда флаг W в АТА-сообщении установлен в 1, это указывает на то, что данные будут записываться на диск.

ATA over Ethernet – союз протоколов
Рис. 2

АТА-сообщение содержит значения, которые устанавливаются в регистры, и поле флагов для управления их применением. Например, если бит Е установлен в 0, то используется 24-разрядный адрес, если же в 1, то 48-разрядный. Значения полей lba копируются в адресные регистры, а полей Err/Feature и Sector Count – в соответствующие регистры. Наконец, Cmd/Status копируется в регистр команд, и начинается дисковая транзакция. АоЕ-сервер следит за регистром статуса и после завершения команды копирует весь регистр в заголовок ответа, а значение регистра ошибок записывается в поле Err/Feature. Так как АТА-команда передается по сети Ethernet, то она ограничена размером фрейма. Поэтому нельзя послать в одном сообщении более двух 512-байтовых секторов.

Практически это все, что касается АТА-сообщений. Они просто экспортируют АТА-интерфейс к клиентским хостам.

Класс сообщений Config/Query

Схема адресации, использующая номера полок и разъемов, описанная выше, является более чем адекватной в случае подключения нескольких клиентских хостов к дюжине АоЕ-серверов. Но по мере увеличения количества хостов и серверов она становится менее привлекательной. Описываемый класс сообщений обеспечивает более прогрессивную схему адресации.

В каждом АоЕ-сервере имеется небольшое количество энергонезависимой памяти, которая может быть использована клиентом для хранения конфигурационных данных. Они могут принимать произвольные двоичные значения и быть длиной до 1024 байтов. Эта информация никак не привязана к АоЕ-серверу, а является просто местом для клиентских хостов, чтобы «припрятывать» нужные данные. Последние не хранятся на диске, чтобы избежать любого взаимодействия с серверным ПО.

Сообщения Config/Query используют эти данные двумя способами. Первый: их характер может быть условным или безусловным. Второй: имеются различные методы запроса этих данных.

Установка конфигурационных данных может быть выполнена двумя путями. В первом случае запрос будет устанавливать данные в конфигурационную память только тогда, когда текущие имеют нулевую длину. Иначе запрос на установку будет отклонен. Во втором – команда может принудить АоЕ-сервер сделать запись в конфигурационную память. Предназначенные данные могут иметь нулевую длину, позволяя тем самым сбросить память.

Сообщения Query могут содержать данные, которые используются для опционального сравнения с сохраненной конфигурационной информацией. Она может быть запрошена тремя различными способами. Во-первых, конфигурационные данные могут быть считаны безусловно. Во-вторых, они могут быть возвращены в ответе только в том случае, когда данные в запросе совпадают с префиксом конфигурации на АоЕ-сервере. То есть запрос имеет количество байтов, которое меньше или равно длине данных, записанных на сервере, и соответствующие байты совпадают. В ответ АоЕ-сервер посылает полную конфигурационную информацию. Ну и наконец, последний способ запроса предусматривает полное совпадение данных как по длине, так и по значению. Это полезно при широковещательных запросах для нахождения определенного АоЕ-сервера.

Таким образом, возможен следующий сценарий. Пул АоЕ-серверов вводится в систему, при этом у всех конфигурационные данные нулевой длины. Клиентский хост хочет получить больше дискового пространства и посылает широковещательный запрос с данными нулевой длины. Все новые лезвия будут отвечать, так как у них отсутствует конфигурационная информация. Затем хост случайно выбирает сервер и посылает ему некоторые конфигурационные данные. В типичном случае они сохраняются, и хост получает положительный ответ. Однако если два клиентских хоста одновременно запрашивают конфигурационные данные нулевой длины и видят одинаковый ответ, оба могут выбрать один и тот же сервер. Они оба пошлют конфигурационную команду, но ввиду последовательной природы технологии Ethernet только один запрос придет первым к серверу и установит свои данные. Следующий запрос будет отклонен, так как конфигурационные данные будут уже ненулевой длины.

Мы не рассматриваем здесь особенности работы с RAID, поскольку они, в принципе, не отличаются от описанных выше.

Заключение

Какие же выводы можно сделать из приведенного краткого обзора протокола АоЕ? Это гибкий и достаточно простой протокол, который позволяет подключить ATA-диски прямо к сети. Он несложен в реализации, так что стоимость АоЕ-серверов может быть очень низкой. Это позволяет установить в одном сетевом сегменте достаточно много серверов.

Для обмена используются обычные Ethernet-фреймы, так как АоЕ-серверы подключаются к ЛВС, а не к глобальной IP-сети. Для последнего случая проблема решается с помощью таких протоколов, как iSCSI или NFS.

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

+11
голос

Напечатать Отправить другу

Читайте также

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT