После установки QUADStor Storage Virtualization 3.2.13 в Debian 9 перестаёт работать утилита targetcli. Ошибка "modprobe: ERROR: could not insert 'tcm_qla2xxx': Invalid argument"

Если для построения цели SCSI Target в ОС Debian GNU/Linux 9 нами используется Linux-IO (LIO), то для настройки цели мы будем пользоваться утилитой targetcli. В случае если на сервер, где используется LIO, будет установлен пакет QUADStor Storage Virtualization (QSV), то после установки мы можем столкнуться с ошибкой при работе с утилитой targetcli "modprobe: ERROR: could not insert 'tcm_qla2xxx': Invalid argument". Аналогичную ошибку мы будем получать при попытке вручную загрузить модуль tcm_qla2xxx с помощью modprobe.

image

Дело в том, что, в процессе своей работы, утилита targetcli пытается использовать вызовы модуля tcm_qla2xxx, а тот имеет несовместимость с подменяемым инсталляцией QSV модулем qla2xxx (в процессе установки QSV подсовывает в систему собственный драйвер qla2xxx, отключая тот драйвер, который был в системе на момент установки). Собственный вариант драйвера qla2xxx со стороны разработчиков QUADStor предполагается к использованию в тех случаях, когда нужно организовать SCSI Target на базе контроллеров FC HBA QLogic для доступа к дисковым ресурсам сервера из FC SAN.

Однако в некоторых ситуациях может получиться так, что SCSI Target от QUADStor нам не нужен, а поставляемый в составе Debian Linux модуль qla2xxx должен работать, так как он используется под какие-то другие задачи, отличные от QSV.

Вопрос о том, как "выкосить" драйвер qla2xxx от QUADStor и вернуть обратно поставляемый в составе Debian Linux драйвер после установки QSV, был озвучен Google-группе. Однако ответ от команды разработчиков QUADStor был опубликован не в группе, а пришёл мне на почту, поэтому здесь я публикую решение этой проблемы.

Итак, чтобы удалить драйвер qla2xxx, поставляемый в составе QUADStor Storage Virtualization и восстановить драйвер, который использовался в системе на момент установки QSV (и, как следствие, вернуть возможность штатной работы утилиты targetcli) достаточно выполнить утилиту qlauninst, поставляемую в составе пакета quadstor-virt.

# /quadstor/bin/qlauninst

В процессе выполнения оригинальный драйвер qla2xxx будет возвращён на своё место с последующей пересборкой загрузочного образа initrd (initial ramdisk) и после перезагрузки системы управление LIO с помощью утилиты targetcli снова заработает в штатном режиме. Обратите внимание на то, что текущая версия инсталляционного пакета QSV устроена таким образом, что при следующей установке родной драйвер qla2xxx, снова будет выключен. Поэтому если в дальнейшем планируется обновление/переустановка пакета quadstor-virt, то после каждой его установки потребуется повторно выполнять вызов утилиты qlauninst.

Добавить комментарий