Вопрос или проблема
Я пытаюсь настроить iSCSI на Ubuntu как LUN, который будет подключен с клиента Windows.
Диск — sdb, а раздел — sdb1 (смонтирован как /data
).
Использую tgt в качестве моего сервиса iscsi. Я сократил файл iscsi.conf до самых необходимых элементов.
<target iqn.1991-05.com.example:server01-linux>
backing-store /dev/sdb
initiator-address 192.168.1.31
</target>
Служба tgt работает.
Вывод sudo tgtadm --mode target --op
:
iSCSI инициатор подключается, но диски не отображаются.
Я в тупике и не знаю, в чем проблема. Есть ли на стороне Ubuntu лог, который действительно показывает, что LUN работает и доступен?
Что еще можно проверить? Спасибо.
Ответ или решение
Настройка iSCSI на Ubuntu для подключения с Windows-клиента может быть сложной задачей, особенно если инициатор подключается, но диски не отображаются. Давайте подробно разберем возможные причины этой проблемы и пути ее решения.
Теория
Сначала необходимо понять, как работает iSCSI. iSCSI (Internet Small Computer Systems Interface) – это протокол, который позволяет воздействовать на удаленные устройства хранения данных через внешнюю сеть, как если бы они были локально подключены. Основные компоненты здесь – это "цель" (target), предоставляющая доступ к устройству хранения, и "инициатор", который выполняет подключение к цели.
В вашем случае на сервере Ubuntu вы настроили цель iSCSI, используя tgt
, а Windows-клиент выполняет роль инициатора. В идеале, после успешного подключения, инициатор должен видеть доступный логический блок (LUN) как обычный диск.
Пример
Вы указали настройки в файле iscsi.conf
следующим образом:
<target iqn.1991-05.com.example:server01-linux>
backing-store /dev/sdb
initiator-address 192.168.1.31
</target>
Этот фрагмент указывает, что диск /dev/sdb предоставляется по сети с IP-адреса 192.168.1.31. Вы используете tgt
как службу iSCSI, и эта структура в конфигурации на первый взгляд выглядит правильно. Однако есть нюансы, которые могут мешать корректной работе.
Применение
Ниже представлены основные шаги и проверочные действия для решения вашей проблемы.
1. Проверьте лог-файлы на Ubuntu
Первое место для поиска информации – это лог-файлы системы. Логи могут дать представление о том, была ли попытка подключений, какие ошибки возникли и почему LUN может не отображаться. Логи tgt
обычно находятся в /var/log/
, проверьте файлы с tgt
в названии:
tailf /var/log/syslog | grep tgt
Или:
tailf /var/log/messages | grep tgt
2. Убедитесь, что используется правильная точка монтирования
Вы указали /dev/sdb
в качестве backing-store
, но также упомянули, что /dev/sdb1
смонтирован как /data
. Убедитесь, что целевой раздел действительно является тем устройством, которое вы хотите предоставить. Возможно, устройство /dev/sdb1
является более точным выбором, если планируется предоставить конкретный раздел.
3. Проверьте состояние сервиса TGT
Убедитесь, что служба tgt
запущена и конфигурация загружена правильно. Выполните:
sudo tgtadm --mode target --op show
Это должно показать информацию о всех доступных целях и LUN. Если цели нет в списке, проверьте вашу конфигурацию.
4. Проверьте конфигурацию сети
Проверьте подключение между Ubuntu и Windows на возможные проблемы с сетью. Убедитесь в правильности IP-адресов и отсутствии брандмауэров, блокирующих трафик iSCSI. Требуемые порты iSCSI (по умолчанию порт 3260) должны быть открыты.
5. Диагностика на стороне Windows
На стороне Windows проверьте состояние iSCSI-инициатора:
- Откройте iSCSI Initiator, проверьте вкладку Target и убедитесь, что статус Connected.
- Проверьте управление дисками (Disk Management) на наличие нового диска. Иногда потребуется вручную открыть управление дисками, чтобы Windows обнаружила новый диск.
- Также в командной строке вы можете использовать
iscsicli
для отладки соединений:
iscsicli ListTargets
Заключение
Если все шаги были выполнены, а проблема осталась нерешенной, попробуйте временно изменить уровень журналирования в конфигурации tgt
, чтобы получить более подробную информацию. Это может помочь выявить скрытые ошибки.
Вам может также помочь пересмотр конфигурации с учетом предоставления LUN как файловой системы, а не блочного устройства, чтобы убедиться, что все потенциальные проблемы уровня устройства устранены.
Используйте эти рекомендации, чтобы сузить круг поиска проблемы и найти верное решение. Надеюсь, это поможет вам в успешной настройке iSCSI на вашем сервере Ubuntu.