Добавлен open-iscsi

This commit is contained in:
Alexander Zhirov 2025-05-08 01:08:56 +03:00
parent 9f0e1411cc
commit 16ae8525ee
Signed by: alexander
GPG key ID: C8D8BE544A27C511
2 changed files with 385 additions and 0 deletions

View file

@ -1,4 +1,5 @@
# Конфигурационные файлы сервисов и утилит Linux
- [open-iscsi](services/open-iscsi/)
- [open-isns](services/open-isns/)
- [openslp](services/openslp/)

View file

@ -0,0 +1,384 @@
# Конфигурация по умолчанию для Open-iSCSI.
#
# Примечание: Чтобы установить любое из этих значений для конкретного узла/сессии,
# используйте команду iscsiadm --mode node --op для соответствующего значения.
# Подробности о команде --op см. в файле README и в справочной странице для iscsiadm.
#
######################
# Конфигурация демона iscsid
######################
#
# Если вы хотите, чтобы iscsid запускался при первом обращении к нему инструмента iSCSI,
# вместо запуска при выполнении инициализационных скриптов, укажите команду запуска iscsid здесь.
# Обычно это требуется только для сопровождающих пакетов дистрибутивов.
# Если демон iscsid работает постоянно, оставьте этот атрибут закомментированным.
#
# По умолчанию для Fedora и RHEL. Раскомментируйте для активации.
# iscsid.startup = /bin/systemctl start iscsid.socket iscsiuio.socket
#
# По умолчанию для Debian и Ubuntu. Раскомментируйте для активации.
# iscsid.startup = /bin/systemctl start iscsid.socket
#
# По умолчанию, если не используется systemd. Раскомментируйте для активации.
# iscsid.startup = /usr/bin/service start iscsid
# Проверять наличие активных точек монтирования на устройствах, доступных через сессию,
# и отказываться от выхода из сессии, если такие точки есть. По умолчанию "No".
# iscsid.safe_logout = Yes
# Требовать только UID-аутентификацию для MGMT IPC, а не имя пользователя.
# Проверка имени пользователя — устаревшая практика безопасности, и она находится на пути к устареванию.
# Установите "No" для совместимости с устаревшими системами.
# По умолчанию "Yes".
# iscsid.ipc_auth_uid = No
#############################
# Настройки NIC/HBA и драйверов
#############################
# Open-iSCSI может создавать сессию и привязывать её к NIC/HBA.
# Для настройки см. пример файла конфигурации iface.
#*****************
# Настройки запуска
#*****************
# Чтобы запросить запуск сессии скриптами службы iSCSI, используйте "automatic":
# node.startup = automatic
#
# Для ручного запуска сессии используйте "manual". По умолчанию — manual.
node.startup = manual
# Для узлов с автоматическим запуском установка этого параметра в "Yes" приведёт к попыткам
# входа на каждом доступном интерфейсе, пока одна не завершится успешно, после чего попытки прекращаются.
# По умолчанию "No" — попытки входа выполняются на всех доступных интерфейсах одновременно.
node.leading_login = No
# *************
# Настройки CHAP
# *************
# Чтобы включить аутентификацию CHAP, установите node.session.auth.authmethod в CHAP.
# По умолчанию — None.
#
# ПРИМЕЧАНИЕ: В настоящее время этот атрибут проверяется на валидность, но затем игнорируется,
# поэтому даже если он установлен в None, CHAP будет использоваться, если заданы учетные данные
# (имя пользователя/пароль и, возможно, username_in/password_in). Это поведение устарело,
# и в будущем CHAP не будет использоваться, если authmethod установлен в None.
#
#node.session.auth.authmethod = CHAP
# Чтобы настроить, какие алгоритмы CHAP включать, установите
# node.session.auth.chap_algs в список, разделённый запятыми.
# Алгоритмы должны быть перечислены в порядке убывания предпочтения,
# в частности, наиболее предпочтительный алгоритм должен быть первым.
# Допустимые значения: MD5, SHA1, SHA256 и SHA3-256.
# По умолчанию — MD5.
#node.session.auth.chap_algs = SHA3-256,SHA256,SHA1,MD5
# Чтобы задать имя пользователя и пароль CHAP для аутентификации инициатора
# целевым устройством, раскомментируйте следующие строки:
#node.session.auth.username = username
#node.session.auth.password = password
# Чтобы задать имя пользователя и пароль CHAP для аутентификации целевого устройства
# инициатором, раскомментируйте следующие строки:
#node.session.auth.username_in = username_in
#node.session.auth.password_in = password_in
# Чтобы включить аутентификацию CHAP для сессии обнаружения цели,
# установите discovery.sendtargets.auth.authmethod в CHAP. По умолчанию — None.
#
# См. ПРИМЕЧАНИЕ выше о том, что node.session.auth.authmethod в основном игнорируется.
#
#discovery.sendtargets.auth.authmethod = CHAP
# Чтобы задать имя пользователя и пароль CHAP для сессии обнаружения
# для аутентификации инициатора целевым устройством, раскомментируйте следующие строки:
#discovery.sendtargets.auth.username = username
#discovery.sendtargets.auth.password = password
# Чтобы задать имя пользователя и пароль CHAP для сессии обнаружения
# для аутентификации целевого устройства инициатором, раскомментируйте следующие строки:
#discovery.sendtargets.auth.username_in = username_in
#discovery.sendtargets.auth.password_in = password_in
# ********
# Таймауты
# ********
#
# См. раздел "Расширенная конфигурация" в README iSCSI для советов
# по настройке таймаутов при использовании multipath или корневой файловой системы через iSCSI.
#
# Чтобы указать время ожидания восстановления сессии
# перед возвратом ошибки SCSI-команд приложению при использовании обработчика ошибок Linux SCSI Layer,
# отредактируйте следующую строку.
# Значение в секундах, по умолчанию — 120 секунд.
# Особые значения:
# - Если значение равно 0, ввод-вывод будет немедленно завершён с ошибкой.
# - Если значение меньше 0, ввод-вывод останется в очереди до восстановления сессии
# или до выполнения пользователем команды logout.
node.session.timeo.replacement_timeout = 120
# Чтобы указать время ожидания завершения входа, отредактируйте следующую строку.
# Значение в секундах, по умолчанию — 15 секунд.
node.conn[0].timeo.login_timeout = 15
# Чтобы указать время ожидания завершения выхода, отредактируйте следующую строку.
# Значение в секундах, по умолчанию — 15 секунд.
node.conn[0].timeo.logout_timeout = 15
# Интервал времени ожидания перед отправкой пинга по соединению.
# Значение в секундах, по умолчанию — 5 секунд.
node.conn[0].timeo.noop_out_interval = 5
# Чтобы указать время ожидания ответа на Nop-out перед завершением соединения с ошибкой,
# отредактируйте эту строку. Ошибка соединения приведёт к возврату ввода-вывода в слой SCSI.
# Если используется dm-multipath, ввод-вывод будет передан в слой multipath.
# Значение в секундах, по умолчанию — 5 секунд.
node.conn[0].timeo.noop_out_timeout = 5
# Чтобы указать время ожидания ответа на команду abort
# перед завершением операции с ошибкой и попыткой сброса логического устройства,
# отредактируйте следующую строку.
# Значение в секундах, по умолчанию — 15 секунд.
node.session.err_timeo.abort_timeout = 15
# Чтобы указать время ожидания ответа логического устройства
# перед завершением операции с ошибкой и попыткой восстановления сессии,
# отредактируйте следующую строку.
# Значение в секундах, по умолчанию — 30 секунд.
node.session.err_timeo.lu_reset_timeout = 30
# Чтобы указать время ожидания ответа цели
# перед завершением операции с ошибкой и попыткой восстановления сессии,
# отредактируйте следующую строку.
# Значение в секундах, по умолчанию — 30 секунд.
node.session.err_timeo.tgt_reset_timeout = 30
# Значение в секундах, по умолчанию — 60 секунд.
node.session.err_timeo.host_reset_timeout = 60
#******
# Повторы
#******
# Чтобы указать количество попыток входа, которые должен выполнить iscsid,
# если попытка входа завершилась с ошибкой из-за истечения node.conn[0].timeo.login_timeout,
# измените следующую строку. Обратите внимание, что если вход завершается быстро
# (до истечения node.conn[0].timeo.login_timeout) из-за ошибки сетевого уровня или цели,
# iscsid может повторить попытку входа больше, чем node.session.initial_login_retry_max раз.
#
# Это количество повторов вместе с node.conn[0].timeo.login_timeout
# определяет максимальное время, которое iscsid будет пытаться
# установить начальный вход. node.session.initial_login_retry_max умножается
# на node.conn[0].timeo.login_timeout для определения максимального времени.
#
# По умолчанию node.session.initial_login_retry_max равно 8,
# а node.conn[0].timeo.login_timeout равно 15, так что:
#
# node.conn[0].timeo.login_timeout * node.session.initial_login_retry_max = 120с
#
# Допустимые значения — любое целое число. Это влияет только на начальный вход.
# Установка высокого значения может замедлить запуск службы iSCSI.
# Установка низкого значения может привести к тому, что сессия не будет установлена,
# если во время запуска есть сбои или сеть не готова.
node.session.initial_login_retry_max = 8
################################
# Глубина очереди сессии и устройства
################################
# Чтобы контролировать, сколько команд будет помещено в очередь сессии,
# установите node.session.cmds_max в целое число от 2 до 2048, являющееся степенью 2.
# По умолчанию — 128.
node.session.cmds_max = 128
# Чтобы контролировать глубину очереди устройства,
# установите node.session.queue_depth в значение от 1 до 1024.
# По умолчанию — 32.
node.session.queue_depth = 32
##################################
# НАСТРОЙКИ ПРОИЗВОДИТЕЛЬНОСТИ СИСТЕМЫ
##################################
# Для программного iSCSI (iscsi_tcp) и iser (ib_iser) каждая сессия
# имеет поток, используемый для передачи или постановки данных в очередь на оборудование.
# Для cxgb3i создаётся поток на каждый хост.
#
# Установка более низкого приоритета потока может привести к более высокой пропускной способности
# и меньшим задержкам. Наименьшее значение — -20. Установка более высокого приоритета
# может снизить производительность ввода-вывода, но если потоки iSCSI или SCSI
# доминируют в использовании процессора, вы можете захотеть установить более высокое значение.
#
# Примечание: Для cxgb3i все сессии должны иметь одинаковое значение.
# В противном случае поведение не определено.
#
# Это делается путём сканирования /proc/PID/stat, и это не работает в
# новых ядрах (6.* и выше), так как поток передачи workqueue может быть
# пассивным и не отображаться в таблице процессов, когда он не выполняет работу.
# Если соответствующий процесс workqueue найден и приоритет не равен нулю,
# то при создании сессии приоритет этого процесса будет изменён.
#
# Примечание: как указано выше, значение по умолчанию теперь равно нулю, что означает,
# что мы не изменяем приоритет процесса передачи workqueue по умолчанию.
# Если вы хотите получить предыдущее поведение, установите это значение в -20.
# В будущем эта функциональность будет удалена, когда она больше не понадобится.
#
# Значение по умолчанию — 0. Значение должно быть в диапазоне от -20 до 20.
# node.session.xmit_thread_priority = 0
#***************
# Настройки iSCSI
#***************
# Чтобы включить управление потоком R2T (т.е. инициатор должен ждать команду R2T
# перед отправкой данных), раскомментируйте следующую строку:
#
#node.session.iscsi.InitialR2T = Yes
#
# Чтобы отключить управление потоком R2T (т.е. инициатор имеет неявный
# начальный R2T в размере "FirstBurstLength" с нулевым смещением),
# раскомментируйте следующую строку:
#
# По умолчанию — No.
node.session.iscsi.InitialR2T = No
#
# Чтобы отключить немедленную передачу данных (т.е. инициатор не отправляет
# неподтверждённые данные вместе с PDU команды iSCSI),
# раскомментируйте следующую строку:
#
#node.session.iscsi.ImmediateData = No
#
# Чтобы включить немедленную передачу данных (т.е. инициатор отправляет
# неподтверждённые данные вместе с пакетом команды iSCSI),
# раскомментируйте следующую строку:
#
# По умолчанию — Yes.
node.session.iscsi.ImmediateData = Yes
# Чтобы указать максимальное количество неподтверждённых байтов данных,
# которые инициатор может отправить в PDU iSCSI цели,
# отредактируйте следующую строку.
#
# Значение — количество байтов в диапазоне от 512 до (2^24-1),
# по умолчанию — 262144.
node.session.iscsi.FirstBurstLength = 262144
# Чтобы указать максимальную полезную нагрузку SCSI,
# которую инициатор будет согласовывать с целью,
# отредактируйте следующую строку.
#
# Значение — количество байтов в диапазоне от 512 до (2^24-1),
# по умолчанию — 16776192.
node.session.iscsi.MaxBurstLength = 16776192
# Чтобы указать максимальное количество байтов данных,
# которые инициатор может получить в PDU iSCSI от цели,
# отредактируйте следующую строку.
#
# Значение — количество байтов в диапазоне от 512 до (2^24-1),
# по умолчанию — 262144.
node.conn[0].iscsi.MaxRecvDataSegmentLength = 262144
# Чтобы указать максимальное количество байтов данных,
# которые инициатор будет отправлять в PDU iSCSI цели,
# отредактируйте следующую строку.
#
# Значение — количество байтов в диапазоне от 512 до (2^24-1).
# Ноль — особый случай. Если установлено в ноль, инициатор будет использовать
# MaxRecvDataSegmentLength цели для MaxXmitDataSegmentLength.
# По умолчанию — 0.
node.conn[0].iscsi.MaxXmitDataSegmentLength = 0
# Чтобы указать максимальное количество байтов данных,
# которые инициатор может получить в PDU iSCSI от цели во время сессии обнаружения,
# отредактируйте следующую строку.
#
# Значение — количество байтов в диапазоне от 512 до (2^24-1),
# по умолчанию — 32768.
discovery.sendtargets.iscsi.MaxRecvDataSegmentLength = 32768
# Чтобы позволить целям контролировать настройку проверки дайджеста,
# с инициатором, запрашивающим предпочтение включения проверки,
# раскомментируйте одну или обе следующие строки:
#node.conn[0].iscsi.HeaderDigest = CRC32C,None
#node.conn[0].iscsi.DataDigest = CRC32C,None
#
# Чтобы позволить целям контролировать настройку проверки дайджеста,
# с инициатором, запрашивающим предпочтение отключения проверки,
# раскомментируйте одну или обе следующие строки:
#node.conn[0].iscsi.HeaderDigest = None,CRC32C
#node.conn[0].iscsi.DataDigest = None,CRC32C
#
# Чтобы включить проверку дайджеста CRC32C для заголовка и/или данных
# PDU iSCSI, раскомментируйте одну или обе следующие строки:
#node.conn[0].iscsi.HeaderDigest = CRC32C
#node.conn[0].iscsi.DataDigest = CRC32C
#
# Чтобы отключить проверку дайджеста для заголовка и/или данных
# PDU iSCSI, раскомментируйте одну или обе следующие строки:
#node.conn[0].iscsi.HeaderDigest = None
#node.conn[0].iscsi.DataDigest = None
#
# По умолчанию DataDigests и HeaderDigests не используются.
#
# Для конфигураций с множественными путями вы можете захотеть,
# чтобы на каждом iface создавалось более одной сессии.
# Если node.session.nr_sessions больше 1, выполнение 'login' для этого узла
# гарантирует создание соответствующего количества сессий.
node.session.nr_sessions = 1
# Когда iscsid запускается, он восстанавливает существующие сессии (если это возможно).
# Если цель для сессии исчезла во время этого процесса,
# демон iscsid обычно пытается восстановить каждую сессию
# последовательно в фоновом режиме, повторяя попытки каждые две секунды,
# пока все сессии не будут восстановлены. Эта конфигурационная переменная
# может ограничить количество повторных попыток для каждой сессии.
# Например, установка reopen_max=150 означает, что восстановление каждой сессии
# будет ограничено примерно пятью минутами.
node.session.reopen_max = 0
# Когда цели iSCSI исчезают по любой причине, например, из-за отключения портов,
# проблем с сетью или других причин, существующие сессии будут повторно пытаться
# восстановиться демоном iSCSI, и каждая попытка будет иметь интервал
# 3 секунды/DefaultTime2Wait. Таким образом, логирование повторного открытия сессии
# происходит каждые 3 секунды и может перегружать систему логирования.
# Чтобы избежать перегрузки системы логирования,
# раскомментируйте следующий параметр конфигурации и измените значение
# с 1 на желаемое, например, 2, 3 или 4, и перезапустите iscsid,
# а также выполните повторное обнаружение целей iSCSI.
# Если значение этого параметра равно 4,
# то логи повторного открытия сессий будут записываться каждые 12 секунд
# (4 * 3 секунды = 12 секунд). Значения ниже 1 интерпретируются как 1 (по умолчанию).
# node.session.sess_reopen_log_freq = 1
#************
# Обходные решения
#************
# Некоторые цели, такие как IET, предпочитают, чтобы инициатор не отвечал на PDU,
# такие как R2T, после отправки функции управления задачами, например, ABORT TASK
# или LOGICAL UNIT RESET. Чтобы использовать это поведение,
# раскомментируйте следующую строку.
# По умолчанию — Yes.
node.session.iscsi.FastAbort = Yes
# Некоторые цели, такие как Equalogic, предпочитают, чтобы инициатор продолжал
# отвечать на R2T после отправки функции управления задачами, например, ABORT TASK
# или LOGICAL UNIT RESET. Чтобы использовать это поведение,
# раскомментируйте следующую строку.
# node.session.iscsi.FastAbort = No
# Чтобы предотвратить автоматическое сканирование, которое может добавить
# нежелательные LUN в систему, можно отключить его и разрешить сессиям
# выполнять только вручную запрошенные сканирования.
# Автоматическое сканирование выполняется при запуске, при входе
# и при получении AEN/AER на устройствах, которые это поддерживают.
# Для аппаратных драйверов все сессии будут использовать значение,
# определённое в файле конфигурации. Этот параметр конфигурации
# независим от параметра scsi_mod.scan. По умолчанию — auto.
node.session.scan = auto