光纤通道 (Fibre Channel, FC) 端口提供程序可以使用用于 FC 启动器的相同 HBA。一个给定的 FC 端口可以作为启动器或目标使用,但不能同时作为两者使用。还可以配置一个双端口或四端口 FC HBA,以便 HBA 端口的子集处于目标模式,其余的端口处于启动器模式。
本节中的过程特定于 QLogic HBA。在启动器模式中结合 HBA 使用的驱动程序为 qlc,即 Qlogic 驱动程序。qlc 驱动程序只在启动器模式下运行,不能用于目标模式。用于目标 QLogic 4G HBA 的 COMSTAR 驱动程序为 qlt。
由于启动器模式和目标模式使用不同的驱动程序,附加到 HBA 端口的驱动程序将其功能定义为目标或启动器。通过指定 HBA 的 PCI 设备 ID 可以指定所有端口的驱动程序。或者,可以在端口对端口的基础上配置驱动程序。两种方法都使用 update_drv 命令并在本节中进行了介绍。有关更多信息,请参见update_drv(1M)。
对 HBA 端口做出更改之前,首先要检查现有端口绑定。
在此示例中,当前的绑定是 pciex1077,2432。
# mdb -k Loading modules: [ unix krtld genunix specfs ... > ::devbindings -q qlc 30001617a08 pciex1077,2432, instance #0 (driver name: qlc) 300016177e0 pciex1077,2432, instance #1 (driver name: qlc) > $q
此过程使用特定的 PCI 设备 ID 将所有 HBA 上的所有端口更改到目标模式。PCI 设备 ID 号将驱动程序绑定到端口,从而使用该 PCI 设备 ID 设置所有 HBA 端口,例如,所有 QLogic 4G PCI 将 HBA 表达到目标模式。
在此示例中,qlc 驱动程序主动绑定到 pciex1077,2432。必须删除 qlc 现有的绑定,然后才可以将该绑定添加到新的驱动程序。此语法中需要单引号。
# update_drv -d -i 'pciex1077,2432' qlc Cannot unload module: qlc Will be unloaded upon reboot.
此消息并未指示错误。配置文件已更新,但 qlc 驱动程序仍然绑定到端口,直到系统重新引导。
在此示例中,qlt 已更新。此语法中需要单引号。
# update_drv -a -i 'pciex1077,2432' qlt devfsadm: driver failed to attach: qlt Warning: Driver (qlt) successfully added to system but failed to attach
此消息并未指示错误。qlc 驱动程序仍然绑定到端口,直到系统重新引导。qlt 驱动程序在系统重新引导时连接。
# init 6 . . . # mdb -k Loading modules: [ unix krtld genunix specfs dtrace ... > ::devbindings -q qlt 30001615a08 pciex1077,2432, instance #0 (driver name: qlt) 30001615e0 pciex1077,2432, instance #1 (driver name: qlt) > $q
# stmfadm list-target -v Target: wwn.210100E08BA54E60 Operational Status : Offline Provider Name : qlt(1) Alias : - Sessions : 0 Target: wwn.210100E08BA54E60 Operational Status : Offline Provider Name : qlt(0) Alias : - Sessions : 0
此过程使用基于路径的绑定。这说明如何使用特定的设备路径将端口绑定到驱动程序,该驱动程序与当前绑定的驱动程序不同。
该示例显示了具有两个端口的单个 HBA 的设备路径。
# luxadm -e port /devices/pci@780/QLGC,qlc@0,1/fp@0,0:devctl CONNECTED /devices/pci@780/QLGC,qlc@0/fp@0,0:devctl CONNECTED
删除路径的初始 /devices 部分,且包括一切直至 /fp@0...。/devices 部分删除的路径是系统绑定 qlt 驱动程序的路径。
此语法中需要单引号。
# update_drv -a -i '/pci@780/QLGC,qlc@0,1' qlt devfsadm: driver failed to attach: qlt Warning: Driver (qlt) successfully added to system but failed to attach.
此消息并未指示错误。qlc 驱动程序仍然绑定到端口,直到重新引导。qlt 驱动程序在重新引导时连接。
应该看到端口从启动器模式 (qlc) 更改到目标模式 (qlt)。
# init 6 . . . # mdb -k . . . > $q
# stmfadm list-target -v