CodingBox Q&A Ask question

无交换机16G FC家庭实验室:RHEL 8上qla2xxx的qlini_mode=disabled不生效,看不到target的LUN

Asked Active Viewed 109 AI translation from English
7

我在家里搭一套无交换机的光纤通道环境:一台机器放存储,要充当FC target,另外两台是普通的initiator。中间没有FC交换机,HBA之间直接拉线。

硬件:

  • 存储机器上是QLogic QLE2694,这台应该做target
  • 两台initiator机器上分别是QLogic QLE2690和QLE2692
  • FTLF8529P4BCV-QL 16G SFP+ LC光模块,QLogic编码,850nm短距
  • 端口之间是3米的OM3多模LC-LC跳线

光学这一侧完全没有问题。端口都能up,两张卡能互相看到对方,只要两端都保持initiator角色,一切正常。问题出在把存储那台机器切换成target模式上。我加了模块参数,重建了initramfs,重启了,但这个参数就是不生效:

# cat /etc/modprobe.d/qla2xxx.conf
options qla2xxx qlini_mode="disabled"

# after rebuilding the initramfs and rebooting
# cat /sys/module/qla2xxx/parameters/qlini_mode
enabled

targetcli能正常启动,但既然initiator模式还开着,就没有FC fabric可以挂后端存储,所以没有任何东西被导出,initiator那边看到的是一条空链路。

我试过的:

  • 分别在/etc/modprobe.d里和内核命令行上加这个参数
  • 每次改动之后都重新生成initramfs和引导配置
  • 换一下哪张卡放在存储机器里,以防是QLE2694本身的怪癖

这是不是我用的这个基于RHEL 8的发行版驱动构建方式的问题,还是我在参数生效的某个步骤上漏掉了什么?

Comments 4

Accepted answer

你没漏掉任何步骤,是这个选项在你运行的环境里本来就不可能生效。RHEL 8及以后版本自带的qla2xxx构建,把禁用initiator模式的能力整个拿掉了,不管你把qlini_mode="disabled"放在哪里都会被忽略,卡会一直保持initiator角色。QLE2694、光模块和光纤都没有任何问题。

有两条出路:把target主机换到一个还保留qla2xxx target模式的发行版上,或者自己编译这个模块——我不建议在一台要放数据的机器上这么做。我选的是第一条路,把target放到了Fedora Server 39上。

之后的流程就是常规操作:

options qla2xxx qlini_mode="disabled"

放进modprobe.d,然后重建initramfs和GRUB配置,重启,再用下面的命令检查端口:

systool -c fc_host -v

安装targetcli和sysfsutils,启用FC端口,然后把NVMe上的LVM卷映射成block backstore,绑定到端口WWN上,再给每个initiator分配各自的ACL。initiator那两台机器完全不用动,这个限制只卡在target这一侧。

给以后要这么做的人一个采购建议:优先选Dell品牌的QLE2690、QLE2692和QLE2694,因为它们的文档确实覆盖了target模式,能省去大量猜测。

6 South Koreaedgenode14KR Show original (English) AI translation

在有人开始瞎猜之前,先确认两件事。

第一,你的qla2xxx到底来自哪里:发行版内核自带的模块,还是从厂商那里拉下来自己编译的树外版本?在RHEL 8这个基础上,这两者的表现天差地别,而且这一点比modprobe的语法重要得多。

第二,把存储机器上的systool -c fc_host -v贴出来。它能告诉我们端口到底有没有真正up,以及以什么速率up,这样我们才能把驱动问题和物理层问题分开。

另外确认一下两端的光模块。FTLF8529P4BCV-QL是850nm短距型号,需要多模光纤——如果接的是单模,那什么都不会通,我想先排除这一点,再来讨论target模式。

0 United StateslasernodeUS Show original (English) AI translation

驱动是自带的:发行版仓库里的标准内核和标准qla2xxx,没有从厂商那边拉过东西,也没有手动编译过。

systool -c fc_host -v显示QLE2694上两个端口都在16G速率下online,两端用的都是同款FTLF8529P4BCV-QL模块,接的是3米OM3跳线,所以物理层确实没问题——作为initiator整套东西都能正常工作。

不管我把参数设在modprobe.d里还是内核命令行上,每次重建重启之后,sysfs里的qlini_mode依然显示enabled。sysfsutils和targetcli都装了,targetcli本身启动没有任何报错,只是里面根本没有任何FC相关的东西可以配置。

0 CanadalaserowlCA Show original (English) AI translation

在你把target主机换到另一个发行版的时候,顺带提醒一个相关的坑:一定要确认这个参数落在了这台机器引导路径真正会读取的地方。

经典的例子是一台Proxmox主机怎么都不肯接受它的光模块。管理员把ixgbe.allow_unsupported_sfp=1加进modprobe.d,又加进GRUB配置,两个都没起作用,因为这台机器是走EFI引导的,根本不会碰GRUB。在那种情况下,参数得写进/etc/kernel/cmdline,然后跑一遍pve-efiboot-tool refresh。

故障特征和你的一模一样:配置文件里写着一套,sysfs里显示另一套,结果白白怀疑了一晚上硬件。不管是什么主机,每次重启之后都从/sys/module/...里把值读出来确认,相信这个而不是你编辑过的那个文件。

2 GermanywavesmithDE Show original (English) AI translation
Log in to comment. Log in