Вопрос или проблема
У меня есть виртуальная машина Debian GNU/Linux 12 (amd64), которая должна смонтировать этот iSCSI-объем при загрузке.
Следуя этому руководству, команда iscsiadm
выполнила все, что должна была, и я смог вручную смонтировать объем. Однако команда iscsiadm --mode node --targetname "..." --portal "...:3260"
разместила файлы конфигурации инициатора в /var/lib/iscsi/...
, а не в /etc/iscsi
. Я не уверен, что это проблема, но при перезагрузке сервер не инициировал соединение iSCSI и не смонтировал объем.
Затем я скопировал /var/lib/iscsi/*
в /etc/iscsi/
, и это тоже начало работать при загрузке. На какое-то время. Сегодня это прекратилось после перезагрузки без очевидной причины (по крайней мере, не очевидной для меня).
Используя apt
, я заметил, что доступно обновление open-iscsi
из sid
(версия 2.1.10-2, в то время как у меня была установлена 2.1.10-1), и я попытался установить его, что возобновило мое соединение iSCSI без редактирования чего-либо. Однако в журнале изменений для этой новой версии говорится, что она добавляет поддержку архитектуры riscv64
, которой у меня нет.
При проверке ситуации я вижу, что директория /var/lib/iscsi/nodes
была изменена во время обновления пакета (я не понимаю, почему), в то время как директория /etc/iscsi/nodes
не была изменена (я понимаю, почему). Однако содержимое обеих директорий по-прежнему оставалось одинаковым (rsync -rcnv /var/lib/iscsi/nodes/ /etc/iscsi/nodes/
не показало ничего для синхронизации).
После еще одной перезагрузки сервера соединение iSCSI снова установилось корректно, но я не уверен, что могу доверять этой ситуации. Поиск ошибок вокруг времени, когда это не сработало ранее, с использованием journalctl | grep -i iscsi
не приводит к каким-либо сообщениям об ошибках, кроме:
nov 27 10:46:32 adh systemd[1]: iscsid.service: Не удалось разобрать PID из файла /run/iscsid.pid: Неверный аргумент
что, тем не менее, сопровождается корректным запуском инициатора (по крайней мере, с точки зрения логов, но на практике это не работало).
Является ли ручное копирование содержимого директории /var/lib/iscsi
в /etc/iscsi/
правильным, хотя и не задокументированным, решением? Или есть что-то другое/отличное, что нужно сделать, чтобы система надежно создавала устройство iSCSI при загрузке?
Ответ или решение
iSCSI Инициатор на Debian: Настройка для Автоматического Подключения при Загрузке
Настройка iSCSI инициатора на Debian 12 для автоматического соединения с iSCSI томом при загрузке включает в себя несколько важных этапов. Давайте подробно рассмотрим их, чтобы гарантировать надежность подключения.
1. Установка open-iscsi
Первым шагом является установка пакета open-iscsi
, если он еще не установлен. Используйте следующую команду:
sudo apt update
sudo apt install open-iscsi
2. Конфигурация iSCSI
После установки необходимо настроить iSCSI инициатор. Для этого используйте команду iscsiadm
. Например, чтобы добавить iSCSI целевой сервер и его портал:
sudo iscsiadm -m discovery -t sendtargets -p [IP_портала]:3260
Затем для логина в iSCSI цель:
sudo iscsiadm -m node -T [имя_цели] -p [IP_портала]:3260 --login
3. Сохранение конфигурации
Вы упомянули, что файлы конфигурации сохраняются в /var/lib/iscsi
вместо /etc/iscsi
. Это нормальное поведение для open-iscsi
. Каждый раз, когда вы выполняете команду iscsiadm
, она обновляет состояние iSCSI в /var/lib/iscsi
. Однако настройки и конфигурация, применяемые во время загрузки, должны быть сохранены в /etc/iscsi
.
Для автоматического подключения при загрузке вам необходимо убедиться, что состояние узла и целевой конфигурации правильно отражено в /etc/iscsi/nodes/
. Вам не нужно вручную копировать файлы из /var/lib/iscsi
в /etc/iscsi
. Вместо этого выполните следующий набор команд, чтобы правильно зарегистрировать узлы:
sudo iscsiadm -m node -o update -n node.startup -v automatic
Это установит автоматический старт для этих узлов.
4. Проверка конфигурации
После выполнения вышеперечисленных команд вы можете проверить настройки, выполнив:
sudo iscsiadm -m node -T [имя_цели] -p [IP_портала]:3260 -o show
Убедитесь, что параметр startup
выставлен в automatic
.
5. Обработка ошибок
Если после перезагрузки iSCSI не подключается, необходимо проверить логи и ошибки службы:
journalctl -u iscsid.service
Ошибка, которую вы упомянули о Failed to parse PID from file /run/iscsid.pid
, может указывать на проблемы с запуском службы. Убедитесь, что служба iscsid
правильно настроена для автоматического старта:
sudo systemctl enable iscsid
Также рекомендуется перезапустить службу, если возникли проблемы:
sudo systemctl restart iscsid
6. Автоматическое монтирование файловой системы
После успешного соединения iSCSI вам следует автоматически монтировать iSCSI том. Для этого добавьте запись в файл /etc/fstab
. Получите UUID или имя устройства, используя:
sudo iscsiadm -m session
Добавьте нужную строку в /etc/fstab
:
/dev/disk/by-id/iscsi-[имя_цели] /mnt/[точка_монтирования] xfs defaults,_netdev 0 0
Заключение
Следуя вышеуказанным рекомендациям, вы сможете настроить автоматическое подключение iSCSI на Debian 12 с низким риском ошибок. Убедитесь, что вы проверяете все настройки и служебные сообщения после каждой перезагрузки, чтобы гарантировать безотказную работу системы. Настройка iSCSI может быть сложной задачей, но с правильным подходом и пониманием процессов ее можно сделать надежной.