From: Vladislav Bolkhovitin <vst@vlnb.net>
To: "Nicholas A. Bellinger" <nab@linux-iscsi.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
linux-scsi <linux-scsi@vger.kernel.org>,
"Linux-iSCSI.org Target Dev"
<linux-iscsi-target-dev@googlegroups.com>,
SCST-Devel <scst-devel@lists.sourceforge.net>,
iet-dev <iscsitarget-devel@lists.sourceforge.net>,
Joel Becker <joel.becker@oracle.com>,
Jerome Martin <tramjoe.merin@gmail.com>, Greg KH <greg@kroah.com>,
James Bottomley <James.Bottomley@HansenPartnership.com>,
FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>,
Mike Christie <michaelc@cs.wisc.edu>,
"H. Peter Anvin" <hpa@zytor.com>,
Ming Zhang <blackmagic02881@gmail.com>
Subject: Re: [ANNOUNCE]: ConfigFS enabled Generic Target Mode and iSCSI Target Stack on v2.6.27-rc7
Date: Wed, 01 Oct 2008 21:36:41 +0400 [thread overview]
Message-ID: <48E3B529.4060406@vlnb.net> (raw)
In-Reply-To: <1222716101.4296.41.camel@haakon2.linux-iscsi.org>
Hi Nicholas,
Nicholas A. Bellinger wrote:
> Greetings all,
>
> I am happy to announce that the first ConfigFS configurable generic
> target engine (target_core_mod) and iSCSI Target Stack
> (iscsi_target_mod) are now able to use ConfigFS symlinks for the
> creation of Linux Storage Objects from drivers/scsi, block, or fs/
> storage objects to iSCSI Target Port Endpoints.
>
> The code is available currently running on v2.6.27-rc7 and has been
> broken up into a number of commits at:
> http://git.kernel.org/?p=linux/kernel/git/nab/lio-core-2.6.git;a=summary
>
> Now that the primary configfs functionality is up and allowing iSCSI
> Initiator Traffic to the symlinked storage objects from a generic target
> engine, I will be continuing work on the complete logic for configfs
> enabled iscsi_target_mod, as well as removing the legacy IOCTL control
> path as equivalent functionality is added with ConfigFS.
>
> Also, one of the next major steps for the upstream generic target engine
> and iSCSI target stack is to include SCST's target mode API between
> Engine / Fabric to give target_core_mod a proper Fabric API to allow
> other SCST fabric modules to access target_core_mod's configfs enabled
> storage objects. Also, allowing STGT to use the configfs interface to
> allow for userspace fabrics to the same target_core_mod storage objects
> is also on the list, but I imagine interest from those communities will
> certainly help drive those efforts.
>
> Here are the shell variables required to make it all go:
>
> export CONFIGFS=/sys/kernel/config/
> export TARGET=/sys/kernel/config/target/core/
> export FABRIC=/sys/kernel/config/target/iscsi/
>
> The storage objects registered with target_core_mod via $TARGET may be
> mapped from $TARGET/$HBA/$STORAGE_OBJECT any number of times to:
>
> $FABRIC/$IQN/tpgt_1/lun/lun_0/$PORT_LINK
> $FABRIC/$IQN/tpgt_1/lun/lun_1/$PORT_LINK
> $FABRIC/$IQN/tpgt_2/lun/lun_0/$PORT_LINK
> $FABRIC/$ANOTHER_IQN/tpgt_1/lun_0/$PORT_LINK
> ....
> ....
>
> Here are the shell commands to bring storage objects online..
>
> # Create a IBLOCK HBA and virtual storage object
> mkdir -p $TARGET/iblock_0/lvm_test0
> # Tell the virtual storage object what struct block_device we want
> echo iblock_major=254,iblock_minor=2 > $TARGET/iblock_0/lvm_test0/dev_control
> # Enable the virtual storage object and call bd_claim()
> echo 1 > $TARGET/iblock_0/lvm_test0/dev_enable
>
> DEF_IQN="iqn.2003-01.org.linux-iscsi.target.i686:sn.e475ed6fcdd0"
>
> # Create the network portal on $DEF_IQN/tpgt_1
> mkdir -p "$FABRIC/$DEF_IQN/tpgt_1/np/172.16.201.137:3260"
> # Create LUN 0 on $DEF_IQN/tpgt_1
> mkdir -p "$FABRIC/$DEF_IQN/tpgt_1/lun/lun_0"
> # Create the iSCSI Target Port Mapping for $DEF_IN/tpgt_1 LUN 0
> # to lvm_test0 and give it the port symbolic name of lio_west_port
> ln -s $TARGET/iblock_0/lvm_test0 "$FABRIC/$DEF_IQN/tpgt_1/lun/lun_0/lio_west_port"
>
> # Allow iSCSI Initiators to login to $DEF_IQN/tpgt_1
> #warning Currently uses generate_node_acls=1,cache_dynamic_acls=1,demo_mode_lun_access=1
> echo 1 > $FABRIC/$DEF_IQN/tpgt_1/tpg_enable
>
> target:~# tree $CONFIGFS
> /sys/kernel/config/
> `-- target
> |-- core
> | `-- iblock_0
> | |-- hba_info
> | `-- lvm_test0
> | |-- dev_control
> | |-- dev_enable
> | `-- dev_info
> |-- iscsi
> | |-- iqn.2003-01.org.linux-iscsi.target.i686:sn.e475ed6fcdd0
> | | `-- tpgt_1
> | | |-- lun
> | | | `-- lun_0
> | | | |-- lio_west_port -> ../../../../../../target/core/iblock_0/lvm_test0
> | | | |-- port_control
> | | | `-- port_info
> | | |-- np
> | | | `-- 172.16.201.137:3260
> | | | `-- portal_info
> | | |-- tpg_control
> | | `-- tpg_enable
> | `-- lio_version
> `-- version
>
>
> ----------------------------------------------------------
>
> # Add some more HBA and storage Objects
> target:~# mkdir -p $TARGET/fileio_0/file_object
> target:~# mkdir -p $TARGET/rd_mcp_0/ramdisk0
> target:~# mkdir -p $TARGET/rd_dr_0/ramdisk0
>
> target:~# mkdir -p $TARGET/pscsi_0/sdd
> target:~# echo scsi_channel_id=0,scsi_target_id=3,scsi_lun_id=0 > $TARGET/pscsi_0/sdd/dev_control
> target:~# echo 1 > $TARGET/pscsi_0/sdd/dev_enable
>
> # Now, create LUN 1 and another Port Symlink to a new device on the same $IQN/tpgt_1
> mkdir -p "$FABRIC/$DEF_IQN/tpgt_1/lun/lun_1"
> # Create the iSCSI Target Port Mapping for $DEF_IN/tpgt_1 LUN 1
> # to lvm_test0 and give it the port symbolic name of lio_east_port
> ln -s $TARGET/pscsi_0/sdd/ "$FABRIC/$DEF_IQN/tpgt_1/lun/lun_1/lio_east_port"
>
> target:~# tree $CONFIGFS
> /sys/kernel/config/
> `-- target
> |-- core
> | |-- fileio_0
> | | |-- file_object
> | | | |-- dev_control
> | | | |-- dev_enable
> | | | `-- dev_info
> | | `-- hba_info
> | |-- iblock_0
> | | |-- hba_info
> | | `-- lvm_test0
> | | |-- dev_control
> | | |-- dev_enable
> | | `-- dev_info
> | |-- pscsi_0
> | | |-- hba_info
> | | `-- sdd
> | | |-- dev_control
> | | |-- dev_enable
> | | `-- dev_info
> | |-- rd_dr_0
> | | |-- hba_info
> | | `-- ramdisk0
> | | |-- dev_control
> | | |-- dev_enable
> | | `-- dev_info
> | `-- rd_mcp_0
> | |-- hba_info
> | `-- ramdisk0
> | |-- dev_control
> | |-- dev_enable
> | `-- dev_info
> |-- iscsi
> | |-- iqn.2003-01.org.linux-iscsi.target.i686:sn.e475ed6fcdd0
> | | `-- tpgt_1
> | | |-- lun
> | | | |-- lun_0
> | | | | |-- lio_west_port -> ../../../../../../target/core/iblock_0/lvm_test0
> | | | | |-- port_control
> | | | | `-- port_info
> | | | `-- lun_1
> | | | |-- lio_east_port -> ../../../../../../target/core/pscsi_0/sdd
> | | | |-- port_control
> | | | `-- port_info
> | | |-- np
> | | | `-- 172.16.201.137:3260
> | | | `-- portal_info
> | | |-- tpg_control
> | | `-- tpg_enable
> | `-- lio_version
> `-- version
>
> 22 directories, 29 files
It's good, I like it. The only thing concerns me that, considering how
much time *I* spent to understand it, for an average user understanding
it can be an unbearable nightmare ;)
In a few days I'll write a proposed configfs hierarchy for existing SCST
/proc interface.
Vlad
next prev parent reply other threads:[~2008-10-01 17:36 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-29 19:21 [ANNOUNCE]: ConfigFS enabled Generic Target Mode and iSCSI Target Stack on v2.6.27-rc7 Nicholas A. Bellinger
2008-09-29 19:21 ` Nicholas A. Bellinger
2008-10-01 17:36 ` Vladislav Bolkhovitin [this message]
2008-10-02 0:24 ` Nicholas A. Bellinger
2008-10-02 17:00 ` Vladislav Bolkhovitin
2008-10-02 21:29 ` Nicholas A. Bellinger
2008-10-03 23:14 ` Nicholas A. Bellinger
2008-10-07 9:56 ` Vladislav Bolkhovitin
2008-10-07 20:50 ` Nicholas A. Bellinger
2008-10-08 7:22 ` Nicholas A. Bellinger
2008-10-10 17:49 ` Vladislav Bolkhovitin
2008-10-10 17:48 ` Vladislav Bolkhovitin
2008-10-10 20:41 ` Nicholas A. Bellinger
2008-10-21 18:11 ` Vladislav Bolkhovitin
2008-10-02 0:18 ` Nicholas A. Bellinger
2008-10-02 0:18 ` Nicholas A. Bellinger
2008-10-02 0:32 ` Nicholas A. Bellinger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48E3B529.4060406@vlnb.net \
--to=vst@vlnb.net \
--cc=James.Bottomley@HansenPartnership.com \
--cc=blackmagic02881@gmail.com \
--cc=fujita.tomonori@lab.ntt.co.jp \
--cc=greg@kroah.com \
--cc=hpa@zytor.com \
--cc=iscsitarget-devel@lists.sourceforge.net \
--cc=joel.becker@oracle.com \
--cc=linux-iscsi-target-dev@googlegroups.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=michaelc@cs.wisc.edu \
--cc=nab@linux-iscsi.org \
--cc=scst-devel@lists.sourceforge.net \
--cc=tramjoe.merin@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.