EOF of iSCSI Target Daemon [PSARC/2010/006 FastTrack timeout 01/13/2010]

2010-01-15 Thread John Forte
This case has timed out with a +1 and has been marked closed approved.

- John


EOF of iSCSI Target Daemon [PSARC/2010/006 FastTrack timeout 01/13/2010]

2010-01-06 Thread John Forte

I am sponsoring this fasttrack for Jim Dunham. Timeout is set for 01/13/2010.

- John


Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
This information is Copyright 2010 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
 EOF of iSCSI Target Daemon
1.2. Name of Document Author/Supplier:
 Author:  James Dunham
1.3  Date of This Document:
06 January, 2010

2. Project Summary
2.1. Project Description

This proposal is to remove support for the iSCSI Target Daemon
from Solaris Next and OpenSolaris. This fast-track is for advance
warning that within Solaris Next and OpenSolaris, the iSCSI Target
Daemon, the CLI iscsitadm, the man page iscsitadm(1M), and ZFS's
support for 'shareiscsi' support for ZVOLs will be removed.

The PSARC cases being deprecated as a result of accepting this proposal
are as follows:

-  PSARC/2007/153  iSCSI target provider
-  PSARC/2007/414  SCF changes for iSCSI Target
-  PSARC/2006/622  iSCSI/ZFS Integration 
-  PSARC/2009/168  iSCSI Target PGR directory for ZVOLs
 
The iSCSI Target in COMSTAR will replace all of the aforementioned
functionality in Solaris Next and OpenSolaris, with the exception of
ZFS's support for 'shareiscsi'.

COMSTAR consists of the following PSARC cases:

-  PSARC/2007/523  COMSTAR: Common Multiprotocol SCSI Target
-  PSARC/2008/235  SCSI Block Disk Provider for COMSTAR
-  PSARC/2008/587  iSCSI Port Provider for COMSTAR
-  PSARC/2009/111  COMSTAR Infiniband SRP Target 
-  PSARC/2008/395  iSER: iSCSI Extensions for RDMA
-  PSARC/2008/310  FCoE (Fibre Channel over Ethernet) Target
 
2.2. Risks and Assumptions

The architectural design of the iSCSI Target Daemon and ZFS's shareiscsi
support, being PSARC/2006/662, is not extensible in its present form, as
the underlying implementation is based on a tight association many iSCSI
Targets, supporting only a LUN 0, for each shareiscsi enabled ZVOL.

COMSTAR's is a multi-protocol SCSI Target implementation that provides
support for different types of SCSI Targets, not just iSCSI, supporting
LUN numbers up to 16K. ZVOLs are used as backing store devices for SCSI
Initiators using one or more or COMSTAR's support protocols.

Although the iSCSI Target in COMSTAR is a functional replacement for the
iSCSI Target Daemon, there is no means to provide an automated upgrade 
from one form of iSCSI Target to the other. The iSCSI Target Daemon, and
ZFS shareiscsi support, presented a model of many iSCSI Target IDs, with
one iSCSI LUNs per target.  The iSCSI Target in COMSTAR presents a model
of limited iSCSI Target IDs, currently 32, and many iSCSI LUNs per 
target, up to 16384. A many targets and one LU model, does not map
into a few targets, with many LU model. 

As part of the Solaris Next  documentation, a step by step description 
of how to upgrade existing iSCSI Target Daemon LUs to iSCSI Target LUs
in COMSTAR will be provided. 

3. Business Summary
3.1. Problem Area

Providing and supporting two different implementations of an iSCSI 
Target service is confusing to both system administrators and end users
of Solaris, and also creates an unwanted support burden on Sun, having
to support two totally different implementations of an iSCSI Target.

The iSCSI Target in COMSTAR, and its use in the Sun Storage 7000 Unified
Storage Server, the iSCSI Target in COMSTAR has proven itself as an 
enterprise class iSCSI Target implementation, in features, 
functionality, performance and overall stability. This is not the
general consensus with the iSCSI Target Daemon, known to be an inferior
iSCSI Target implementation. 

3.2. Market/Requester
3.3. Business Justification

The iSCSI Target in COMSTAR is built on an enterprise class, Common 
Multiprotocol SCSI Target, that in addition to providing support for 
iSCSI Targets, it also provides support for iSER, SRP, FC and FCoE SCSI
Targets.

COMSTAR provides proven block based SCSI Targets support for Solaris
Next, OpenSolaris and the Sun Storage 7000 Unified Storage Systems.
 
3.4. Competitive Analysis

Sun has a unique position over other storage vendors and operating 
systems, in that the iSCSI Target in COMSTAR is Open Source, based on
Open Standards, for ubiquitous access to Open Storage. 

3.5. Opportunity Window/Exposure

 Solaris Next, OpenSolaris, Sun Storage 7000 Unified Storage Systems

3.6. How will you know when you are done?

Removal of the iSCSI Target in Solaris Next, OpenSolaris, and an 

COMSTAR SRPT Port Provider Management [PSARC/2009/634 FastTrack timeout 11/25/2009]

2009-12-02 Thread John Forte
This case was approved at PSARC today.

- John


COMSTAR SRPT Port Provider Management [PSARC/2009/634 FastTrack timeout 11/25/2009]

2009-12-01 Thread John Forte
This case timed out on 11/25 without any +1. Can a PSARC member please 
review it?

- John


COMSTAR SRPT Port Provider Management [PSARC/2009/634 FastTrack timeout 11/25/2009]

2009-11-18 Thread John Forte
I am sponsoring this fasttrack for Sue Gleeson. Requested binding is minor. 
Timeout is set for 11/25/2009.

- John


Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
This information is Copyright 2009 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
 COMSTAR SRPT Port Provider Management
1.2. Name of Document Author/Supplier:
 Author:  Susan Gleeson
1.3  Date of This Document:
18 November, 2009
4. Technical Description

The COMSTAR Infiniband SRP Target project (PSARC/2009/111 [1]) introduced
the SRP protocol port provider to Solaris.   When the SRP port provider
SMF service is enabled, COMSTAR targets are created for every Infiniband
HCA discovered on the system.  It has become clear that a finer level of
control is required, and this set of interfaces will allow for changing
the default behavior when the service is activated as well as enabling
and disabling SRP services on a per-HCA basis.

This case introduces a new library, libsrpt and a new CLI, srptadm as
described below.

4.1 Interfaces

Minor binding.

-+---+-
InterfaceClassification Comments
-+---+-
libsrpt  |   Committed   |
srptadm  |   Committed


4.2 srpt_SetDefaultState/srpt_GetDefaultState

 NAME
srpt_SetDefaultState, srpt_GetDefaultState - set and retrieve the default
state setting for the SRP Target service.

 SYNOPSIS
cc [ flag... ] file... -lsrpt [ library... ]
#include libsrpt.h

int srpt_SetDefaultState(boolean_t enabled);

int srpt_GetDefaultState(boolean_t *enabled);

 PARAMETERS

 enabledboolean value indicating whether COMSTAR SRP targets should
be created.

 DESCRIPTION
The srpt_SetDefaultState() function sets the default behavior of the
SRP Target service.  If enabled is B_TRUE, SRP targets will be created for
all discovered HCAs that have not been specifically disabled.  If enabled
is B_FALSE, targets will not be created unless the HCA has been specifically
enabled.  See also srpt_SetTargetState() for enabling or disabling specific
HCAs.   If the default state is changed when the SRP service is online,
the state of existing targets is not changed until the service is
restarted.

The srpt_GetDefaultState() function returns the current value for enabled.

 RETURN VALUES

 ENOMEM Could not allocate resources
 EINVAL Invalid parameter

 ATTRIBUTES

 See attributes(5) for descriptions of the  following  attri-
 butes:

 
|   ATTRIBUTE TYPE|   ATTRIBUTE VALUE   |
|_|_|
| Interface Stability | Committed   |
|_|_|
| MT-Level| MT-Safe |
|_|_|

 SEE ALSO
 srpt_SetTargetState(3SRPT), libsrpt(3LIB)

4.3  srpt_SetTargetState/srpt_GetTargetState

 NAME
srpt_SetTargetState, srpt_GetTargetState, srpt_ResetTarget - set and
retrieve SRP Target state for a specific HCA.

 SYNOPSIS
cc [ flag... ] file... -lsrpt [ library... ]
#include libsrpt.h

int srpt_SetTargetState(char *hca_guid, boolean_t enabled);
int srpt_GetTargetState(char *hca_guid, boolean_t *enabled);
int srpt_ResetTarget(char *hca_guid);

 PARAMETERS

 hc_guid HCA GUID.  Must be in one of the following forms:
3BA000100CD18   - base hex form
0003BA000100CD18- base hex form with leading zeroes
hca:3BA000100CD18   - form from cfgadm
eui.0003BA000100CD18 - EUI form

 enabledboolean value indicating whether a COMSTAR SRP target should
be created for this HCA.

 DESCRIPTION
The srpt_SetTargetState() function controls whether a COMSTAR SRP target
will be created for the specified HCA.  If enabled is B_TRUE, an SRP target
will be created for this HCA.  If enabled is B_FALSE, a target will not be
created.  This function overrides the default setting for the SRP Target
service as set by srpt_SetDefaultState().  Changing the target state takes
effect immediately if the SRP target service is online.  Targets set to
disabled will be offlined and removed; targets set to enabled will be
immediately created.

The srpt_GetTargetState() function retrieves the current setting for the
specified HCA.

The srpt_ResetTarget() function clears HCA-specific settings.  The
service-wide defaults will control SRP Target creation for this HCA.

 RETURN VALUES

 ENOMEM Could not allocate resources
 EINVAL Invalid 

Host ID for COMSTAR logical unit [PSARC/2009/547 Self Review]

2009-10-09 Thread John Forte

I am sponsoring the following fasttrack for myself. I believe this case
qualifies for self-review. If anyone disagrees, I'll convert it and set the
timer.

- John

Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
This information is Copyright 2009 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
 Host ID for COMSTAR logical unit
1.2. Name of Document Author/Supplier:
 Author:  John Forte
1.3  Date of This Document:
09 October, 2009
4. Technical Description
Support for setting the host ID portion of the Globally Unique
Identifier (GUID) of a COMSTAR logical unit.


4.1 Description

Allows the setting of the host identifier portion of a logical unit
identifier during creation of a COMSTAR logical unit. This will
introduce a new logical-unit-property called host-id for the
create-lu subcommand of stmfadm(1M) CLI. This case also introduces a
new property STMF_LU_PROP_HOST_ID for stmfSetLuProp(3STMF) in
libstmf(3LIB) (see PSARC 2007/523) library


4.2 Bug/RFE Number(s):
6861519 stmfCreateLu() should allow caller to specify host id

4.5 Interfaces

Minor binding.

-+---+-
InterfaceClassification Comments
-+---+-
libstmf  |   Committed   |  PSARC 2007/523
 |   |  PSARC 2009/251
 |   |
stmfadm  |   Committed   |  PSARC 2007/523
output of|   Not an interface|  PSARC 2009/251
  stmfadm|   |
-+---+-

4.5.1 stmfSetLuProp(3STMF)/stmfGetLuProp(3STMF) Interfaces
Adding new property STMF_LU_PROP_HOST_ID for stmfSetLuProp(3STMF)
interface.

4.5.2 stmfadm(1M) subcommands

Adding new logical-unit-property called host-id for create-lu
subcommand.


4.6 Doc Impact:

4.6.1 man page Change for stmfadm(1M)
_
|   ATTRIBUTE TYPE|   ATTRIBUTE VALUE   |
|_|_|
| Availability| SUNWstmfu   |
|_|_|
| Interface Stability | Committed   |
|_|_|
 
 information about the new logical-unit-property, host-id needs to be 
 added along with existing logical-unit-property descriptions for
 -p option of the create-lu subcommand.
 
 host-id
 8 hexadecimal ASCII characters representing the host ID assignment.
 This will be used to generate the globally unique identifier (GUID)
 for the logical unit. The default is the value returned
 by hostid(1).



4.6.2 man page change for stmfSetLuProp(3STMF)/stmfGetLuProp(3STMF)

 
 |   ATTRIBUTE TYPE|   ATTRIBUTE VALUE   |
 |_|_|
 | Interface Stability | Committed   |
 |_|_|
 | MT-Level| Safe|
 |_|_|

Description for the following new property needs to be added:

STMF_LU_PROP_HOST_ID
 8 hexadecimal ASCII characters representing the host ID assignment.
 This will be used to generate the globally unique identifier (GUID)
 for the logical unit.

 Default: identifer returned by hostid(1).


6. Resources and Schedule
6.4. Steering Committee requested information
6.4.1. Consolidation C-team Name:
OS/Net
6.5. ARC review type: Automatic
6.6. ARC Exposure: open


libstmf validate view interface [PSARC/2009/504 FastTrack timeout 09/28/2009]

2009-09-25 Thread John Forte
Mark A. Carlson wrote:


 John Forte wrote:
DESCRIPTION
   The stmfValidateView() function validates the logical unit
   number.  This is done by setting view-luNbrValid to B_TRUE and
   setting view-luNbr to the logical unit number. A valid logical
   unit number is in the range of 0-16383.

   The stmfValidateView() function find the next available
   logical unit number.  The is done by setting view-luNbrValid to
   B_FALSE. On success, the available logical unit number is 
 returned in
   view-luNbr.
   
 Is the next available LUN thus reserved so that a subsequent call 
 would return the next
 one? Or could multiple callers all get the same LUN and try and use it?
At that point in time the logical unit number is available. Until the 
logical number gets used, it would be available. If there are multiple 
callers, yes, they could all get the same number. Any required locking 
is assumed to be handled by the client.

- John


libstmf validate view interface [PSARC/2009/504 FastTrack timeout 09/28/2009]

2009-09-25 Thread John Forte
Mark A. Carlson wrote:
 OK, as long as this is documented.
The manpage/fasttrack has been updated with a clearer statement around 
logical unit number availability that should address this concern. The 
new doc has been placed in the materials directory.

The stmfValidateView() function finds the next available
  logical unit number. This is done by setting view-luNbrValid to
  B_FALSE. On success, the available logical unit number is returned in
  view-luNbr. A logical unit number is considered to be available if it
  is not currently consumed by an existing view entry where the 
target group
  and host group matches the view entry passed into this function. Until
  the logical unit number is no longer available, any calls to this
  function will get the same logical unit number in view-luNbr.

- John


libstmf validate view interface [PSARC/2009/504 FastTrack timeout 09/28/2009]

2009-09-21 Thread John Forte

I am sponsoring this fasttrack for Tim Szeto. Requested binding is minor. 
Timeout is set for 09/28/2009.

- John

Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
This information is Copyright 2009 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
 libstmf validate view interface
1.2. Name of Document Author/Supplier:
 Author:  Tim Szeto
1.3  Date of This Document:
21 September, 2009
4. Technical Description
  This case adds one new interface to libstmf (PSARC 2007/523) for
  validation of a logical unit number per view entry, or to find an
  available logical unit number per view entry.  This function allows the
  client to better manage logical unit numbers across multiple STMF
  instances in a cluster environment.

  The new interface (stmfValidateView(3STMF)) enables the client to check
  if the logical unit number is in use based on the view entry parameters
  (target group, host group and logical unit number). This interface also
  enables the client to query for an available logical unit number based
  on the view entry.


4.1 stmfValidateView(3STMF)

   NAME
 stmfValidateView - validate/get logical unit number per
view entry

   SYNOPSIS
  cc [ flag... ] file... -lstmf [ library... ]
  #include libstmf.h

  int stmfValidateView(stmfViewEntry *view);

   PARAMETERS
  view  The view entry to validate or get the logical number.

   DESCRIPTION
  The stmfValidateView() function validates the logical unit
  number.  This is done by setting view-luNbrValid to B_TRUE and
  setting view-luNbr to the logical unit number. A valid logical
  unit number is in the range of 0-16383.

  The stmfValidateView() function find the next available
  logical unit number.  The is done by setting view-luNbrValid to
  B_FALSE. On success, the available logical unit number is returned in
  view-luNbr.

   RETURN VALUES
  STMF_STATUS_SUCCESS   The API call was successful

  STMF_ERROR_LUN_IN_USE The specified logical unit number
is already in use for this logical
unit.

   ATTRIBUTES
  See attributes(5) for descriptions of the  following  attri-
  butes:

 _ _ 
|   ATTRIBUTE TYPE|   ATTRIBUTE VALUE   |
|_|_|
| Interface Stability | Committed   |
|_|_|
| MT-Level| Safe|
|_|_|

SEE ALSO
  libstmf(3LIB), attributes(5), stmfAddViewEntry(3STMF)




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



COMSTAR ALUA active/standby support [PSARC/2009/465 FastTrack timeout 09/02/2009]

2009-09-09 Thread John Forte
The timer on this case had been extended to 9/09/2009 and was approved 
at PSARC today.

- John


COMSTAR ALUA active/standby support [PSARC/2009/465 FastTrack, timeout 09/02/2009] (John Forte)

2009-08-29 Thread John Forte
Don Cragun wrote:

 4.3 stmfGetAluaState

 NAME
 stmfGetAluaState

 SYNOPSIS
 cc [ flag... ] file... -lstmf [ library... ]
 #include libstmf.h

 int stmfGetAluaState(boolean_t *enabled, uint8_t *node)

 PARAMETERS
 enabled set to B_TRUE or B_FALSE on success

 nodeset to 0 or 1 on success

 DESCRIPTION
 The stmfGetAluaState() function returns the Asymmetric Logical 
 Unit Access
 State (ALUA) mode for STMF along with the node setting.

 RETURN VALUES

 The following values are returned:

 STMF_ERROR_INVALID_ARG  Either enabled or node was NULL.

 STMF_STATUS_SUCCESS The API call was successful

 So, if I call stmfSetAluaState(B_TRUE, 0) and stmfSetAluaState(B_TRUE,
 1) and then call stmfGetAluaState(state, node) what is it supposed to
 do?
 Return the last node id set, which in this case would be 1 along with 
 a state of B_TRUE.

 I understand what you're doing now, but I still find disabled in this
 presentation mode ambiguous.  I read it as Either the node (or the
 ALUA) is enabled, or the value of node is a null pointer.
I think you've lost me. If node is NULL, it's an error. There is no 
ambiguity there. If the ALUA state is disabled, enabled is set to 
B_FALSE.
 Obviously, if either argument is a pointer to any correctly aligned
 valid address this will write over whatever is there.  Is there any
 error reserved for a pointer to unallocated space (other than a null
 pointer), or is the expected result in that case memory fault - core
 dumped?
Core dump.

- John


COMSTAR ALUA active/standby support [PSARC/2009/465 FastTrack, timeout 09/02/2009] (John Forte)

2009-08-27 Thread John Forte
Don Cragun wrote:
 On Wed, 26 Aug 2009 16:21:02 -0700 (PDT), John Forte wrote:
  ... ... ...
 4.2 stmfSetAluaState

 NAME
 stmfSetAluaState

 SYNOPSIS
 cc [ flag... ] file... -lstmf [ library... ]
 #include libstmf.h

 int stmfSetAluaState(boolean_t enabled, uint8_t node)

 PARAMETERS
 enabled B_TRUE when enabling ALUA mode
 B_FALSE when disabling ALUA mode

 I'm having trouble understanding what is going on here.  Should mode
 in the above two lines be node?
No, but the word mode could easily be replaced by state and perhaps 
should.


 nodeMust be the value 0 or 1

 DESCRIPTION
 The stmfSetAluaState() function sets the Asymmetric Logical Unit 
 Access
 State (ALUA) mode for STMF. When enabled is set to B_FALSE, node 
 is ignored,
 otherwise, node must be set to 0 or 1.  The node setting must be 
 different
 for each node in a paired config. This should be called only 
 after the
 STMF proxy door service has been initialized(See 
 stmfInitProxyDoor(3STMF)).
 When the ALUA state is enabled, all STMF logical units will be
 registered on the peer node as standby logical units. The standby 
 logical
 units can then be exported to any SCSI initiator using the existing
 mechanisms in STMF, stmfAddViewEntry(3STMF) or the add-view
 subcommand of stmfadm(1M). Note: If ALUA mode is already enabled,
 it is valid to call this interface again with enabled set to B_TRUE.
 This action would result in a re-initialization of the ALUA mode. 
 This
 can be used during recovery of a failed peer node.

 According to the Note above, it is not an error to call
 stmfSetAluaState(B_TRUE, node) to reinitialize node if had it previously
 been enabled.
Correct.


 RETURN VALUES

 The following values are returned:

 STMF_ERROR_INVALID_ARG  Either enabled or node was 
 incorrectly set.

 STMF_STATUS_SUCCESS The API call was successful

 According to the above two lines, stmfSetAluaState() is supposed to
 return STMF_ERROR_INVALID_ARG (because it was enabled) and
 STMF_STATUS_SUCCESS (if it successfully reinitializes node)???
I don't think it says that. STMF_ERROR_INVALID_ARG would be returned if 
node was neither 0 or 1.

Perhaps it would be clearer if it was:

RETURN VALUES

The following values are returned:

STMF_ERROR_INVALID_ARG  Either enabled or node was 
incorrectly set.
   
?



  ... ... ...

 4.3 stmfGetAluaState

 NAME
 stmfGetAluaState

 SYNOPSIS
 cc [ flag... ] file... -lstmf [ library... ]
 #include libstmf.h

 int stmfGetAluaState(boolean_t *enabled, uint8_t *node)

 PARAMETERS
 enabled set to B_TRUE or B_FALSE on success

 nodeset to 0 or 1 on success

 DESCRIPTION
 The stmfGetAluaState() function returns the Asymmetric Logical 
 Unit Access
 State (ALUA) mode for STMF along with the node setting.

 RETURN VALUES

 The following values are returned:

 STMF_ERROR_INVALID_ARG  Either enabled or node was NULL.

 STMF_STATUS_SUCCESS The API call was successful

 So, if I call stmfSetAluaState(B_TRUE, 0) and stmfSetAluaState(B_TRUE,
 1) and then call stmfGetAluaState(state, node) what is it supposed to
 do?
Return the last node id set, which in this case would be 1 along with a 
state of B_TRUE.
 On which node is it going to report?  Since both nodes have been
 enabled, it says that it is going to return STMF_ERROR_INVALID_ARG.
STMF_ERROR_INVALID_ARG is only returned when the arguments are invalid. 
As long as enabled is B_TRUE or B_FALSE and node is either 0 or 1, 
that error would not be returned.

To make this clear, node is just an identifier for the stmf instance 
on which the set ALUA state is executed. It isn't a target for the 
execution of the set ALUA state, i.e. the set is not setting the state 
for node 0 or node 1, it's setting the state AND setting the node 
identifier to 0 or 1.
 But if it successfully sets state and node, it also says it will return
 STMF_STATUS_SUCCESS???
Yes, it's just another state change.

- John



COMSTAR ALUA active/standby support [PSARC/2009/465 FastTrack timeout 09/02/2009]

2009-08-26 Thread John Forte
I am sponsoring the following fasttrack for myself. Requested binding is
minor. Timeout is set for 9/02.

- John


Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
This information is Copyright 2009 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
 COMSTAR ALUA active/standby support
1.2. Name of Document Author/Supplier:
 Author:  John Forte
1.3  Date of This Document:
26 August, 2009
4. Technical Description

COMSTAR (PSARC 2007/523 [1]) supports the SCSI standard [2] for Asymmetric 
Logical Unit Access (ALUA) but only supports the access state of 
Active/Optimized. This set of interfaces introduces support for a logical unit
access state of Standby on a peer node. This support is provided via the
existing libstmf(3LIB) introduced in PSARC 2007/253 and is targeted towards
developers of clustered storage systems in 2 node configurations. Use of these 
interfaces require a peer-to-peer communication channel be established between 
the two participating nodes in the COMSTAR (STMF) ALUA configuration.


4.1 Interfaces

Minor binding.

-+---+-
InterfaceClassification Comments
-+---+-
libstmf  |   Committed   |  PSARC 2007/523


4.2 stmfSetAluaState

NAME
stmfSetAluaState

SYNOPSIS
cc [ flag... ] file... -lstmf [ library... ]
#include libstmf.h

int stmfSetAluaState(boolean_t enabled, uint8_t node)

PARAMETERS
enabled B_TRUE when enabling ALUA mode
B_FALSE when disabling ALUA mode

nodeMust be the value 0 or 1

DESCRIPTION
The stmfSetAluaState() function sets the Asymmetric Logical Unit Access
State (ALUA) mode for STMF. When enabled is set to B_FALSE, node is ignored,
otherwise, node must be set to 0 or 1.  The node setting must be different
for each node in a paired config. This should be called only after the
STMF proxy door service has been initialized(See stmfInitProxyDoor(3STMF)).
When the ALUA state is enabled, all STMF logical units will be
registered on the peer node as standby logical units. The standby logical
units can then be exported to any SCSI initiator using the existing
mechanisms in STMF, stmfAddViewEntry(3STMF) or the add-view
subcommand of stmfadm(1M). Note: If ALUA mode is already enabled,
it is valid to call this interface again with enabled set to B_TRUE.
This action would result in a re-initialization of the ALUA mode. This
can be used during recovery of a failed peer node.

RETURN VALUES

The following values are returned:

STMF_ERROR_INVALID_ARG  Either enabled or node was incorrectly set.

STMF_STATUS_SUCCESS The API call was successful

ATTRIBUTES
See attributes(5) for descriptions of the  following  attributes:


|   ATTRIBUTE TYPE|   ATTRIBUTE VALUE   |
|_|_|
| Interface Stability | Committed   |
|_|_|
| MT-Level| Safe|
|_|_|


4.3 stmfGetAluaState

NAME
stmfGetAluaState

SYNOPSIS
cc [ flag... ] file... -lstmf [ library... ]
#include libstmf.h

int stmfGetAluaState(boolean_t *enabled, uint8_t *node)

PARAMETERS
enabled set to B_TRUE or B_FALSE on success

nodeset to 0 or 1 on success

DESCRIPTION
The stmfGetAluaState() function returns the Asymmetric Logical Unit Access
State (ALUA) mode for STMF along with the node setting.

RETURN VALUES

The following values are returned:

STMF_ERROR_INVALID_ARG  Either enabled or node was NULL.

STMF_STATUS_SUCCESS The API call was successful

ATTRIBUTES
See attributes(5) for descriptions of the  following  attributes:


|   ATTRIBUTE TYPE|   ATTRIBUTE VALUE   |
|_|_|
| Interface Stability | Committed   |
|_|_|
| MT-Level| Safe|
|_|_|



4.4 stmfLuStandby

NAME
stmfLuStandby

SYNOPSIS
cc [ flag... ] file... -lstmf [ library... ]
#include libstmf.h

int stmfLuStandby(stmfGuid *luGuid)

PARAMETERS
luGuid  a pointer to an stmfGuid structure containing the guid
of the logical unit to set to standby

DESCRIPTION
The stmfLuStandby() function sets the access state of a logical unit to
standby

Fibre Channel port link reinitialize support [PSARC/2009/401 FastTrack timeout 07/27/2009]

2009-07-23 Thread John Forte
This case was approved at PSARC today.

- John



Fibre Channel port link reinitialize support [PSARC/2009/401 FastTrack timeout 07/27/2009]

2009-07-20 Thread John Forte
Garrett D'Amore wrote:
 In principle this looks good, and I'm almost ready to +1 it, but I 
 have a few questions first:

 1) I don't know enough about the FC protocol... will forcing target 
 ports to reinitialize have any negative implications for the 
 initiators?  I'd like to understand the ramifications of any side 
 effects.
The initiators will get a RSCN (Remote State Change Notification) from 
the FC switch, which will generally cause them to rediscover for any 
changes to the fabric, which is generally the desired behavior from the 
administrator issuing this command.

 2) Are any additional privileges required for this operation?  What 
 are the privileges needed to perform this action?
I believe sys_devices is required. Reed?

 3) Will the luxadm version of the command be Obsoleted at some point?
Yes, that was the plan as noted in the PSARC 2004/291. Forcelip 
functionality was one of the last (perhaps the last) reason to keep 
luxadm around.

- John



Fibre Channel port link reinitialize support [PSARC/2009/401 FastTrack timeout 07/27/2009]

2009-07-20 Thread John Forte
Garrett D'Amore wrote:
 John Forte wrote:
 Garrett D'Amore wrote:
 In principle this looks good, and I'm almost ready to +1 it, but I 
 have a few questions first:

 1) I don't know enough about the FC protocol... will forcing target 
 ports to reinitialize have any negative implications for the 
 initiators?  I'd like to understand the ramifications of any side 
 effects.
 The initiators will get a RSCN (Remote State Change Notification) 
 from the FC switch, which will generally cause them to rediscover for 
 any changes to the fabric, which is generally the desired behavior 
 from the administrator issuing this command.

 Does this have negative implications for any in-flight I/O?  (I.e. is 
 this command potentially destructive?)  Are the implications 
 restricted to just the target being reinitialized?   (Sorry if it 
 sounds like I'm being paranoid here, but to a certain extent a little 
 paranoia can be helpful. :-)  If its potentially destructive, then I'd 
 like to have a warning issued to the administrator first.  If it can't 
 be destructive, then we needn't worry about it.
Likely a bit disruptive but it shouldn't be destructive. Certainly the 
target port will re-initialize it's login with the switch. When this 
command was first implemented in luxadm, FC switched fabrics did not 
exist and it was much more disruptive in that it forced every 
participating port in the fibre channel arbitrated loop to renegotiate. 
That is no longer the case with switched fabrics in FC. I think at most 
we should have the documentation for the subcommand indicate the 
appropriate warnings to the extent that it will result in an RSCN from 
the switch to all zoned initiators. My preference would be to not have a 
warning issued to the administrator forcing a confirmation prior to 
executing the initialization of the link. I think FC administrators are 
generally savvy enough to understand the meaning of this operation and 
when it should be used as well as what impact it's likely to have. My 
opinion is anything more than a documented warning would be annoying.

- John



Fibre Channel port link reinitialize support [PSARC/2009/401 FastTrack timeout 07/27/2009]

2009-07-20 Thread John Forte
Torrey McMahon wrote:
 On 7/20/2009 2:11 PM, Garrett D'Amore wrote:
 John Forte wrote:
 Garrett D'Amore wrote:
 In principle this looks good, and I'm almost ready to +1 it, but I 
 have a few questions first:

 1) I don't know enough about the FC protocol... will forcing target 
 ports to reinitialize have any negative implications for the 
 initiators?  I'd like to understand the ramifications of any side 
 effects.
 The initiators will get a RSCN (Remote State Change Notification) 
 from the FC switch, which will generally cause them to rediscover 
 for any changes to the fabric, which is generally the desired 
 behavior from the administrator issuing this command.

 Does this have negative implications for any in-flight I/O?  (I.e. is 
 this command potentially destructive?)  Are the implications 
 restricted to just the target being reinitialized?   (Sorry if it 
 sounds like I'm being paranoid here, but to a certain extent a little 
 paranoia can be helpful. :-)  If its potentially destructive, then 
 I'd like to have a warning issued to the administrator first.  If it 
 can't be destructive, then we needn't worry about it.

 Does the command reset the target port completely or just it's link to 
 the host that sends the command?
When issuing it on the target port side, it causes a reset of the target 
port and when issuing it from the host port side, a reset of the host 
port is done. The same can pretty much also be accomplished by going to 
the switch and doing an offline/online of the desired switch port.
 If you had a bad guy on a host and they continually reset a target 
 port completely you could cause issues on other hosts. Not like other 
 commands on other protocols couldn't do the same thing but you might 
 want to warn folks in the man page. Something like, This command will 
 reset a storage target port impacting any host attached.. blah 
 blah blah.
Yes, I think an explanation of the likely impact of this command is 
reasonable.

- John




Fibre Channel port link reinitialize support [PSARC/2009/401 FastTrack timeout 07/27/2009]

2009-07-20 Thread John Forte
I am sponsoring this fasttrack for Reed Liu. Requested binding is minor.
fcadm(1M) manpage diffs are in the materials directory. Timeout is 07/27/2009.

- John


Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
This information is Copyright 2009 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
 Fibre Channel port link reinitialize support
1.2. Name of Document Author/Supplier:
 Author:  Reed Liu
1.3  Date of This Document:
20 July, 2009
4. Technical Description
4.1 Background

When new devices are added to FC-SANs or in the case of some misbehaving
devices on the SAN, the administrators sometimes wish to force the link to
reinitialize. In many cases, this can resolve problems in FC-SANs.

Currently luxadm(1M) can force the FC initiator links to reinitialize, but
luxadm was designed and implemented to work with FC initiator ports only.

4.2 Problem

The current problem is that there's no method to reinitialize the link, if 
it's connected with a Fibre Channel target port, which is associated with 
COMSTAR(PSARC/2007/523) project.

4.3 Proposed solution

This project proposes to add a new subcommand to fcadm(1M), and this subcommand
can force Fibre Channel links to reinitialize, both initiator and target ports.

luxadm(1M) has supported forcelip to FC initiator ports, but we propose to
improve fcadm(1M).

Firstly, luxadm(1M) was designed and implemented to work with FC initiator ports
only, it does not support FC target ports. By contrast, with PSARC/2008/187, 
fcinfo/fcadm supports FC target ports natively, and it also has the advantage 
that the implementation of forcelip for initiator and target ports will share 
common logic and code. 

Secondly, although luxadm(1M) already supports forcelip on initiator ports, it
relies on hbaapi on x86 but a totally different approach on sparc. fcinfo/fcadm
has the advantage of using hbaapi consistently on both x86 and sparc.

4.4 fcadm change

fcadm(1M) is used to manage all kinds of Fibre Channel ports. New subcommand
'fcadm forcelip' is introduced to force the link to reinitialize. If link
reinitialization is OK, there will be no any output as luxadm -e forcelip,
or else there will be one error message.

Following example outputs show related changes.

# fcadm forcelip 21e08b909221
#
...
# fcadm forcelip 210100e08b909221
Failed to reinitialize the link.
#

4.5 COMSTAR fct change

fcadm(1M) will interact with COMSTAR fct module through ioctl mechanism. New
ioctl 'FCTIO_FORCE_LIP' is introduced, then the same command can be used
regardless of different FC target ports since fct is the common layer for
the fibre channel HBA drivers. 

4.6 Library change

The following interface will be added to libHBAAPI.so, Sun extensions of 
FC-HBA common library.

HBA_API HBA_STATUS Sun_HBA_ForceLip(HBA_HANDLE handle, int *rval)
Makes the corresponding port's link to reinitialize

The existing libsun_fc.so, Sun HBA API Vendor Specific Library(VSL), will
provide the forcelip support mentioned above through fct driver, which is
developed as COMSTAR port provider.

4.7 Interface table

 ++--
   Interface | Classification | Comments
 ++--
   fcadm(1M) forcelip| Committed  | Section 4.4
 ||
 FCTIO_FORCE_LIP Ioctl   | project private| Section 4.5
 ||
   Sun_HBA_ForceLip  | project private| Section 4.6
 

5. Reference Documents:
   
   PSARC 2004/291 Fibre Channel HBA Port Utility
   PSARC/2007/501 N_Port_ID Virtualization for Solaris
   PSARC/2007/523 COMSTAR: Common Multiprotocol SCSI Target
   PSARC/2008/187 fcinfo(1M) support on a target mode port

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



Management Network Address for COMSTAR logical unit [PSARC/2009/391 Self Review]

2009-07-13 Thread John Forte
Torrey McMahon wrote:
 Hi John.

 I can see plenty of use for this but is there a way to not set the 
 field if a customer doesn't want to expose the management URL to the 
 host consuming the LUN? I'd think there might be some more security 
 conscious types that would prefer things that way.

It's an optional property. The default would be to not report any URL 
for the logical unit.

- John



Management Network Address for COMSTAR logical unit [PSARC/2009/391 Self Review]

2009-07-13 Thread John Forte
I am sponsoring this case for Bhavyan Bharatharajan and marking it closed
approved automatic. This case adds one property to a COMSTAR logical unit to
provide support for management URLs. The binding is minor.

- John


Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
This information is Copyright 2009 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
 Management Network Address for COMSTAR logical unit
1.2. Name of Document Author/Supplier:
 Author:  Bhavyan Bharatharajan
1.3  Date of This Document:
13 July, 2009
4. Technical Description
Support for Management Network Address SCSI Vital Product Data (VPD) for
COMSTAR logical units.


4.1 Description

Adding Management Network Address VPD (85h) support for luns created
on a COMSTAR target. This will introduce a new logical-unit-property
called mgmt-url for both create-lu and modify-lu subcommands of 
stmfadm(1M) CLI. This case also introduces a new property called
STMF_LU_PROP_MGMT_URL for stmfSetLuProp, stmfModifyLu interfaces in 
libstmf(3LIB) (see PSARC 2007/523) library


4.2 Bug/RFE Number(s):
6812611 - Add Management Network Address VPD (85h) support to sbd

4.5 Interfaces

Minor binding.

-+---+-
InterfaceClassification Comments
-+---+-
libstmf  |   Committed   |  PSARC 2007/523
 |   |  PSARC 2009/251
 |   |
stmfadm  |   Committed   |  PSARC 2007/523
output of|   Not an interface|  PSARC 2009/251
  stmfadm|   |
-+---+-

4.5.1 stmfGetLuProp(3STMF)/stmfSetLuProp(3STMF) Interfaces
Adding new property STMF_LU_PROP_MGMT_URL for 
stmfGetLuProp(3STMF)/stmfSetLuProp(3STMF) Interfaces

4.5.2 stmfadm(1M) subcommands

Adding new logical-unit-property called mgmt-url for create-lu and 
modify-lu subcommands.


4.6 Doc Impact:

4.6.1 man page Change for stmfadm(1M)
_
|   ATTRIBUTE TYPE|   ATTRIBUTE VALUE   |
|_|_|
| Availability| SUNWstmfu   |
|_|_|
| Interface Stability | Committed   |
|_|_|
 
 information about the new logical-unit-property, mgmt-url need to be 
 added along with existing logical-unit-property description for
 -p option of both create-lu and  modify-lu subcommands.
 
 mgmt-url
 Up to 1024 characters representing Management Network Address URL.
 More than one URL can be passed using space delimited URLs
 enclosed inside quotes as a single parameter.

4.6.2 man page change for stmfGetLuProp(3STMF)/stmfSetLuProp(3STMF)

 
 |   ATTRIBUTE TYPE|   ATTRIBUTE VALUE   |
 |_|_|
 | Interface Stability | Committed   |
 |_|_|
 | MT-Level| Safe|
 |_|_|

Description for the following new property need to be added

STMF_LU_PROP_MGMT_URL
 Up to 1024 characters representing Management Network Address URLs.
 More than one URL can be passed using space delimited URLs

Default: None


6. Resources and Schedule

6.4. Steering Committee requested information
6.4.1. Consolidation C-team Name: OS/Net
6.5. ARC review type: FastTrack
6.6. ARC Exposure: open


6. Resources and Schedule
6.4. Steering Committee requested information
6.4.1. Consolidation C-team Name:
OS/Net
6.5. ARC review type: Automatic
6.6. ARC Exposure: open




iSCSI initiator tunables [PSARC/2009/369 FastTrack timeout 07/01/2009]

2009-07-02 Thread John Forte
This case has timed out with a +1 and has been marked closed approved.

- John



iSCSI initiator tunables [PSARC/2009/369 FastTrack timeout 07/01/2009]

2009-06-24 Thread John Forte

I am sponsoring this fasttrack for Zhang Yi. Requested binding is Patch/Micro. 
Timeout is 07/01/2009.


Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
This information is Copyright 2009 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
 iSCSI initiator tunables
1.2. Name of Document Author/Supplier:
 Author:  Zhang Yi
1.3  Date of This Document:
24 June, 2009

2. Project Summary
   2.1. Project Description
  This project proposes a new management interface to configure several
parameters specific for iSCSI initiator to access a given iSCSI target.
Together with the IMA specification[1] API, management interfaces
are exported in library libima[2] to manage tunable parameters. And
those tunable parameters can be dynamically applied to the iSCSI
initiator driver via iscsiadm or other utilities using the exported
library interface from this project.

4. Technical Description
4.1. Details:
  Currently most parameters related to the connection behavior between
the iSCSI initiator and the iSCSI target are hardcoded. It makes iSCSI
initiator in Solaris inflexible to handle various scenarios. For
example, the fixed iSCSI initiator connection retry timer (3 min) is
not suitable in the follow scenarios:
a. Mirrored ZFS over different iSCSI devices. If one of the mirrored
   iSCSI devices goes offline, on initiator side whole ZFS pool may
   hang for 3 minutes in IO timeout before ZFS degrade the iSCSI
   device. Here a shorter timeout value is desirable for this case.
b. iSCSI quorum device on Sun Cluster. If iSCSI quorum device spend
   more than 3 minutes to reboot, Cluster node could never online
   this iSCSI quorum device after 3 minutes connection retry timeout.
   Here a longer timeout value is needed.

  This project will add a new option named -T for 'iscsiadm' utility
to set these tunable parameters for iSCSI initiator node or a
specified iSCSI target. And tunable parameters will be applied to
iSCSI initiator driver in real time without reboot.
  A programmatic interface is also offered through SUN_IMA library.
The modification of 'iscsiadm' will be based on this interface.

*) CLI interface for 'iscsiadm' utility

   Apply tunable parameters to a specific target by using:
 iscsiadm modify target-param -T tunable-prop=value \
  target-name...
   Apply tunable parameters to initiator node by using:
 iscsiadm modify initiator-node -T tunable-prop=value.
   List specific tunable parameters applied to given target by using:
 iscsiadm list target-param -v [target-name..].
   List tunable parameters to initiator node by using:
 iscsiadm list initiator-node.

   Example:
 Change maximum connection retry time to 30 seconds for iSCSI target
   iqn.1986-03.com.sun:2501.600a0b800049c94 will use follow command:
 #iscsiadm modify target-param -T connloginmax=30 \
 iqn.1986-03.com.sun:2501.600a0b800049c94

 Currently supported tunable-prop parameters are listed below
   with corresponding descriptions.
 Tunable Parameter  Short Description
    ---
 recvloginrsptimeoutSession Login Response Time
 connloginmax   Maximum Connection Retry Time
 pollinglogindelay  Login Retry Time Interval

   The recvloginrsptimeout is to specify how long iSCSI initiator
 will wait for the response of iSCSI session login request from
 the given iSCSI target. Valid value is from 0 to 60*60, default
 to 60 seconds.

   The connloginmax is used to determine maximum iSCSI initiator
 connection retry time when iSCSI initiator to target IO timeout
 or connection failure. Valid value is from 0 to 60*60, default to
 180 seconds.

   The pollinglogindelay is used to decide time interval between
 each iSCSI session login retry when iSCSI initiator to target IO
 timeout or connection failure. Valid value is from 0 to 60*60,
 default to 60 seconds.

 More tunable parameters can be added using the same mechanism
   introduced by this project in case there are new requirements
   from customer.

*) Programmatic interface for tunable parameters
 Programmatic interface API name with new data structure are
   defined in the exported new public header file libsun_ima.h,
   typedef enum {
   ISCSI_RX_TIMEOUT_VALUE = 1,
   

iSCSI initiator tunables [PSARC/2009/369 FastTrack timeout 07/01/2009]

2009-06-24 Thread John Forte
Garrett D'Amore wrote:
 Case looks straight-forward, but the tunable names for use on the CLI 
 are rather awkward.  In other instances you have separated multi words 
 such as target-param with hyphens, whereas your tunables are all 
 jammed together.

 I'd recommend tweaking the names somewhat to make them more 
 readable/user-friendly.


Yes, sounds reasonable. An updated fasttrack is in the materials 
directory with hyphen separated tunable names for the CLI option argument.

- John




T11 Storage Management HBA API(SM-HBA) [PSARC/2008/687 FastTrack timeout 06/04/2009]

2009-06-05 Thread John Forte
This case has timed out with a +1 and no issues and has been marked 
closed approved.

- John



T11 Storage Management HBA API(SM-HBA) [PSARC/2008/687 FastTrack timeout 06/04/2009]

2009-05-28 Thread John Forte
The project team would like to make an amendment to this fasttrack as
specified below. The project has not yet delivered. I'm reopening the
fasttrack and setting the timeout for 06/04/2009. I've placed the
updated materials in the case directory.

- John


---

  sasinfo enhancements for HBA and expander representation

   The sasinfo utility is provided as part of SAS HBA management
   project(PSARC/2008/687).  Originally it provided subcommands for Host
   Bus Adapter(HBA) ports, remote ports, logical units.  As the project
   copes with the associated SAS device management framework, the need
   for more granular discovery is identified to help an admin discover
   SAS topology through the utility.

   The enhancements are to add

 - HBA discovery to properly report dynamic HBA port creation/removal
   of SAS HBA.
 - explicit expander layer discovery to better handle SAS
   configuration with multiple layers of expanders
 - target port centric topology view.

   Note that the remote-port subcommand which used to cover both expander
   devices and target ports is removed and the logical-unit subcommand
   remains the same.

- Subcommand Details

 Note that the comment section indicate if a subcommand or an option
 is new.

 -+-+-
  subcommands/options | Classification  | Comments
 -+-+-
  | |
   sasinfo hba| Committed   | reports HBA list.
   subcommand | |
  | |
  -v, --verbose   | Committed   | reports HBA list with
  | | details.
  | | (new subcommand)
  | |
   sasinfo hba-port   | Committed   | reports HBA port list.
   subcommand | |
  | |
  -v, --verbose   | Committed   | reports HBA list with
  | | details.
  | |
  -a, --hba   | Committed   | filters HBA ports per the
  | | given
  | | HBA name. (new option)
  | |
   sasinfo expander   | Committed   | reports expanders
   subcommand | | discovered on
  | | an HBA port.(new
  | | subcommand)
  | |
  -v, --verbose   | Committed   | reports expanders
  | | discovered on
  | | an HBA port with details.
  | |
  -p, --hba-port  | Committed   | filters expanders per the
  | | given HBA port name.
  | |
 -t, --target-port| Committed   | reports discovered target
  | | ports on an expander.
  | |
 sasinfo target-port  | Committed   | reports target port list
subcommand| | discovered on a host.
  | | (new subcommand)
  | |
  -v, --verbose   | Committed   | reports target port list
  | | discovered on a host with
  | | details
  | |
  -s, --scsi  | Committed   | reports target-port list
  | | discovered on a host with
  | | SCSI information.
  | |
  sasinfo logical-unit| Committed   | reports logical unit list.
 subcommand   | |
  | |
  -v, --verbose   | Committed   | reports logical unit list
  | | discovered on a host with
  | | details
  | |
  sasinfo output  |Not an interface |






T11 Storage Management HBA API(SM-HBA) [PSARC/2008/687 FastTrack timeout 01/29/2009]]

2009-05-05 Thread John Forte
The project team would like to make an amendment to this fasttrack as 
specified below. I believe this qualifies for self-review and does not 
need a separate fasttrack. The project has not yet integrated. An 
updated fasttrack has been placed in the materials directory. Let me 
know if there are any technical objections.

- John

===
Remove support for SM-HBA Event Related APIs


The fasttrack PSARC/2008/687 was submitted for T11 Storage Management 
HBA API(SM-HBA) support on Solaris.

Support for the following optional interfaces will not be provided at 
this time and will be added and ARC'ed at a later date:

- RegisterForAdapterAddEvents
- RegisterForAdapterEvents
- RegisterForAdapterPortEvents
- RegisterForTargetEvents
- RegisterForLinkEvents  
- RemoveCallback

No other areas are affected by this change.
===



libstmf/stmfadm enhancements for COMSTAR [PSARC/2009/251 FastTrack timeout 04/29/2009]

2009-04-29 Thread John Forte
This case was approved at PSARC today.

- John



libstmf/stmfadm enhancements for COMSTAR [PSARC/2009/251 FastTrack timeout 04/29/2009]

2009-04-21 Thread John Forte
I am sponsoring the following fasttrack for myself. Requested binding is
minor. Timeout is set for 4/29.

- John

Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
This information is Copyright 2009 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
 libstmf/stmfadm enhancements for COMSTAR
1.2. Name of Document Author/Supplier:
 Author:  John Forte
1.3  Date of This Document:
21 April, 2009
4. Technical Description
libstmf/stmfadm enhancements for COMSTAR

4.1  Description

libstmf(3LIB) was introduced in PSARC 2007/523 but lacked any C
interfaces for managing create/delete/modify of sbd (PSARC 2008/235)
logical units. sbdadm(1M) is currently the only interface available for
managing logical units. This case introduces new library interfaces for
managing logical units and introduces new subcommands to stmfadm(1M) to
provide CLI support. The new stmfadm(1M) subcommands will be the
preferred approach and this case will make sbdadm's stability
classification obsolete committed. This does not introduce any
backward incompatibility with the existing sbdadm functionality. All
existing sbdadm functionality will be carried forward to stmfadm(1M).
This case also introduces two library interfaces for managing
configuration persistence allowing a developer to provide their own
means of persisting configuration data for the stmf service.


4.2  Interfaces

Minor binding.

-+---+-
InterfaceClassification Comments
-+---+-
libstmf  |   Committed   |  PSARC 2007/523
 |   |
stmfadm  |   Committed   |  PSARC 2007/523
output of|   Not an interface|
  stmfadm|   |
 |   |
sbdadm   |   Obsolete Committed  |  PSARC 2008/235


4.2.1 stmfadm subcommands

create-lu [-p, --lu-prop logical-unit-property=val
-s, --size size] lu-file

delete-lu lu-name...

import-lu lu-file

modify-lu [-p, --lu-prop logical-unit-property=val
-s, --size size, -f, --file] lu-name|lu-file

The command man pages are in Appendix A


4.2.2 sbdadm man page change:

_
|   ATTRIBUTE TYPE|   ATTRIBUTE VALUE   |
|_|_|
| Availability| SUNWstmfu   |
|_|_|
!  | Interface Stability | Obsolete Committed  |
|_|_|

+ NOTES
+ This command is obsolete and may be removed in a future release.
+ Please use stmfadm(1M) for equivalent functionality.


4.2.3 Library interfaces

Note: All library interfaces are committed as per libstmf's current
interface classification.


   int stmfCreateLu(luResource hdl, stmfGuid *luGuid);
   int stmfCreateLuResource(uint16_t type, luResource *hdl);
   int stmfDeleteLu(stmfGuid *luGuid);
   int stmfFreeLuResource(luResource hdl);
   int stmfGetLuProp(luResource hdl, uint32_t prop, char *propVal,
   size_t *propLen);
   int stmfGetLuResource(stmfGuid *luGuid, luResource *hdl)
   int stmfGetPersistMethod(uint8_t *persistType, boolean_t 
   serviceState);
   int stmfModifyLu(stmfGuid *luGuid, uint32_t prop, const char
   *propVal);
   int stmfSetLuProp(luResource hdl, uint32_t prop, const char *propVal);
   int stmfSetPersistMethod(uint8_t persistType, boolean_t serviceSet);

The interface man pages are in Appendix B.


6. Resources and Schedule
6.4. Steering Committee requested information
6.4.1. Consolidation C-team Name:
OS/Net
6.5. ARC review type: FastTrack
6.6. ARC Exposure: open

Appendix A
==

 create-lu [-p, --lu-prop logical-unit-property=val
-s, --size size] lu-file

 Create a logical unit that can be  registered with STMF. For the
 -p option, logical-unit-property can be one of the following
 properties:

 alias
Up to 255 characters representing a user defined
name for the device

Default: set to file name of backing store

 blk
Block size. Specifies the block size for the
device.

Default: 512

 guid
32 hexadecimal ascii characters representing a
valid NAA Registered Extended Identifier

Default: set by framework to a generated value

 meta
Metadata file name. When specified, will be used
to hold the SCSI metadata for the logical unit.

Default: None

 oui
Organizational Unique Identifier. 6

COMSTAR Infiniband SRP Target [PSARC 2009/111 FastTrack timeout 02/25/2009]

2009-02-17 Thread John Forte
I am sponsoring this fasttrack for Peter Cudhea. Requested binding is 
Patch, timeout is 02/25/2009. There is an IO controller profile 
attributes table, described in section 4.2.3, in the case materials 
directory.

- John

This information is Copyright 2009 Sun Microsystems
1. Introduction
   1.1. Project/Component Working Name:
COMSTAR Infiniband SRP Target
   1.2. Name of Document Author/Supplier:
Peter.Cudhea at sun.com
   1.3. Date of This Document:
02/12/09
4. Technical Description

COMSTAR Infiniband SRP Target
-
4.1.  Problem

OpenSolaris currently lacks a target driver for the SCSI RDMA
Protocol (SRP).  SRP accelerates the SCSI protocol by mapping
the data transfer phases of SCSI commands to RDMA
operations. As a result an SRP initiator should be able to
read and write data from a COMSTAR SRP target at high data
rates with relatively low CPU utilization.

SRP is an alternative to iSER (PSARC 2008/395) for accessing
SCSI storage over an Infiniband fabric. Both protocols are
seeing demand in the market.  In particular, we need an SRP
target in COMSTAR (PSARC 2007/523) to enable VMware
connectivity to OpenSolaris based open storage.  VMware ESX,
for example, supports only SRP (not iSER) for block-based
storage connectivity over Infiniband.

4.2. Proposal

The project will deliver a target implementation of SCSI RDMA
Protocol represented as a COMSTAR STMF port provider.  We
include a minimal implementation of the Infiniband Device
Management Agen as a consumer to IBTF (PSARC 2002/132).  This
agent allows initiator systems to query the capabilities of
the target.  The SRP port provider will register its targets
with the IB DM Agent to allow the targets to be discovered by
SRP initiators.

4.2.1. COMSTAR SRP Target (srpt)

When the SRP target service is enabled, it will register as a
COMSTAR port provider using STMF.  This port provider will use
the IB transport framework (IBTF) to enumerate all the HCAs on
the system by GUID.  Each IB HCA will be reflected to STMF as
a COMSTAR target named 'eui.HCA-GUID'.  For example, for an
IB HCA with a HCA GUID of 0003BA0001002E49 the STMF target
name will be 'eui.0003BA0001002E49'.

STMF commands may then be used to assign these targets to host
groups and to create views that determine which backing stores
are accessible to which targets. STMF commands may also be
used to mark each target as either offline or online.

All of the physical IB ports on an HCA will treated as part of
the same STMF target.  In IB target terms, each Host Channel
Adapter (HCA) is treated as a Target Channel Adapter (TCA)
with a single IO Unit containing a single IO controller.
Multiple physical ports on the HCA are not exposed as separate
virtual target-side resources.

When the SRP service is enabled and the STMF target for a
particular HCA is marked online, each port on that HCA will be
configured to listen for incoming connections to the SRP
service.  A virtual I/O Controller representing the target
will also be registered with the minimal IB DM Agent as
described in section 4.2.2.

The SRP target capability will be represented as an SMF
service using the FMRI svc:/system/ibsrp/target:default.  This
service will be disabled by default.  No new 'rights profiles'
will be defined; each administrative method for this service
(e.g. start and stop) will use a credential with user=root,
group=root, and privileges=basic,sys_devices.  The
ibsrp/target service will be dependent on STMF
(svc:/system/stmf:default) and on the IB Device Management
Agent described in section 4.2.2 (svc:/system/ibdma:default).

The SRP target will be implemented as pseudo device driver
'srpt' which is a child under the Infiniband 'ib' nexus.

4.2.2 Minimal Infiniband Device-Management Agent (ibdma)

In order for IB initiators to enumerate the available storage,
this project also includes a minimal device management agent
for Infiniband, as described in section 16.3 of the Infiniband
Architecture Spec.  (Section 16.3 corresponds to version 1 of
the IB Device Management protocol, which is distinct from the
version 2 Device Management protocol as defined in Annex A8.)

Infiniband device management services are used by IB
initiator systems to enumerate the IO Units (IOUs) and IO
Controllers (IOCs) on the target system, and to query the
services supported on each IO Controller.  For this case, SRP
initiators in particular use DM services to enumerate all the
IOCs that are SRP-capable IOCs, and to enumerate the SRP
services that are available through each IOC.

SRP is the only target-side service that makes use of IB DM
services for discovery that the Infiniband group expects
OpenSolaris to support.  If 

PSARC/2008/687 T11 Storage Management HBA API(SM-HBA)

2009-01-28 Thread John Forte
This fasttrack was approved in PSARC today.

- John



T11 Storage Management HBA API(SM-HBA) [PSARC/2008/687 FastTrack timeout 01/29/2009]]

2009-01-22 Thread John Forte
I am sponsoring this fasttrack for Hyon Kim. Requested binding is Patch,
timeout is 01/29/2009.

- John


This information is Copyright 2009 Sun Microsystems
1. Introduction
   1.1. Project/Component Working Name:
 T11 Storage Management HBA API(SM-HBA)
   1.2. Name of Document Author/Supplier:
 Author:  Hyon Kim
   1.3  Date of This Document:
22 January, 2009
4. Technical Description


- Problem Area:

   The currently released Serial Attached SCSI(SAS) HBAs are supported
   through HBA vendor specific utilities.  As Sun is working on release
   of next generation SAS HBAs the administrator may have to deal with
   additional vendor specific utilities without common Solaris management
   support.

   This project is to deliver T11 Storage
   Management HBA API(SM-HBA) support and provide standard based SAS
   management utility for upcoming Sun's SAS-2 compliant (SAS Gen-2)
   HBAs.

   Note that a draft of SM-HBA-2 is published but it is not mature enough
   to guide product implementation according to T11.  It is currently put
   on hold.

   The project team is requesting micro/patch binding.

- Technical description

   1. Deliverables:

   The SM-HBA support comprised of SM-HBA common library, a vendor
   specific library(VSL) for  SAS Gen-2 HBAs and CLI which consumes
   SM-HBA interfaces and reports SAS HBAs and target configuration.

   libsmhba.so : SM-HBA common library
 Exports standard defined interfaces for use by utilities,
 SMI-S agents and any other 3rd party vendor application.
   libsun_sas.so : Vendor Specific Library(VSL) for SAS Gen-2 HBAs
   sasinfo.1M  : SM-HBA based CLI for SAS HBA configuration discovery.

  +===+   +---+
  || sasinfo.1M  ||   | other clients |
  +===+   +---+
 |  |
  +==+
  || libsmhba.so(SM-HBA standards)  ||
  +==+
 |
 +==+
 || libsun_sas.so(SAS VSL) ||
 +==+
   |  |
 __|__|_
   |  |
For SCSI passthru | +-+
private ioctl | | libdevinfo(PSARC/2004/169)  |
   | | libkstat(PSARC/1999/495)|
   | | libsysevent(PSARC/2001/076) |
   | +-+
   |  |
   |  | Generating devinfo nodes/properties,
   |  | kstat counter and sysevent.
   |  |
   +--+
   | PSARC/2008/672 thebe SAS/SATA driver |
   | PSARC/2008/448 LSI MPT 2.0 support   |
   |   SAS Gen-2 HBA driver   |
   +--+

   2. In Scope:

   The SM-HBA standard has been evolved from its predecessor FC-HBA to
   allow an application to manage both SAS and Fibre Channel HBAs through
   common interfaces.

   This project is to take advantage of those newly defined interfaces
   for SAS HBA management and will be providing VSL and CLI for Sun's SAS
   Gen-2 HBA support.

   Even though the SM-HBA standard includes the functionality of FC-HBA
   for FC HBA support, interface-wise it doesn't provide backward
   compatibility for FC-HBA clients.  Thus the SM-HBA library will be
   handled as a major new release over the existing FC-HBA library.

   3. Out of Scope:

   The FC HBA support through SM-HBA on existing FC HBAs not part
   of this project.  They will be supported through existing
   libhbaapi.3LIB and fcinfo.1M.  Since the functionality for FC support
   is same as FC-HBA there is no real benefit of migrating current FC-HBA
   support to SM-HBA. The current FC-HBA clients can continue to use
   FC-HBA library and if there is any client which needs to manage both
   FC and SAS through common interfaces in the future, the migration for
   the current FC-HBA support will be considered.

   4. Interfaces:

Interfaces Imported
 -++-
 Interface| Classification | Comments
 -++-
  ||
   Libraries listed   ||
   section 4.8| Committed  |
  ||
   Events listed  in  ||
   section 4.8| Consolidation  |
  | private|



Interfaces Exported
 -++-
 Interface| Classification | Comments
 

T11 Storage Management HBA API(SM-HBA) [PSARC/2008/687 FastTrack timeout 01/29/2009]]

2009-01-22 Thread John Forte
Garrett D'Amore wrote:
 Apparently there is a man page for sasinfo in the materials 
 directory.  Might have been nice to note that in the text of the case 
 proper.
Agreed. That's my fault, sorry.

 The rest looks OK.

 Are we anticipating future projects to use this library, or 3rd party 
 consumption of the library?

FC-HBA (libhbaapi(3LIB)) has a few consumers in the OpenSolaris source 
today, such as cfgadm, fcinfo and luxadm, and also has a number of 3rd 
party consumers of which we're aware so we would expect the same for 
this library down the road. One likely future candidate I can think of 
would be the host SMI-S providers for Fibre Channel and SAS when that 
eventually gets off the ground.

- John



iSCSI Port Provider for COMSTAR [PSARC/2008/587 Self Review]

2008-09-16 Thread John Forte
I'm sponsoring this case for Peter Dunlap and marking it closed approved
automatic as it represents no interface changes to the PSARC case it modifies
(2008/395) and only splits off the iSER portion from the iSCSI port provider.
The addition of iSER adds no interfaces to the existing PSARC case. The release
binding is minor. If anyone disagrees with this being closed approved automatic,
I'll set the timer.

- John



Template Version: @(#)sac_nextcase %I% %G% SMI
This information is Copyright 2008 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
 iSCSI Port Provider for COMSTAR
1.2. Name of Document Author/Supplier:
 Author:  Peter Dunlap
1.3  Date of This Document:
16 September, 2008
4. Technical Description
Background
--
The COMSTAR (Common Multiprotocol SCSI target PSARC 2007/523) project
introduced a modular SCSI target framework to Solaris.  COMSTAR allows a
Solaris system to act as a block storage SCSI device, analagous to a disk
array.  Currently COMSTAR supports only Fibre Channel transport.  In COMSTAR
terminology, a transport plug-in is called a port provider.

PSARC 2008/395 iSER: iSCSI Extensions for RDMA describes a project to
develop an iSER initiator and iSER target implementation and was approved
on 7/9/2008.  The iSER initiator will be based on the existing iSCSI
initiator modified for iSER transport.  In addition, the project
delivers an iSCSI port provider to COMSTAR and the iSER target will
consist of that iSCSI port provider combination with an iSER transport
module.  The iSCSI port provider is useful by itself (without iSER) to
provide iSCSI transport access to COMSTAR logical units.


  _ ___
 | |   |   |
  +-| libstmf |   | libiscsit |-+
  |  |_|   |___|  |
  |   |
  |  User Space   |
  |---|
  |  Kernel Space |
  |   __  |
  |  |  | |
  |  |sbd | |
  |  |  block/disk  | |
  |  |  LU Provider | |
  |  |__| |
  |   |
  |   --- LU Provider Interface ---   |
  |   __  |
  |  |  | |
  +-| STMF | |
 |__| |
  |
  -- Port Provider Interface --   |
 __   __  |
|  | |  | |
|fct | |   iscsit   | |
|   FC Port| |  iSCSI Port  |+
|   Provider   | |   Provider   |
|__| |__|



Proposal

The project team would like to deliver PSARC 2008/395 in multiple phases.
This case represents represents the first phase and will deliver the basic
iSCSI port provider itself along with the library and management CLI.  This
initial integration will include:

iSCSI port provider
itadm CLI
libiscsit

Release binding
---
A minor release binding is requested

Interfaces Exported
Interface   Classification  Comments

itadm   Committed   See itadm(1m) man page
itadm CLI outputNot an Interface
libiscsit   Committed

6. Resources and Schedule
6.4. Steering Committee requested information
6.4.1. Consolidation C-team Name:
OS/Net
6.5. ARC review type: Automatic
6.6. ARC Exposure: open




libstmf enhancement for provider data [PSARC/2008/434 Self Review]

2008-07-10 Thread John Forte
Joseph Kowalski wrote:
 John Forte wrote:
 stmfGetProviderData(3STMF)
 .
 .
 .

  NOTES
   This interface is deprecated in favor of
   stmfGetProviderDataProt(3STMF) and may be removed in a future
   revision of libstmf(3LIB).

 stmfGetProviderData(3STMF)
 .
 .
 .


  NOTES
   This interface is deprecated in favor of
   stmfSetProviderDataProt(3STMF) and may be removed in a future
   revision of libstmf(3LIB).
   

 Shouldn't there be attribute sections on these pages as well, with the 
 stability of obsolete committed?

 - jek3

Yes, thanks. Updated materials are in the case directory.

- John



libstmf enhancement for provider data [PSARC/2008/434 Self Review]

2008-07-09 Thread John Forte

I am self-sponsoring this case.

The case adds two committed interfaces to libstmf(3LIB). The binding is 
patch as is the original case PSARC/2007/523.

Template Version: @(#)sac_nextcase 1.66 04/17/08 SMI
This information is Copyright 2008 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
 libstmf enhancement for provider data
1.2. Name of Document Author/Supplier:
 Author:  John Forte
1.3  Date of This Document:
09 July, 2008
4. Technical Description
SUMMARY
This case adds two new interfaces to libstmf (PSARC 2007/523) for managing 
provider data for concurrent clients.

PROBLEM
There are two existing interfaces (stmfGetProviderData(3STMF),
stmfSetProviderData(3STMF)) that enable a client to get and set provider
data. Unfortunately there is no mechanism by which a client issuing a
set operation can determine whether the set is in conflict with another
client issuing a set operation on the same provider data, i.e. a set of 
stale data.

PROPOSED SOLUTION
Two new interfaces (stmfGetProviderDataProt(),
stmfSetProviderDataProt()) provide the caller with a token to be
retrieved on get and passed on set that will enable the client to
determine on set whether the data retrieved from the get matching
the passed token is not stale. If the token is no longer valid, the
call to set will fail with STMF_ERROR_PROV_DATA_STALE. Alternately,
the token may be set to NULL by the caller for the get or set which
will effectively revert these calls to stmfGetProviderData() and
stmfSetProviderData() respectively. This case will deprecate
stmfGetProviderData(3STMF) and stmfSetProviderData(3STMF).


MANPAGE ADDITIONS

stmfGetProviderDataProt(3STMF):

NAME
 stmfGetProviderDataProt - retrieve the data  for  the  specified
  provider

SYNOPSIS
   cc [ flag... ] file... -lstmf [ library... ]
   #include libstmf.h

   int stmfGetProviderDataProt(char *providerName, nvlist_t **nvl,
   int providerType, uint64_t *token);


 PARAMETERS
   providerNameThe name of the provider for which  data  is
   being retrieved.


   nvl A pointer to a pointer to  an nvlist_t.  On success,
   this will contain the nvlist retrieved.  Caller is
   responsible for freeing the returned nvlist by
   calling nvlist_free(3NVPAIR).

   providerTypeThe value for this parameter must be either
   STMF_LU_PROVIDER_TYPEor
   STMF_PORT_PROVIDER_TYPE.

   token   A pointer to a uint64_t allocated by the caller.
   On success, this will contain a token for the
   returned data that can be used in a call to
   stmfSetProviderDataProt(3STMF) to ensure that
   the data returned in this call is not stale.
   If this value is NULL, the token will be
   ignored.
   

 DESCRIPTION
  The stmfGetProviderDataProt() function retrieves the data for the
  specified provider.  

 RETURN VALUES
  The following values are returned:
  
  STMF_ERROR_NOMEMThe library was unable to allocate sufficient
  memory to return the data.

  STMF_STATUS_SUCCESS The API call was successful.  

 ATTRIBUTES
  See attributes(5) for descriptions of the  following  attri-
  butes:
  _
  |   ATTRIBUTE TYPE|   ATTRIBUTE VALUE   |
  |_|_|
  | Interface Stability | Committed   |
  |_|_|
  | MT-Level| Safe|
  |_|_|

  SEE ALSO
   libstmf(3LIB), nvlist_free(3NVPAIR), attributes(5)




stmfSetProviderDataProt(3STMF):

NAME
 stmfSetProviderDataProt - retrieve the data  for  the  specified
  provider

SYNOPSIS
   cc [ flag... ] file... -lstmf [ library... ]
   #include libstmf.h

   int stmfSetProviderData(char *providerName, nvlist_t **nvl,
   int providerType, uint64_t *token);


 PARAMETERS
   providerNameThe name of the provider for which  data  is
   being retrieved.


   nvl A pointer to a an nvlist_t containing the nvlist
   to be set.

   providerTypeThe value

PSARC/2008/235 SCSI Block Disk Provider for COMSTAR

2008-04-09 Thread John Forte
This fasttrack was approved in PSARC today.

- John



2008/235 [SCSI Block Disk Provider for COMSTAR]

2008-04-02 Thread John Forte
Glenn Skinner wrote:
 Date: Tue, 01 Apr 2008 17:11:06 -0700 (PDT)
 From: John Forte jforte at sac.sfbay.sun.com
 Subject: SCSI Block Disk Provider for COMSTAR [PSARC/2008/235
   FastTrack]

 ...
 1. Summary

 This command (sbdadm) and associated driver (sbd) will provide
 SCSI block disk device support for COMSTAR (PSARC/2007/523).  The
 command sbdadm(1M) will provide support for creating logical units
 utilizing any file or raw block device as the backing store.
 Logical units created with sbdadm will be available to the COMSTAR
 framework and can be further managed and provisioned to storage
 clients in the network using stmfadm(1M).  Logical units created
 with sbdadm(1M) are persistent across reboots.

 How is persistence accomplished?  That is, where and how is the state
 stored?  I didn't see any mention of that in the interface table.

   
The specific library interfaces are not listed in the interface table 
but the support is provided by libstmf. The interfaces that provide the 
support are:

stmfGetProviderData()
stmfSetProviderData()

- John



SCSI Block Disk Provider for COMSTAR [PSARC/2008/235 FastTrack]

2008-04-01 Thread John Forte

I am sponsoring this fasttrack for Sumit Gupta. Requested binding is Patch,
timeout is 04/09/2008

- John


Template Version: @(#)sac_nextcase 1.64 07/13/07 SMI
This information is Copyright 2008 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
 SCSI Block Disk Provider for COMSTAR
1.2. Name of Document Author/Supplier:
 Author:  Sumit Gupta
1.3  Date of This Document:
01 April, 2008
4. Technical Description
SCSI Block Disk Provider for COMSTAR


1. Summary

This command (sbdadm) and associated driver (sbd) will provide SCSI block disk
device support for COMSTAR (PSARC/2007/523). The command sbdadm(1M) will
provide support for creating logical units utilizing any file or raw block 
device as the backing store. Logical units created with sbdadm will be
available to the COMSTAR framework and can be further managed and provisioned
to storage clients in the network using stmfadm(1M). Logical units created 
with sbdadm(1M) are persistent across reboots.

2. Documentation

NAME
sbdadm - SCSI Block Disk Command Line Interface

SYNOPSIS
sbdadm create-lu [-s, --size size] filename
sbdadm delete-lu lu_name
sbdadm import-lu lu_name
sbdadm list-lu
sbdadm modify-lu [-s, --size size] lu_name|filename


DESCRIPTION

The sbdadm command provides the ability to create SCSI disk type
Logical Units and register them with the SCSI Target Mode Framework
described by stmf(7D) so that they can be exposed outside of the
Solaris host to other initiators on the storage network.

The SCSI Logical Unit thus created uses the specified file as its
backing store to store the logical unit data. The size of the
Logical Unit is derived from the size of the file minus 64K
to store the control information for the Logical Unit. The size
of the Logical unit can also be specified by the command line
option in which case it is possible to create Logical Units
without initially occupying any physical storage. The maximum
supported size for a Logical Unit is 8 Exabytes.

filenameName of an existing file or a fully qualified path to a
raw block device.

lu_name The 32-byte hexadecimal representation of the logical
unit. This is available in the output of sbdadm create-lu 
or from sbdadm list-lu. This 32-byte hexadecimal
representation will also be available using the stmfadm(1M)
command.

SUBCOMMANDS
sbdadm -?

sbdadm create-lu [-s, --size size] filename

Create a logical unit that can be registered with stmf(7D).

-s, --size size

size is an integer value which can be followed by
one of the following letters to indicate :
k   kilobyte
m   megabyte
g   gigabyte
t   terabyte
p   petabyte
e   exabyte

If this option is not specified, size defaults to
the size of filename.

The size specified may exceed the size of the file or
device.


sbdadm delete-lu lu_name

Delete an existing logical unit that was created using sbdadm
create. This removes the logical unit from stmf. Any
existing data on the logical unit remains intact.


sbdadm import-lu filename

Imports and loads a logical unit into stmf that was previously
created using sbdadm create and since deleted from stmf
using sbdadm delete. On success, the logical unit is again
made available to stmf. filename is the filename that was used
in the sbdadm create-lu command for this logical unit.


sbdadm list-lu

List all logical units that were created using the sbdadm
create command.


sbdadm modify-lu [-s, --size lun_sizek/m/g/t] lu_name|filename 

Modifies attributes of an existing logical unit created using
the sbdadm create command.

-s, --size size

lun_size is an integer value followed by one of the
following letters to indicate :

k   kilobyte
m   megabyte
g   gigabyte
t   terabyte
p   petabyte
e   exabyte

When this option is specified, the existing