Настройка Openfiler в качестве Fibre Channel таргета

Для настройки Openfiler в качестве Fibre Channel таргета необходимо произвести нескоторые предварительные действия в панели управления и в консоли.

Предполагается, что в вашей версии openfiler используется scst версии 2. По крайней мере, это касается openfiler версии 2.99.1.

В данной статье будут рассмотрены методы администрирования как с помощью scstadmin, так и с помощью sysfs, являющимся основным инструментом управления scst. Команды для sysfs представлены не для всех шагов процесса настройки, но если они вам необходимы, то без труда разберетесь, используя документацию к scst.

В принципе, в большинстве своем, эта статья относится к scst, а не к openfiler, поэтому, информация, приведенная здесь, с небольшими изменениями может использоваться не только на rPath Linux, но и на других сборках Linux.

1. Включение сервисов

Для начала необходимо включить два сервиса: qla2x00tgt и scst. Находятся они в панели управления в разделе Services и называются SCST Target, FC Target. Необходимо их разрешить, а потом запустить.

Можно эту процедуру выполнить и через консоль:

chkconfig scst on
chkconfig qla2x00tgt on
service scst start
service qla2x00tgt start

Важно соблюсти указанную выше последовательность запуска.

2. Создание виртуальных дисков.

Создавать диски будем через WEB-интерфейс openfiler.

Создаем сначала физический раздел (physical volume) в пункте Volumes->Add Volume.

Далее создадим в пункте Volumes->Volume Groups группу разделов с произвольным именем, например, vg_esxi.

Затем создаем логический раздел с имененм vol_esxi в пункте Volumes->Manage Volumes с типом файловой системы iscsi/fiber channel.

Создаем устройство fibre channel которое указывает на созданный на предыдущем шаге логический раздел командой используя наши имена группы и логического диска:

Список доступных обработчиков (handlers) можно посмотреть командой scstadmin -list_handler

3. Поиск WWN ваших fibre channel карт

Найти WWN карты можно выполнив команды:

cat /sys/class/fc_host/host*/port_name

Эта команда выдаст список всех WWN в формате 0x21000024ff006dc9 (21:00:00:24:ff:00:6d:c9).

В дальнейшем, во всех командах необходимо использовать следующий формат записи WWN: 21:00:00:24:ff:00:6d:c9.

Возможно, потребуется записать эти номера.

4. Перевод порта в режим таргета.

Каждый порт, который предполагается использовать, необходимо перевести в режим таргета следующей командой:

scstadmin -enable_target WWN -driver qla2x00t

Пример:
scstadmin -enable_target 21:00:00:24:ff:00:6d:c9 -driver qla2x00t

5. Ограничение доступа.

scstadmin поддерживает только одну модель разграничения доступа к LUN - Initiator-oriented. Суть этой модели заключается в создании групп безопасности и включения в эту группу инициаторов, таргетов и LUN и разрешении доступа только между членами конкретной группы.

Если вам необходимо использовать другую модель безопасности - Target-oriented, то смело переходите к п.10

6. Создание группы.

При использовании модели безопасности Initiator-oriented необходимо создать для таргета одну или несколько групп безопасности, причем конкретный инициатор может находиться только в одной группе конкретного таргета.

Если необходимо использовать более глубокое разделение прав доступа, то необходимо использовать выходящее за рамки данной статьи зонирование в фабрике.

Создать группу можно следующими командами:

7. Добавление инициаторов в группу.

Для того, чтобы добавить серверы к группе, вам сначала необходимо узнать WWN карт этих серверов.

Добавить WWN сервера к группе можно следующими командами:

8. Добавление виртуальных дисков в LUN и группу.

Номера LUN должны быть уникальны только в пределах одной группы. Т.е. LUN 5 может существовать и привязан к абсолютно разным виртуальным дискам в разных группах, а также, в самом таргете (см. п.10). Например, при наличии у таргета 2-х групп безопасности, в системе могут существовать одновременно три LUN 0, три LUN 55, и т.п.

Хотя и пишется во всей литературе, что в группе первым LUN должен быть LUN 0, но практика показывает, что это не обязательно. Например, VMWare ESXi 5.0, 5.1, 5.5 нормально работают с ненулевыми LUNами входящими в группу, в которой нет LUN 0.
Но, повинуясь современной "моде" я напишу, что первый создаваемый LUN в группе должен иметь номер 0, хоть это и не обязательно :)

Добавить диск и LUN к группе можно следующими командами:

где DRIVE_NAME - имя диска, созданного в п.2

9. Сохранение конфигурации.

Конфигурацию можно сохранить командой scstadmin -write_config /etc/scst.conf. Сохранение конфигурации нужно производить по окончании внесений изменений в конфигурацию; в противном случае, после перезапуска сервисов изменения будут утеряны.

На этом, конфигурирование по модели Initiator-oriented можно завершить.

10. Настройка разграничения доступа по модели Target-oriented.

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

Соответственно, при использовании этого метода нет необходимости узнавать WWN инициаторов.

Суть этого метода заключается в привязке виртуального диска и LUN не к группе безопасности, а непосредственно к таргету. Насколько мне известно, scstadmin не предоставляет интерфейса для этой модели, поэтому, необходимо настраивать доступом непосредственно к sysfs.

Как я уже писал в п.8, первым создаваемым и обязательно существующим LUN должен быть LUN 0, но практика показывает, что это не обязательно. Например, VMWare ESXi 5.0, 5.1, 5.5 нормально работают с ненулевыми LUNами относящимися к таргету, в котором нет LUN 0.

Добавить диск и LUN к таргету можно следующими командами:

По окончании настройки необходимо сохранить изменения выполнив команду
scstadmin -write_config /etc/scst.conf

11. В качестве заключения.

В документации на scst указано, что он умеет работать одновременно с обоими моделями разграничения доступа, но на практике получается, что при одновременной настройке обоих моделей работает только модель Initiator-oriented. Правила заданные другой моделью не работают, и, судя по всему, игнорируются scst.

Крайне желательно, после внесения изменений и сохранения их в файле конфигурации еще раз проверить все, просмотрев этот файл командой cat /etc/scst.conf.

Хорошей практикой будет периодическое резервное копирование файла конфигурации /etc/scst.conf, а также, наличия резервной копии дефолтного файла конфигурации scst. Это необходимо, т.к. при некоторых, вполне корректных настройках в файле конфигурации, происходит падение и отказ от дальнейшего старта службы scst. Я думаю, что на эти грабли должен наступить каждый, чтобы понимать, чего нельзя делать и что за этим последует.

В этой заметке ничего не сказано про атрибуты, которые можно задавать при создании объектов, а также изменять в процессе работы. Эти вопросы возможно я освещу в следующих статьях касающихся тонкой настройки и тюнинга производительности scst.