ISCSI: различия между версиями

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(Установка target (т.е. сервера))
(Речь в статье идет о Ubuntu 12.04 LTS)
 
(не показаны 24 промежуточные версии этого же участника)
Строка 1: Строка 1:
==Для чего это всё==
+
=Речь в статье идет о Ubuntu 12.04 LTS=
 +
 
 +
Сразу, чтобы заинтриговать: клиентами для target-сервера могут выступать как Linux-машины, так и Windows. В последние версии Windows iSCSI-клиенты вшиты из коробки.
 +
 
 +
Вот тут некто демонстрирует работу Win-системы с Ubuntu-target-сервером: http://www.youtube.com/watch?feature=player_embedded&v=WhWI2rR-P7g#!
 +
 
 +
Вывод: это же кошмар, что можно делать, осилив эту технологию!!! ;-)
 +
 
 +
==Немного теории==
 
Существует два метода доступа к данным, находящимся на другом компьютере: файловый (когда у удалённого компьютера запрашивают файл) и блочный — когда у удалённого компьютера запрашивают блоки с дискового носителя. В этом случае запрашивающая сторона сама себе делает на блочном устройстве файловую систему, а сервер, отдающий блочное устройство, знать не знает про файловые системы на нём.  
 
Существует два метода доступа к данным, находящимся на другом компьютере: файловый (когда у удалённого компьютера запрашивают файл) и блочный — когда у удалённого компьютера запрашивают блоки с дискового носителя. В этом случае запрашивающая сторона сама себе делает на блочном устройстве файловую систему, а сервер, отдающий блочное устройство, знать не знает про файловые системы на нём.  
 +
 
Первый метод называют '''NAS (network attached storage)''', а второй — '''SAN (storage area network)'''.
 
Первый метод называют '''NAS (network attached storage)''', а второй — '''SAN (storage area network)'''.
  
 
Одним из протоколов доступа к блочным устройствам является '''iSCSI'''.
 
Одним из протоколов доступа к блочным устройствам является '''iSCSI'''.
 +
 
'''iSCSI''' — это способ соединения устройств хранения данных через сеть с использованием протокола '''TCP/IP'''.
 
'''iSCSI''' — это способ соединения устройств хранения данных через сеть с использованием протокола '''TCP/IP'''.
'''
 
Устройства iSCSI''' - это дисковые накопители, накопители на магнитных лентах и другие устройства хранения, расположенные на сетевом компьютере, к которому можно подключиться.
 
  
 +
'''Устройства iSCSI''' - это дисковые накопители, накопители на магнитных лентах и другие устройства хранения, расположенные на сетевом компьютере, к которому можно подключиться.
 +
 +
==Термины==
 
В мире SCSI приняты следующие термины:
 
В мире SCSI приняты следующие термины:
  
Строка 21: Строка 32:
  
 
[http://www.bubenvruki.ru/index.php/windows/41-nastrojka-iscsi-target-v-ubuntu-1204-i-initiator-v-windows-server-2008 Первоисточник тут]
 
[http://www.bubenvruki.ru/index.php/windows/41-nastrojka-iscsi-target-v-ubuntu-1204-i-initiator-v-windows-server-2008 Первоисточник тут]
 +
 +
==Решаемая задача==
 +
 +
Отправить блочное устройство по сети на другой сервер, чтобы тот "принял" его за своё блочное устройство и начал с ним работать.
  
 
==Установка target (т.е. сервера)==
 
==Установка target (т.е. сервера)==
Строка 26: Строка 41:
 
  aptitude install iscsitarget iscsitarget-source iscsitarget-dkms
 
  aptitude install iscsitarget iscsitarget-source iscsitarget-dkms
  
 +
==Настройка target (т.е. сервера)==
 
  nano /etc/iet/ietd.conf
 
  nano /etc/iet/ietd.conf
  
Строка 31: Строка 47:
 
<pre>
 
<pre>
 
Target iqn.2101-04.ru.nnov.nntc.repo:storage.disk1
 
Target iqn.2101-04.ru.nnov.nntc.repo:storage.disk1
         IncomingUser storage qwertyytrewq
+
         IncomingUser user_in user_in_pwd
         OutgoingUser storage qwertyytrewq
+
         OutgoingUser user_out user_out_pwd
 
         Lun 0 Path=/dev/storage/disk1,Type=fileio
 
         Lun 0 Path=/dev/storage/disk1,Type=fileio
 
</pre>
 
</pre>
  
Далее..
+
вот '''iqn.2101-04.ru.nnov.nntc.repo:storage.disk1''' --- это '''WWID'''
 +
 
 +
Далее...
  
 
  echo "ISCSITARGET_ENABLE=true" > /etc/default/iscsitarget
 
  echo "ISCSITARGET_ENABLE=true" > /etc/default/iscsitarget
 +
 +
Изначально там было написано ISCSITARGET_ENABLE=false
 +
 +
далее...
 +
 
  invoke-rc.d iscsitarget restart
 
  invoke-rc.d iscsitarget restart
  
 
==Установка initiatior (т.е. клиента)==
 
==Установка initiatior (т.е. клиента)==
  
  aptitude install open-iscsi-utils
+
  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/'''WWID'''
 +
Т.е., например на repo-сервере было много виртуальных ip-адресов, соответственно в данной директории создалось столько одинаковых директорий с конфигурационными файлами для сетевых блочных устройств, сколько и ip-адресов. Это не совсем то, что нужно.
 +
 
 +
Поэтому переходим в директорию
 +
/etc/iscsi/nodes/'''WWID'''
 +
и удаляем ненужные конфигурации (там в имени директории конфигурации есть ip-адрес, поэтому можно прибить ненужные исходя из здравого смысла...)
 +
 
 +
Затем открываем файл
 +
nano /etc/iscsi/nodes/нужный_WWID/нужная_конфигурация/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
 +
и наслаждаемся наличием новых устройств ;-)
  
 +
Ну дальше вы знаете...
  
 +
[https://help.ubuntu.com/11.10/serverguide/iscsi-initiator.html Первоисточник раз]
  
[http://www.bubenvruki.ru/index.php/windows/41-nastrojka-iscsi-target-v-ubuntu-1204-i-initiator-v-windows-server-2008 Ссылка 1]
+
[http://wi.cc.arhv.net/index.php/Kon:Settings:iSCSI Первоисточник два]

Текущая версия на 21:19, 17 февраля 2013

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

Сразу, чтобы заинтриговать: клиентами для target-сервера могут выступать как Linux-машины, так и Windows. В последние версии Windows iSCSI-клиенты вшиты из коробки.

Вот тут некто демонстрирует работу Win-системы с Ubuntu-target-сервером: http://www.youtube.com/watch?feature=player_embedded&v=WhWI2rR-P7g#!

Вывод: это же кошмар, что можно делать, осилив эту технологию!!! ;-)

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

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

Первый метод называют 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 user_in user_in_pwd
        OutgoingUser user_out user_out_pwd
        Lun 0 Path=/dev/storage/disk1,Type=fileio

вот iqn.2101-04.ru.nnov.nntc.repo:storage.disk1 --- это WWID

Далее...

echo "ISCSITARGET_ENABLE=true" > /etc/default/iscsitarget

Изначально там было написано ISCSITARGET_ENABLE=false

далее...

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/WWID

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

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

/etc/iscsi/nodes/WWID

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

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

nano /etc/iscsi/nodes/нужный_WWID/нужная_конфигурация/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

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

Ну дальше вы знаете...

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

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