Greetings all, It is my great honor to announce the Target_Core_Mod/ConfigFS infrastructure project has reached v3.4.0-rc1 and is again tracking linux-2.6.git HEAD at v2.6.34-rc1. The kernel code can be found here: http://git.kernel.org/?p=linux/kernel/git/nab/lio-core-2.6.git;a=summary With this release marks the merge of the Open-FCoE.org based target module (tcm_fc) for TCM/ConfigFS 3.x contributed by Joe Eykholt as the third fabric module available in lio-core-2.6.git/master. This has included in a seperate release announcement, and information for the TCM Open-FCoE.org target module can be found here: http://www.linux-iscsi.org/index.php/Openfcoe This release also reaches the milestone of TCM/ConfigFS becoming the first and only Linux target mode project to run in multi-fabric mode across all known feature bits for SPC-4 defined persistent reservations (PR) using iSCSI, FCoE and Virtual SAS ports. This patch series and test case to make that happen for PR features SPEC_I_PT=1 and REGISTER_AND_MOVE was originally posted here: http://permalink.gmane.org/gmane.linux.scsi/57831 For more information about TCM/ConfigFS and fabric module usage with PR+ALUA, please have a look at: http://www.linux-iscsi.org/index.php/Target_Core_Mod/ConfigFS http://www.linux-iscsi.org/index.php/Persistent_Reservations http://www.linux-iscsi.org/index.php/ALUA Finally as no announcement would be complete without an multi-fabric demonstration, here is how explict/implict ALUA multipath using upstream scsi_dh_alua is looking with Open-iSCSI + Open-FCoE Initiators between TCM LIO-Target iSCSI and Open-FCoE.org target ports. This is done by seperate the iSCSi and FCoE Target ports into two different ALUA Target Port Groups (1gb_iscsi and 1gb_fcoe respectively) for the same TCM/FILEIO LUN backstore. Any constructive comments or questions are welcome! --nab *) Example /etc/multipath.conf defaults { udev_dir /dev polling_interval 2 default_getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" user_friendly_names yes } devices { device { vendor "LIO-ORG" product "FILEIO" path_grouping_policy group_by_prio path_checker tur prio_callout "/sbin/mpath_prio_alua /dev/%n" hardware_handler "1 alua" } } *) Create fcoe association for eth0 on initiator side: echo eth0 > /sys/module/fcoe/parameters/create [ 853.184640] scsi0 : FCoE Driver [ 853.186064] host0: libfc: Link up on port ( 0) [ 856.754764] host0: Assigned Port ID 10101 [ 856.758376] scsi 0:0:0:0: Direct-Access LIO-ORG FILEIO 3.1 PQ: 0 ANSI: 5 [ 856.818511] sd 0:0:0:0: [sda] READ CAPACITY(16) failed [ 856.819201] sd 0:0:0:0: [sda] Result: hostbyte=DID_ABORT driverbyte=DRIVER_OK [ 856.820127] sd 0:0:0:0: [sda] Sense not available. [ 856.820964] sd 0:0:0:0: [sda] 97656251 512-byte logical blocks: (50.0 GB/46.5 GiB) [ 856.822580] sd 0:0:0:0: [sda] Write Protect is off [ 856.823230] sd 0:0:0:0: [sda] Mode Sense: 2f 00 00 00 [ 856.823640] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA [ 856.825018] sd 0:0:0:0: [sda] READ CAPACITY(16) failed [ 856.825688] sd 0:0:0:0: [sda] Result: hostbyte=DID_ABORT driverbyte=DRIVER_OK [ 856.826620] sd 0:0:0:0: [sda] Sense not available. [ 856.828304] sda: unknown partition table [ 856.830403] sd 0:0:0:0: [sda] READ CAPACITY(16) failed [ 856.831109] sd 0:0:0:0: [sda] Result: hostbyte=DID_ABORT driverbyte=DRIVER_OK [ 856.832039] sd 0:0:0:0: [sda] Sense not available. [ 856.833689] sd 0:0:0:0: [sda] Attached SCSI disk <SNIP> [ 857.265004] alua: device handler registered [ 857.290275] device-mapper: multipath round-robin: version 1.0.0 loaded [ 857.291599] sd 0:0:0:0: alua: supports implicit and explicit TPGS [ 857.292794] sd 0:0:0:0: alua: port group 00 rel port 02 [ 857.293645] sd 0:0:0:0: alua: port group 00 state A supports TOUSNA [ 857.300249] sd 0:0:0:0: alua: port group 00 state A supports TOUSNA *) Create iSCSI session using Open-iSCSI: iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.lenny64guest1.x8664:sn.3074797efee0 --portal 192.168.0.250 --login [ 893.969954] scsi1 : iSCSI Initiator over TCP/IP [ 894.286774] scsi 1:0:0:0: Direct-Access LIO-ORG FILEIO 3.1 PQ: 0 ANSI: 5 [ 894.289767] sd 1:0:0:0: [sdb] 97656251 512-byte logical blocks: (50.0 GB/46.5 GiB) [ 894.292437] sd 1:0:0:0: [sdb] Write Protect is off [ 894.293254] sd 1:0:0:0: [sdb] Mode Sense: 2f 00 00 00 [ 894.293951] sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA [ 894.297422] sdb: unknown partition table [ 894.304374] sd 1:0:0:0: [sdb] Attached SCSI disk [ 894.976821] sd 1:0:0:0: alua: supports implicit and explicit TPGS [ 894.978378] sd 1:0:0:0: alua: port group 00 rel port 01 [ 894.979626] sd 1:0:0:0: alua: port group 00 state A supports TOUSNA [ 894.989850] sd 1:0:0:0: alua: port group 00 state A supports TOUSNA [ 894.990726] sd 0:0:0:0: alua: port group 00 state A supports TOUSNA *) lsscsi and multipath output: lenny64guest0:~# lsscsi [0:0:0:0] disk LIO-ORG FILEIO 3.1 /dev/sda [1:0:0:0] disk LIO-ORG FILEIO 3.1 /dev/sdb lenny64guest0:~# lsscsi --transport [0:0:0:0] disk fc:0x200000e081c090b3,0x010102 /dev/sda [1:0:0:0] disk iqn.2003-01.org.linux-iscsi.lenny64guest1.x8664:sn.3074797efee0,t,0x1 /dev/sdb lenny64guest0:~# multipath -ll mpath2 (36001405f776de20dc416d4382d8b16d0) dm-0 LIO-ORG ,FILEIO [size=47G][features=0][hwhandler=1 alua] \_ round-robin 0 [prio=100][active] \_ 1:0:0:0 sdb 8:16 [active][ready] \_ 0:0:0:0 sda 8:0 [active][ready] *) Target side ALUA Target Port Group output lenny64guest1:/sys/kernel/config/target# tcm_node --listaluatpgs fileio_0/myfile \------> 1g_fcoe Target Port Group ID: 2 Active ALUA Access Type(s): Implict and Explict Primary Access State: Active/NonOptimized Primary Access Status: Altered by Explict STPG Preferred Bit: 0 Active/NonOptimized Delay in milliseconds: 100 Transition Delay in milliseconds: 0 \------> TG Port Group Members fc/20:00:00:e0:81:c0:90:b3/tpgt_1/lun_0 \------> 1g_iscsi Target Port Group ID: 1 Active ALUA Access Type(s): Implict and Explict Primary Access State: Active/Optimized Primary Access Status: Altered by Explict STPG Preferred Bit: 0 Active/NonOptimized Delay in milliseconds: 100 Transition Delay in milliseconds: 0 \------> TG Port Group Members iSCSI/iqn.2003-01.org.linux-iscsi.lenny64guest1.x8664:sn.3074797efee0/tpgt_1/lun_0 \------> default_tg_pt_gp Target Port Group ID: 0 Active ALUA Access Type(s): Implict and Explict Primary Access State: Active/NonOptimized Primary Access Status: Altered by Explict STPG Preferred Bit: 0 Active/NonOptimized Delay in milliseconds: 100 Transition Delay in milliseconds: 0 \------> TG Port Group Members No Target Port Group Members *) TCM, LIO-Target and TCM_FC configfs layout |-- core | |-- alua | | `-- lu_gps | | `-- default_lu_gp | | |-- lu_gp_id | | `-- members | `-- fileio_0 | |-- hba_info | |-- hba_mode | `-- myfile | |-- alias | |-- alua | | |-- 1g_fcoe | | | |-- alua_access_state | | | |-- alua_access_status | | | |-- alua_access_type | | | |-- alua_write_metadata | | | |-- members | | | |-- nonop_delay_msecs | | | |-- preferred | | | |-- tg_pt_gp_id | | | `-- trans_delay_msecs | | |-- 1g_iscsi | | | |-- alua_access_state | | | |-- alua_access_status | | | |-- alua_access_type | | | |-- alua_write_metadata | | | |-- members | | | |-- nonop_delay_msecs | | | |-- preferred | | | |-- tg_pt_gp_id | | | `-- trans_delay_msecs | | `-- default_tg_pt_gp | | |-- alua_access_state | | |-- alua_access_status | | |-- alua_access_type | | |-- alua_write_metadata | | |-- members | | |-- nonop_delay_msecs | | |-- preferred | | |-- tg_pt_gp_id | | `-- trans_delay_msecs | |-- alua_lu_gp | |-- attrib | | |-- block_size | | |-- emulate_tas | | |-- emulate_ua_intlck_ctrl | | |-- hw_block_size | | |-- hw_max_sectors | | |-- hw_queue_depth | | |-- max_sectors | | |-- queue_depth | | `-- task_timeout | |-- control | |-- enable | |-- fd | |-- info | |-- pr | | |-- res_aptpl_active | | |-- res_aptpl_metadata | | |-- res_holder | | |-- res_pr_all_tgt_pts | | |-- res_pr_generation | | |-- res_pr_holder_tg_port | | |-- res_pr_registered_i_pts | | |-- res_pr_type | | `-- res_type | |-- snap | | |-- check_interval | | |-- contact | | |-- create_interval | | |-- enabled | | |-- lv_group | | |-- lvc_size | | |-- max_snapshots | | |-- max_warn | | |-- permissions | | |-- pid | | |-- usage | | |-- usage_warn | | `-- vgs_usage_warn | |-- udev_path | `-- wwn | |-- vpd_assoc_logical_unit | |-- vpd_assoc_scsi_target_device | |-- vpd_assoc_target_port | |-- vpd_protocol_identifier | `-- vpd_unit_serial |-- fc | |-- 20:00:00:e0:81:c0:90:b3 | | `-- tpgt_1 | | |-- acl | | | `-- 20:00:00:e0:81:c0:90:b2 | | | |-- auth | | | | |-- node_name | | | | `-- port_name | | | `-- lun_0 | | | `-- lun_0 -> ../../../../../../../target/fc/20:00:00:e0:81:c0:90:b3/tpgt_1/lun/lun_0 | | `-- lun | | `-- lun_0 | | |-- alua_tg_pt_gp | | |-- alua_tg_pt_offline | | |-- alua_tg_pt_status | | |-- alua_tg_pt_write_md | | `-- tcm_fc_port -> ../../../../../../target/core/fileio_0/myfile | `-- version |-- iscsi | |-- discovery_auth | | |-- authenticate_target | | |-- enforce_discovery_auth | | |-- password | | |-- password_mutual | | |-- userid | | `-- userid_mutual | |-- iqn.2003-01.org.linux-iscsi.lenny64guest1.x8664:sn.3074797efee0 | | `-- tpgt_1 | | |-- acls | | | `-- iqn.1993-08.org.debian:01:5640fc164638 | | | |-- attrib | | | | |-- dataout_timeout | | | | |-- dataout_timeout_retries | | | | |-- default_erl | | | | |-- nopin_response_timeout | | | | |-- nopin_timeout | | | | |-- random_datain_pdu_offsets | | | | |-- random_datain_seq_offsets | | | | `-- random_r2t_offsets | | | |-- auth | | | | |-- authenticate_target | | | | |-- password | | | | |-- password_mutual | | | | |-- userid | | | | `-- userid_mutual | | | |-- cmdsn_depth | | | |-- info | | | |-- lun_0 | | | | |-- abe06ac681 -> ../../../../../../../target/iscsi/iqn.2003-01.org.linux-iscsi.lenny64guest1.x8664:sn.3074797efee0/tpgt_1/lun/lun_0 | | | | `-- write_protect | | | `-- param | | | |-- DataPDUInOrder | | | |-- DataSequenceInOrder | | | |-- DefaultTime2Retain | | | |-- DefaultTime2Wait | | | |-- ErrorRecoveryLevel | | | |-- FirstBurstLength | | | |-- ImmediateData | | | |-- InitialR2T | | | |-- MaxBurstLength | | | |-- MaxConnections | | | `-- MaxOutstandingR2T | | |-- attrib | | | |-- authentication | | | |-- cache_dynamic_acls | | | |-- default_cmdsn_depth | | | |-- demo_mode_write_protect | | | |-- generate_node_acls | | | |-- login_timeout | | | |-- netif_timeout | | | `-- prod_mode_write_protect | | |-- control | | |-- enable | | |-- lun | | | `-- lun_0 | | | |-- 9b5222b0c6 -> ../../../../../../target/core/fileio_0/myfile | | | |-- alua_tg_pt_gp | | | |-- alua_tg_pt_offline | | | |-- alua_tg_pt_status | | | `-- alua_tg_pt_write_md | | |-- np | | | `-- 192.168.0.250:3260 | | | |-- info | | | `-- sctp | | `-- param | | |-- AuthMethod | | |-- DataDigest | | |-- DataPDUInOrder | | |-- DataSequenceInOrder | | |-- DefaultTime2Retain | | |-- DefaultTime2Wait | | |-- ErrorRecoveryLevel | | |-- FirstBurstLength | | |-- HeaderDigest | | |-- IFMarkInt | | |-- IFMarker | | |-- ImmediateData | | |-- InitialR2T | | |-- MaxBurstLength | | |-- MaxConnections | | |-- MaxOutstandingR2T | | |-- MaxRecvDataSegmentLength | | |-- OFMarkInt | | |-- OFMarker | | `-- TargetAlias | `-- lio_version `-- version *) lsmod output on target side: lenny64guest1:/sys/kernel/config/target# lsmod Module Size Used by tcm_fc 21970 6 fcoe 16843 1 libfcoe 10914 1 fcoe libfc 72344 3 tcm_fc,fcoe,libfcoe scsi_transport_fc 36413 2 fcoe,libfc iscsi_target_mod 212124 7 target_core_mod 243050 23 tcm_fc,iscsi_target_mod scsi_tgt 8418 2 scsi_transport_fc,target_core_mod configfs 19535 4 tcm_fc,iscsi_target_mod,target_core_mod -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html