Перспективы протоколов сетевого хранения данных

Сергей Самохин

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

Являющийся сегодня стандартом интерфейс PCI ограничен шириной шины (32 или 64 бит) и тактовой частотой (33 или 66 МГц). В лучшем случае получается 532 Мбайт/с. Гигабитный сетевой адаптер теоретически может создать нагрузку 250 Мбайт/с, RAID-контроллер — еще 160 Мбайт/с. В результате на одной шине PCI с трудом помещаются всего два устройства (необходимо оставить хотя бы небольшой запас на арбитраж и т.д.).

Эта тенденция была очевидна уже несколько лет назад, и тогда же было предложено два пути борьбы за скорость обмена.

Первый, назовем его консервативным, предполагал механически наращивать тактовую частоту до 133 МГц. Этот вариант под названием Future I/O был предложен консорциумом из таких гигантов, как Adaptec, Compaq, Hewlett-Packard и IBM. После разработки опытных образцов оказалось, что на тактовой частоте 133 МГц получить больше одного слота на шину затруднительно.

Примерно в это же время другой консорциум, возглавляемый Intel, предложил радикальный подход к интерфейсу ввода/вывода и выдвинул проект под названием NGIO (Next Generation Input/Output, ввод/вывод нового поколения).

Первоначально предполагалась если не война, то, по крайней мере, локальный конфликт, но в итоге победил здравый смысл, проект Future I/O был заброшен, а в августе 1999 года два консорциума объединились и выступили с инициативой, названной InfiniBand и целиком основанной на идеологии NGIO. По-видимому, просто присоединиться означало бы поражение, поэтому побежденные потребовали смены названия проекта, а руководство Intel решило: «Называй хоть горшком…» Полностью новая организация называется IBTA, InfiniBand Trade Association (напрашивается перевод: ассоциация по торговле InfiniBand).

InfiniBand — это сетевой подход к подсистеме ввода/вывода. Система (сервер) подключается к «матрице» ввода/вывода при помощи устройств, называемых HCA (Host Channel Adapter, канальный адаптер хоста). Устройства, такие как накопители или сетевые контроллеры, подключаются к той же матрице при помощи TCA (Target Channel Adapter, оконечное канальное устройство). Коммутирующая матрица представляет собой один или несколько коммутаторов. Идеология немного похожа на Fibre Channel. Адресация устройств CA (канальный адаптер — общее название всех устройств, используемых для подключения к матрице) производится при помощи протокола IPv61, как в любой другой сети.

Концепция «матрицы» может показаться не совсем понятной, но на самом деле это то, к чему приближаются современные сети, и в особенности сети центров хранения данных (SAN). Практически матрица представляет собой набор коммутаторов, кабелей и разъемов. С учетом трудностей, возникающих при высокоскоростной передаче данных по последовательному интерфейсу (витой паре), предусмотрено параллельное их соединение. В настоящее время имеются спецификации на одно-, четырех- и двенадцатиканальное соединение. В каждом канале используется четырехпарный кабель, данные по каждой паре идут со скоростью 2,5 Гбит/с. Это означает, что одноканальное соединение обеспечивает скорость обмена 500 Мбайт/с в каждую из сторон, четырехканальное соответственно — 2 Гбайт/с и двенадцатиканальное — 6 Гбайт/с. Длина каждого соединения с использованием медного кабеля может составлять до 17 метров. Применение оптоволоконного кабеля увеличивает расстояние до сотен метров и даже нескольких километров. Предусмотрено использование хорошо себя зарекомендовавших разъемов RJ45 и оптоволоконных соединителей.

Независимо от количества каналов в каждом из соединений и от типа канала (оптический/витая пара) в технологии InfiniBand используются те же самые логическая структура адресации (IPv6), протоколы, API и способы соединения аппаратных и программных компонентов.

Маркетинговые требования и временные ограничения привели к тому, что первые устройства TCA получились практически идентичными устройствам HCA. Последующие разработки должны привести к их разграничению по назначению и снижению стоимости TCA наряду с расширением ассортимента. В дальнейшем внедрение InfiniBand приведет к появлению вначале многокристальных, а затем и однокристальных БИС, как это уже случилось с интерфейсами PCI и USB. Не исключено и наличие поддержки InfiniBand на уровне процессоров. В любом случае, эта технология в первую очередь будет внедряться на уровне серверов верхнего уровня и массивов хранения данных, с учетом того, что в этих областях проще скрыть стоимость нововведений.

Можно с уверенностью предположить, что в ближайшем будущем технология InfiniBand будет использоваться для соединения серверов с серверами (кластеры), устройствами хранения данных (вместо Fibre Channel SAN) и сетевыми адаптерами или непосредственно коммутаторами или маршрутизаторами. Наряду со столь амбициозными применениями, InfiniBand, как преемник PCI, будет широко использоваться в качестве стандартной функции ввода/вывода. Это коренным образом изменит подход к сборке систем и их формфактору. Сборка будет заключаться в присоединении необходимых компонентов при помощи кабелей, подобных современным сетевым, при этом за счет исключения устанавливаемой периферии формфактор может сократиться до 0,5 и даже 0,2 U на процессор. Снижение объема не является самоцелью, но оно будет воспринято Интернет-провайдерами с большим удовлетворением.

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

Утверждение, что InfiniBand является стандартом сетевого ввода/вывода, справедливо, но не исчерпывающе. Новая технология реализует также известный со времен больших ЭВМ канальный ввод/вывод. Вместо принятой в интерфейсе PCI модели отображения в памяти с принципом «загрузка/хранение», в InfiniBand используется модель с передачей сообщений. Это, в сочетании с конкретной адресацией получателя, полностью гарантирует устойчивую и надежную работу. Функционирование системы можно уподобить почтовой службе: каждый клиент, если у него есть сообщение (или, возможно, запрос), просто опускает его в почтовый ящик. Почтальон же, проверяя ящики, перемещает их содержимое в соответствии с указанными адресами.

В настоящее время для реализации многопроцессорных и многомашинных параллельных систем, управляющих базами данных в десятки терабайт, используются преимущественно фирменные решения, такие как SP switch от IBM, BYNET от NCR, ServerNet и Memory Channel от Compaq. По мере развития InfiniBand она станет как раз той высокоскоростной технологией с коммутацией пакетов, которая требуется для создания кластеров. Поддержка каскадирования коммутаторов, разделения матрицы на зоны и присущая ей способность к передаче пакетов по нескольким адресам делает InfiniBand весьма привлекательной для таких применений. Учитывая то, что она является стандартом де-факто, кластерная технология получит хорошую основу для широкого развития.

Пока же фирма Adaptec на Форуме разработчиков Intel, проходившем с 22 по 24 августа в Сан-Хосе, продемонстрировала подключение внешних накопителей к серверам при помощи технологии InfiniBand, при этом использовались компоненты, созданные в подразделении Intel по разработке компонентов матриц (Fabric Components Division). Представитель фирмы заявил: «Мы обязаны иметь доступные решения на основе InfiniBand к тому времени, когда будет выпущен первый сервер, поддерживающий эту технологию».

22 октября на осенней конференции по сетевому доступу к данным была впервые продемонстрирована совместная работа продукции нескольких фирм с использованием InfiniBand. Была продемонстрирована работа «видео по запросу», причем файлы находились на накопителях, снабженных интерфейсом Fibre Channel, и далее через матрицу InfiniBand передавались клиенту Ethernet.

Учитывая солидный состав команды, высокие ставки и уже имеющиеся достижения, можно поверить прогнозу корпорации IDC, предсказывающей объем рынка продуктов InfiniBand около 250 млн. долл. к 2005 году.

На сегодняшний день главным интерфейсом для подключения накопителей, если речь идет о сетевых технологиях, безусловно, является SCSI. Как же будут взаимодействовать серверы с удаленными накопителями? Ответом служит интерфейс Internet SCSI (iSCSI).

Интерфейс SCSI предназначен для блочных операций ввода/вывода. По своей природе он базируется на модели «клиент-сервер», причем в роли клиента выступает сервер, который посылает запросы на чтение или запись данных. Команды, которые выполняет сервер (накопитель), содержатся в CDB (Command Descriptor Block, блок описателя команды). Сервер выполняет команду и посылает подтверждение. Основной задачей iSCSI и является инкапсуляция и надежная доставка CDB, данных и подтверждений по сетям, использующим протокол TCP/IP.

При подключении к сети устройств, снабженных стеком протоколов iSCSI, наряду с обычными процедурами выделения устройству адреса и занесения его в различные списки, по протоколу iSNS (Internet Storage Name Service, Интернет-служба имен накопителей) происходит обновление особого списка, в который включаются имена и адреса всех устройств, снабженных стеком iSCSI. Теперь клиенту (серверу), который хочет послать запрос, надо просто обратиться к серверу iSNS за IP-адресами потенциальных серверов (накопителей), а затем уже установить с ними соединение по TCP/IP.

Стек протоколов iSCSI взаимодействует, с одной стороны, со стандартным системным протоколом SCSI, а с другой — со стеком TCP/IP, располагаясь между ними. Когда, например, операционная система или приложение требуют произвести операцию записи данных, CDB инкапсулируется и передается по сети TCP/IP к конкретному серверу (накопителю). Далее происходят передача данных и прием подтверждения. На практике клиент может иметь множество таких соединений одновременно.

В соответствии с архитектурной моделью SCSI (SCSI Architectural Model, SAM-2) в стеке протоколов iSCSI воплощена модель «клиент-сервер». Так как оба участника находятся в сети TCP/IP, то они идентифицируются как объекты сети, причем в каждом сетевом объекте может содержаться несколько объектов iSCSI. Объект iSCSI — это SCSI-устройство внутри сетевого объекта, которое доступно через сеть. Внутри сетевого объекта iSCSI-объекты идентифицируются по присвоенным им номерам портов TCP. Полный адрес (IP-адрес плюс порт TCP) называют сетевым порталом. Каждому объекту iSCSI присваивается уникальное iSCSI-имя длиной до 255 символов. Хотя такой размер может показаться чрезмерно большим, не надо забывать о том, что протоколы iSCSI пытаются следовать соглашениям, принятым в Интернете о читабельных именах, которые могут быть проанализированы сервером DNS или другим сервером сетевых ресурсов. Длина имени, равная 255 байт, гарантирует, что присваиваемые имена будут уникальными глобально.

Комбинация IP-адреса и номера порта TCP образует уникальный сетевой адрес для каждого объекта iSCSI, а имя служит для его идентификации человеком. Разделение имен и адресов обеспечивает уверенность в том, что устройство будет правильно идентифицировано (по имени) независимо от его местоположения в сети. Если после перемещения устройства возникнет необходимость в смене IP-адреса и номера порта TCP, то оно все равно может быть правильно идентифицировано по имени при помощи сервера iSNS.

Соглашение об именах iSCSI предназначено для облегчения процесса идентификации при вхождении устройств в сеть, то есть до начала совместной работы клиента и сервера. Таким образом, для маршрутизации используется не имя, а IP-адреса и номера порта TCP.

Правила образования имен iSCSI позволяют создавать читабельные имена по вполне логичной и масштабируемой схеме. Оно должно начинаться с расширения “fqn’ (fully qualified name, полностью определенное имя), содержать имя домена (например, comp_name.com) и имя конкретного устройства. Таким образом, для RAID-массива, обслуживающего отдел маркетинга и имеющего имя raid.marketing.102, получаем fqn.com.comp_name.raid.marketing.102.

Сеанс между клиентом и сервером начинается с входа в объект iSCSI (iSCSI Login). Фаза вхождения используется для согласования всех переменных величин двух iSCSI-объектов. Это могут быть типы поддерживаемых данных, размер блока, величина тайм-аута и т.п. Если процесс вхождения завершается успешно, то сеанс переходит в фазу полных возможностей (Full Feature). Здесь клиент посылает серверу CDB, после чего происходят обмен данными и подтверждение. Весь обмен происходит при помощи iSCSI PDU (Protocol Data Unit, единица данных протокола).

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

Таким образом, тоннель под стеной, в которую уперлось повышение производительности серверов, копают сразу две бригады, с обеих сторон. Интересно, один туннель получится или два?

КомпьютерПресс 1'2002

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует