Начиная с версии 8 клиентская часть (iSCSI initiator) уже включена в generic-ядро.
Серверная часть (iSCSI target) ставится из портов. Есть две версии — «iscsi-target» (/usr/ports/net/iscsi-target) — старая, портированная из NetBSD, и новая, «istgt»
(/usr/ports/net/istgt/), написанная для FreeBSD и используемая по-умолчанию во FreeNAS. Её и будем использовать.

1. Ставим из портов:
cd /usr/ports/net/istgt/
make install clean

2. Конфигурим:
/usr/local/etc/istgt/auth.conf

[AuthGroup1]
Comment "Auth Group1"
# User Secret MutualUser MutualSecret (Mutual is optional)
# chap secret length is from 12 to 16 (for MS initiator)
Auth "user" "password"

/usr/local/etc/istgt/istgt.conf

[Global]
NodeBase "iqn.2011-09.ru.domain.hostname.istgt"
MediaDirectory /var/istgt
[UnitControl]
AuthGroup AuthGroup1

[PortalGroup1]
# собственный адрес
Portal DA1 192.168.0.1:3260

[InitiatorGroup1]
# кто будет приходить
InitiatorName "ALL"
Netmask 192.168.0.0/24

[LogicalUnit1]
TargetName disk1
TargetAlias "Data Disk1"
UnitType Disk
AuthGroup AuthGroup1
AuthMethod Auto
AuthGroup AuthGroup1
LUN0 Storage /var/iscsi/idisk1 100MB

/usr/local/etc/istgt/istgtcontrol.conf

[Global]
Timeout 60
AuthMethod CHAP Mutual
Auth "user" "password"
Host localhost
Port 3261
TargetName "iqn.example.ru:disk1"
Lun 0
Flags "ro"
Size "auto"

3. Запускаем сервер
mkdir -p /var/iscsi
dd if=/dev/zero of=/var/iscsi/idisk1 bs=`expr 1024 \* 1024` count=100
echo ‘istgt_enable=»YES»‘ >>/etc/rc.conf
/usr/local/etc/rc.d/istgt start

На клиенте:
1. Загружаем драйвер
kldload /boot/kernel/iscsi_initiator.ko
echo ‘iscsi_initiator_load=»YES»‘ >>/boot/loader.conf

2. Ищем устройство
iscontrol -v -d targetaddress=192.168.0.1 initiatorname=`hostname`

Пишем две последние строчки в конфиг /etc/iscsi.conf

idisk1 {
authmethod = CHAP
chapIName = user
chapSecret = password
initiatorname = initiator_hostname.domain.ru
TargetName=iqn.2011-09.ru.domain.hostname.istgt:disk1
TargetAddress=192.168.0.1:3260,1
}

3. Подключаемся к новому устройству:
iscontrol -c /etc/iscsi.conf -n idisk1

Теперь есть устройство /dev/da0, форматируем и используем по назначению:
bsdlabel -w -B /dev/da0
newfs -U -L idisk1 /dev/da0a
mount /dev/ufs/idisk1 /iscsi/

Клиент по линуксом

Под linux надо поставить пакет open-iscsi. Поправить его конфиг (/etc/iscsi/iscsid.conf) — раскомментировать строки:

node.session.auth.authmethod = CHAP
node.session.auth.username = user
node.session.auth.password = password

И перезапустить демона:

/etc/init.d/open-iscsi restart

Затем ищем target:

iscsiadm -m discovery -t sendtargets -p 192.168.0.1

И подключаемся к тому, что нашлось:

iscsiadm -m node -l -T iqn.2011-09.ru.domain.hostname.istgt:disk1

Смотрим результат:
iscsiadm -m session -P3

В самом конце будет имя устройства. Далее поступаем с ним обычным образом:

fdisk /dev/sda
mkfs -t ext4 /dev/sda
mount /dev/sda /opt/data/

 

Добавить комментарий

Set your Twitter account name in your settings to use the TwitterBar Section.