Как установить и настроить службу iSCSI на сервере FreeBSD


Небольшая статья по установке iscsi initiator на FreeBSD
Перевод: Сгибнев Михаил

Q. Как я могу установить и настроить службу iSCSI на сервере FreeBSD?

A. FreeBSD 7.x полностью поддерживает iSCSI. Старые версии, такие как FreeBSD 6.3 требуют обратного портирования для поддержки iSCSI. Следущие инструкции приведены для настройки iSCSI только под FreeBSD 7.0.
FreeBSD iscsi_initiator driver
iscsi_initiator в ядре FreeBSD реализует страндарт сетевого протокола Internet SCSI (iSCSI), взаимодействует с пользовательским окружением iscontrol и обеспечивает доступ к удаленным виртуальным SCSI устройствам.
Компилирование драйвера
Обратите внимание на то, что FreeBSD 7.x поставляется с уже скомпилированным драйвером. Вы можете пропустить этот шаг, если драйвер /boot/kernel/iscsi_initiator.ko уже присутствует в вашей системе.

Для компиляции ядра с драйвером, выполните следущее:

# cd /usr/src/sys/i386/conf
# cp GENERIC ISCSIKERNEL
# vi ISCSIKERNEL
Вставьте строку:

device iscsi_initiator
Сохраните и закройте файл конфигурации. Соберите ядро:

# cd /usr/src
# make buildkernel KERNCONF=ISCSIKERNEL
Установите ядро:

# make installkernel KERNCONF=ISCSIKERNEL
Перезагрузите систему:

# reboot
Установка драйвера iSCSI в FreeBSD
Нам необходим драйвер ядра FreeBSD для протокола iSCSI, который называется /boot/kernel/iscsi_initiator.ko. Загрузите его можно с правами пользователя root следующей командой:

# kldload -v iscsi_initiator.ko
Вывод:

Loaded iscsi_initiator.ko, id=6
Для загрузки драйвера во время начальной загрузки, поместите слудующую строку в /boot/loader.conf:

# vi /boot/loader.conf

# Beginning of the iSCSI block added by Vivek
iscsi_initiator_load="YES"
# End of the block added by Vivek
Сохраните и закройте файл.
Команда iscontrol для подключения, предоставления и контроля сессии iSCSI initiator.
Теперь нам необходимо использовать команду iscontrol. Сперва просмотрим сессии:

# iscontrol -d targetaddress=iSCSI-SERVER-IP-ADDRESS initiatorname=nxl
# iscontrol -v -d targetaddress=192.168.1.100 initiatorname=nxl
Пожалуйста, запишите список доступных targetnames/targetadresses. Как только будет известно targetname, отредактируйте файл /etc/iscsi.conf:

# vi /etc/iscsi.conf
Укажите директивы подобным образом:

officeiscsi {
authmethod = CHAP
chapIName = YOUR-ISCSI-USERNAME
chapSecret = YOUR-ISCSI-PASSWORD
initiatorname = nxl
TargetName = iqn.XYZZZZZZZZZZZZZ # whatever "iscontrol -v -d " gives you
TargetAddress = 192.168.1.100:3260,1 # your iscsi server IP
}
Сохраните и закройте файл.

Где:
officeiscsi { : Начало конфигурации iSCSI.
authmethod : Установить в качестве метода аутентификации chap
chapIName : Имя
chapSecret : Пароль
initiatorname : Если не указано другое, то iqn.2005-01.il.ac.huji.cs:<hostname>
TargetName : Имя, под которым будет изветен target. Не путайте его с target address, который назначается администратором или через поиск устройств.
TargetAddress : Имеет вид domainname[:port][,portal-group-tag] согласно RFC: domainname может быть определен как имя DNS, адрес IPv4 в десятичном представлении или IPv6 адрес, как указано в [RFC2732].
} : Конец конфигурации
Старт сессии iSCSI
Следущие команды читают опции из /etc/iscsi.conf, используя targetaddress в блоке, называемом officeiscsi, и запускают сессию iscsi.

# iscontrol -c /etc/iscsi.conf -n officeiscsi
Как только вы выполните команду iscontrol, должно создаться новое устройство в каталоге /dev. Для проверки выполним команду dmesg:

# dmesg
Форматируем диск iSCSI
Запустим sysinstall для форматирования обнаруженного устройства iSCSI:

# sysinstall
Выбираем Custom > 3 Partition > Выбираем устройство iSCSI по имени da1. После форматирования вводим:

# mkdir /iscsi
# mount /dev/da1s1 /iscsi
Возможно вам понадобится обновить файл /etc/fstab:

/dev/ad1s1 /iscsi ufs rw 3 3

Обновлено: 12.03.2015