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