|ГЛАВНАЯ|     |О ЖУРНАЛЕ|      |АРХИВ|      |ПОДПИСКА|     |РЕКЛАМНЫЙ ОТДЕЛ|    |КОНТАКТЫ|     |СОДЕРЖАНИЕ НОМЕРА|     |НОВОСТИ|      |ПРОЕЗД|       |КАРТА САЙТА|

№6(25)2005

 

Роман МИЩУК, Владимир САВЬЯК

Теория и практика iSCSI

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

 

 

 

 

Бизнес давно уже стал информационно зависимым. Можно потерять оборудование, сотрудников, деньги и многое другое, но эти ресурсы можно восстановить (пусть и в долгосрочной перспективе). А вот потеря корпоративных данных, как правило, необратима. По утверждению аналитических агентств, если компания потеряла 80% корпоративных данных, она через 2-3 года прекратит свое существование. Поскольку безопасность бизнеса - одна из опор безопасности страны, в ЕС и США уже существуют законы, обязывающие коммерческие компании, а также государственные органы внедрять у себя средства защиты информации от катастроф. Такое состояние дел ведет к возрастанию потребности в решениях, направленных на предотвращение потерь данных. Это может произойти по причине сбоя оборудования, вирусной или хакерской атаки, человеческой ошибки, природной или техногенной катастрофы, пожара и т.п. Для защиты от этих факторов необходимо организовывать резервное хранилище данных, в большинстве случаев - удаленное.В предыдущих номерах журнала уже освещалась тема резервных систем хранения данных. Поэтому здесь мы не будем описывать общие концепции, а сразу перейдем к детальному рассмотрению одной из перспективных технологий - iSCSI. По данным аналитических компаний, продуктам, которые используют iSCSI, на сегодняшний день, принадлежит 25% рынка систем хранения данных (СХД) начального уровня, а к 2010 году iSCSI будет практически безраздельно «властвовать» в сегменте СХД малого бизнеса, занимать 50% рынка в сегменте среднего бизнеса и 20-25% - крупного.

Что такое iSCSI?

iSCSI - это сквозной (end-to-end) протокол для транспорта блоков данных по сетям IP. Этот протокол используется на серверах (в терминологии iSCSI - «инициаторах»), устройствах хранения («целях») и устройствах передачи протокола («шлюзах»). iSCSI использует обычные коммутаторы и маршрутизаторы Ether net для передачи блоков данных от сервера к хранилищу. Также он позволяет использовать существующую IP-инфраструктуру для организации сетей хранения данных (SAN) без ограничения расстояния.

iSCSI строится на двух наиболее широко используемых протоколах: SCSI - протоколе обмена блоками данных между компьютером и хранилищем и IP - сетевом транспортном протоколе, наиболее широко применяющемся сегодня в корпоративных сетях Ethernet.

На рис. 1 схематично показан набор протоколов, задействованных при использовании iSCSI. Использование стандартного набора команд SCSI упрощает совместимость с существующими операционными системами и приложениями. Использование TCP/IP обеспечивает передачу команд SCSI в глобальном масштабе.

Архитектура обычного SCSI базируется на клиент-серверной модели. «Клиент», которым может быть, например, физический сервер, или рабочая станция, инициирует запросы на считывание или запись данных с исполнителя - «сервера», в роли которого, как правило, выступает СХД. Команды, которые выдает «клиент» и обрабатывает «сервер», помещаются в блок описания команды (Command Descriptor Block, CDB).

CDB - это структура, с помощью которой приложение-клиент направляет команды устройству-серверу. «Сервер» выполняет команду, а окончание ее выполнения обозначается специальным сигналом. Инкапсуляция и надежная доставка CDB-транзакций между инициаторами и исполнителями через TCP/IP сеть и есть главная задача iSCSI, причем ее приходится осуществлять в нетрадиционной для SCSI, потенциально ненадежной среде IP-сетей.

На рис. 2 изображена модель уровней протокола iSCSI, которая позволяет понять порядок инкапсуляции SCSI-команд для передачи их через физический носитель.

Протокол iSCSI осуществляет контроль передачи блоков данных и обеспечивает подтверждение достоверности завершения операции ввода/вывода, что в свою очередь обеспечивается через одно или несколько TCP-соединений.

Рис. 1. Набор протоколов, задействованных при использовании iSCSI

 

Рис. 2. Модель нижних уровней протокола iSCSI

 

Рис. 3. Модель «сетевых сущностей»

 

іSCSI имеет четыре составляющие:

• управление именами и адресами (iSCSI Address and Naming Con-ventions);

• управление сеансом (iSCSI Ses sion Management);

обработка ошибок (iSCSI Error Handling);

• безопасность (iSCSI Security).

Управление именами и адресами

Так как iSCSI-устройства являются участниками IP-сети, они имеют индивидуальные «сетевые сущности» (Network Entity). Каждая из них может содержать один или несколько iSCSI-узлов (рис. 3).

iSCSI-узел является идентификатором SCSI-устройств, доступных через сеть. Каждый iSCSI-узел имеет уникальное имя (длиной до 255 байт), которое формируется по правилам, принятым для обозначения узлов в Интернете (например, fqn.com.ustar.storage.itdepartment.161). Такое название имеет удобную для восприятия человеком форму и может обрабатываться сервером доменных имен (DNS). Таким образом, iSCSI-имя обеспечивает корректную идентификацию iSCSI-устройства, вне зависимости от его физического местонахождения.

В то же время в процессе контроля и передачи данных между устройствами удобнее пользоваться комбинацией IP-адреса и TCP-порта, которые обеспечиваются сетевым порталом (Network Portal). iSCSI-протокол в дополнение к iSCSI-именам обеспечивает поддержку псевдонимов, которые, как правило, отображаются в системах администрирования для удобства идентификации и управления администраторами системы.

Управление сеансом

iSCSI-сессия состоит из фаз аутентификации (Login Phase) и фазы обмена (Full Feature Phase), которая завершается специальной командой.

Фаза аутентификации используется для того, чтобы согласовать разнообразные параметры между двумя «сетевыми сущностями» и подтвердить право доступа инициатора. После процедуры аутентификации iSCSI-сессия переходит к фазе обмена. Если было установлено больше чем одно TCP-соединение, iSCSI требует, чтобы каждая пара «команда/ответ» также проходила через одно TCP-соединение. Такая процедура гарантирует, что каждая отдельная команда считывания или записи будет осуществляться без необходимости дополнительного отслеживания каждого запроса относительно его прохождения по разным потокам. Однако разные транзакции могут одновременно передаваться через разные TCP-соединения в рамках одной сессии.

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

В случае необходимости закрыть сессию используется команда iSCSI logout, которая передает информацию о причинах завершения. Она также может передать информацию о том, какое соединение следует закрыть в случае возникновения ошибки соединения, чтобы закрыть проблемные TCP-связи.

Обработка ошибок

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

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

Иерархия системы обработки ошибок и восстановление после сбоев в iSCSI включает:

1. На самом низком уровне - определение ошибки и восстановление данных на уровне SCSI-задачи, например, повторение передачи утраченного или поврежденного PDU.

2. На следующем уровне - в TCP-соединении, которое передает SCSI-задачу, может произойти ошибка, т.е. TCP-соединение может повредиться. В этом случае осуществляется попытка восстановить соединение.

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

Безопасность

В связи с использованием iSCSI в сетях, где возможен несанкционированный доступ к данным, спецификация предусматривает возможность использования разнообразных методов для повышения безопасности. Такие средства шифрования, как IPSec, которые используют нижние уровни, не требуют дополнительного согласования, так как являются прозрачными для верхних уровней, в том числе для iSCSI. Для аутентификации могут использоваться разнообразные решения, например, такие как Kerberos или обмен частными ключами; в качестве репозитария ключей может использоваться iSNS-сервер.

Рис. 4. IP-сеть с использованием iSCSI-устройств

 

Практическое применение iSCSI

Есть три способа реализации решений на базе iSCSI-сетей хранения данных в ИТ-системах. Каждый из них имеет свои преимущества и недостатки, которые мы постараемся рассмотреть.

Самый простой способ реализации iSCSI SAN - использование хранилищ с поддержкой iSCSI. В качестве хранилища может выступать дисковый массив, ленточный накопитель, СD-, DVD-, PDD-, UDO-библиотека.

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

Если с хранилищами все понятно - здесь протокол iSCSI поддерживается на уровне «зашитого» микропроцессорного кода, то с серверами и рабочими станциями («хостами») возникает маленький нюанс. Чтобы хост мог подключиться к iSCSI-хранилищу, на нем должен быть установлен аппаратный или программный iSCSI-инициатор.

Имея в хосте сетевую карту Gigabit Ethernet и загрузив программный iSCSI-инициатор (драйвер), хост можно подключить к сети хранения данных SAN по IP-протоколу. Чтобы объединить функции сетевого контроллера и контроллера интерфейса хранилища, запрос на блок и сам блок данных должны быть помещены внутрь пакета TCP/IP. Эта операция возлагается на процессор(ы) самого хоста, что отбирает немало вычислительной мощности и значительно снижает производительность сервера. Для снижения вычислительных затрат на создание и обработку протокольного стека TCP/IP для передачи SCSI-команд был создан TCP/IP offload engine (TOE). TOE берет на себя всю работу по обработке стека TCP/IP и освобождает процессор хоста. Иными словами, TOE - не что иное, как аппаратная реализация стека TCP/IP на сетевом адаптере Ethernet.

Ethernet-адаптеры с TOE могут вполне служить инициаторами для iSCSI SAN. Однако для достижения наилучшей производительности хоста рекомендуется использовать iSCSI-адаптеры, в которых кроме TOE аппаратно реализован и уровень iSCSI, например QLogic iSCSI HBAs QLA4010 или Adaptec iSCSI HBAs 7211.

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

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

Второй способ внедрения iSCSI позволяет обойти этот «подводный камень». В этом случае возле традиционного хранилища появляется так называемый iSCSI-мост, который собственно и инкапсулирует SCSI-блоки в пакеты Ethernet (рис. 5).

Рис. 5. Подключение SCSI в IP-сеть при помощи iSCSI-моста

 

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

Третьим вариантом построения iSCSI-решения является применение серверов хранилищ iSCSI. Подобные продукты есть в арсенале Hitachi, Fal-conStor и других игроков ИТ-рынка. Суть варианта состоит в том, что на основе стандартного сервера с операционной системой Windows Server либо Unix создается специальный сервер хранения, включенный в IP-сеть и обеспечивающий подключенным к этой же сети хостам доступ к дисковым массивам и ленточным устройствам (рис. 6).

Рис. 6. Построение сети хранения данных с помощью серверов хранилищ iSCSI

 

Устройства хранения могут подключаться к серверу по различным протоколам - SCSI, FC или iSCSI. Также может быть задействована локальная дисковая емкость сервера хранения.

Для доступа к ресурсам сервера хранения по iSCSI хосты должны быть подключены к IP-сети и на них должен быть установлен iSCSI-инициатор, преобразующий запросы операционной системы к ресурсам хранения в iSCSI-пакеты.Предоставляя доступ к устройствам хранения в сетях IP, сервер хранилища обеспечивает полный набор соответствующих услуг, в числе которых:

• синхронное и асинхронное зеркалирование;

• репликация на файловом и блочном уровнях;

• функция «моментальных снимков» (snapshots);

• дублирование серверов и т.д.

Недостатком варианта с применением iSCSI-серверов хранилищ является некоторая сложность их настройки, которая, однако, пропадает с приобретением опыта, а также вероятность возникновения сбоев по причине некорректной работы с ПО (человеческий фактор). Среди достоинств подхода - легкость масштабирования для крупных ИТ-систем, возможность контроля и управления большим количеством показателей, повышение надежности хранения данных.

Преимущества iSCSI

В заключение хочется отметить преимущества iSCSI перед другими технологиями организации удаленных хранилищ данных (например, FC, SCSI и т.д.). Во-первых, это высокая доступность бизнес-приложений. Множественные пути передачи IP-пакетов между серверами и хранилищами обеспечивают постоянное соединение, даже если один из компонентов сети выходит из строя. Во-вторых, защищенность данных - при низких стартовых вложениях можно создать резервное хранилище на значительном удалении от основной системы. К тому же iSCSI позволяет наращивать объем СХД или вычислительной мощности серверов без остановки приложений.

Еще одним важным моментом является возможность централизованного управления ресурсами за счет сведения разрозненных дисков и дисковых массивов в сети Ethernet в единый дисковый пул. С использованием iSCSI можно организовать резервное копирование как на локальные, так и на территориально удаленные СХД или зеркалирование на уровне тома.

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

 

№6(25)2005