Thin Provisioning SCSI Compliance Test (LOGO)
This test verifies that a storage array can properly support the thin provisioning feature.
Test details
Specifications |
|
Platforms |
|
Supported Releases |
|
Expected run time (in minutes) | 10 |
Category | Compatibility |
Timeout (in minutes) | 600 |
Requires reboot | false |
Requires special configuration | false |
Type | automatic |
Additional documentation
Tests in this feature area might have additional documentation, including prerequisites, setup, and troubleshooting information, that can be found in the following topic(s):
Running the test
Before you run the test, complete the test setup as described in the test requirements: Hard Disk Drive Testing Prerequisites.
Before you run the test, make sure that the thin provisioned LUN is online initialized raw dis. Set the threshold for thin provisioned LUN to be 70 percent.
Troubleshooting
For generic troubleshooting of HLK test failures, see Troubleshooting Windows HLK Test Failures.
For troubleshooting information, see Troubleshooting Device.Storage Testing.
More information
This test ocuses on measuring the SCSI device compliance in Windows. The goal is twofold - to ensure that SCSI devices supported on Windows fully and completely adhere to the SCSI specifications set forth in SPC-4 and SBC-3, and to allow Microsoft and Microsoft partners to fully respect and comply with these standards. Maintaining compliance leads to a stronger and more reliable overall system.
Note
For more information about these specifications, visit the Technical Committee T10 SCSI Storage Interfaces website.
The test sends the following commands to the device:
Inquiry VPD 0xB0, 0xB2 pages
Log Sense
Get LBA Status
Unmap
Read Capacity 16 (not required)
SCSI commands
INQUIRY (see SPC-4 Section 6.6)
For page code B0h:
Support INQUIRY B0h VPD page command (status is GOOD)
PAGE LENGTH = 0x3C
MAXIMUM UNMAP LBA COUNT > 0
MAXIMUM UNMAP BLOCK DESCRIPTOR COUNT > 0
For page code B2h:
Support INQUIRY B2h VPD page command (status is GOOD)
If DP = 1, then PAGE LENGTH = 0x4
LOG SENSE (see SPC-4 Section 6.8)
Support LOG SENSE command (status is GOOD)
The log page's DS (Disable Save) bit is 1
The log page's SPF (Subpage Format) bit is 0
The log page's SUBPAGE CODE (byte 2) is 0
The log page's PAGE LENGTH is divisible by 12
Log parameter's FORMAT AND LINKING is 0x3
Log parameter's PARAMETER LENGTH = 0x8
Log parameter's PARAMETER CODE is between 0x1 and 0xFF
GET LBA STATUS (see SBC-3 Section 5.4)
Support GET LBA STATUS command (status is GOOD)
LBA status descriptor page length > 20
STARTING LOGICAL BLOCK ADDRESS + NUMBER OF LOGICAL BLOCKS < total number of LBAs
UNMAP (see SBC-3 Section 5.27)
Support UNMAP (10) command (status is GOOD)
After random WRITE (10) commands, sending down UNMAP, GET LBA STATUS should return some deallocated LBAs
Mapped resource should be reduced after sending down UNMAP command
READ CAPACITY (16) (see SBC-3 Section 5.16)
This command is not required. Test gives warning only.
LBPME bit matches between READ CAPCITY (16) and INQUIRY B2h VPD page
LBPRZ bit matches between READ CAPCITY (16) and INQUIRY B2H VPD page
Command syntax
Command option | Description |
---|---|
Scsicompliance.exe /device [DeviceID] /verbosity [LoggingVerbosity e.g. 4] /scenario ThinProvision /operation [OperationId] |
Runs the test. |
Note
For command-line help for this test binary, type /h.
File list
File | Location |
---|---|
Scsicompliance.exe |
<[testbinroot]>\nttest\driverstest\storage\wdk\ |
Parameters
Parameter name | Parameter description |
---|---|
TPDiskDeviceObjLink | Assigned by Create Storage Parameters. |
WDKDeviceID | Instance path of device to test |
LoggingVerbosity | LoggingVerbosity: Detail of logging. Levels are cumulative. 0 = Assertions and results. 1 = Details (default). 2 = CDBs , data, and sense info. 3 = Debug and detailed Mode page information. 4 = Memory usage |
ScenarioId | Scenario test name. |
ScsiComplianceDevice | Device path |
LLU_NetAccessOnly | User account for accessing test fileshare. |
LLU_LclAdminUsr | User account for running the test. |
OperationId | operation option |
Destructive | (0,1) 0=Passive, 1=Destructive |