Fibre Channel LUN повторно сканировать и QLogic
У меня серьезная проблема с массивом хранения SAN, подключенным к блоку Linux через Fibre Channel. Вот конфигурация:
- Debian с простым ванильным Linux 2.6.27.25
- Оптоволоконный контроллер QLogic 4Gb с двумя портами (на базе ISP2432)
В основном проблема заключается в следующем: как получить это #?@!! Контроллер / драйвер FC для правильного распознавания изменений конфигурации (новых или удаленных LUN) массива хранения?
- когда я создаю новый LUN в моем массиве (обычно снимок некоторого существующего LUN) и сопоставляю его с моим HBA, я не могу распознать его должным образом:
rescan-scsi-bus -l -w -r
фактически обнаруживает что-то (общее устройство / dev / sgXX), однако блочное устройство не создается (/ dev / sdXX). То же самое при выдаче LIP и повторного сканирования вручную:
echo 1> / sys / class / fc_host / host6 / issue_lip
echo "- - -"> / sys / class / scsi_host / host6 / scan
если я удаляю существующий LUN, ни выдача LIP и повторное сканирование, ни rescan-scsi-bus не имеют никакого эффекта. Предыдущие устройства остаются там и, конечно, не работают ( "file -s /dev/sdXX -> I/O error").
- перезагрузка драйвера qla2xxx работает. Однако это совершенно неработоспособно в производственной среде.
По-видимому, это очень распространенная проблема с QLogic. Существует какое-то решение, которое работает только при использовании выпущенного драйвера QLogic, доступного только для корпоративных дистрибутивов RedHat и Suse: см. Это объяснение.
Дополнительная информация:
Вот scsi устройства до LIP и повторного сканирования:
# sg_map -x
/dev/sg0 0 0 0 0 0 /dev/sda
/dev/sg1 0 0 1 0 5 /dev/scd0
/dev/sg2 1 0 0 0 0 /dev/sdb
/dev/sg3 6 0 0 0 0 /dev/sdc
/dev/sg4 6 0 0 1 0 /dev/sdd
/dev/sg5 6 0 0 2 3
После LIP и повторного сканирования у меня новое устройство sg, но нет подходящего диска. Если я перезагружаю драйвер, появляется диск:
# sg_map -x
/dev/sg0 0 0 0 0 0 /dev/sda
/dev/sg1 0 0 1 0 5 /dev/scd0
/dev/sg2 1 0 0 0 0 /dev/sdb
/dev/sg3 6 0 0 0 0 /dev/sdc
/dev/sg4 6 0 0 1 0 /dev/sdd
/dev/sg5 6 0 0 2 3
/dev/sg6 6 0 0 3 3
~# sg_map -x
/dev/sg0 0 0 0 0 0 /dev/sda
/dev/sg1 0 0 1 0 5 /dev/scd0
/dev/sg2 1 0 0 0 0 /dev/sdb
/dev/sg3 8 0 0 0 0 /dev/sdc
/dev/sg4 8 0 0 1 0 /dev/sdd
/dev/sg5 8 0 0 2 0 /dev/sde
/dev/sg6 8 0 0 3 3
Изменить: ОК, очевидно, это крепкий орешек. Я спрошу LKML и сообщу здесь.
2 ответа
Если вы не можете обнаружить блочное устройство, но не создаете / dev / device, вы можете создать это устройство вручную. Это не оптимально, но может вас хромать. Старшие и младшие номера представлены в /proc/partitions, и вы можете создавать свои собственные блочные устройства с помощью команды mknod.
# mknod /dev/sdg4 104 17
Однако я чувствую твою боль. QLogic предлагает скачать драйвер для RHEL и SUSE, но, похоже, других дистрибутивов нет. OpenSUSE может иметь драйверы под маркой QLogic, но я не уверен в этом. Я проверю ближе, когда доберусь до работы.
Изменить: я на работе, и кажется, что драйверы QLogic на моих коробках SLES все поставляются с QLogic. Их ОС поддерживает сетку:
http://filedownloads.qlogic.com/files/Driver/71098/readme_driver_80223.html
И все же, когда я загружаю стандартное ядро 2.6.27.25 и заглядываю в файл./drivers/scsi/qla2xxx/qla_version.h, это почти те же номера версий, что и в моих дистрибутивах Novell (как SLES, так и бесплатный openSUSE). Это говорит о том, что решение, которое вы нашли для SLES/RHEL, может фактически работать со стандартным ядром 2.6.27.25.
Привет, Wazoox. Я столкнулся с тем же профессионалом с моим SAN-боксом. У меня есть Google и несколько советов, которые последуют, если можно попробовать. Я думаю, что он начнет работать. Есть один инструмент, называемый emcgrab tools. Вы можете запустить этот инструмент, чтобы узнать драйвер вашего драйвера qlogic. работает или нет.
какой san box r u используете?
Ниже приведены несколько советов. http://forums.novell.com/novell-product-support-forums/suse-linux-enterprise-server-sles/sles-configure-administer/362473-lun-not-visible.html