QLogic/configFS

From Linux-iSCSI

Jump to: navigation, search
LIO Target
Logo
QLogic Corp.
QLogic Fibre Channel fabric module
Original author(s) Nicholas Bellinger
Developer(s) RisingTide Systems LLC
Initial release December 17, 2010 (2010-12-17)
Preview release 4.1.0-rc1 / February 21, 2011;
14 months ago
 (2011-02-21)
Development status RC
Written in C
Operating system Linux
Type Fabric module
License GNU General Public License
Website risingtidesystems.com
See Target for a complete overview over all fabric modules.

QLogic/configFS describes the configFS kernel interface for the QLogic Fibre Channel fabric module. ConfigFS is a RAM-based virtual file system provided by the 2.6 Linux kernel, originally based on sysfs code and developed as a hybrid control mechanism for OCFS2.

Contents

Introduction

To setup a QLogic Fibre Channel Target, targetcli (from RisingTide Systems) should be used. targetcli is a comprehensive, powerful, yet easy storage management tool that can efficiently handle complex LIO Target installations.

This page describes the resulting low-level user-space configuration of the QLogic configFS object tree. ConfigFS uses symbolic links for inter- and intra-modules configuration, and the QLogic fabric module is mapped into configFS at /sys/kernel/config/target/qla2xxx/. A $FABRIC shell variable is defined to point to the qla2xxx root:

export FABRIC=/sys/kernel/config/target/qla2xxx/

Object tree

Here is the tree configFS output of a running QLogic qla2xxx target from /sys/kernel/config/target/qla2xxx.

This is using a single QLA2xxx FC Target Port (21:00:00:24:ff:31:4c:48), with TPG LUN=0 and LUN=1. There is also an explict FC Initiator Port NodeACL (21:00:00:24:ff:31:4c:4c) and MappedLUN=0 and MappedLUN=1.

lenny64guest0:/usr/src/lio-core-2.6.git# tree /sys/kernel/config/target/qla2xxx/
/sys/kernel/config/target/qla2xxx/
|-- 21:00:00:24:ff:31:4c:48
|   `-- tpgt_1
|       |-- acls
|       |   `-- 21:00:00:24:ff:31:4c:4c
|       |       |-- attrib
|       |       |-- auth
|       |       |-- lun_0
|       |       |   |-- mapped_lun -> ../../../../../../../target/qla2xxx/21:00:00:24:ff:31:4c:48/tpgt_1/lun/lun_0
|       |       |   |-- statistics
|       |       |   |   |-- scsi_att_intr_port
|       |       |   |   |   |-- dev
|       |       |   |   |   |-- indx
|       |       |   |   |   |-- inst
|       |       |   |   |   |-- port
|       |       |   |   |   |-- port_auth_indx
|       |       |   |   |   `-- port_ident
|       |       |   |   `-- scsi_auth_intr
|       |       |   |       |-- att_count
|       |       |   |       |-- creation_time
|       |       |   |       |-- dev
|       |       |   |       |-- dev_or_port
|       |       |   |       |-- hs_num_cmds
|       |       |   |       |-- indx
|       |       |   |       |-- inst
|       |       |   |       |-- intr_name
|       |       |   |       |-- map_indx
|       |       |   |       |-- num_cmds
|       |       |   |       |-- port
|       |       |   |       |-- read_mbytes
|       |       |   |       |-- row_status
|       |       |   |       `-- write_mbytes
|       |       |   `-- write_protect
|       |       |-- lun_1
|       |       |   |-- mapped_lun -> ../../../../../../../target/qla2xxx/21:00:00:24:ff:31:4c:48/tpgt_1/lun/lun_1
|       |       |   |-- statistics
|       |       |   |   |-- scsi_att_intr_port
|       |       |   |   |   |-- dev
|       |       |   |   |   |-- indx
|       |       |   |   |   |-- inst
|       |       |   |   |   |-- port
|       |       |   |   |   |-- port_auth_indx
|       |       |   |   |   `-- port_ident
|       |       |   |   `-- scsi_auth_intr
|       |       |   |       |-- att_count
|       |       |   |       |-- creation_time
|       |       |   |       |-- dev
|       |       |   |       |-- dev_or_port
|       |       |   |       |-- hs_num_cmds
|       |       |   |       |-- indx
|       |       |   |       |-- inst
|       |       |   |       |-- intr_name
|       |       |   |       |-- map_indx
|       |       |   |       |-- num_cmds
|       |       |   |       |-- port
|       |       |   |       |-- read_mbytes
|       |       |   |       |-- row_status
|       |       |   |       `-- write_mbytes
|       |       |   `-- write_protect
|       |       `-- param
|       |-- attrib
|       |   |-- cache_dynamic_acls
|       |   |-- demo_mode_write_protect
|       |   |-- generate_node_acls
|       |   `-- prod_mode_write_protect
|       |-- enable
|       |-- lun
|       |   |-- lun_0
|       |   |   |-- alua_tg_pt_gp
|       |   |   |-- alua_tg_pt_offline
|       |   |   |-- alua_tg_pt_status
|       |   |   |-- alua_tg_pt_write_md
|       |   |   |-- qla2xxx_port -> ../../../../../../target/core/rd_mcp_0/mcp_ramdisk
|       |   |   `-- statistics
|       |   |       |-- scsi_port
|       |   |       |   |-- busy_count
|       |   |       |   |-- dev
|       |   |       |   |-- indx
|       |   |       |   |-- inst
|       |   |       |   `-- role
|       |   |       |-- scsi_tgt_port
|       |   |       |   |-- dev
|       |   |       |   |-- hs_in_cmds
|       |   |       |   |-- in_cmds
|       |   |       |   |-- indx
|       |   |       |   |-- inst
|       |   |       |   |-- name
|       |   |       |   |-- port_index
|       |   |       |   |-- read_mbytes
|       |   |       |   `-- write_mbytes
|       |   |       `-- scsi_transport
|       |   |           |-- dev_name
|       |   |           |-- device
|       |   |           |-- indx
|       |   |           `-- inst
|       |   `-- lun_1
|       |       |-- alua_tg_pt_gp
|       |       |-- alua_tg_pt_offline
|       |       |-- alua_tg_pt_status
|       |       |-- alua_tg_pt_write_md
|       |       |-- qla2xxx_port -> ../../../../../../target/core/rd_mcp_1/mcp_ramdisk
|       |       `-- statistics
|       |           |-- scsi_port
|       |           |   |-- busy_count
|       |           |   |-- dev
|       |           |   |-- indx
|       |           |   |-- inst
|       |           |   `-- role
|       |           |-- scsi_tgt_port
|       |           |   |-- dev
|       |           |   |-- hs_in_cmds
|       |           |   |-- in_cmds
|       |           |   |-- indx
|       |           |   |-- inst
|       |           |   |-- name
|       |           |   |-- port_index
|       |           |   |-- read_mbytes
|       |           |   `-- write_mbytes
|       |           `-- scsi_transport
|       |               |-- dev_name
|       |               |-- device
|       |               |-- indx
|       |               `-- inst
|       |-- np
|       `-- param
|-- discovery_auth
`-- version

34 directories, 92 files

Kernel ring buffer

An example for the Target side kernel ring buffer output by dmesg during initiator login is:

[ 5591.511559] TCM QLOGIC QLA2XXX fabric module v0.1 on Linux/x86_64 on 2.6.38-rc6+
[ 5591.512835] Setup generic discovery
[ 5591.513430] Setup generic wwn
[ 5591.513941] Setup generic tpg
[ 5591.514452] Setup generic tpg_base
[ 5591.515032] Setup generic tpg_port
[ 5591.515740] Setup generic tpg_port_stat
[ 5591.516388] Setup generic tpg_lun
[ 5591.516950] Setup generic tpg_np
[ 5591.517497] Setup generic tpg_np_base
[ 5591.518115] Setup generic tpg_attrib
[ 5591.518717] Setup generic tpg_param
[ 5591.519407] Setup generic tpg_nacl
[ 5591.519990] Setup generic tpg_nacl_base
[ 5591.520640] Setup generic tpg_nacl_attrib
[ 5591.521319] Setup generic tpg_nacl_auth
[ 5591.521969] Setup generic tpg_nacl_param
[ 5591.522634] Setup generic tpg_mappedlun
[ 5591.523339] Setup generic tpg_mappedlun_stat
[ 5591.524062] <<<<<<<<<<<<<<<<<<<<<< BEGIN FABRIC API >>>>>>>>>>>>>>>>>>>>>>
[ 5591.525202] Initialized struct target_fabric_configfs: ffff88007492e360 for qla2xxx
[ 5591.526468] <<<<<<<<<<<<<<<<<<<<<< END FABRIC API >>>>>>>>>>>>>>>>>>>>>>
[ 5591.527640] TCM_QLA2XXX[0] - Set fabric -> tcm_qla2xxx_fabric_configfs
[ 5591.528752] Setup generic discovery
[ 5591.529350] Setup generic wwn
[ 5591.529861] Setup generic tpg
[ 5591.530373] Setup generic tpg_base
[ 5591.530955] Setup generic tpg_port
[ 5591.531594] Setup generic tpg_port_stat
[ 5591.532253] Setup generic tpg_lun
[ 5591.532821] Setup generic tpg_np
[ 5591.533375] Setup generic tpg_np_base
[ 5591.534000] Setup generic tpg_attrib
[ 5591.534610] Setup generic tpg_param
[ 5591.535261] Setup generic tpg_nacl
[ 5591.535851] Setup generic tpg_nacl_base
[ 5591.536508] Setup generic tpg_nacl_attrib
[ 5591.537190] Setup generic tpg_nacl_auth
[ 5591.537847] Setup generic tpg_nacl_param
[ 5591.538517] Setup generic tpg_mappedlun
[ 5591.539224] Setup generic tpg_mappedlun_stat
[ 5591.539959] <<<<<<<<<<<<<<<<<<<<<< BEGIN FABRIC API >>>>>>>>>>>>>>>>>>>>>>
[ 5591.541120] Initialized struct target_fabric_configfs: ffff88007492d2d0 for qla2xxx_npiv
[ 5591.542477] <<<<<<<<<<<<<<<<<<<<<< END FABRIC API >>>>>>>>>>>>>>>>>>>>>>
[ 5591.543667] TCM_QLA2XXX[0] - Set fabric -> tcm_qla2xxx_npiv_fabric_configfs
[ 5591.547279] Target_Core_ConfigFS: REGISTER -> group: ffffffffa0418200 name: qla2xxx
[ 5591.548584] Target_Core_ConfigFS: REGISTER -> Located fabric: qla2xxx
[ 5591.549669] Target_Core_ConfigFS: REGISTER tfc_wwn_cit -> ffff88007492e668
[ 5591.550829] Target_Core_ConfigFS: REGISTER -> Allocated Fabric: qla2xxx
[ 5591.552090] Target_Core_ConfigFS: REGISTER -> Set tf->tf_fabric for qla2xxx
[ 5591.553494] qla2xxx HW vha->node_name: 20 00 00 24 ff 31 4c 48 
[ 5591.554671] qla2xxx HW vha->port_name: 21 00 00 24 ff 31 4c 48 
[ 5591.555887] qla2xxx passed configfs WWPN: 21 00 00 24 ff 31 4c 48 
[ 5591.556080] qla2xxx: Found matching HW WWPN: 21:00:00:24:ff:31:4c:48 for lport
[ 5591.581149] qla2xxx: Allocated lport_fcport_map of 134217728 bytes
[ 5591.582348] qla2xxx: Allocated lport_loopid_map of 524288 bytes
[ 5591.583751] TARGET_CORE[qla2xxx]: Allocated Normal struct se_portal_group for endpoint: 21:00:00:24:ff:31:4c:48, Portal Tag: 1
[ 5591.590213] rd_mcp/qla2xxx: Adding to default ALUA Target Port Group: alua/default_tg_pt_gp
[ 5591.591728] qla2xxx_TPG[1]_LUN[0] - Activated qla2xxx Logical Unit from CORE HBA: 3
[ 5591.594744] rd_mcp/qla2xxx: Adding to default ALUA Target Port Group: alua/default_tg_pt_gp
[ 5591.596220] qla2xxx_TPG[1]_LUN[1] - Activated qla2xxx Logical Unit from CORE HBA: 1
[ 5591.599846] qla2xxx_TPG[1] - Added ACL with TCQ Depth: 1 for qla2xxx Initiator Node: 21:00:00:24:ff:31:4c:4c
[ 5591.603289] qla2xxx_TPG[1]_LUN[0->0] - Added RW ACL for  InitiatorNode: 21:00:00:24:ff:31:4c:4c
[ 5591.608725] qla2xxx_TPG[1]_LUN[1->1] - Added RW ACL for  InitiatorNode: 21:00:00:24:ff:31:4c:4c
[ 5592.615582] qla2xxx 0000:00:05.0: Performing ISP error recovery - ha= ffff880051728000.
[ 5592.628582] qla2xxx 0000:00:05.0: FW: Loading via request-firmware...
[ 5592.980888] qla2xxx 0000:00:05.0: LIP occurred (f8f7).
[ 5592.982918] qla2xxx 0000:00:05.0: LOOP UP detected (8 Gbps).
[ 5596.046689] Unable to locate se_nacl by loop_id: 0x0000
[ 5596.080570] qla2xxx 0000:00:05.0: LOOP DOWN detected (0 3 0 0).
[ 5596.084860] qla_target(0): Link failure detected
[ 5596.362080] qla2xxx 0000:00:05.0: LIP occurred (f8f7).
[ 5596.364231] qla2xxx 0000:00:05.0: LOOP UP detected (8 Gbps).
[ 5596.365244] Unable to locate se_nacl by loop_id: 0x0000
[ 5596.366272] Unable to locate se_nacl by loop_id: 0x0000
[ 5596.519110] TARGET_CORE[qla2xxx]: Registered fabric_sess_ptr: ffff8800554950a8
[ 5596.520354] qla_target(0): session for wwn 21:00:00:24:ff:31:4c:4c (loop_id 0, s_id 0:0:e8, confirmed completion supported) added

See also

External links

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox
Google AdSense