Создаем своими руками Fiber Channel Target

Товарищ Virus, подаривший нам статьи про отказоустойчивый iSCSI-таргет и про установку ESX4i на офисных компах, снова на связи.

Как сделать Linux FC-target из компа, кучи SATA-дисков и FC-карты QLogic?

Что это нам дает:

  1. Возможность дешево получить дисковое место, подключаемое по Fibre Channel (вы возможно слышали о тормозах из-за latency при работе по iscsi?)
  2. Полное управление возможностями без дополнительных лицензий (опять же, возможно, слышали о Flashcache?)
  3. Полный контроль над ошибками и сбоями (а знали ли что mdadm умеет сам проверять состояние рейда и присылать письма в электронку если какой-то диск поломался?)
  4. Возможность подкрутить параметры и получить быстрый ребилд и лишние проценты производительности (Write-intent bitmap или stripe_cache_size?)

Что нам потребуется:

  1. Компьютер с PCIe 4,8 или 16х, желательно более 4ГБ ОЗУ и процессор новее, чем 2007 года выпуска (все же Gentoo будет компилировать свои кусочки).
  2. Карточка FC фирмы QLogic: 2400/2500/2600/8100/8300 (якобы с другими не работает, но я запускал на 2432. Список совместимых – http://linux-iscsi.org/wiki/Fibre_Channel#Hardware_support).
  3. Кроме дисков в RAID, нужен будет ещё диск под систему, все попытки запускать backstore на файлах заканчивались у меня зависаниями.

Первым делом необходимо установить ОС (в моем случае Gentoo, но технически можно любую – пропадет удобство сборки и обновления – из RPM/YUM не работает). Тут все банально, следует лишь учесть что ядро стоит брать самое новое (например, ловил глюки в TCM на версии 3.8.х которых не стало при переходе на 3.9-rc), а само ПО управления из GIT.

После установки нужно сконфигурировать ядро для поддержки Generic Target Core Mod (TCM). Я брал sys-kernel/Gentoo-sources версии 3.9.4 и настраивал следующим образом(Device Drivers / Generic Target Core Mod (TCM) and ConfigFS Infrastructure):clip_image001[4]
Если у вас меньше строчек в этой меню – вы что-то забыли активировать.

Наиболее вероятно, что нет строки TCM_FC и не активирован драйвер HBA QLogic – (что приводит к невозможности работы с FC и ошибкам при настройке) искать это тут (Device Drivers / SCSI device support / SCSI low-level drivers):clip_image003[4]

Собственно на этом с ядром все, собираем и перезагружаемся в него (genkernel all&&reboot).

После этого в файле /etc/modprobe.d/qla2xxx.conf необходимо указать что адаптер не должен инициализироваться в режиме инициатора:

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

RAID-массив у меня уже есть, нужно только к нему приделать bitmap:

и видим что все получилось:

добавим в автозапуск настройки (файл /etc/local.d/settings.start):

готово, теперь у нас отличный набор безумно дешевых SATA-дисков доступен, как RAID5, но пока только изнутри системы.

запускаем ПО:

видим что инициализация прошла успешно (выделил болдом самое важное место):

Отлично, давайте настроим карту:

С другим WWN карта создать вам не даст, это не Ethernet:

Создаем хранилище:

Создаем LUN0:

Добавляем доступ с инициаторов (не забудьте прописать зоны в FC-свитчах!):

Смотрим, что получилось:

сохраняем настройки:

Собственно все, у вас в свойствах FC адаптера должен появится таргет с похожим именем:

Не забудьте проверить:

  1. На свитче настроены zone, это самая частая ошибка.
  2. Target прописан в автостарте и вообще запускается.
  3. Установлен пакет с firmware (sys-block/qla-fc-firmware)
  4. FC-адаптер на таргете виден в lspci, очень часто PCIe выпадывают из слота. (выполнить lspci | grep ibre ): 02:00.0 Fibre Channel: QLogic Corp. ISP2432-based 4Gb Fibre Channel to PCI Express HBA (rev 02).
  5. FC адаптер на esxi установился, некоторые требуют установки extension.

Далее можно использовать устройство в VMware, но для оптимального результата стоит отключить ускорение (конечно если у вас нет других СХД, поддерживающих эту фичу – посмотреть можно в storage, колонка «hardware acceleration») иначе ESXi будет при каждой операции его пытаться использовать и тормозить.

clip_image005[4]

9 thoughts on “Создаем своими руками Fiber Channel Target”

  1. Было бы очень интересно почитать об этом же в разрезе использования технологии
    Fibre Channel over Ethernet.

  2. Здравствуйте.
    А cкорость работы Вы с таким таргетом случайно не тестировали?
    Т.е. интересна скорость чтения/записи самого raid в сервере и скорость чтения/записи таргета этого же raid оver FС.

  3. я так понимаю вас интересуют накладные расходы? их полноценно не тестировали.
    однако эта инсталляция всю полосу FC забивала, когда данные лказывались на ssd кэше.

  4. Здравствуйте, почтеннейшие.

    Если имели опыт создания Shared Storage (общих LUN-ов на несколько узлов в кластере) через targetcli, то подскажите, что нужно “подкрутить” в свойствах LUN-а, чтобы не было проблем с его доступностью сразу с нескольких узлов кластера.

  5. Пока LUN, полученный из LIO-таргета захвачен одним инициатором – вроде как всё тихо-спокойно. Как только отдаём этот LUN второму, третьему и т.д. инициатору, все инициаторы начинают сходит с ума (у инициаторов поочерёдно отваливается/появляется не только этот LUN, но и другие). Как я понимаю, проблема в конкурентном доступе к LUN-у, и, как я понимаю, проблема связана с Persistent Reservation. Так вот вопрос в том, какие дополнительные шаги требуются при конфигурации LUN-а, если его планируется использовать в мульти-хостовых подключениях, например в качестве стораджа под CSV в кластере Hyper-V.

  6. Вопрос не про сторону Hyper-V. Там всё в порядке. Подключение выполнялось к действующему двух-узловому кластеру, где другие тома CSV (с HP 3PAR/MSA) подключены и работают без вопросов. После этого была попытка подключить LUN уже к кластеру oVirt из трёх узлов CentOS 7, и там с этим LUN-ом наблюдалась точно такая же картина. Очевидно, что не хватает каких-то настроек на стороне таргета, которые позволяли бы использовать LUN в качестве Shared Storage

  7. Боюсь что вопрос именно про сторону клиента.
    Если вы конечно не подняли lio на чемто древнем типа 7го центоса.
    Судя по документации все должно работать у вас.
    Ps: VMware судя по документации эти механизмы не использует, переходите на неё)))

Leave a Reply

Your email address will not be published. Required fields are marked *