Set Capacity Proposal --
jmcgrath at qntm.com
Wed Aug 16 13:59:52 PDT 1995
Reply to: RE>Set Capacity Proposal -- X3T10/95-260 rev. 1
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
(18.104.22.168/16.2) id AA163211420; Wed, 16 Aug 1995 09:43:41 -0700
Received: from mpdgw2.hmpd.com by worf.qntm.com with ESMTP
(22.214.171.124/16.2) id AA081482228; Wed, 16 Aug 1995 09:57:08 -0700
Received: (from root at localhost) by mpdgw2.hmpd.com (126.96.36.199/8.6.6) id
KAA07425; Wed, 16 Aug 1995 10:56:34 -0600
Received: from aztec.ncrmicro.ncr.com(188.8.131.52) by mpdgw2.hmpd.com via
id sma007323; Wed Aug 16 10:55:58 1995
Received: from ncrwic.WichitaKS.NCR.COM (ncrwic.wichitaks.ncr.com
[184.108.40.206]) by Symbios.COM (220.127.116.11/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 ([18.104.22.168]) by Symbios.COM
(22.214.171.124/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 (126.96.36.199/8.6.6) id KAA06483
for <scsi at symbios.com>; Wed, 16 Aug 1995 10:48:31 -0600
Received: from safety.worldcom.com(188.8.131.52) by mpdgw2.hmpd.com via smap
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(184.108.40.206) 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
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
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
on a single device and several vendors are making drives with a larger
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
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
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.
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
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
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
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
set to ILLEGAL REQUEST and the additional sense code set to ILLEGAL FIELD IN
<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
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
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
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
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
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
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
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
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
[Table 18 goes here]
More information about the T10