Iscsi target linux настройка

Iscsi target linux настройка

Сам по себе iSCSI – это протокол передачи команд SCSI по IP сетям.

Ставим пакеты:
redhat: yum install scsi-target-utils
debian: apt-get install tgt

Теперь решаем, что будем шарить. Самое удобное – пользоваться виртуальным томом LVM – я взял описанный в прошлой статье. Убеждаемся что этот раздел отмонтирован.

Правим конфиг:
vi /etc/tgt/targets.conf
Там в конце прописываем следующее:

#после слова target — название нашей шары, составляется как (iqn.-.:)
# том, который будем шарить, может быть и файлом на диске
backing-store /dev/mapper/stripe_group-data_array
# IP клиента, которому будет видна шара (если не ставим ничего, будет видно всем желающим — крайне рисковано!)
initiator-address 10.0.0.31
# пользователь и пароль, тоже не обязательно
incominguser username password

Запускаем!
(в debian нету этого init скрипта, предлагается его нагуглить самостоятельно)
/etc/init.d/tgtd start
Проверяем работу:
tgtadm —mode target —op show
должны увидеть два экспорта – первый (LUN 0) создаётся системой, второй (LUN 1) – то, что мы только что настроили
если так и есть – всё отлично! Проверяем чтоб был открыт порт 3260 в iptables и переходим на клиентскую сторону.
Также если тестируем с файлом а не LVM, нужно убедиться что для файла прописан selinux контекст (или пихаем его в /var/lib/tgtd/ где контексты существуют)
Включаем наш сервис по умолчанию:
redhat: chkconfig tgtd on
debian: update-rc.d tgtd defaults

Настройка iSCSI initiator:

Тут всё не более сложно.
Для начала проверяем что мы можем достучаться до target’a – если telnet на порт 3260 ничего не даёт – устраняем ограничение в сети.
Теперь ставим софт
redhat: yum install iscsi-initiator-utils
debian: apt-get install open-iscsi

Если на сервере настроена аутентификация, правим конфиг:
vi /etc/iscsi/iscsid.conf
# раскоментируем
node.session.auth.authmethod = CHAP
# проставляем пользователя и пароль
node.session.auth.username = username
node.session.auth.password = password

теперь сканируем наш target сервер для обнаружения доступных дисков:
iscsiadm -m discovery -t sendtargets -p 10.0.0.30
должны увидеть:

Starting iscsid: Loading iSCSI transport class v2.0-870.
[ OK ]
10.0.0.30:3260,1 iqn.2011-07.world.server:target0

Отлично! Подключаемся к таргету:
iscsiadm -m node —login
Видим:

Читайте также:  Linux headers all deb

Logging in to [iface: default, target: iqn.2011-07.world.server:target0, portal: 10.0.0.30,3260]
Login to [iface: default, target: iqn.2011-07.world.server:target0, portal: 10.0.0.30,3260] successful.

Готово. Теперь у нас в системе появилось новое блочное устройство!
Проверим:
cat /proc/partitions
Видим новый диск /dev/sdb

major minor #blocks name
8 0 31457280 sda
8 1 512000 sda1
8 2 30944256 sda2
8 16 104857600 sdb

Включаем службу по умолчанию
redhat: chkconfig iscsid on
debian: прописываем node.startup = automatic в /etc/iscsi/iscsid.conf

Теперь делаем с новым диском то-же что и с обычным (создаём таблицу разделов, сами разделы с любыми файловыми системами, монтируем их).

Источник

Записки IT специалиста

Протокол iSCSI получил широкое распространение как простой и недорогой способ организации сетей хранения данных (SAN). Ранее мы рассказывали, как организовать iSCSI-хранилище на базе серверных операционных систем Windows, незаслуженно обделив вниманием свободные ОС. Поэтому сегодня мы решили устранить этот пробел и рассмотреть настройку iSCSI-хранилища на базе Ubuntu Server или Debian.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Внимание! Начиная с Debian 9 Stretch и Ubuntu 18.04 LTS пакет iSCSI Enterprise Target (iscsitarget) был удален и ему на смену пришел Linux SCSI target (tgt), для настройки которого воспользуйтесь следующей статьей.

В качестве серверной ОС в данном случае мы выбрали Ubuntu Server 16.04 LTS, однако процесс настройки в ее среде ничем не отличается от Debian или любого иного дистрибутива, основанного на любой из этих двух систем.

В Linux-системах в качестве программной цели iSCSI используется iSCSI Enterprise Target (IET) — успевшее зарекомендовать себя надежное и проверенное решение. Для работы с ним потребуется установить два пакета:

apt-get install iscsitarget iscsitarget-dkms

Первый пакет представляет собой собственно программную цель, а второй является DKMS-модулем ядра для поддержки программной цели. Технология DKMS позволяет динамически пересобирать модуль при обновлении версии ядра. Теперь вам не надо беспокоиться, что ваш модуль перестанет работать после обновления ядра, система обо всем позаботится сама. Налицо принцип — поставил и забыл.

Читайте также:  Make and make install in linux

Установка потянет за собой довольно много зависимостей, это не удивительно, так как будут установлены все необходимые компоненты для сборки модуля.

iscsi-targer-ubuntu-debian-001.png

Сама сборка будет выполнена в процессе установки и может занять некоторое время.

После установки следует включить автоматический запуск службы цели iSCSI, для этого откройте файл /etc/default/iscsitarget и приведите к следующему виду строку:

Теперь можно приступить к созданию целей. На текущем этапе развития технологий в качестве LUN наиболее удобно использовать файлы виртуальных дисков, хотя никто не мешает вам выделить в LUN дисковое устройство или LVM-том. Прежде всего создадим папку для хранения виртуальных дисков и разместим в ней тестовый диск объемом в 2 ГБ:

mkdir /storage
dd if=/dev/zero of=/storage/lun0.img bs=1M count=2048

Для создания файла диска мы воспользовались командой dd, опция bs указывает размер блока — 1 МБ, а опция count — количество этих блоков. Имя файла и расширение могут быть произвольными, в нашем случае это lun0.img.

Для создания программной цели (таргета) откроем файл /etc/iet/ietd.conf и добавим в него следующие строки:

Target iqn.2009-02.lab.interface31:ubuntu-1604-test-lun0-target 
IncomingUser test Pa$$word1234
OutgoingUser
Lun 0 Path=/storage/lun0.img,Type=fileio

Разберем синтаксис подробнее. Первая строка задает собственно цель, точнее ее IQN, это полностью определенное имя цели, которое записывается в формате:

  • year-mo — год и месяц регистрации домена
  • reversed_domain_name — доменное имя, записанное в обратном порядке
  • unique_name — уникальное имя цели

IncomingUser определяет учетные данные (логин и пароль) для подключения к данной цели, если аутентификация не требуется можно оставить пустым. OutgoingUser — учетные данные для аутентификации на инициаторе в случае использования взаимной проверки подлинности, если не используется — также оставляется пустым. Обратите внимание, согласно стандарту, пароль должен содержать ровно 12 символов.

И наконец Lun описывает доступные для данной цели объекты (LUN), которых может быть несколько, нумерация LUN начинается с нуля. Path указывает путь к файлу виртуального диска, а Type указывает тип доступа. После запятой и перед Type пробел отсутствует.

Читайте также:  Linux modem how to

Например, если мы хотим добавить в цель еще один диск, то следует добавить строку:

Lun 1 Path=/storage/lun1.img,Type=fileio

Закончив настройку сохраняем файл конфигурации и запускаем службу. Управлять ею лучше «по-старинке», через /etc/init.d, в этом случае вы получите наиболее информативный вывод и сообщения о возможных ошибках:

/etc/init.d/iscsitarget start

Состояние запущенной службы можно посмотреть командой:

/etc/init.d/iscsitarget status

iscsi-targer-ubuntu-debian-002.png

Теперь можно попробовать подключитья к нашей цели. В качестве инициатора мы использовали Windows Server 2012R2, который без проблем обнаружил таргет и подключил диск после ввода учетных данных.

iscsi-targer-ubuntu-debian-003.png

Для ограничения доступа к целям служит файл настроек /etc/iet/initiators.allow, содержащий записи об инициаторах, IP-адресах или сетях, которым разрешен доступ. Первым указывается таргет, затем через запятую перечисляются объекты, имеющие к нему доступ. По умолчанию доступ разрешен всем к любым целям:

Как минимум имеет смысл ограничить доступ только сетью хранения данных, например:

При необходимости можно явно ограничить доступ к цели для конкретного инициатора и определенной сети:

iqn.2009-02.lab.interface31:ubuntu-1604-test-lun0-target 192.168.18.0/24, iqn\.1991-05\.com\.microsoft:srv12r2-stor

IQN инициатора может быть записан в виде регулярного выражения, поэтому даже если вы не используете данную возможность, то не забывайте использовать regexp-синтаксис, например, экранирование символа точки.

Как видим, настройка iSCSI-хранилища на базе Linux предельно проста и позволяет быстро и с минимальными затратами развернуть необходимую инфраструктуру.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Подпишись на наш Telegram-канал

Или подпишись на наш Телеграм-канал:

Источник

Оцените статью
Adblock
detector