ADG Оставить заявку
Блог Инфраструктура 4 мин чтения

FC-SAN с нуля: два HBA, Brocade и все грабли с firmware за один проект

Первый раз подключаем клиенту полноценный Fibre Channel SAN: два HBA на сервер, зонирование на Brocade, LUN-маппинг - и протоколируем всё что пошло не так.

Контекст момента

Рынок FC-SAN активно растёт, цены на HBA и коммутаторы Brocade впервые доступны среднему бизнесу

Ещё год назад разговор про Fibre Channel с клиентом из среднего бизнеса обычно заканчивался на слове «бюджет». HBA-карты - отдельный разговор, коммутаторы Brocade - совсем другой. Сейчас ценник наконец сдвинулся до уровня, когда считать стало интересно. У одного из клиентов база данных начала уверенно упираться в дисковую подсистему, разговор возобновился, и мы в итоге развернули первый настоящий FC-SAN. Фиксируем по горячим следам.

Железо и схема

Выбор пал на двухпортовый HBA QLogic QLA2342 - на тот момент одна из рабочих лошадей в сегменте. По два HBA на сервер: один в основную фабрику, второй - в резервную. Коммутатор - Brocade 3800, шестнадцать портов, всё что нужно для небольшой установки. Дисковый массив у клиента уже стоял - IBM FAStT, его и подключали.

Схема до боли простая на бумаге:

Сервер A                Сервер B
 HBA0  HBA1            HBA0  HBA1
   |     |               |     |
   |   Brocade SW-A    Brocade SW-B  |
   |_____|_______________|_____|
              |       |
           FAStT (два контроллера)

Два коммутатора, два контроллера массива - всё задублировано. Multipath на серверах должен был всё это склеить в одно прозрачное устройство. «Должен был» - потому что до этого мы с FC в таком масштабе не работали.

Где началось веселье

Firmware на HBA. Первое, что выяснилось при подключении: один из четырёх HBA отказывался подниматься на коммутаторе. Симптом - порт не инициализируется, лампочка мигает не в том ритме. Оказалось, что на карте стоит firmware версии 3.02, а коммутатор Brocade ожидает как минимум 3.10 на устройстве с таким WWPN-форматом. Нигде в документации это явно не написано - узнали из firmware release notes QLogic, которые нашли только со второй попытки поиска. Обновили все четыре карты до 3.20 сразу, чтобы не возвращаться.

Зонирование. Brocade зонируется по WWPN - это гибко, но требует внимания. Мы сделали по зоне на каждую пару «HBA сервера - порт массива», итого восемь зон. На первый взгляд избыточно, но это исключает ситуацию когда один сервер случайно видит LUN другого. Ошибка при создании зоны - опечатка в одном символе WWPN - привела к тому, что сервер B вообще не видел массив. Минут двадцать ушло на то, чтобы найти опечатку глазами в шестнадцатеричной строке. После этого завели привычку: WWPN копируем только из вывода switchshow, никакого ручного набора.

LUN-маппинг на FAStT. IBM Storage Manager для FAStT - отдельный артефакт. Интерфейс не интуитивный, понятие «хост» в нём надо создать вручную и привязать к WWPN. Мы создали хосты корректно, но перепутали порядок привязки контроллеров к портам. В итоге Сервер A ходил за данными через «неродной» контроллер, производительность была посредственной. Исправили после того, как прогнали тесты и увидели асимметрию.

Multipath. На серверах - Windows Server 2003, использовали MPIO с DSM от IBM (Device Specific Module, поставляется с FAStT). DSM нужен именно под конкретный массив - универсальный Microsoft MPIO один, без DSM, нормально с FAStT не работает. После установки правильного DSM multipath поднялся, оба пути увидел, переключение при отключении кабеля прошло без паники. Это был приятный момент - просто вытащил SFP-трансивер из одного порта и посмотрел, как система продолжает работать.

Что в итоге

Массив появился в системе как нормальный диск, база данных переехала на него без пересборки - просто сменили путь к файлам данных. I/O-нагрузка распределилась по двум путям, узкое место с дисковой подсистемой ушло.

Из наблюдений, которые стоит записать. Первое - firmware везде надо проверять до монтажа в стойку, а не когда уже всё подключено и клиент смотрит на часы. Второе - WWPN руками не набирать вообще никогда. Третье - DSM под конкретный массив обязателен, не экономьте время на поиске правильного пакета. Четвёртое - зонирование лучше сделать чуть подробнее, чем потом разбираться почему сервер видит чужой LUN.

FC-SAN как технология работает именно так, как обещает - быстро и надёжно. Но порог входа по знаниям выше, чем кажется по рекламным материалам. Каждый уровень стека - коммутатор, HBA, массив, multipath - имеет свои версии, свои совместимости и свои сюрпризы. Для клиентов, где мы ведём управляемую инфраструктуру, такие вещи теперь проходим через чеклист ещё на этапе подбора железа. На этот раз чеклист формировали прямо по ходу.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.