Современные системы хранения данных. Часть 2
В первой части статьи, посвящённой системам хранения данных (СХД), мы познакомились с базовой аппаратной составляющей систем хранения и сферой применения такого оборудования. Ведь для возникновения целого направления в современной IT-индустрии был нужен мощный толчок. Можно с уверенностью сказать, что таких подвижек не было уже давно, повсеместно применялась стандартная схема – сервер с дисками внутри, на которых хранятся основные данные; локальная сеть и компьютеры-клиенты. И вот наконец-то свершилось – системы хранения данных выделяются в отдельный «пласт». Теперь данные хранятся на специализированном оборудовании, обеспечивающем высочайшую надёжность хранения и уровень сервиса, который сложно получить на стандартных схемах информационной инфраструктуры предприятия. Собственно, ради этих составляющих – надёжности хранения и сервиса, которые предоставляет хранилище для управления информацией – в основном и строятся сети хранения данных (Storage Area Network, SAN).
В этой статье постараемся более конкретно разобраться с элементами, характерными именно для сетей хранения данных – функциональностью СХД, протоколами, топологиями подключения хранилищ к серверам. Одной из самых «продвинутых» и распространённых топологий и является SAN, хотя хранилища можно подключать по разными схемам.
Итак – сети хранения и системы хранения данных. Если «зачем» пояснялось в первой части статьи, то во второй мы попытаемся ответить на вопрос «как». Как мы помним, системы хранения данных, или, на профессиональном жаргоне, дисковые стойки, в первую очередь легко различать по внешним интерфейсам, которые и обеспечивают подключения серверов (хостов), и по типу используемых внутри накопителей. Кое-какие из интерфейсов и типов накопителей мы уже упоминали, теперь же коснёмся самых современных. Наряду с терминами СХД (система хранения данных) будем также упоминать синонимы – к примеру, «дисковая стойка».
Внешние интерфейсы подключения – это, как мы помним, в основном SCSI или FibreChannel, а также довольно молодой стандарт iSCSI. Также не стоит сбрасывать со счетов небольшие интеллектуальные хранилища, которые могут подключаться даже по USB или FireWire. Мы не станем рассматривать более редкие (порой просто неудачные в том или ином плане) интерфейсы, как SSA от IBM или интерфейсы, разработанные для мейнфреймов – к примеру, FICON/ESCON. Особняком стоят хранилища NAS, подключаемые в сеть Ethernet. Под словом «интерфейс» в основном понимается внешний разъём, но не стоит забывать, что разъём не определяет протокол связи двух устройств. На этих особенностях мы остановимся чуть ниже.
Интерфейс SCSI
image001
Расшифровывается как Small Computer System Interface (читается «скази») – полудуплексный параллельный интерфейс. В современных системах хранения данных чаще всего представлен разъёмом SCSI:
…и группой протоколов SCSI, а конкретнее – SCSI-3 Parallel Interface. Отличие SCSI от знакомого нам IDE – бОльшее число устройств на канал, бОльшая длина кабеля, бОльшая скорость передачи данных, а также «эксклюзивные» особенности типа high voltage differential signaling, command quequing и некоторые другие – углубляться в этот вопрос мы не станем.
Если говорить об основных производителях компонент SCSI, например SCSI-адаптеров, RAID-контроллеров с интерфейсом SCSI, то любой специалист сразу вспомнит два названия – Adaptec и LSI Logic. Думаю, этого достаточно, революций на этом рынке не было уже давно и, вероятно, не предвидится.
Интерфейс FibreChannel
Полнодуплексный последовательный интерфейс. Частично рассмотрен нами ранее, чаще всего в современном оборудовании представлен внешними оптическими разъёмами типа LC или SC (LC – меньше по размерам):
…и протоколами FibreChannel Protocols (FCP). Существует несколько схем коммутации устройств FibreChannel:
- Point-to-Point – точка-точка, прямое соединение устройств между собой:
image006
- Crosspoint Switched – подключение устройств в коммутатор FibreChannel (аналогичное реализации сети Ethernet на коммутаторах):
image007
- Arbitrated loop – FC-AL, петля с арбитражным доступом – все устройства связаны друг с другом в кольцо, схема чем-то напоминает Token Ring. Также может использоваться коммутатор – тогда физическая топология будет реализована по схеме «звезда», а логическая – по схеме «петля» (или «кольцо»):
image008
Подключение по схеме FibreChannel Switched является самой распространённой схемой, в терминах FibreChannel такое подключение называется Fabric – в русском языке существует калька с него – «фабрика». Следует учесть, что коммутаторы FibreChannel – это довольно продвинутые устройства, по сложности наполнения близкие к IP-коммутаторам уровня 3 (маршрутизаторам). Если коммутаторы соединены между собой, то они функционируют в единой фабрике, имея пул настроек, действующих для всей фабрики сразу. Изменение каких-то опций на одном из коммутаторов может приводить к перекоммутации всей фабрики, не говоря уже о настройках авторизации доступа, к примеру. С другой стороны, существуют схемы SAN, которые подразумевают несколько фабрик внутри единой сети SAN. Таким образом, фабрикой можно называть только группу объединённых между собой коммутаторов – два или более не объединённых между собой устройства, введённые в SAN для повышения отказоустойчивости, образуют две или более различные фабрики.
Адресация устройств FibreChannel осуществляется по 64-битовому адресу WorldWideName (WWN), простой пример записи WWN-адреса – 90:06:F1:60:00:60:03:b4. Применимо к портам FibreChannel можно сказать, что WWN этих портов – аналог MAC-адреса в LAN.
Компоненты, позволяющие объединять хосты и системы хранения данных в единую сеть, принято обозначать термином «connectivity». Connectivity – это, конечно же, дуплексные соединительные кабели (обычно с интерфейсом LC), коммутаторы (switches) и адаптеры FibreChannel (HBA, Host Base Adapters) – то есть те платы расширения, которые, будучи установленными в хосты, позволяют подключить хост в сеть SAN. HBA обычно реализованы в виде плат стандарта PCI-X или PCI-Express. На фотографии – PCI-X адаптер FibreChannel от компании QLogic с двумя внешними портами FC 2Gb и дуплексным интерфейсом подключения LC:
image009
Часто возникают вопросы – как же FibreChannel может работать по «меди»? Как уже упоминалось, не стоит путать fibre и fiber – среда распространения сигнала может быть различной. Например, все жёсткие диски FibreChannel имеют металлические контакты, да и обычная коммутация устройств по «меди» – не редкость, просто постепенно все переходят на оптические каналы как наиболее перспективную технологию и функциональную замену «меди». В некотором современном оборудовании с внешними оптическими интерфейсами полки расширения (то есть «коробки» для дополнительных жёстких дисков) подключаются к основному устройству с внешними портами по схеме FC-AL (!) медными кабелями (!), что может вас удивить, однако медное подключение более надёжно в механическом плане и менее требовательно в плане своего обслуживания. Но имеются и минусы – например, ограничение на длину (не более 25 метров) и низкую помехозащищённость, что на скоростях в 2 Гбайт может быть проблемой.
Интерфейс iSCSI
Обычно представлен внешним разъёмом RJ-45 для подключения в сеть Ethernet – всем нам известный разъём:
image011
…и собственно самим протоколом iSCSI (Internet Small Computer System Interface). По определению SNIA: «iSCSI — это протокол, который базируется на TCP/IP и разработан для установления взаимодействия и управления системами хранения данных, серверами и клиентами». На этом интерфейсе остановимся немножко подробней, хотя бы в силу того, что каждый пользователь способен использовать iSCSI даже в обычной «домашней» сети.
Необходимо знать, что протокол iSCSI определяет, как минимум, транспортный протокол для SCSI, который работает поверх TCP, и технологию инкапсуляции SCSI-команд в сеть на базе IP. Проще говоря, iSCSI – это протокол, позволяющий получить блочный доступ к данным с помощью команд SCSI, пересылаемых через сеть со стеком TCP/IP. iSCSI появился как замена FibreChannel и в современных СХД имеет перед ним несколько преимуществ – способность объединять устройства на огромных расстояниях (используя существующие сети IP), возможность обеспечивать заданный уровень QoS (Quality of Service, качество обслуживания), более низкую стоимость connectivity. Однако основная проблема использования iSCSI как замены FibreChannel – большое время задержек, возникающих в сети из-за особенностей реализации стека TCP/IP – это время может приближаться к 80 микросекундам, что сводит на нет одно из важных преимуществ использования СХД – скорость доступа к информации и низкую латентность. Это серьёзный минус.
Маленькое замечание по поводу хостов – они могут использовать как обычные сетевые карты (тогда обработка стека iSCSI и инкапсуляция команд будет осуществляться программными средствами), так и специализированные карты с поддержкой технологий аналогичных TOE (TCP/IP Offload Engines). Такая технология обеспечивает аппаратную обработку соответствующей части стека протокола iSCSI. Программный метод дешевле, однако больше загружает центральный процессор сервера и в теории может приводить к бОльшим задержкам, чем аппаратный обработчик. При современной скорости сетей Ethernet в 1 Гбит/с можно предположить, что iSCSI будет работать ровно в два раза медленнее FibreChannel со скоростью 2 Гбит, однако в реальном применении разница будет ещё заметнее.
Адресация iSCSI-устройств многим покажется слишком сложной, но это итог формирования стандартов эпохи расцвета IT. Существуют два типа адресации – EUI-based и IQN, просто приведу примеры записи адресов двумя различными методами адресации (они не эквивалентны друг другу – это лишь пример):
• eui.5a1b375297690100;
• iqn.1979-07.ivs.home:winxp.
Желающие могут ознакомиться с RFC 3720 и 3721 для более полной информации, а также найти более свежие документы, определяющие структуру iSCSI в целом.
Однако возможность организовать SAN на базе iSCSI проще, чем вам кажется. Что необходимо для сети данных? Устройства хранения, компоненты коммутации (connectivity) и хосты. Хостами могут быть обычные компьютеры, компоненты коммутации – это ваша локальная IP-сеть, сложнее с системой хранения, но и это решаемо. В терминологии iSCSI принято различать два типа устройств – Initiator и Target. Как вы уже догадались: Initiator – это хост, а Target – это система хранения данных. Для того чтобы ваш хост с операционной системой Windows смог подключиться к хранилищу с интерфейсом iSCSI, достаточно лишь иметь установленный на машине Software Initiator, на данный момент актуальная версия – «Microsoft iSCSI Software Initiator Version 2.01 (build 1748)». По этой ссылке можно ознакомиться с продуктом и при желании скачать (его использование абсолютно бесплатно). Что интересно, в новой версии ОС от Microsoft, Windows Vista, Microsoft iSCSI Software Initiator встроен по умолчанию даже в «домашнюю» версию операционной системы:
image012
Мы видим стандартные пункты панели управления и настройку iSCSI для этой машины. Выделен адрес этого хоста как iSCSI-инициатора, используется уже знакомая нам адресация IQN. После того, как мы имеем iSCSI-инициатор, компоненты коммутации, нам необходима iSCSI-target, то есть наша СХД. Естественно, первый и самый простой вариант – аппаратное устройство, система хранения данных с интерфейсом iSCSI. Второй вариант – опять же программно реализованный iSCSI-target. На базе всеми любимой операционной системы Windows его можно получить, используя стороннее ПО компании «String Bean Software», к примеру. Такое ПО называется «WinTarget» и может быть опробовано в виде бесплатной 14-дневной испытательной версии, хотя сам продукт платный. С помощью Wintarget вы можете создать на целевом хосте (компьютере, выступающем в роли iSCSI-target) виртуальные логические тома (LUN, хотя правильнее их всё же называть LU – logical unit), которые и будут доступны хостам-инициаторам, хотя на целевой машине эти логические тома будут представлен в виде обычных файлов соответствующей длины. В отличие от обычного файлового доступа к компьютеру по сети, при использовании iSCSI мы получаем блочный доступ. Наш LUN, физически размещённый на инициаторе (который, в свою очередь, может находиться за тысячи километров – подключение через Интернет), видится нашей машиной как обычный «логический диск» (в терминологии Windows). Мы можем присвоить ему «букву диска», отформатировать и использовать в нашей системе так же, как разделы локального жёсткого диска. Ведь забавно выглядит работа с домашнего компьютера с подключённым к нему десятком LUN’ов, которые физически разнесены по всему земному шару – когда загружаетесь вы, к примеру, с СD, а жёсткого диска в вашей системе и вовсе нет! Пока проблема только в «ширине каналов».
При желании каждый может найти дополнительную информацию по iSCSI и поставить собственные эксперименты, однако упомяну ещё одну функциональность, которая становится доступна домашним пользователям – это построение кластеров на базе стандартного аппаратного обеспечения. Необходимы лишь кластерная ОС да грамотно настроенный iSCSI-target, тогда необходимое число LUN видно сразу всем узлам кластера. Скажу более – кластер вида active-active был мной построен и опробован на базе обычной домашней машины (XP Professional), которая выступала в роли iSCSI-target. Хосты (iSCSI-initiator’ы) были установлены в виртуальной машине VMware Workstation на базе Windows 2003 Server с установленным поверх «Microsoft iSCSI Software Initiator». Все желающие могут повторить эти эксперименты.
И кратко упомянем ещё пару протоколов, которые встречаются более редко и предназначены для предоставления дополнительных сервисов уже существующим сетям хранения данных (SAN):
- FCIP (Fibre Channel over IP) – туннельный протокол, построенный на TCP/IP и предназначенный для соединения географически разнесённых сетей SAN через стандартную среду IP. Например, можно объединить две сети SAN в одну через Интернет. Достигается это использованием FCIP-шлюза, который прозрачен для всех устройств в SAN.
- iFCP (Internet Fibre Channel Protocol) – протокол, позволяющий объединять устройства с интерфейсами FC через IP-сети. Важное отличие от FCIP в том, что возможно объединять именно FC-устройства через IP-сеть, что позволяет для разной пары соединений иметь разный уровень QoS, что невозможно при туннелировании через FCIP.
Мы кратко рассмотрели физические интерфейсы, протоколы, типы коммутации и адресацию для систем хранения данных, не останавливаясь на перечислении всех возможных вариантов. Теперь попытаемся представить эти технологии в реальных системах, поставляемых на наш рынок различными производителям. Сначала, просто для примера, приведу имеющийся у меня итоговый отчёт одной из ведущих аналитических компании мира – IDC. В таблице видны финансовые результаты 2 квартала 2005 года на мировом рынке внешних (именно они нас интересуют) дисковых систем хранения:
image013
Думаю, кое-кому может быть не известно о лидере – EMC Corporation. Всё дело в том, что EMC специализируется именно на оборудовании для хранения данных, программных продуктах для обеспечения управления информацией и сервисе, предоставляемом клиентам, использующим это оборудование и ПО. Как мы понимаем, такие продукты – это сфера высоких технологий, а вот HP, IBM, Dell и Hitachi производят также широкий спектр другой продукции (часто даже не компьютерной), посему эти названия, как мне кажется, ни у кого не вызовут вопросов. Что интересно, ПО, поставляемое EMC, настолько актуально, что это позволило компании занять 7 место в мировом рейтинге «софтовых компаний» по объёмам поставок. Между прочим, известная всем специалистам компания VMWare также принадлежит корпорации EMC.
В приведенном списке есть две компании, которые сами производят весь спектр поставляемых ими дисковых систем хранения – это EMC Corp. и Hitachi (HDS, Hitachi Data Systems), также оборудование этих компаний поставляют другие производители под своей собственной маркой. Компания HP использует системы хранения от Hitachi как свои старшие модели (HP XP), а компания Dell – системы хранения от EMC (DELL|EMC). IBM же использует в качестве OEM-производителей для своих младших моделей СХД продукты от Adaptec и Engenio (подразделение LSI Logic, занимающееся направлением компонент систем хранения данных). Конечно, в лидеры не попали множество более мелких компаний, производящих свои собственные системы хранения, а их немало, и о них мы поговорим.
Если перечислить основных значимых производителей рынка внешних систем хранения данных, то список будет примерно таков: EMC, HP, IBM, Dell, Hitachi, NetApps, Dothill, Engenio, Adaptec, Raidtec и другие. Конечно, ещё есть имена, которые на слуху, но отношение к системам хранения данных имеют второстепенное, хотя их и выпускают – например, D-Link.
Какие же параметры характеризуют системы хранения данных? Некоторые из них были перечислены в прошлой статье – это тип внешних интерфейсов подключения и типы внутренних накопителей (жёстких дисков). Следующий параметр, который есть смысл рассматривать после двух вышеперечисленных при выборе дисковой системы хранения, – её надёжность. Надёжность можно оценить не по банальному времени наработки на отказ каких-то отдельных компонент (факт, что это время примерно равно у всех производителей), а по внутренней архитектуре. «Обычная» система хранения часто «внешне» представляет собой дисковую полку (для монтажа в 19-дюймовый шкаф) с жёсткими дисками, внешними интерфейсами для подключения хостов, несколькими блоками питания. Внутри обычно установлено всё то, что обеспечивает работу системы хранения – процессорные блоки, контроллеры дисков, портов ввода-вывода, кэш-память и так далее. Обычно управление стойкой осуществляется из командной строки или по web-интерфейсу через любой браузер, начальная конфигурация часто требует подключения по последовательному интерфейсу. Пользователь может «разбить» имеющиеся в системе диски на группы и объединить их в RAID (различных уровней), получившееся дисковое пространство разделяется на один или несколько логических блоков (LUN), к которым и имеют доступ хосты (серверы) и «видят» их как локальные жёсткие диски. Количество RAID-групп, LUN-ов, логика работы кэша, доступность LUN-ов конкретным серверам и всё остальное настраивается администратором системы. Обычно СХД предназначены для подключения к ним не одного, а нескольких (вплоть до сотен, в теории) серверов – посему такая система должна обладать высокой производительностью, гибкой системой управления и мониторинга, продуманными средствами защиты данных. Защита данных обеспечивается многими способами, самый простой из которых вы уже знаете – объединение дисков в RAID. Однако данные должны быть ещё и постоянно доступны – ведь остановка одной системы хранения данных, центральной на предприятии, способна нанести ощутимые убытки. Чем больше систем хранит данные на СХД, тем более надёжный доступ к системе должен быть обеспечен – потому что при аварии СХД останавливается работа сразу всех серверов, хранящих там данные. Высокая доступность стойки обеспечивается полным внутренним дублированием всех компонент системы – путей доступа к стойке (портов FibreChannel), процессорных модулей, кэш-памяти, блоков питания и т.д. Попытаемся принцип 100%-го резервирования (дублирования) объяснить следующим рисунком:
image014
…цифрами здесь обозначены:
- Контроллер (процессорный модуль) СХД, включающий в себя:
- центральный процессор (или процессоры) – обычно на системе работает специальное ПО, выполняющее роль «операционной системы»;
- интерфейсы для коммутации с жёсткими дисками – в нашем случае это платы, обеспечивающие подключение дисков FibreChannel по схеме петли с арбитражным доступом (FC-AL);
- кэш-память;
- контроллеры внешних портов FibreChannel.
- Внешний интерфейс FC; как мы видим, тут их по 2 штуки на каждый процессорный модуль;
- Жёсткие диски – ёмкость расширяется дополнительными дисковыми полками;
- Кэш-память в такой схеме обычно зеркалируется, чтобы не потерять сохранённые там данные при выходе любого модуля из строя.
Касательно аппаратной части – дисковые стойки могут иметь различные интерфейсы для подключения хостов, различные интерфейсы жёстких дисков, различные схемы подключения дополнительных полок, служащих для увеличения числа дисков в системе, а также другие чисто «железные параметры». Попытаемся понять, какие же параметры характерны для самых ходовых СХД, которые производитель относит к разряду midrange, на примере системы хранения данных EMC Clariion CX500/CX500i. Отличие моделей с буквой «i» и без неё – в реализации внешних интерфейсов: FibreChannel и iSCSI, соответственно. Clariion CX500 – это средняя модель линейки EMC Clariion, которая обладает 100% резервом всех компонент, её внутренняя архитектура соответствует приведённому выше рисунку «Структурная схема системы хранения данных». Краткие параметры CX500 таковы:
- два независимых процессорных блока (storage processor), обеспечивающих резервирование;
- внешний интерфейс подключения – 4 порта FibreChannel 2Gb (LC-коннекторы);
- кэш-память – 4GB с поддержкой зеркалирования;
- RAID уровней 0, 1, 3, 5, 10. Возможность создавать множество RAID-групп внутри одного массива;
- поддержка дисков HotSpare, возможность назначать hs-диски для всего массива – так называемые global hot spare;
- до 120 жёстких дисков «горячей замены» на массив, поддержка технологии верификации целостности данных (EMC SNiiFFER);
- жёсткие диски, могут быть как с интерфейсом FibreChannel, так и SATA;
- производительность системы – до 120000 IOPS (операций в секунду);
- пропускная способность – до 760 Мбайт/с;
- возможность создания до 1024 LUN;
- возможность подключения до 256 серверов или до 128 серверов в конфигурации «высокой доступности» – когда каждый сервер подключён к СХД двумя логическими каналами (в каждый сервер устанавливается по 2 HBA);
- поддерживаемые ОС – Windows, Linux, NetWare, Solaris, IBM AIX, HP-UX, VMWare и другие.
- Два независимых ввода питания для двух блоков питания;
- Фирменные аккумуляторные модули SPS, обеспечивающие сохранение кэш-памяти на жёсткие диски при аварийном отключении питания вместо батарей, которые поддерживают сохранениё данных в самом кэше (обычно это небольшой срок – до 72 часов).
Внешний вид EMC Clariion CX500:
image015
Первая дисковая полка (нижняя на фото, под которой установлены SPS) содержит процессорные модули с портами ввода-вывода и первые 15 жёстких дисков. Остальные полки служат для расширения дисковой ёмкости дисками FibreChannel или SATA – на рисунке мы видим 8 полок, которые и содержат максимальный объём в 8*15=120 дисков.
Следующие модели от известных производителей можно условно отнести к одной «весовой» категории:
- EMC Clariion CX500;
- HP EVA3000;
- IBM DS4400 / DS4300 Turbo;
- HDS 9570V;
- NetApp FAS940c;
- Sun StorEdge 6130 / 6120;
Примечание:
Почти все оборудование на фотографиях предназначено для монтажа в серверные шкафы, ширина является стандартом и составляет 19 дюймов. Это поможет вам оценивать реальные размеры систем хранения.
Подробно о конкретных системах ведущих производителей поговорим в следующей части обзора.
Продолжение следует…