Более приятно конечно иметь полнофункциональное устройство вроде Dell/EMC, но увы не всегда мы можем позволить себе подобное оборудование. Поэтому в очередной раз в ход пускается бюджетное решение iSCSI-taget на Linux-сервере.
1. Сборка iSCSI-target
Обязательно обновляем установленные пакеты и перезапускам систему. В данному случае важно соответствие версий установленного ядра и его исходников.
[root@localhost ~]# yum update [root@localhost ~]# reboot
Устанавливаем необходимые для сборки пакеты
yum install make gcc kernel-devel patch
Скачиваем последнюю версию исходников с http://sourceforge.net/projects/iscsitarget/files/
На момент написание статьи актуальная версия 1.4.20.2
[root@localhost ~]# wget http://downloads.sourceforge.net/project/iscsitarget/ iscsitarget/1.4.20.2/iscsitarget-1.4.20.2.tar.gz
Распаковываем и переходим в каталог с исходниками.
[root@localhost ~]# tar vxf iscsitarget-1.4.20.2.tar.gz [root@localhost ~]# cd iscsitarget-1.4.20.2
Собираем и устанавливаем
[root@localhost iscsitarget-1.4.20.2]# make [root@localhost iscsitarget-1.4.20.2]# make install
2. Настройка iSCSI-target
Здесь можно рассмотреть два варианта настройки: данные находятся в некотором файле и данные находятся на отдельном диске или разделе.
Создаем пустой файл для размещения раздела iSCSI
[root@localhost data]# dd if=/dev/zero of=/data/Lun0.img bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 4.04374 seconds, 266 MB/s
Открываем для редактирования /etc/iet/ietd.conf и добавляем туда следующие строчки:
# Согласно стандартам iSCSI тагет должен иметь уникальное квалифицированное # iSCSI-имя ("iSCSI Qualified Name") следующего формата: # iqn.yyyy-mm.<имя домена в обратном порядке>:<идентификатор раздела> # Если данные находятся в файле Target iqn.2010-09.com.domain:storage.disk1 Lun 0 Path=/data/Lun0.img,Type=fileio # Если данные расположены на диске, LVM или RAID Target iqn.2010-09.com.domain:storage.disk2 Lun 0 Path=/dev/sdb,Type=blockio
Если необходимо использовать CHAP аутентификацию добавляем после каждого тагета следующие строки
# Согласно стандартам пароль должен быть не менее 12 символов. IncomingUser user 123456123456 OutgoingUser user 123456123456
Остальные параметры не плохо работают оставленные по-умолчанию, однако их можно подредактировать для совместимости с некоторыми типами инициаторов и увеличения производительности.
Открываем для редактирования файл /etc/iet/initiators.allow и задаем список доступа к тагетам.
# Формат записи <IQN тагета> <Список IP адресов или имен инициаторов через запятую> # На время отладки оставляем ALL ALL # Доступ ко всем тагетам со всех инициаторов
Добавляем сервис iscsi-target в автозагругзку и запускаем
[root@localhost iet]# chkconfig --add iscsi-target [root@localhost iet]# chkconfig iscsi-target on [root@localhost iet]# service iscsi-target start
Проверяем доступные разделы:
[root@localhost iet]# cat /proc/net/iet/volume tid:2 name:iqn.2010-09.com.domain:storage.disk2 lun:0 state:0 iotype:fileio iomode:wt blocks:159383552 blocksize:512 path:/dev/sdb tid:1 name:iqn.2010-09.com.domain:storage.disk1 lun:0 state:0 iotype:fileio iomode:wt blocks:2097152 blocksize:512 path:/data/Lun0.img
Таким же образом можно проверить и активные подключения:
[root@localhost iet]# cat /proc/net/iet/session tid:2 name:iqn.2010-09.com.domain:storage.disk2 sid:2533274811171328 initiator:iqn.2010-09.com.domain:9ea395cf cid:0 ip:192.168.1.55 state:active hd:none dd:none sid:2251799834460672 initiator:iqn.2010-09.com.domain:64d5e5ed cid:0 ip:192.168.1.50 state:active hd:none dd:none
9 Коммент. : “Установка iSCSI-target на CentOS”
Спасибо!
а чем это лучше стандартного open-iscsi?
и тем-более, чем это лучше пересобранного OFED’ом open-iscsi с поддержкой протокола iSER?
Ни чем не лучше. На мой взгляд – это один из вариантов реализации iscsi-target на CentOS.
Пришел я к нему крайне случайно – вышла из строя дисковая полка EMC CLARiiON AX 150i ее нужно было на время чем-то заменить. Точно помню в FreeBsd был такой порт iscsi-target, значит и в CentOS должно быть что-то похожее. yum list | grep iscsi – пусто. Значит нужно собирать )
После этого месяца через 3 наткнулся на пакет scsi-target-utils… Но как говориться было уже поздно.
@nr
Поумничать решил, речь не шла о том, что лучше, а что хуже. Ну напиши статью как пересобрать «OFED’ом open-iscsi с поддержкой протокола iSER?» Я думаю, что у тех, кто так понтуется не в тему, кишка тонка изложить хотя бы что-то реально полезное. Ещё скажи, что ты не будешь ничего разжёвывать, потому, что ты такой умный.
Спасибо за статью.
Добрый день.
Спасибо за статью, но есть один вопрос:
предположим у нас уже запущен iscsi-target с несколькими лунами, но мы добавляем еще один. для применения настроек необходимо перезапустить iscsi-target, но при перезапуске оборвется соединение с уже подключенными iscsi-клиентами. Как перезапустить iscsi-target, чтобы не обрывать уже существующие подключения?
Заранее спасибо за ответ.
А для этого есть ietadm. Например, у нас есть уже четыре таргета, запускаем пятый:
adm@server~$ ietadm –op new –tid=5 –params Name=iqn.
adm@server~$ ietadm –op new –tid=5 –lun=0 –params Path=
Ой. Сурово тут с командной строкой движок обходится. Следует читать: (перед op, tid, params, lun – двойные дефисы)
adm@server~$ ietadm –op new –tid=5 –params Name=имя-таргета
adm@server~$ ietadm –op new –tid=5 –lun=0 –params Path=путь-к-файлу
Олег, привет.
Для каких целей у тебя используется iSCSI-target на CentOS? Что ты на нем хранишь? В чем удобство использования именно iSCSI?
Заранее спасибо за ответ.