SCF changes for iSCSI Target [PSARC/2007/414 FastTrack timeout 07/31/2007]
Mark A. Carlson
Mark.Carlson at sun.com
Tue Jul 24 15:10:32 PDT 2007
I am sponsoring this case for the iSCSI Target team.
Timeout has been extended since not everyone saw this
this first time.
-- mark
Template Version: @(#)sac_nextcase 1.64 07/13/07 SMI
This information is Copyright 2007 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
SCF changes for iSCSI Target
1.2. Name of Document Author/Supplier:
Author: Tim Szeto
1.3 Date of This Document:
16 July, 2007
4. Technical Description
See the case directory for more detail
6. Resources and Schedule
6.4. Steering Committee requested information
6.4.1. Consolidation C-team Name:
ON
6.5. ARC review type: FastTrack
6.6. ARC Exposure: open
SCF design for iSCSI target
===========================
High Level:
-All configuration files (target_config.xml, config.xml, param.N) are moved
to SCF.
-Keeping the current incore XML database
-the incore database is created from the SCF (need functions to
convert SCF->incore)
-the incore database will change as follow:
-the target_config.xml, config.xml and param.N will merged into
1 database
-Need to convert existing configuration to SCF if old configuration files
(config.xml, target_config.xml) existed, after converting to SCF, the
old configurations are deleted. This would mean keeping some of
the existing codes that read in the configuration files and build
the incore database, and then use the tgt_dump2scf() to build the SCF.
-All the pgroups/properties are create dynamically, the only exception
is the iscsitgt pgroup, the properties in this pgroup can be
populated with the default value on install.
-The CLI still uses the door interface to the daemon, the mgmt
interfaces are used to create incore database and then use the
mgmt_scf interfaces to create/modify/delete the SCF database.
-At startup a mgmt_scf function will open the SCF database and read in
the iscsitgt pgroup, and the target pgroups, the SCF data are
converted to incore database.
-The incore database will have a new property for the target, it will
contains param propertes for each LUN. Example of an incore target
configuration:
<target>
t1
<lun-list>
<lun>0</lun>
<lun>1</lun>
</lun-list>
<iscsi-name>
iqn.1986-03.com.sun:02:...
</iscsi-name>
<param-list>
<0>
<params version='1.0'>
<size>0x10000</size>
.
.
<guid>039384947504</guid>
</params>
</0>
<1>
<params version='1.0'>
<size>0x10000</size>
.
.
<guid>039377777504</guid>
</params>
</1>
</param-list>
</target>
API
===
-pgroup
-create
-modify
-delete
-find
-property per pgroup
-create
-modify
-delete
-find
-Find pgroup (initiator_name, tpgt_num, param_targetname_lun)
-Get properties
-convert to incore database
Startup
-------
-Find iscsitgt pgroup (default)
-iterate for properties in pgroup
-convert to local database
-Iterate target_name pgroup
-iterate target property
-Find initiator_name pgroup
-iterate initiator property (iscsi_name, chap_name, chap_secret)
-Find tpgt_num group
-iterate tpgt property (ip_address)
-convert to local database
Create pgroup/property
----------------------
-create in core database
-create new pgroup (target, initiator, tgpt, param)
-create target
-create target_name pgroup
-create local_name prop
-create iscsi_name prop
-create .... prop
-commit
-create initiator
-create initiator_name pgroup
-create local_name prop
-commit
-create tpgt
-create ip_addr prop
-commit
Modify property
---------------
-modify in core database
-find pgroup
-find property
-modify property
-commit
Delete pgroup/property
----------------------
-delete pgroup name
-find pgroup name
-delete properties and then pgroup
-delete property on a given pgroup
-find pgroup
-find prperty
-delete property
-commit
Find pgroup/property
--------------------
-find pgroup name
-find property given pgroup handle
Issue
======
The property CHAP SECRETS is converted to SCF after PSARC 2007/177
is putback.
More information about the opensolaris-arc
mailing list