Создание Virtual Fibre Channel Ports в FreeBSD требуется помощь.Дано:
Freebsd 10.3 custom kernel
Карточка Qlogic QLE2462 dual port 4gb подключенная к Brokade 7500В ядре:
device isp
hint.isp.0.role="1"
hint.isp.1.role="1"hint.isp.0.fullduplex="1"
hint.isp.1.fullduplex="1"device ispfw
options ISP_TARGET_MODE=1
options ISP_DEFAULT_ROLES=1В /boot/device.hints:
hint.isp.0.vports="4"
hint.isp.1.vports="4"На https://www.freebsd.org/releases/10.3R/announce.htm чёрным по-аглицки написано:
The isp(4) driver has been updated and improved: It now also supports 16 Gbps Fibre Channel adapters, has improved target mode support and completed Multi-ID (NPIV) functionality.
Карточка это понимает.
В доке http://www.qlogic.com/Resources/Documents/DataSheets/Adapter...:
"Multi-ID and N_Port virtualization ready: allows physical ports to be
part of multiple logical networks"Пишут, что в Solaris это это как два байта переслать:
"fcadm create-npiv-port -p Virtual_Port_WWN -n Virtual_Node_WWN PhysicalPort_port_WWN"Люди добрые, КАК это сделать в FreeBSD??? Куда копать? Мозги уже поплавились.
Гайдов по этому поводу 0.
Так а в чем проблема? После установки hint.isp.0.vports="4" у системы вместо каждого порта долно появиться пять (если свич поддерживает NPIV). После этога настраивай их как обычно.
Но обновиться до 11.1 было бы неплохо.
> Но обновиться до 11.1 было бы неплохо.Свитч NPIV понимает (судя по его отчётам), NPIV на портах включен.
Касательно 11.1 не знаю, но драйвер mfi0 LSI MegaRAID SAS 9266-8i намертво вешает ядро 11.0root@NAS:/usr/home/leopold # ctladm port -l
Port Online Frontend Name pp vp
0 YES ioctl ioctl 0 0
1 YES tpc tpc 0 0
2 YES camsim camsim 0 0 naa.5000000233412f03
3 YES camtgt isp0 0 0 naa.2100001b3295a735
4 YES camtgt isp1 0 0 naa.2101001b32b5a735
>[оверквотинг удален]
> 0 YES ioctl
> ioctl 0 0
> 1 YES tpc
> tpc 0 0
> 2 YES camsim camsim
> 0 0 naa.5000000233412f03
> 3 YES camtgt isp0
> 0 0 naa.2100001b3295a735
> 4 YES camtgt isp1
> 0 0 naa.2101001b32b5a735А в `dmesg |grep isp` нет ругани про "MULTIID"? Загрузись с bootverbose и проверь что "Attributes: " включает MULTIID и VP0. Убедись что ты грузиш правильную фирмварь через ipfw(4).
> Убедись что ты грузиш правильную фирмварь через ipfw(4).В смысле ispfw(4).
>> Убедись что ты грузиш правильную фирмварь через ipfw(4).
> В смысле ispfw(4).root@NAS:/usr/home/leopold # dmesg |grep isp
isp0: <Qlogic ISP 2432 PCI FC-AL Adapter> port 0x5000-0x50ff mem 0xfbef0000-0xfbef3fff irq 24 at device 0.0 on pci16
isp0: Chan 0 setting role to 0x1
isp1: <Qlogic ISP 2432 PCI FC-AL Adapter> port 0x5400-0x54ff mem 0xfbee0000-0xfbee3fff irq 34 at device 0.1 on pci16
isp1: Chan 0 setting role to 0x1
vgapci0: <VGA-compatible display> port 0x3000-0x30ff mem 0xe8000000-0xefffffff,0xf1ff0000-0xf1ffffff irq 23 at device 3.0 on pci1
(ctl0:isp0:0:-1:ffffffff): ctlferegister: Enable LUN failed, status 0x3e
ctlfe_onoffline: isp0 current WWNN 0x2000001b3295a735
ctlfe_onoffline: isp0 current WWPN 0x2100001b3295a735
ctlfe_onoffline: SIM isp0 (path id 2) target enable succeeded
(ctl0:isp1:0:-1:ffffffff): ctlferegister: Enable LUN failed, status 0x3e
ctlfe_onoffline: isp1 current WWNN 0x2000001b32b5a735
ctlfe_onoffline: isp1 current WWPN 0x2101001b32b5a735
ctlfe_onoffline: SIM isp1 (path id 3) target enable succeededГде-то так. Если-бы в dmesg была-бы ругань, рыл бы в сторону фирмвари.
C verbouse так:
root@NAS:/usr/home/leopold # dmesg |grep isp
isp0: <Qlogic ISP 2432 PCI FC-AL Adapter> port 0x5000-0x50ff mem 0xfbef0000-0xfbef3fff irq 24 at device 0.0 on pci16
isp0: Chan 0 setting role to 0x1
isp1: <Qlogic ISP 2432 PCI FC-AL Adapter> port 0x5400-0x54ff mem 0xfbee0000-0xfbee3fff irq 34 at device 0.1 on pci16
isp1: Chan 0 setting role to 0x1
vgapci0: <VGA-compatible display> port 0x3000-0x30ff mem 0xe8000000-0xefffffff,0xf1ff0000-0xf1ffffff irq 23 at device 3.0 on pci1
isp0: isp_handle_platform_atio7: [0x114944] no state pointer for lun 0 or wildcard
isp0: isp_find_xs: bad handle 0x80ce5d70
isp0: CTIO returned by f/w- Port not available
isp0: NO xs for CTIO (handle 0x80ce5d70) status 0x28
isp1: isp_handle_platform_atio7: [0x114944] no state pointer for lun 0 or wildcard
isp1: isp_find_xs: bad handle 0x80ce5d70
isp1: CTIO returned by f/w- Port not available
isp1: NO xs for CTIO (handle 0x80ce5d70) status 0x28
isp0: isp_handle_platform_atio7: [0x114970] no state pointer for lun 2 or wildcard
isp1: isp_handle_platform_atio7: [0x114970] no state pointer for lun 2 or wildcardКриминеля по сабжу вроде не наблюдается.
C verbose должно быть так (правда это на head, но не думаю что должна быть разница):isp0: <Qlogic ISP 2432 PCI FC-AL Adapter> port 0xf000-0xf0ff mem 0xfbc40000-0xfbc43fff irq 50 at device 0.0 on pci10
isp0: Using Memory space register mapping
isp0: Chan 0 setting role to 0x1
isp0: loaded firmware isp_2400
isp0: Board Type 2422, Chip Revision 0x3, loaded F/W Revision 7.3.0
isp0: Attributes: IP MultiID T10CRC MSIX VP0_Decoupling (unknown 0x0000000000000400)
isp0: 2048 max I/O command limit set
isp0: attempting to allocate 2 MSI-X vectors (16 supported)
isp0: using IRQs 293-294 for MSI-X
isp0: Chan 0 0x2000001b328d44c0/0x2100001b328d44c0 Role Target
isp0: Chan 1 0x2000001b328d44c0/0x2200001b328d44c0 Role None
isp0: Chan 2 0x2000001b328d44c0/0x2300001b328d44c0 Role None
isp0: Chan 3 0x2000001b328d44c0/0x2400001b328d44c0 Role None
isp0: Chan 4 0x2000001b328d44c0/0x2500001b328d44c0 Role None
>[оверквотинг удален]
> isp0: Board Type 2422, Chip Revision 0x3, loaded F/W Revision 7.3.0
> isp0: Attributes: IP MultiID T10CRC MSIX VP0_Decoupling (unknown 0x0000000000000400)
> isp0: 2048 max I/O command limit set
> isp0: attempting to allocate 2 MSI-X vectors (16 supported)
> isp0: using IRQs 293-294 for MSI-X
> isp0: Chan 0 0x2000001b328d44c0/0x2100001b328d44c0 Role Target
> isp0: Chan 1 0x2000001b328d44c0/0x2200001b328d44c0 Role None
> isp0: Chan 2 0x2000001b328d44c0/0x2300001b328d44c0 Role None
> isp0: Chan 3 0x2000001b328d44c0/0x2400001b328d44c0 Role None
> isp0: Chan 4 0x2000001b328d44c0/0x2500001b328d44c0 Role NoneЕсли не секрет, Вас debug включен и какая версия BSD?
Версия фирмвари в исходниках 10.3 и 11.1 одинакова : 7.03.00, а вот драйвера isp разные.
> Если не секрет, Вас debug включен и какая версия BSD?Это без дебага, только bootverbose, как я и сказал. А версия, как я тоже сказал, head -- тоесть 12-CURRENT.
>> Если не секрет, Вас debug включен и какая версия BSD?
> Это без дебага, только bootverbose, как я и сказал. А версия,
> как я тоже сказал, head -- тоесть 12-CURRENT.Попробую глянуть на 12-CURRENT, но по-моему это рисково. Если заведётся, значит в десятке недоработка. Отпишусь.
> Попробую глянуть на 12-CURRENT, но по-моему это рисково. Если заведётся, значит в
> десятке недоработка. Отпишусь.Я бы начал с проверки bootverbose. То что я вижу не bootverbose не похоже.
что выдает:
#sysctl dev.isp.так же не видно тип FC в списке сtladm port -l, может следует включить их: ctladm port -o on -t fc
> что выдает:
> #sysctl dev.isp.
> так же не видно тип FC в списке сtladm port -l, может
> следует включить их: ctladm port -o on -t fcГромадное спасибо всем кто откликается.
Поставил 12 CURRENT, но видать где-то лихо набокапорил в ядре и теперь в ctladm FC порты не вижу. Буду пересобирать с нуля из NOTES. Это как в старых добрых квестах - начал тупить, отвлекись, на свежую голову увидишь правильный ответ. Ветку не забрасываю, отпишусь в обязательном порядке.
Alexander Motin и eRIC, спасибо Вам громадное за небезразличное отношение к страждущим.
Косяк чисто мой - из серии "бледнолиций и грабли". Конфиг ядра изначально правился из /sys/conf/NOTES >> /sys/amd64/NOTES > my.conf и кочевал с дополнениями из 10.3 в 11.1 и 12.0. Был пропущен хэш в начале строки
# To statically compile in device wiring instead of /boot/device.hints
hints "LINT.hints" # Default places to look for devices.
со всеми вытекающими...
Мораль: Начать с нуля и потратить час на правку и внимательную вычитку конфига несоизмеримо проще чем биться головой об стену и морочить голову приличным людям.
В результате:
>>Так а в чем проблема? После установки hint.isp.0.vports="4" у системы вместо каждого >>порта долно появиться пять (если свич поддерживает NPIV). После этога настраивай их как >>обычно.Абсолютно справедливо, на Brocade после ctladm port -o on -t = fc появляются виртпорты со своими WWNами.
>>так же не видно тип FC в списке сtladm port -l, может следует включить их: ctladm port ->>o on -t fcЕсли всё правильно, должны быть видны все фсишки, но без ввн-ов, пока не включишь.
Ещё раз спасибо, больших Вам upтаймов и шёлковых юзарей.
> Ещё раз спасибо, больших Вам upтаймов и шёлковых юзарей.Всегда пожалуйста! :)