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 - имеет свои версии, свои совместимости и свои сюрпризы. Для клиентов, где мы ведём управляемую инфраструктуру, такие вещи теперь проходим через чеклист ещё на этапе подбора железа. На этот раз чеклист формировали прямо по ходу.