All the lab hardware is Qlogic 2562, 2564, or 2662. There isn't a switch, so everything is point-to-point.
Put this in /etc/modprobe.d/qla2xxx.conf:
options qla2xxx qlini_mode=exclusive
This allows dual-port cards to be targets (T) and initiators (I) simultaneously. To ensure targets don't get plugged into targets and initiators into initiators, I've adopted these conventions:
Remember the ports on the 16G cards are backwards when you're figuring out what plugs into what.
I want a switch.
Download from Marvell or find it in ~/Library/hardware/qlogic-2xxx. Installing the .deb on Debian 12 created a problem for me where it couldn't find libncli.so.
LD_LIBRARY_PATH=/usr/lib64 /opt/QLogic_Corporation/QConvergeConsoleCLI/qaucli
…or install the RPM instead.
8G Fibre Channel goes about 7.9 Gbps. 16G goes 14. Both protocols can approach line rate to a ramdisk without having to try very hard.
FC gear is interoperable across three generations. In testing, everything was compatible and worked as expected except for 16G optics in 8G ports: those negotiated 4G connections instead of 8G.
The difference in power and heat from different generations of optics is not measurable. 16G optics don't require heatsinks.
NPIV can't be done without a switch. See 2025-01-01-fc-vports.txt for how to do it if I ever get a switch.
8G gear can't speak NVMe. I didn't try it with the 16G gear yet because I couldn't stand the noise of the fans.