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

iSCSI-SAN без Fibre Channel: OpenFiler, гигабит и 400 МБ/с на практике

Клиент хочет SAN, но бюджет не тянет Fibre Channel. Строим iSCSI-хранилище на Linux с OpenFiler и выделенной гигабитной сетью - и смотрим что выходит.

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

iSCSI активно набирает популярность как бюджетная альтернатива FC-SAN; Microsoft iSCSI Initiator 2.0 вышел в 2005 и снял последний барьер для Windows-клиентов

Разговор начался предсказуемо. Клиент пришёл с задачей: база данных растёт, локальные диски уже не вариант, нужно что-то централизованное. Мы прикинули FC-SAN - примерно так, как это делали для другого клиента в феврале. Прикинули и услышали в ответ характерную паузу. Бюджет на Brocade и HBA-карты не закладывался. Разговор мог бы закончиться на этом, но мы решили посмотреть на iSCSI.

Почему iSCSI стал реальным вариантом

До недавнего времени iSCSI на Windows-клиенте был мероприятием на любителя - инициаторы были либо дорогими аппаратными картами, либо нестабильным软件. Microsoft iSCSI Initiator 2.0, вышедший в 2005 году, изменил расклад: бесплатный, работает поверх обычного сетевого адаптера, ставится на Windows Server 2003 без плясок. Это убрало основной барьер на клиентской стороне.

На стороне хранилища тоже появился нормальный инструмент - OpenFiler. Дистрибутив Linux, заточенный под NAS/SAN: веб-интерфейс для управления, поддержка iSCSI через Linux-SCSI target (tgt), LVM под томами. Не NetApp, конечно, но для задачи клиента - рабочий вариант.

Принципиальное отличие от FC: всё ходит по обычному Ethernet. Никаких HBA, никаких коммутаторов Brocade, никакого специального кабеля. Зато и разделять с рабочим трафиком нельзя - нужна выделенная сеть.

Архитектура стенда

Схема получилась простая. Отдельный сервер под OpenFiler - два SATA-диска в RAID 1 под ОС, четыре диска в RAID 5 под данные. Отдельный гигабитный коммутатор, в который воткнуты только сервер хранилища и серверы-клиенты - никакого другого трафика. Клиенты - два Windows Server 2003, Microsoft iSCSI Initiator 2.0, каждый с выделенным сетевым адаптером для iSCSI-трафика.

[Win SRV 1]---+
              |---[GbE switch (только iSCSI)]---[OpenFiler]
[Win SRV 2]---+

Выделенная сеть - не паранойя, а необходимость. iSCSI чувствителен к латентности и потерям пакетов. Если его пустить по той же сети, где ходит рабочий трафик, результаты будут непредсказуемыми. Отдельный коммутатор стоит в несколько раз дешевле FC-оборудования и решает проблему радикально.

Настройка и подводные камни

OpenFiler устанавливается как обычный Linux с графическим инсталлятором, после чего управление идёт через веб-интерфейс на 446 порту. Создать физический том, поверх него - volume group, из неё нарезать LUN под каждый клиент - всё через браузер. Концептуально понятно, если знаком с LVM.

Первый сюрприз пришёл с настройкой доступа. В OpenFiler авторизация iSCSI-инициаторов работает по IQN (iSCSI Qualified Name) - строка вида iqn.1991-05.com.microsoft:hostname. Нужно явно добавить каждый инициатор в список разрешённых для конкретного LUN. Мы поначалу упустили этот шаг и минут двадцать смотрели на то, почему клиент «видит» target, но не может подключиться. Читаем документацию - и сразу находим.

Второй момент - jumbo frames. Теоретически MTU 9000 должен дать прирост на больших блоках. Включили на коммутаторе и на всех интерфейсах - и поймали нестабильность: периодические обрывы сессии. Откатились к стандартному MTU 1500, стабильность вернулась. Возможно, дело в конкретном коммутаторе или в версии драйверов, разбираться пока не стали - задача была запустить, а не оптимизировать до предела.

Третье - тонкая настройка таймаутов на инициаторе. Дефолтные значения Microsoft iSCSI Initiator при кратковременной потере связи с target ведут себя не очень приятно: сессия может «зависнуть» прежде чем переподключиться. Подкрутили LoginTimeout и MaxRequestHoldTime через реестр - стало лучше.

Что получилось в цифрах

Тестировали последовательное чтение большими блоками - это основная нагрузка для базы данных клиента. Результат в районе 115 МБ/с - то есть практически полная полоса гигабитного линка. Для сравнения: тот же тест на локальных SATA-дисках давал около 80-90 МБ/с. Выигрыш не в скорости iSCSI сам по себе, а в том, что RAID 5 из четырёх шпинделей читает параллельно и не является узким местом.

Случайный I/O - другая история. Здесь latency сети ощущается, и результаты скромнее, чем у FC. Для OLAP-нагрузки и последовательного сканирования таблиц - нормально. Для базы с интенсивными случайными операциями мы бы смотрели на FC или на SSD-кеш, но у клиента именно аналитическая нагрузка, так что попали в точку.

Итог

iSCSI на OpenFiler - рабочий вариант для задач, где FC избыточен по цене, а производительности гигабита хватает. Основные условия: выделенная сеть без постороннего трафика, понимание ограничений по случайному I/O, и аккуратная настройка доступа через IQN.

Клиент доволен - хранилище работает, база переехала, бюджет не разрушен. Мы добавили этот стенд в список инфраструктур, которые ведём в рамках сопровождения серверной инфраструктуры. Посмотрим как поведёт себя под реальной нагрузкой через несколько недель - пока инсталляция новая, выводов о надёжности делать не спешим.

Контакт

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

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