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

iSCSI

Технология iSCSI (ныне входит в употребление термин IP-SAN) — метод для организации SAN-сети через обычную сетевую инфраструктуру Ethernet. Она прошла ратификацию в IETF в конце 2003 года (RFC3720) и на сегодняшний день является широкораспространенной и стандартной.

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

Технически это осуществляется путем инкапсулирования («заворачивания») команд и блоков данных обычного SCSI в IP-пакеты. Это достаточно обычная и традиционная для IP технология, используемая не только в iSCSI. «Обернутые» в IP пакеты SCSI («SCSI-over-IP») могут пересылаться по обычной сети Ethernet или даже Интернету. Попадая к получателю, они извлекаются из «обертки» IP и в дальнейшем, с точки зрения конечного пользователя, это те же самые SCSI-пакеты, словно они прошли не через Ethernet, а через обыкновенный SCSI-кабель.

Строго говоря то, что мы привыкли называть FibreChannel (FC), есть на самом деле «SCSI-over-FC», то есть точно таким же образом пакеты FC переносят блоки и команды SCSI, и разница с iSCSI тут на «транспортном уровне». А существует, например, «Video-over-FC», ограниченно применяется в высокопроизводительных системах видеообработки, например в «боевых» авиационных симуляторах.

Преимуществом же iSCSI является то, что он работает всюду, где пройдет обычный IP, что на практике означает «вообще всюду». Хоть по модему, хоть через всю планету. На практике же обычно используется уже достаточно широкораспространенный Gigabit Ethernet, обеспечивающий «скорость провода» около 1GBit в секунду (около 100 мегабайт в секунду), не считая возможности объединить провода в «агрегированные каналы», пропорционально увеличивающие эту скорость.

Широкая доступность Ethernet-инфраструктуры означает в том числе и ее дешевизну в практической реализации. В наше время, когда стоимость порта Gigabit Ethernet снижается на 30 % ежемесячно, и дешевые GigE switch доступны уже даже для домашнего использования, это является довольно значимым и существенным аспектом.

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

  • Это дешево, зачастую бесплатно. И это работает, причем уже сейчас.
  • Программный модуль для использования iSCSI имеется для большинства существующих сегодня на рынке OS (MS Windows, Solaris, Linux, AIX и.т.д). Где-то он бесплатно скачивается и устанавливается, где-то включен в поставку. Но, так или иначе, он у вас уже есть.
  • Его можно просто взять и начать использовать.

Поскольку носителем iSCSI является «вездеходный» IP, то автоматически решается проблема, связанная с передачей SAN-сети на большие расстояния — то, для чего в случае FC создаются разнообразные конвертеры, бриджи и DWDM-директоры. С iSCSI нет проблем осуществить резервное копирование или репликацию через SAN на устройство, расположенное в удаленном датацентре. При этом не нужны никакой бридж для преобразования SAN-сети в вид пригодный для передачи по IP-сети «общего пользования» или наличие оптической магистрали для передачи траффика FC между сегментами SAN.

Недостатки:

  • Это все же IP, и тот факт, что изначально IP не создавался для целей массированной передачи данных с низкой латентностью и гарантированностью доставки, в принципе, является некоей «родовой проблемой» для iSCSI. Однако далеко не всюду эта проблема на самом деле проявляется. Существует множество применений, где этого недостатка вы не почувствуете, и где применение без сомнения гораздо более «продвинутого» FibreChannel будет просто пустой и бессмысленной тратой денег, не дающей никаких дополнительных возможностей и преимуществ.

Когда говорят о «бесплатности», то имеют ввиду софтверный initiator, тот самый модуль, который позволяет использовать функциональность iSCSI и осуществляет рассмотренную выше инкапсуляцию и декапсуляцию SCSI в IP. Однако, как любое софтверное решение, это потребляет какое-то количество процессорной мощности. В реальной жизни, на доступных сегодня процессорах, эта величина стремится к единицам процентов. Но, тем не менее, в ряде случаев она может играть свою роль.

Конечно, существуют и «аппаратные» реализации в виде iSCSI HBA (пример: QLogic QLA4050), снимающие эти проблемы, однако они уже отнюдь не бесплатные, и, хоть и стоят дешевле большинства FC HBA, все же существенно увеличивают бюджет проекта.

Однако, в реальной жизни, в практических задачах применимость и безусловная нужность iSCSI HBA вовсе не настолько бесспорна. Если идти не от абстрактной «производительности системы хранения», а от производительности информационной системы в целом, то беспокоить скорость передачи данных между дисковой системой и сервером должна, пожалуй, в последнюю очередь. Обычно прикладной задаче, например ERP или CRM-системе, всегда есть где потормозить и не упираясь в канал передачи данных между дисками и процессором.

Скорость iSCSI не использующего «агрегирование каналов» (объеднение вместе нескольких портов для увеличения пропускной способности) в настоящий момент равна 1Gb/s. Несмотря на то, что уже появились сетевые устройства стандарта 10G Ethernet со скоростью до 10Gb/s, цена на них пока все еще высока, что не позволяет говорить о них как о среде для iSCSI. Скорость FC для наиболее распространенных FC-устройств равна 2 и 4Gb/s, что формально вдвое-вчетверо выше. Однако в условиях «реальной жизни» наличие на устройстве порта 4Gb/s не делает скорость работы устройства вчетверо выше, чем с портом 1Gb/s.

Что необходимо для использования iSCSI:

Для построения простейшей SAN необходимо наличие дискового массива с поддержкой интерфейса iSCSI (например любой NetApp FAS), отдельного сегмента сети передачи данных (несмотря на то, что траффик iSCSI может идти и по обычной «офисной» LAN, более грамотно выделить его в отдельную сеть), свободных Ethernet портов в серверах или специального iSCSI адаптера, а так же программный компонент «Initiator» под ОС серверов.

Где применять iSCSI:

  • Для замены DAS — Direct Attached Storages — собственных дисков серверов.
  • Для построения SAN «с нуля», особенно в условиях ограниченного бюджета.
  • Для создания протяженной, распределенной SAN, в том числе «катастрофоустойчивых» ее вариантов.

Где не применять iSCSI:

  • Для приложений, заведомо сильно загружающих канал передачи данных от дисков.
  • Для high-end приложений, таких как крупные enterprise базы данных, с предельными требованиями по латентности и быстродействию.