ISCSI: различия между версиями
Vovan (обсуждение | вклад) (→Установка target (т.е. сервера)) |
Vovan (обсуждение | вклад) (→Речь в статье идет о Ubuntu 12.04 LTS) |
||
(не показано 25 промежуточных версий этого же участника) | |||
Строка 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''' - это дисковые накопители, накопители на магнитных лентах и другие устройства хранения, расположенные на сетевом компьютере, к которому можно подключиться. | ||
+ | |||
+ | ==Термины== | ||
В мире 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 | + | IncomingUser user_in user_in_pwd |
− | OutgoingUser | + | 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 | ||
==Установка initiatior (т.е. клиента)== | ==Установка initiatior (т.е. клиента)== | ||
− | aptitude install open-iscsi- | + | 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:// | + | [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
и наслаждаемся наличием новых устройств ;-)
Ну дальше вы знаете...