Fibre Channel RAID Array Addendum to Microsoft Windows Logo Program System and Device Requirements 2.2 - 1
Fibre Channel RAID Array Addendum to Microsoft Windows LogoProgram Systemand Device Requirements 2.2
The requirement in this document define updates to the Windows Logo Program that clarify conformance to SCSI-3 specifications for Fibre Channel RAID Systems. In particular, this applies to references in requirement B10.9.2 to the SCSI-3 Primary Commands (SPC-2 or later) and SCSI-3 Block Commands (SBC or later).
The current version of this document is provided at
July 27, 2004
Additions to B10.9 RAID
B10.9.4.8 NEW SCSI Protocol Support for All Fibre Channel RAID systems
- SAM-2 or later: Devices must comply with SCSI-3 Architecture Model SAM-2 or later, including the following:
- LUN 0 must be implemented for all initiators. At a minimum, LUN 0 must respond to INQUIRY and REPORT LUNS commands as defined in SPC-2 or later. (Windows only supports single level logical unit numbers up to 255.)
- All devices must support multiple initiators.
- All devices must support LUN Reset. In particular:, if two LUNs L0 and L1 under the same target are reserved, a LUN reset to L0 must only clear L0 (and any non-persistent reservation on it) and have no effect on L1.Following a reset, the Logical Unit must return an appropriate Unit Attention condition to any initiator that accesses that unit.
- In the event that any LUN is added or removed from the target port, the device must report a Unit Attention condition of (06/3F/0E) REPORT LUNS DATA HAS CHANGED
- MODE SELECT commands that change parameters must cause a Unit Attention condition to be raised for any other initiator.
- Any unrecognized SCSI command or incorrectly formed command descriptor block (CDB) must result in an immediate CHECKCONDITION reported back to the initiator. A Fibre Channel RAID system must not disconnect on check conditions nor may it ignore these commands.
- SPC-2 or later: Devices must comply with the SCSI-3 Primary Commands-2 or later specification, including but not limited to:
- If the size of a logical unit is changed, the target must report a Unit Attention condition of (06/3F/0A) VOLUME SET CREATED OR MODIFIED or (06/28/00) NOT READY TO READY CHANGE, MEDIUM MAY HAVE CHANGED.
- All LUNs must support the TEST UNIT READY and REQUEST SENSE commands.
- SCSI-3 Inquiry Data must comply with the following:
- VERSION Field must be 03 or greater.
- Multi-LUN units must set HiSup and return valid REPORT LUNS data for LUN 0.
- If LUN 0 is not an accessible PERIPHERAL DEVICE TYPE, the PERIPHERAL QUALIFIER shall be returned as 1.
Note: SCSIport will not enumerate the entire target device if a qualifier of 3 is used. It is strongly recommended that LUN 0 not be type 0 as it must be exposed to all initiators. Type 0 is only permissible if the array can map different logical units to LUN 0 for each initiator. - If a device has more than one port, MultiP bit must be set and page 83h descriptors must correctly reflect the port information.
- All standard INQUIRY data must be correctly set for the device capabilities.
- VERSION descriptors (for example, 019Bh for SBC) are recommended.
- Required Vital Product Data (VPD) pages:
0 (Supported Pages); 80h (Serial Number); 83h(Device Identification). - For VPD Page 83, at least one type 3 or one type 2 descriptor must be returned for each logical unit, and the value must be unique for that logical unit regardless of the path. Appropriate descriptors for multiport devices are required in addition to that mandatory descriptor.
- Devices that support aliases must also support the corresponding descriptor types.
- Vendor-specific device identifiers, if present, must use type 0 and must follow the specified format, including correct page length; vendor-specific identifiers are not a substitute for the mandatory type 2/3 descriptors.
- Page 80h (serial number) must be in ASCII.
- SCSI-3 Mode Sense and Pages must comply with the following:
- MODE SENSE (6) is required for all devices.
- Mode Page 3f (all pages) is required, in addition to device type-specific pages listed in below sections.
- SBC or later:The following commands must be implemented:
- MODE SENSE (6)
Block devices support Caching Page (Page 8). The WCE bit must contain valid information:
- MODE SELECT (6)
If a block device supports enabling or disabling write caching, the WCE bit in the Caching Page must be settable and savable.
- READ CAPACITY (10) All devices support the READ CAPACITY (10) command. The returned data must indicate the number of sectors and a block length of 512 bytes. If the size of the logical unit exceeds 2TB, the BLOCK LENGTH returned shall be 0xFFFFFFFF. (See below for more information.)
Important: Windows does not support any other block size. - READ (10)
- WRITE(10)
Support for Force Unit Access (FUA) is mandatory for individual physical disk drives and must cause the data sent with this command to be committed to physical media before the command completes.
- REASSIGN BLOCKS
- VERIFY (10)
- START STOP UNIT
This command must not perform any other action, such as path failover.
- SYNCHRONIZE CACHE (10) – no optional fields are used.
For a physical disk drive, this command shall cause all data in the write cache to commit to physical media if write caching is enabled. Failure to follow this can result in data corruption.
- RESERVE(6) / RELEASE (6)
Commands allowed in the presence of reservations are defined in SCSI Block Commands (SBC). For devices claiming support of SBC-2 and/or SPC-3, these commands shall be implemented in accordance with SBC and SPC-2. This is required for all RAID subsystems. No optional parameters are used.
In particular:
- If device A is reserved by initiator X, a reserve request by Y must fail with reservation conflict.
- A LUN reset issued by any initiator must clear the reservation and set a Unit Attention condition for the previous reservation holder. Any initiator may then issue a RESERVE and obtain a new reservation on the logical unit.
- For devices that support greater than 2TB logical units, devices must implement all of the following in accordance with the SCSI-3 Block Commands-2 (SBC-2) Specification:
- READ CAPACITY (16)
- READ (16)
- WRITE (16)
- VERIFY (16)
- REASSIGN BLOCKS – LONGLBA field must be supported
Disclaimer
The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.
This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.
Unless otherwise noted, the example companies, organizations, products, domain names, e-mail addresses, logos, people, places and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, email address, logo, person, place or event is intended or should be inferred.
© 2004 Microsoft Corporation. All rights reserved.
Microsoft, Windows, and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.
The names of actual companies and products mentioned herein may be the trademarks of their respective owners.
July 27, 2004