SCSI RDMA Protocol/configFS

From Linux-iSCSI

Jump to: navigation, search
LIO Target
Logo
Mellanox Technologies, Ltd.
Mellanox Infiniband SRP fabric module
Original author(s) Vu Pham
Bart Van Assche
Nicholas Bellinger
Developer(s) Mellanox Technologies, Ltd.
Initial release February 15, 2011 (2011-02-15)
Preview release 4.1.0-rc1 / February 21, 2011;
14 months ago
 (2011-02-21)
Development status Production
Written in C
Operating system Linux
Type Fabric module
License GNU General Public License
Website mellanox.com
See Target for a complete overview over all fabric modules.

SCSI RDMA Protocol/configFS describes the configFS kernel interface for the Mellanox SCSI RDMA Protocol 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 an SRP 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 SRP configFS object tree. ConfigFS uses symbolic links for inter- and intra-modules configuration, and the SRP fabric module is mapped into configFS at /sys/kernel/config/target/srpt/. A $FABRIC shell variable is defined to point to the SRP root:

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

Object tree

Here is the tree configFS output of an active Mellanox SRP target from /sys/kernel/config/target/srpt.

/sys/kernel/config/target/srpt/
├── discovery_auth
├── mlx4_0
│   └── mlx4_0
│       ├── acls
│       │   └── 0x00000000000000000002c903000e8be9
│       │       ├── attrib
│       │       ├── auth
│       │       ├── lun_0
│       │       │   ├── mapped_lun -> ../../../../../../../target/srpt/mlx4_0/mlx4_0/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
│       │       └── param
│       ├── attrib
│       ├── lun
│       │   └── lun_0
│       │       ├── alua_tg_pt_gp
│       │       ├── alua_tg_pt_offline
│       │       ├── alua_tg_pt_status
│       │       ├── alua_tg_pt_write_md
│       │       ├── srpt_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
│       │               ├── device
│       │               ├── dev_name
│       │               ├── indx
│       │               └── inst
│       ├── np
│       └── param
└── version

Kernel ring buffer

An example for the Target side kernel ring buffer output by dmesg for a of connected SRP I_T Nexus is:

[ 1007.797934] Setup generic discovery
[ 1007.797934] Setup generic wwn
[ 1007.797934] Setup generic tpg
[ 1007.797934] Setup generic tpg_base
[ 1007.797934] Setup generic tpg_port
[ 1007.797934] Setup generic tpg_port_stat
[ 1007.801965] Setup generic tpg_lun
[ 1007.802424] Setup generic tpg_np
[ 1007.802854] Setup generic tpg_np_base
[ 1007.803286] Setup generic tpg_attrib
[ 1007.803707] Setup generic tpg_param
[ 1007.804118] Setup generic tpg_nacl
[ 1007.804520] Setup generic tpg_nacl_base
[ 1007.804971] Setup generic tpg_nacl_attrib
[ 1007.805441] Setup generic tpg_nacl_auth
[ 1007.805904] Setup generic tpg_nacl_param
[ 1007.805952] Setup generic tpg_mappedlun
[ 1007.805952] Setup generic tpg_mappedlun_stat
[ 1007.805952] <<<<<<<<<<<<<<<<<<<<<< BEGIN FABRIC API >>>>>>>>>>>>>>>>>>>>>>
[ 1007.805952] Initialized struct target_fabric_configfs: ffff8800517d98d8 for srpt
[ 1007.805952] <<<<<<<<<<<<<<<<<<<<<< END FABRIC API >>>>>>>>>>>>>>>>>>>>>>
[ 1007.809840] TARGET_CORE[srpt]: Allocated Normal struct se_portal_group for endpoint: 0x2c903000e8acc, Portal Tag: 1
[ 1013.031822] Target_Core_ConfigFS: REGISTER -> group: ffffffffa045fe80 name: srpt
[ 1013.032706] Target_Core_ConfigFS: REGISTER -> Located fabric: srpt
[ 1013.033424] Target_Core_ConfigFS: REGISTER tfc_wwn_cit -> ffff8800517d9be0
[ 1013.034329] Target_Core_ConfigFS: REGISTER -> Allocated Fabric: srpt
[ 1013.035067] Target_Core_ConfigFS: REGISTER -> Set tf->tf_fabric for srpt
[ 1013.037105] rd_mcp/srpt: Adding to default ALUA Target Port Group: alua/default_tg_pt_gp
[ 1013.038071] srpt_TPG[1]_LUN[0] - Activated srpt Logical Unit from CORE HBA: 5
[ 1013.040303] srpt_TPG[1] - Added ACL with TCQ Depth: 1 for srpt Initiator Node: 0x00000000000000000002c903000e8be9
[ 1013.042623] srpt_TPG[1]_LUN[0->0] - Added RW ACL for  InitiatorNode: 0x00000000000000000002c903000e8be9
[ 1017.578436] Received SRP_LOGIN_REQ with i_port_id 0x0:0x2c903000e8be9, t_port_id 0x2c903000e8acc:0x2c903000e8acc and it_iu_len 260 on port 1 
               (guid=0xfe80000000000000:0x2c903000e8acd)
[ 1017.583298] Session : kernel thread ib_srpt_compl (PID 2868) started
[ 1017.584060] TARGET_CORE[srpt]: Registered fabric_sess_ptr: ffff88007356f3f0

See also

External links

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox
Google AdSense