Настройка блочного доступа по iSCSI для Linux¶
В данном разделе описана настройка iSCSI–инициатора на Linux (пример – Debian) для работы со СХД АЭРОДИСК ENGINE: обнаружение таргетов, логин к LUN, настройка автоподключения после перезагрузки и параметры CHAP–аутентификации.
Настройка iSCSI для Linux¶
Перед началом настройки iSCSI на сервере Linux убедитесь, что созданы:
Минимум один IP–ресурс (VIP), который будет использоваться как iSCSI–портал
Минимум один iSCSI–таргет
Минимум один LUN
Для настройки iSCSI на сервере Linux выполните следующие действия:
Подключитесь к серверу, для которого будет выполняться настройка
Установите пакет open–iscsi (Debian)
$ sudo apt-get update
$ sudo apt-get install open-iscsi
После установки пакета откройте файл
/etc/iscsi/initiatorname.iscsiи скопируйте IQN инициатора
Перейдите в веб–интерфейс управления СХД АЭРОДИСК ENGINE
Откройте
«Блочный доступ» >> «iSCSI», вкладка «Группы»и нажмите «Создать группу»В открывшемся окне задайте имя группы, выберите таргет и укажите IQN инициатора (из
/etc/iscsi/initiatorname.iscsi), затем нажмите «Подтвердить»
Перейдите на вкладку «Маппинг» и нажмите «Создать маппинг»
В окне создания маппинга выберите созданную группу и нужный логический том (LUN), затем подтвердите создание
Выполните обнаружение iSCSI-таргета через iSCSI-портал
sudo iscsiadm -m discovery -t st -p <VIP_IP>:3260
Примечание
Портал iSCSI – это сочетание IP–адреса и TCP–порта (по умолчанию 3260), по которому инициатор подключается к таргету
После успешного выполнения discovery open–iscsi создаст служебные каталоги в /etc/iscsi:
nodes – записи для обнаруженных узлов (подкаталоги для каждого IQN)
send_targets – данные, полученные через SendTargets (подкаталоги для каждой цели/портала)
![]()
Для подключения LUN выполните логин к таргету
sudo iscsiadm -m node -T <IQN_TARGET> -l
Внимание
Команда выполняет логин ко всем порталам (IP:port), которые сохранены на инициаторе для данного IQN (каталог /etc/iscsi/nodes/<IQN_TARGET>/). Если для IQN заведено несколько порталов, будут подняты несколько iSCSI–сессий (по одной на портал), поэтому для работы с несколькими путями рекомендуется использовать multipath. Если multipath не настроен, один и тот же LUN появится как несколько устройств.
Чтобы подключиться только к одному конкретному portal’у, используйте явный логин с указанием portal: sudo iscsiadm -m node -T <IQN_TARGET> -p <IP_PORTAL>:3260 -l
Убедитесь, что новое блочное устройство появилось в системе
Настройка iSCSI завершена.
Примечание
Со стороны ОС обязательно нужно выключать все кэши на примаппленные диски, чтобы избежать риска потери данных
Отключение iSCSI и удаление записей¶
Перед отключением iSCSI убедитесь, что файловые системы на LUN размонтированы и том не используется приложениями.
Проверьте активные iSCSI-сессии и найдите нужный таргет (IQN) и портал:
sudo iscsiadm -m session
Выполните logout (рекомендуется указывать конкретный портал)
sudo iscsiadm -m node -T <IQN_TARGET> -p <PORTAL_IP>:3260 -u
Примечание
Если для таргета сохранено несколько порталов, повторите logout для каждого портала или выполните logout по всем сессиям для данного IQN sudo iscsiadm -m node -l
Удалите node–запись, чтобы инициатор не пытался подключаться автоматически и чтобы очистить конфигурацию таргета
sudo iscsiadm -m node -T <IQN_TARGET> -p <PORTAL_IP>:3260 -o delete
Проверьте, что сессий и записей не осталось
sudo iscsiadm -m session sudo iscsiadm -m node
Автоподключение после перезагрузки¶
По умолчанию многие узлы iSCSI сохраняются с параметром node.startup = manual, из‑за чего после перезагрузки системы iSCSI–сессии не поднимаются автоматически и требуется ручное подключение.
Чтобы включить автологин для нужного таргета (IQN), установите node.startup = automatic для каждой записи таргет+портал (если у таргета несколько порталов – повторите команду для каждого)
Включить автологин для таргета
sudo iscsiadm -m node -T <IQN_TARGET> -p <IP_PORTAL>:3260 --op=update -n node.startup -v automatic
Проверьте текущее значение
sudo iscsiadm -m node -T <IQN_TARGET> -p <IP_PORTAL>:3260 -o show | grep -E 'node.startup'
Включите службы iSCSI в автозапуск и проверьте статус
Для автологина при старте системы должны быть включены сервисы iscsid и open–iscsi.
sudo systemctl enable iscsid sudo systemctl enable open-iscsi sudo systemctl is-enabled iscsid open-iscsi
Перезагрузите сервер и проверьте, что сессии поднялись автоматически
sudo reboot sudo iscsiadm -m session
CHAP–аутентификация¶
Если на iSCSI–таргете включена CHAP–аутентификация, задайте параметры CHAP на Linux–сервере до выполнения discovery.
В open–iscsi параметры CHAP можно задать глобально в /etc/iscsi/iscsid.conf (будут применяться по умолчанию), либо точечно для конкретного таргета через iscsiadm -m node --op update
Вариант 1. Глобальная настройка (iscsid.conf)¶
Откройте файл
/etc/iscsi/iscsid.confи укажите параметры CHAP для сессии подключения к таргетамnode.session.auth.authmethod = CHAP node.session.auth.username = <CHAP_USERNAME> node.session.auth.password = <CHAP_PASSWORD>
Внимание
Если параметры CHAP добавляются в
/etc/iscsi/iscsid.confпосле того, как на инициаторе уже выполнен discovery, то для ранее обнаруженных записей (node records) авторизация может не примениться автоматически. В этом случае обновите существующие записи discovery, командойsudo iscsiadm -m discovery -t st -p <VIP_IP>:3260 -o updateПерезапустите службу iscsid
sudo systemctl restart iscsid.service
Вариант 2. Настройка для конкретного таргета (iscsiadm)¶
Этот вариант удобен, если разные таргеты используют разные учётные данные.
Для найденного таргета задайте CHAP–параметры:
$ sudo iscsiadm -m node -T <IQN_TARGET> -p <PORTAL_IP>:3260 --op update -n node.session.auth.authmethod -v CHAP
sudo iscsiadm -m node -T <IQN_TARGET> -p <PORTAL_IP>:3260 --op update -n node.session.auth.username -v <CHAP_USERNAME>
sudo iscsiadm -m node -T <IQN_TARGET> -p <PORTAL_IP>:3260 --op update -n node.session.auth.password -v <CHAP_PASSWORD>
echo hello
Multipath¶
Multipath повышает отказоустойчивость доступа к LUN: если один из путей ввода‑вывода (кабель, коммутатор, сетевой интерфейс или порт контроллера) становится недоступен, multipath автоматически переключает операции ввода‑вывода, на альтернативный путь, и работа с томом продолжается.
Подключение iSCSI с Multipath¶
Перед началом настройки Multipath на сервере Linux убедитесь, что созданы:
Минимум два IP–ресурса (VIP), которые будут использоваться как iSCSI–порталы
Минимум один iSCSI–таргет
Минимум один LUN
Примечание
Для multipath рекомендуется создавать IP–ресурсы (VIP) на разных сетевых интерфейсах, чтобы пути к одному LUN были независимыми.
Настройка выполняется аналогично базовому подключению iSCSI, но iSCSI–таргету необходимо назначить несколько порталов. При выборе порталов в форме создания/редактирования iSCSI–таргета выделите несколько VIP, удерживая клавишу CTRL.
Установите пакет
multipath-tools
sudo apt-get update
sudo apt-get install multipath-tools
Выполните обнаружение iSCSI-таргета через iSCSI-портал
sudo iscsiadm -m discovery -t st -p <VIP_IP>:3260
Примечание
При discovery методом SendTargets достаточно указать один iSCSI–портал: таргет вернет в ответ список всех порталов, через которые он доступен.
Выполните логин к таргету
sudo iscsiadm -m node -T <IQN_TARGET> -l
Создайте (или обновите) файл
/etc/multipath.confПримечание
Файл
/etc/multipath.confзадаёт параметры службыmultipathd. Он используется, чтобы зафиксировать поведение multipath в системе (например, правила именования устройств, политики работы с путями и исключения устройств), а не полагаться только на настройки по умолчанию.Включите службу
multipathdв автозагрузку и запустите еёsudo systemctl enable multipathd sudo systemctl restart multipathd sudo systemctl status multipathd
Примечание
multipathd — это служба Multipath, которая отслеживает состояние путей к LUN и при изменении доступности путей автоматически обновляет multipath–устройства (переключение/возврат путей выполняется без ручного вмешательства).
Проверьте, что multipath собрал LUN в единое устройство
sudo multipath -ll
В выводе команды отображается одно multipath–устройство mpatha (единый логический диск) и два пути к нему — sdb и sdc
Строка
mpatha (...) dm–0 AERODISK,engine–n2означает, что для LUN создано единое устройство multipath с именем mpatha (WWID указан в скобках), а также отображается производитель/модель массиваСтатусы путей
active ready runningозначают, что оба пути доступны и готовы к операциям ввода‑выводаСтатус группы путей
activeозначает, что ввод‑вывод сейчас выполняется через эту группу, аenabled— что группа доступна и будет использована при недоступности активной
Примечание
Для дальнейших операций (разметка, создание файловой системы, монтирование) используйте устройство multipath /dev/mapper/mpatha (или /dev/dm–0), а не отдельные устройства /dev/sdb и /dev/sdc.
Изменение политики группировки путей¶
Политика path_grouping_policy определяет, как multipath объединяет пути в группы, а значит — будут ли пути использоваться только как резерв (failover) или одновременно (multibus)
Откройте файл конфигурации
/etc/multipath.confsudo vi /etc/multipath.conf
Задайте политику
active/active(использование всех доступных путей одновременно), установивpath_grouping_policy multibusв секцию defaults
Примените изменения, переконфигуровав multipathd
sudo multipathd -k'reconfigure'
Проверьте результат
sudo multipath -ll
После включения режима active/active в выводе multipath -ll все пути к LUN собираются в одну группу путей (status=active), и отображаются как active ready running.
Это позволяет использовать оба соединения параллельно: возрастает производительность и уменьшается влияние деградации одного пути на задержки.
Примечание
В некоторых сценариях на хосте осознанно оставляют политику failover (один активный путь, остальные — резерв)
Если нужен максимум предсказуемости и простоты, а производительности одного пути достаточно
Если есть риск, что пути на практике неравноценны (например, разные коммутаторы/маршруты/скорости), и балансировка по путям может дать нестабильную латентность
Дополнительные настройки для iSCSI¶
Если при переключении групп RDG и DDP логический том перестал отображаться в системе или начал работать некорректно, можно попробовать применить одну из следующий рекомендаций.
Если инициатор работает с СХД только по iSCSI и другие логические тома с СХД (не AERODISK) подключены без мультипасинга, нужно просто удалить пакет мультипасинга из системы.
Прописать в /etc/multipath.conf в секции defaults два параметра:
dev_loss_tmo 120;fast_io_fail_tmo 120.
Указать конкретные параметры в /etc/multipath.conf для iSCSI томов с СХД AERODISK. В примере для тома - DG01-LUN01 с wwid – 23635376233356466.
defaults {
user_friendly_names no
find_multipaths yes
}
blacklist {
devnode "^sd*"
}
blacklist_exceptions {
devnode "sd[e-z]*"
wwid "23635376233356466"
}
devices {
device {
vendor "AERODISK"
product "DG01-LUN01"
no_path_retry queue
dev_loss_tmo 120
fast_io_fail_tmo 120
}
}
После этого в файле /etc/multipath/wwids указать ID тома – /23635376233356466/
Если wwid у логического тома нет (проверить можно, выполнив udevadm info /dev/sdX, где Х – имя тома), то нужно дополнительно сделать правило для udev:
ACTION=="add", KERNEL=="sd*" PROGRAM="scsi_id -g -v -d $env{DEVNAME} -p 0x83" ENV{ID_WWN}="0x%c"
После этого логический том нужно монтировать как /dev/mapper/23635376233356466