Set Capacity Proposal --

Jim McGrath jmcgrath at qntm.com
Wed Aug 16 13:59:52 PDT 1995


        Reply to:   RE>Set Capacity Proposal -- X3T10/95-260 rev. 1

Gerry,

I am not certain how you propose that this works.  For
instance, suppose I have a 10 GB drive as LUN 0.  Now I
set the capacity to 4 GB.  It is clear I have a 4 GB lun 0,
but do I have a 6 GB LUN 1?  How would I set up LUN 2 if
I did not already have an LUN 1?  It seems that a side
effect of reducing capacity on LUN n is creating LUN n+1
- otherwise how would it be created?

On deleting LUNs there is a similar problem - do the LBAs
go away?  Or are they just appended to LUN n-1?

I think you intention here is clear (at least to me), but
it should be made explicit.


--------------------------------------
Date: 8/16/95 11:48 AM
To: Jim McGrath
From: Gerry Houlder
Received: by qm_smtpgw.qntm.com with SMTP;16 Aug 1995 10:04:02 U
Received: from worf.qntm.com (worf-gw.qntm.com) by mail.qntm.com with ESMTP
	(1.37.109.16/16.2) id AA163211420; Wed, 16 Aug 1995 09:43:41 -0700
Received: from mpdgw2.hmpd.com by worf.qntm.com with ESMTP
	(1.37.109.16/16.2) id AA081482228; Wed, 16 Aug 1995 09:57:08 -0700
Received: (from root at localhost) by mpdgw2.hmpd.com (8.6.8.1/8.6.6) id
KAA07425; Wed, 16 Aug 1995 10:56:34 -0600
Received: from aztec.ncrmicro.ncr.com(153.72.199.214) by mpdgw2.hmpd.com via
smap (V1.3)
	id sma007323; Wed Aug 16 10:55:58 1995
Received: from ncrwic.WichitaKS.NCR.COM (ncrwic.wichitaks.ncr.com
[153.79.8.1]) by Symbios.COM (8.6.8.1/8.6.6) with SMTP id KAA16620; Wed, 16
Aug 1995 10:55:54 -0600
Received: by ncrwic.WichitaKS.NCR.COM; 16 Aug 95 11:49:02 CDT
Received: from mpdgw2.hmpd.com ([204.131.201.2]) by Symbios.COM
(8.6.8.1/8.6.6) with ESMTP id KAA16445 for <scsi at symbios.com>; Wed, 16 Aug
1995 10:48:31 -0600
Received: (from root at localhost) by mpdgw2.hmpd.com (8.6.8.1/8.6.6) id KAA06483
for <scsi at symbios.com>; Wed, 16 Aug 1995 10:48:31 -0600
Received: from safety.worldcom.com(198.64.193.5) by mpdgw2.hmpd.com via smap
(V1.3)
	id sma006464; Wed Aug 16 10:48:11 1995
Received: (from smtp at localhost) by safety.worldcom.com (8.6.11/8.6.9) id
LAA11770 for <scsi at symbios.com>; Wed, 16 Aug 1995 11:04:08 -0500
Received: from worldcom-18.worldcom.com(198.64.193.9) by safety.worldcom.com
via smap (V1.3)
	id sma011720; Wed Aug 16 11:02:49 1995
Received: by worldcom-18.worldcom.com (IBM OS/2 SENDMAIL VERSION 1.3.13/3.3)
	  id AA4988; Wed, 16 Aug 95 11:00:23 -0700
Message-Id: <9508161800.AA4988 at worldcom-18.worldcom.com>
Received: from worldcom with "Lotus Notes Mail Gateway for SMTP" id 
A1AC959882F9761C8625621A0057E3A8; Wed, 16 Aug 95 11:00:23 
To: scsi <scsi at symbios.com>
From: Gerry Houlder  <Gerry_Houlder at notes.seagate.com>
Date: 16 Aug 95 10:35:37 EDT
Subject: Set Capacity Proposal -- X3T10/95-260 rev. 1
Mime-Version: 1.0
Content-Type: Text/Plain

This is the Set Capacity proposal I will be presenting at the next working 
group meeting. Reflector comments are welcome. Anything that can be resolved
on 
the reflector will shorten the meeting time.

Date:  Aug. 15, 1995
To: X3T10 Committee
From: Gerry Houlder, Seagate Technology
Subj: Set Capacity Proposal

This proposal came about because some customers want to define the capacity 
reported by a disk drive as something less than its full capacity. The main 
reason for this is customers wanting drives from different vendors to have 
exactly the same number of logical blocks. This is desired for ease of 
replacement, especially in disk array applications.

Another reason is that drives are getting too large for some operating systems

to handle. For example, many operating systems will only handle 8 GB of
storage 
on a single device and several vendors are making drives with a larger
capacity 
than this. In this case, the customer may want to map part of the capacity as 
LUN 0 and another part as LUN 1. This proposal addresses that need also.

In discussions at the July 11 working group meeting, it was pointed out that 
several vendors (including Seagate) use the Number of Blocks field in the MODE

SELECT block descriptor to achieve this purpose. This is only a 3 byte field, 
however, so an extension of some sort would have to be made so that 4 byte 
values can be used. About 60% of that group felt that the backwards 
compatibility issues caused by such an extension made this option
unacceptable.

The group did favor adding a set capacity capability to the READ CAPACITY 
command. The changes to SBC to add this capability are detailed at the end of 
this proposal.

The set capacity feature is activated by a new bit (SC, for Set Capacity) and 
uses the Logical block address field as the last LBA desired for the drive.
The 
target returns 8 bytes of data, with the Returned logical block address field 
set to the actual last logical block that is set into the drive. This value 
will be less than or equal to the requested capacity, depending on the
capacity 
available in the target.

This feature can be used to split the capacity of a drive into several LUNs. 
For example, a 10 GB drive can be split into 3 LUNs as follows:

1. Send a READ CAPACITY w/SC option to LUN 0, setting the capacity to 4 GB.
2. Send a READ CAPACITY w/SC option to LUN 1, setting the capacity to 4 GB.
3. Send a READ CAPACITY w/SC option to LUN 2, requesting a capacity of 4 GB. 
The drive will return a capacity of 2 GB (all of its remaining capacity).
4. If a READ CAPACITY w/SC option is sent to LUN 3, the command should end
with 
CHECK status, sense bytes set to LUN not supported (no capacity remains).

The SBC description of the READ CAPACITY command should read as described in 
the following text. Additions for the set capacity feature are enclosed in <>.



6.1.7 READ CAPACITY command

The READ CAPACITY command (see table 17) provides a means for the application 
client to request information regarding the capacity of the logical unit.

[Table 17 goes here]

See 6.1.2 for a definition of the RelAdr bit and the logical block address 
field.  

The logical block address shall be zero if the PMI bit <and SC bit are> zero. 

If the PMI <and SC bits are> zero and the logical block address is not zero, 
the device server shall return a CHECK CONDITION status, the sense key shall
be 
set to ILLEGAL REQUEST and the additional sense code set to ILLEGAL FIELD IN 
CDB.

<When the> partial medium indicator (PMI) bit <and set capacity (SC) bit are> 
zero, the returned logical block address and the block length in bytes are 
those of the last logical block on the logical unit.

A PMI bit of one <and SC bit of zero> indicate that the returned logical block

address and block length in bytes are those of the logical block address after

which a substantial delay in data transfer will be encountered.  This returned

logical block address shall be greater than or equal to the logical block 
address specified by the RelAdr and logical block address fields in the
command 
descriptor block.

NOTE 6: This function is intended to assist storage management software in 
determining whether there is sufficient space on the current track, cylinder, 
etc., to contain a frequently accessed data structure, such as a file
directory 
or file index, without incurring an access delay.

<A PMI bit of zero and SC bit of one (this combination is the set capacity 
feature) indicate that the logical block address field contains the requested 
last logical block address for the logical unit. If the LUN is zero, a value
of 
zero in the logical block address field indicates that the logical unit shall 
be set to its highest available capacity. If the LUN field is non-zero, a
value 
of zero in the logical block address field indicates that the logical unit 
shall have a capacity of zero and become unsupported. The returned logical 
block address and block length in bytes are the values for that logical unit 
after the set capacity function as been performed.  This returned logical
block 
address shall be less than or equal to the logical block address specified by 
the logical block address field in the command descriptor block (except when 
the LUN is zero and the logical block address field is zero). Once GOOD status

is returned, the new last logical block address value shall be preserved
across 
power cycles or reset events until superseded by another READ CAPACITY command

with SC bit of one.

NOTE X This function is intended to assist storage management software by 
allowing an installation procedure that makes logical units have exactly the 
same capacity. This characteristic is especially desired for arrays, where a 
failed unit must be replaced by another unit with identical capacity. It is 
also useful for splitting very large capacity drives into several logical 
units. This allows a large drive to stay within the capacity limit for a
single 
drive that may exist in storage management software.  

If the PMI and SC bits are both one, the device server shall return a CHECK 
CONDITION status, the sense key shall be set to ILLEGAL REQUEST and the 
additional sense code set to ILLEGAL FIELD IN CDB.

A reservation conflict shall occur when a READ CAPACITY command is received 
|from an initiator other than the one holding a logical unit reservation. A 
reservation conflict shall occur when a READ CAPACITY command with set
capacity 
feature is received from an initiator other than one holding any extent 
reservation. A READ CAPACITY command without set capacity feature shall not be

affected by extent reservations.>

The READ CAPACITY data (see table 18) shall be sent during the DATA IN phase
of 
the command. 

[Table 18 goes here]






More information about the T10 mailing list