2 июн. 2011 г.

SAS коммутатор LSI 6160. Часть 1: обзор и сценарии использования.

Если вы не слышали про замечательный продукт компании LSI - коммутатор 6Гбит SAS LSI SAS6160, то можно начать с сайта LSI.
Вкратце: еcли вы задумывались о создании SAN (сети хранения данных) небольшого масштаба (десятки серверов и СХД) и протяженности (в пределах 20-30 метров), но стоимость инфраструктуры FC  или 10Гбит iSCSI вас останавливала - то вас выручит SAS.
До недавнего времени внешний SAS рассматривался исключительно как интерфейс для прямого (DAS) подключения одного-двух серверов к дисковой СХД или подключения JBOD-полки к внутреннему RAID-контроллеру в сервере. Со временем количество портов SAS на СХД начального уровня выросло до четырех на контроллер (например, в HP P2000 G3), что позволяет подключить до восьми серверов, а в dual-path подключении - до четырех. Что делать, если нужно больше? С гигабитным iSCSI может не хватить полосы пропускания, FC и 10Гбит iSCSI дороги: двухпортовый FC HBA стоит порядка $1500, свитчи начального уровня - от $4-5k (за $2-3k можно получить лишь что-нибудь типа 8-портового Qlogic 3000-й серии). Рекомендованная цена LSI 6160 - порядка $2500.
SAS коммутаторы как средство решения данной проблемы появились достаточно давно, уже несколько лет HP и IBM предлагают соответствующие решения для своих блейд-серверов. А в 2010 году произошло важное событие: на рынке появилось большое количество SAS-устройств, поддерживающих стандарт SAS-2. Помимо не всегда критичной большой полосы пропускания (6Гбит на один линк, а в SAS, например, при соединении двух экспандров формируется 4x транк с полосой 4x6=24Гбит), в SAS-2 было стандартизировано зонирование. Т.е. существовало оно и раньше (например, в тех же 3Гбит SAS свитчах HP для блейдов), но стандартом не являлось, и список поддерживаемых устройств был весьма ограничен: тот же самый HP 3Gb SAS Bl switch был предназначен, естественно, только для установки в blade-шасси, работал в сочетании с определенным контроллером, а в качестве СХД - либо JBOD MDS600, либо MSA2000 G2.
С появлением во второй половине 2010 года SAS коммутатора LSI 6160 построение больших топологий SAS стало доступно всем.
Зонирование нам дает важный функционал для создания больших SAS топологий: устройства SAS траслируют таблицу зонирования, т.е. список разрешенных комбинаций доступа для различных SAS-адресов в топологии. Формировать таблицу зонирования можно в экспандере, поддерживающем T10-зонирование SAS-2. Осталось лишь получить возможность этим зонированием как-то управлять - что и было сделано в LSI 6160.
схема коммутатора LSI 6160
 То есть SAS коммутатор от LSI построен на двух давно известных чипах LSI2x36, которые применяются, например в экспандерных бэкплейнах Supermicro. Экспандеры объединены в отказоустойчивую схему с разделяемой памятью и снабжены дополнительным контроллером, отвечающим за настройку зонирования.
Физически LSI 6160 представляет собой устройство в небольшом металлическом корпусе. На передней панели: разъем RJ-45 для управления коммутатором, 16 разъемов SFF-8088 (внешний 4x SAS), два из которых поддерживают подключение активных 20-метровых кабелей. Охлаждение - два 40мм вентилятора (через утилиту управления, SAS Domain Manager, можно следить за температурными датчиками и частотой вращения вентиляторов), питание - внешний БП "ноутбучного" форм-фактора.
Два коммутатора и блоки питания можно установить в специальный поддон для монтажа в стойку. Конструктив, возможно, не самый изящный, но вполне соответствует цене устройства. Начать можно с одного коммутатора, но настоятельно рекомендую как можно скорее перейти на отказоустойчивую конфигурацию с двумя коммутаторами, тем более, что все внешние SAS HBA имеют сейчас минимум два 4x порта.

Итак, сценарии использования:
  • Подключение к SAS СХД нескольких серверов: от банального решения проблемы нехватки портов на самой СХД, до построения недорогой и быстрой SAN на чистом SAS: можно построить топологию с несколькими десятками серверов и СХД. Стоит упомянуть о том, что зонирование ограничивает доступ на уровне физических линков (phy), индивидуальный доступ к LUN'ам настраивается средствами самой СХД. Об ограничениях по масштабированию я расскажу позже.
  • Разделяемый JBOD, т.е. дисковая полка не имеющая собственного RAID-контроллера. Если экспандер в JBOD'е поддерживает зонирование, то возможен следующий сценарий: покупаем относительно недорогой большой JBOD с двухсторонним размещением дисков от Supermicro, например SC417E16-RJBOD1 (88 SFF дисков в 4U) или SC847E1(/2)6-RJBOD1 (45 LFF дисков в 4U), один или два SAS коммутатора, SAS-2 RAID-контроллеры с внешними портами в каждый сервер - получаем возможность управлять распределением отдельных дисков между RAID-контроллерами разных серверов. Подобная схема, конечно, совершенно не подходит для задач, требующих разделяемого LUN'а* (например, vSphere кластер с VMFS), но является намного более эффективной по сравнению с использованием локальной дисковой подсистемы в каждом сервере. Для зонирования отдельных дисков экспандер в JBOD'е должен поддерживать зонирование (являться т.н. "зонирующим экспандером"), в противном случае все диски автоматически унаследуют зон-группу самого экспандера, т.е. получится отдать только весь JBOD одному серверу целиком.
*Обновление от 14.10.2013. Времена меняются, и утверждение "SAS JBOD — не для кластеров" уже теряет актуальность. С появлением поддержки Parity Spaces для Failover Cluster'а в Microsoft Windows Server 2012 R2 использование Storage Spaces для кластеров Microsoft становится вполне обоснованным. Для vSphere есть VSA и с появлением vSphere 5.5 - еще и VSAN (наследие Virsto).

Плюсы, минусы, ограничения:
  • Пропускная способность: 24Гбит на каждый порт, т.е. такой полосы вам хватит практически в любых сценариях, узким местом будут являться диски, HBA и шина PCI-E x8. Ждем дальнейшего удешевления SSD, появления PCI-E 3.0 и SAS-3 (а это оптика до 100м и 48Гбит в каждом 4x-wide порте).
  • Латентность - в 20 раз ниже, чем у 10GbE iSCSI и 8Gb FC. В некоторых случая латентность может серьезно повлиять на производительность, в данном случае с этим проблем нет - протокол SAS проще, так же как и устройство коммутатора.
  • Стоимость порта. Напрямую сравнивать с FC не имеет смысла - все зависит от масштаба сети. Пока что можно сказать, что стоимость порта при использовании SAS коммутатора сравнима с гигабитным iSCSI: хорошие гигабитные свитчи стоят недешево, цена двухпортовых GbE карточек (например, на чипе Intel 82576) ненамного меньше SAS HBA.
  • Репликация. Непосредственно через SAS репликации (пока?) не существует. Так что остается использовать программные решения на стороне хоста.
  • Дистанция. Только два порта на LSI 6160 поддерживают активные SAS кабели длиной 10 и 20 метров.

Масштабируемость. Тут действуют несколько простых правил:
  1.  До 6 экспандеров в каскаде, каждый SAS коммутатор считается за один экспандер. Если каскадируются только коммутаторы, то до 4-х.
  2. Максимум 64 экспандера в одной топологии.
  3. Все соединения между инициатором (таргетом) и коммутатором должны быть 4x. Для отказоустойчивых конфигураций необходимо использовать несколько коммутаторов. Пример: каждый порт 2-портового HBA и каждый порт каждого контроллера в СХД подключаются к своему коммутатору.

Вот пока что и все. В следующем посте будет практика: подключим пару серверов к LSI CTS2600 через SAS коммутатор (собственно, это всего лишь тестовая инсталляция - при таком количестве серверов использование коммутатора совершенно не нужно), посмотрим интерфейс SAS Domain Manager'а и как это все отражается на работе VMware ESXi.
SAS коммутатор LSI 6160. Часть 2: подключение.