ISCSI

Материал из wiki.nntc.nnov.ru
Версия от 20:57, 17 февраля 2013; Vovan (обсуждение | вклад) (Для чего это всё)
Перейти к навигации Перейти к поиску

Речь в статье идет о Ubuntu 12.04 LTS

Немного теории

Существует два метода доступа к данным, находящимся на другом компьютере: файловый (когда у удалённого компьютера запрашивают файл) и блочный — когда у удалённого компьютера запрашивают блоки с дискового носителя. В этом случае запрашивающая сторона сама себе делает на блочном устройстве файловую систему, а сервер, отдающий блочное устройство, знать не знает про файловые системы на нём.

Первый метод называют NAS (network attached storage), а второй — SAN (storage area network).

Одним из протоколов доступа к блочным устройствам является iSCSI.

iSCSI — это способ соединения устройств хранения данных через сеть с использованием протокола TCP/IP.

Устройства iSCSI - это дисковые накопители, накопители на магнитных лентах и другие устройства хранения, расположенные на сетевом компьютере, к которому можно подключиться.

Термины

В мире SCSI приняты следующие термины:

target — тот, кто предоставляет блочное устройство. Аналог - сервер.

initiator — клиент, тот, кто пользуется блочным устройством. Аналог клиента.

WWID — уникальный идентификатор устройства, его имя. Аналог DNS-имени.

LUN — номер «кусочка» диска, к которому идёт обращение. Ближайший аналог — раздел на жёстком диске.

Конечно, не считая сеть, основным требованием для внедрения iSCSI является организация iSCSI-сервера.

Первоисточник тут

Установка target (т.е. сервера)

aptitude install iscsitarget iscsitarget-source iscsitarget-dkms

Настройка target (т.е. сервера)

nano /etc/iet/ietd.conf

Проверяем наличие настроенных параметров (остальное - по умолчанию):

Target iqn.2101-04.ru.nnov.nntc.repo:storage.disk1
        IncomingUser storage qwertyytrewq
        OutgoingUser storage qwertyytrewq
        Lun 0 Path=/dev/storage/disk1,Type=fileio

Далее..

echo "ISCSITARGET_ENABLE=true" > /etc/default/iscsitarget
invoke-rc.d iscsitarget restart

Установка initiatior (т.е. клиента)

aptitude install open-iscsi

Настройка initiatior (т.е. клиента)

Открыть файл:

nano /etc/iscsi/iscsid.conf

Проверить настройку строки и переключить ей вот так (это для тото, чтобы сервис стартовал автоматически):

node.startup = automatic

Для проверки какие блочные устройства на target-е доступны можно выполнить команду

iscsiadm -m discovery -t st -p 192.168.10.250

или

iscsiadm -m discovery -t sendtargets -p 192.168.10.250 

где 192.168.10.250 - это адрес target-сервера

В результате выполнения этой команды создадутся файлы настроек в

/etc/iscsi/nodes/iqn(тот самый, что настраивали на target-е, 
например, iqn.2101-04.ru.nnov.nntc.repo:storage.disk1)

Т.е., например на repo-сервере было много виртуальных ip-адресов, соответственно в данной директории создалось столько одинаковых конфигурационных файлов для сетевых блочных устройств, сколько и ip-адресов. Это не совсем то, что нужно

Поэтому переходим в директорию

/etc/iscsi/nodes/iqn

И удаляем ненужные конфигурации (там в имени есть ip-адрес, поэтому можно прибить ненужные исходя из здравого смысла...)

Затем открываем файл

nano /etc/iscsi/nodes/нужный_iqn/нужная_конфигурация/default

Находим там строчку

node.session.auth.authmethod = чтототам...

Заменяем эту строчку на

node.session.auth.authmethod = CHAP
node.session.auth.username = user_in
node.session.auth.password = user_in_pwd
discovery.sendtargets.auth.username = user_out
discovery.sendtargets.auth.password = user_out_pwd
Внимание! последних четырёх строчек изначально в файле нет, поэтому именно заменяем 
найденную строчку на четыре других!

Рестартуем сервис

/etc/init.d/open-iscsi restart

Подключаемся

sudo iscsiadm -m node --login

Если нужно, то отключиться можно командой

sudo iscsiadm -m node --logout

Выполняем команду

fdisk -l

и наслаждаемся наличием новых устройств ;-)

Первоисточник раз

Первоисточник два