У меня серьезная проблема с массивом хранения 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 и сообщу здесь.