Iscsi initiator для linux

Подключение iSCSI-диска (ОС Linux)

После подготовки сетевого диска с нашей стороны мы сообщим вам IP-адрес диска, который нужно добавить на сервер, и IP-адрес стораджа, к которому необходимо будет осуществлять подключение.

Далее для подключения диска вам необходимо выполнить следующие действия.

1. Установить на сервер необходимые пакеты:

2. Добавить IP-адрес диска (не стораджа), выданный для вашего сервера, на сетевой интерфейс:

где 172.18.%.% – выданный IP-адрес диска, а eth1 – сетевой интерфейс:

  • в случае выделенного сервера – отдельный сетевой интерфейс, отличный от того, на котором работает основной IP сервера;
  • в случае VDS – основной интерфейс.

3. Перезапустить iSCSI:

4. Подключиться по предоставленному IP-адресу стораджа:

где IP_адрес — выданный вам IP-адрес стораджа.

Пример успешного подключения к стораджу с IP-адресом 172.18.0.3:

5. Включить автологин в /etc/iscsi/iscsid.conf, заменив значение параметра node.startup на:

Это можно сделать командой:

6. Проверить что в файлах в /etc/iscsi/nodes также указано значение «automatic», например:

Если директория /etc/iscsi/nodes/ отсутствует, просто пропустите этот шаг.

7. Проверить наличие диска:

В выводе должен быть отображен новый диск с новой меткой.

В нашем примере появился новый диск /dev/sdd:

8. Убедившись в наличии диска, создать таблицу разделов:

где DISK — метка нового бэкапного диска.

Пример разметки с меткой диска sdd:

9. Форматировать созданный раздел:

где DISK_N — созданный раздел бэкапного диска.

10. Создать директорию, куда будет смонтирован диск (например, /mnt/backup), и смонтировать раздел:

Источник

Настройка ISCSI initiator в linux

Abstract: как работает open-iscsi (ISCSI initiator в linux), как его настраивать и чуть-чуть про сам протокол ISCSI.

Лирика: В интернете есть множество статей довольно хорошо объясняющих, как настроить ISCSI target, однако, почему-то, практически нет статей про работу с инициатором. Не смотря на то, что target технически сложнее, административной возни с initiator больше — тут больше запутанных концепций и не очень очевидные принципы работы.

ISCSI

Перед тем, как рассказать про ISCSI — несколько слов о разных типах удалённого доступа к информации в современных сетях.

NAS vs SAN

scsi over tcp

Одним из протоколов доступа к блочным устройствам является iscsi. Буква ‘i’ в названии относится не к продукции эппл, а к Internet Explorer. По своей сути это ‘scsi over tcp’. Сам протокол SCSI (без буквы ‘i’) — это весьма сложная конструкция, поскольку он может работать через разные физические среды (например, UWSCSI — параллельная шина, SAS — последовательная — но протокол у них один и тот же). Этот протокол позволяет делать куда больше, чем просто «подтыкать диски к компьютеру» (как это придумано в SATA), например, он поддерживает имена устройств, наличие нескольких линков между блочным устройством и потребителем, поддержку коммутации (ага, SAS-коммутатор, такие даже есть в природе), подключение нескольких потребителей к одному блочному устройству и т.д. Другими словами, этот протокол просто просился в качестве основы для сетевого блочного устройства.

Терминология

В мире SCSI приняты следующие термины:
target — тот, кто предоставляет блочное устройство. Ближайший аналог из обычного компьютерного мира — сервер.
initiator — клиент, тот, кто пользуется блочным устройством. Аналог клиента.
WWID — уникальный идентификатор устройства, его имя. Аналог DNS-имени.
LUN — номер «кусочка» диска, к которому идёт обращение. Ближайший аналог — раздел на жёстком диске.

Читайте также:  Canon lbp251dw драйвер windows 10

ISCSI приносит следующие изменения: WWID исчезает, на его место приходит понятие IQN (iSCSI Qualified Name) — то есть чистой воды имя, сходное до степени смешения с DNS (с небольшими отличиями). Вот пример IQN: iqn.2011-09.test:name.

IETD и open-iscsi (сервер и клиент под линукс) приносят ещё одну очень важную концепцию, о которой чаще всего не пишут в руководствах по iscsi — portal. Portal — это, если грубо говорить, несколько target’ов, которые анонсируются одним сервером. Аналогии с www нет, но если бы веб-сервер можно было попросить перечислить все свои virtualhosts, то это было бы оно. portal указывает список target’ов и доступные IP, по которым можно обращаться (да-да, iscsi поддерживает несколько маршрутов от initiator к target).

target

Статья не про target, так что даю очень краткое описание того, что делает target. Он берёт блочное устройство, пришлёпывает к нему имя и LUN и публикет его у себя на портале, после чего позволяет всем желающим (авторизация по вкусу) обращаться к нему.

Вот пример простенького файла конфигурации, думаю, из него будет понятно что делает target (файл конфигурации на примере IET):

(сложный от простого отличается только опциями экспорта). Таким образом, если у нас есть target, то мы хотим его подключить. И тут начинается сложное, потому что у initiator’а своя логика, он совсем не похож на тривиальное mount для nfs.

Initiator

В качестве инициатора используется open-iscsi. Итак, самое важное — у него есть режимы работы и состояние. Если мы дадим команду не в том режиме или не учтём состояние, результат будет крайне обескураживающий.

Итак, режимы работы:

  • Поиск target’ов (discovery)
  • Подключение к target’у
  • Работа с подключенным target’ом

Из этого списка вполне понятен жизненный цикл — сначала найти, потом подключиться, потом отключиться, потом снова подключиться. Open-iscsi держит сессию открытой, даже если блочное устройство не используется. Более того, он держит сессию открытой (до определённых пределов, конечно), даже если сервер ушёл в перезагрузку. Сессия iscsi — это не то же самое, что открытое TCP-соединение, iscsi может прозрачно переподключаться к target’у. Отключение/подключение — операции, которыми управляют «снаружи» (либо из другого ПО, либо руками).

Немного о состоянии. После discovery open-iscsi запоминает все найденные target’ы (они хранятся в /etc/iscsi/), другими словами, discovery — операция постоянная, совсем НЕ соответствующая, например, dns resolving). Найденные target можно удалить руками (кстати, частая ошибка — когда у open-iscsi, в результате экспериментов и настройки, пачка найденных target’ов, при попытке логина в которые выползает множество ошибок из-за того, что половина target’ов — старые строчки конфига, которые уже давно не существуют на сервере, но помнятся open-iscsi). Более того, open-iscsi позволяет менять настройки запомненного target’а — и эта «память» влияет на дальнейшую работу с target’ами даже после перезагрузки/перезапуска демона.

Блочное устройство

Второй вопрос, который многих мучает по-началу — куда оно попадает после подключения? open-iscsi создаёт хоть и сетевое, но БЛОЧНОЕ устройство класса SCSI (не зря же оно «я сказя»), то есть получает букву в семействе /dev/sd, например, /dev/sdc. Используется первая свободная буква, т.к. для всей остальной системы это блочное устройство — типичный жёсткий диск, ничем не отличающийся от подключенного через usb-sata или просто напрямую к sata.

Читайте также:  Не устанавливается windows 10 ошибка драйвера

Это часто вызывает панику «как я могу узнать имя блочного устройства?». Оно выводится в подробном выводе iscsiadm (# iscsiadm -m session -P 3).

Авторизация

В отличие от SAS/UWSCSI, ISCSI доступно для подключения кому попало. Для защиты от таких, есть логин и пароль (chap), и их передача iscsiadm’у — ещё одна головная боль для начинающих пользователей. Она может осуществляться двумя путями — изменением свойств уже найденного ранее target’а и прописываем логина/пароля в файле конфигурации open-iscsi.
Причина подобных сложностей — в том, что пароль и процесс логина — это атрибуты не пользователя, а системы. ISCSI — это дешёвая версия FC-инфраструктуры, и понятие «пользователь» в контексте человека за клавиатурой тут неприменимо. Если у вас sql-база лежит на блочном устройстве iscsi, то разумеется, вам будет хотеться, чтобы sql-сервер запускался сам, а не после минутки персонального внимания оператора.

Файл конфигурации

Это очень важный файл, потому что помимо логина/пароля он описывает ещё поведение open-iscsi при нахождении ошибок. Он может отдавать ошибку «назад» не сразу, а с некоторой паузой (например, минут в пять, чего достаточно для перезагрузки сервера с данными). Так же там контролируется процесс логина (сколько раз пробовать, сколько ждать между попытками) и всякий тонкий тюнинг самого процесса работы. Заметим, эти параметры довольно важны для работы и вам нужно обязательно понимать, как поведёт ваш iscsi если вынуть сетевой шнурок на 10-20с, например.

Краткий справочник

Я не очень люблю цитировать легконаходимые маны и строчки, так что приведу типовой сценарий употребения iscsi:

сначала мы находим нужные нам target, для этого мы должны знать IP/dns-имя инициатора: iscsiadm -m discovery -t st -p 192.168.0.1 -t st — это команда send targets.

iscsiadm -m node (список найденного для логина)
iscsiadm -m node -l -T iqn.2011-09.example:data (залогиниться, то есть подключиться и создать блочное устройство).
iscsiadm -m session (вывести список того, к чему подключились)
iscsiadm -m session -P3 (вывести его же, но подробнее — в самом конце вывода будет указание на то, какое блочное устройство какому target’у принадлежит).
iscsiadm — m session -u -T iqn.2011-09.example:data (вылогиниться из конкретной )
iscsiadm -m node -l (залогиниться во все обнаруженные target’ы)
iscsiadm -m node -u (вылогиниться из всех target’ов)
iscsiadm -m node —op delete -T iqn.2011-09.example:data (удалить target из обнаруженных).

mulitpath

Ещё один вопрос, важный в серьёзных решениях — поддержка нескольких маршрутов к источнику. Прелесть iscsi — в использовании обычного ip, который может быть обычным образом обработан, как и любой другой трафик (хотя на практике обычно его не маршрутизируют, а только коммутируют — слишком уж великая там нагрузка). Так вот, iscsi поддерживает multipath в режиме «не сопротивляться». Сам по себе open-iscsi не умеет подключаться к нескольким IP одного target’а. Если его подключить к нескольким IP одного target’а, то это приведёт к появлению нескольких блочных устройств.

Однако, решение есть — это multipathd, который находит диски с одинаковым идентифиатором и обрабатывает их как положено в multipath, с настраиваемыми политиками. Эта статья не про multipath, так что подробно объяснять таинство процесса я не буду, однако, вот некоторые важные моменты:

  1. При использовании multipath следует ставить маленькие таймауты — переключение между сбойными путями должно происходить достаточно быстро
  2. В условиях более-менее быстрого канала (10G и выше, во многих случаях гигабит) следует избегать параллелизма нагрузки, так как теряется возможность использовать bio coalesing, что в некоторых типах нагрузки может неприятно ударить по target’у.
Читайте также:  Windows cmd run command as user

Источник

iSCSI инициатор

Содержание

iSCSI инициатор

Сервер Ubuntu может быть настроен как в качестве iSCSI инициатора, так и в качестве целевого объекта (сервером). Это руководство описывает команды и опции настройки по установке iSCSI инициатора. Это предполагает, что у вас есть iSCSI устройство в вашей сети и вы обладаете необходимыми правами для подключения к нему. Инструкции по установке iSCSI устройств очень сильно зависят от производителя, поэтому обратитесь к документации производителя для настройки вашего конкретного iSCSI устройства.

Установка iSCSI инициатора

Для настройки сервера Ubuntu в качестве iSCSI инициатора, установите пакет open-iscsi. Введите в терминале:

Настройка iSCSI инициатора

Как только пакет open-iscsi установлен, отредактируйте /etc/iscsi/iscsid.conf, изменив следующее:

Вы можете определить какие целевые объекты вам доступны с помощью утилиты iscsiadm. Введите следующую команду в терминале:

-m: определяет режим, в котором работает iscsiadm.

-t: определяет тип поиска.

-p: опция, определяющая IP адрес целевого объекта.

Если целевой объект доступен, вы увидите вывод, подобный следующему:

Теперь вы можете соединиться с iSCSI сервером и в зависимости от его настроек вам возможно придется ввести данные учетной записи пользователя. Подключение к iSCSI узлу:

Убедитесь, что новый диск определяется с помощью dmesg:

В приведенном выводе sdb — это новый iSCSI диск. Помните, что это всего лишь пример; вывод на вашем экране может сильно отличаться.

Далее создадим раздел, отформатируем файловую систему и подсоединим новый iSCSI диск. Введите в терминале:

Теперь форматируем файловую систему и монтируем ее, например, в /srv:

Наконец добавим запись в /etc/fstab для монтирования iSCSI устройства в процесе загрузки:

Хорошей идеей будет убедиться, что все работает как надо, перегрузив сервер.

Источник

IT Blog

written by Zeljko Medic

Ubuntu 20.04 – How to setup iSCSI initiator

Short guide on how to install iSCSI initiator on Ubuntu 20.04

First, we need to install open-iscsi

After installation we need to edit initiatorname.iscsi file

This is how file looks by default

I will remove ign.1993-08… and add following into it:

You can change informaticar:ubuntu1 to whatever you like (domain:server)

This is how it looks like in the end.

If you wish to specify authentication for your iSCSI connection (you will have to setup authentication also on your ISCSI Target), you can do that in iscsiid.conf file.

Under CHAP Settings uncomment following lines:

In following two lines replace username and password with your own

Ok, lets restart our iscsi service after these changes.

My iSCSI Target is on 10.0.060, we will now try and discover our iSCSI Target

Ok, my iSCSI Target is discovered.

Confirm status after discovery

We will now login into target

Confirm established session

Next, we will check disk/partition layout.

On Ubuntu VM on which I’m preparing iSCSI Initiator I have only one disk (system disk sda) which is 125GB large

Ok, sdb is added, and it is our iscsi target drive.

Since I’m also GUI guy I like to check status also in Disk Utility.

Confirmed, my TrueNAS iSCSI Target is attached.

Источник

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