Attempting ATA TRIM on SAS devices?
Douglas Gilbert
dgilbert at interlog.com
Thu Jan 9 00:25:00 UTC 2014
On 14-01-08 06:38 PM, Garrett Wollman wrote:
> <<On Wed, 08 Jan 2014 16:07:59 -0500, Douglas Gilbert <dgilbert at interlog.com> said:
>
>> A SATA disk with a SCSI to ATA Translation Layer (SATL)
>> in front of it can look like a SCSI disk. If the
>> SATL is well written such as the ones found in
>> LSI SAS HBAs then VPD page 0x89 ("ATA Information") will
>> be present.
>
> This is not a SATA disk, although the underlying flash controller may
> well be a SATA emulator. (I believe the hardware is mostly shared
> between Talos 2 and Deneva 2 platforms.)
Interesting.
> This drive reports:
>
> [root at nfs-prod-3 /export]# sg_vpd -l -p sn /dev/da12
> Unit serial number VPD page:
> [PQual=0 Peripheral device type: disk]
> Unit serial number: A179E011337000251
> [root at nfs-prod-3 /export]# sg_vpd -l -p di /dev/da12
> Device Identification VPD page:
> [PQual=0 Peripheral device type: disk]
> Addressed logical unit:
> designator type: NAA, code set: Binary
> NAA 5, IEEE Company_id: 0xe83a97
IEEE OUI database reports:
E8-3A-97 (hex) OCZ Technology Group
> Vendor Specific Identifier: 0xa101b6024
> [0x5e83a97a101b6024]
> Target port:
> designator type: NAA, code set: Binary
> transport: Serial Attached SCSI Protocol (SPL-2)
> NAA 5, IEEE Company_id: 0xe83a97
> Vendor Specific Identifier: 0xa101b6025
> [0x5e83a97a101b6025]
> designator type: Relative target port, code set: Binary
> transport: Serial Attached SCSI Protocol (SPL-2)
> Relative target port: 0x1
> Target device that contains addressed lu:
> designator type: NAA, code set: Binary
> transport: Serial Attached SCSI Protocol (SPL-2)
> NAA 5, IEEE Company_id: 0xe83a97
> Vendor Specific Identifier: 0xa101b6024
> [0x5e83a97a101b6024]
Target device NAA and LU NAA are the same. That is a
no-no in SAS. Sloppy.
> [root at nfs-prod-3 /export]# sg_vpd -l -p ai /dev/da12
> ATA information VPD page:
> [PQual=0 Peripheral device type: disk]
> SAT Vendor identification: OCZ
> SAT Product identification: LUIGI_V2_MGT
> SAT Product revision level: ST00
> Signature (Device to host FIS):
> 00 34 00 50 01 01 00 00 00 00 00 00 00 01 00 00 00 4.P.............
> 10 00 00 00 00 ....
> ATA command IDENTIFY DEVICE response summary:
> model: TALOS2
> serial number: A179E011337000251
> firmware revision: 2.25
> ATA command IDENTIFY DEVICE response in hex:
> 00 0c5a 3fff c837 0010 0000 0000 003f 0000 .Z ?. .7 .. .. .. .? ..
> 08 0000 0000 4131 3739 4530 3131 3333 3730 .. .. A1 79 E0 11 33 70
> 10 3030 3235 3120 2020 0000 0000 0004 322e 00 25 1 .. .. .. 2.
> 18 3235 2020 2020 5441 4c4f 5332 2020 2020 25 TA LO S2
> 20 2020 2020 2020 2020 2020 2020 2020 2020
> 28 2020 2020 2020 2020 2020 2020 2020 8010 ..
> 30 4000 2f00 4000 0200 0200 0007 3fff 0010 @. /. @. .. .. .. ?. ..
> 38 003f fc10 00fb 0110 4bb0 0df9 0000 0007 .? .. .. .. K. .. .. ..
> 40 0003 0078 0078 0078 0078 4200 0000 0000 .. .x .x .x .x B. .. ..
> 48 0000 0000 0000 001f c70e 0006 0044 0040 .. .. .. .. .. .. .D .@
> 50 01fc 0110 746b 7469 6163 7409 b449 6163 .. .. tk ti ac t. .I ac
> 58 207f 0001 0000 00fe fffe 0000 0000 0000 . .. .. .. .. .. .. ..
> 60 0000 0000 0000 0000 4bb0 0df9 0000 0000 .. .. .. .. K. .. .. ..
> 68 0000 0001 4000 0000 5e83 a97a 101b 6024 .. .. @. .. ^. .z .. `$
> 70 0000 0000 0000 0000 0000 0000 0000 401a .. .. .. .. .. .. .. @.
> 78 4018 0000 0000 0000 0000 0000 0000 0000 @. .. .. .. .. .. .. ..
> 80 0001 4f24 4e89 0400 0102 0002 000e 0000 .. O$ N. .. .. .. .. ..
> 88 0000 0104 0100 0000 0000 0000 0000 0000 .. .. .. .. .. .. .. ..
> 90 0000 0000 0000 0000 0000 0000 0000 0000 .. .. .. .. .. .. .. ..
> 98 0000 0000 0000 0000 0000 0000 0000 3600 .. .. .. .. .. .. .. 6.
> a0 0000 0000 0000 0000 0000 0000 0000 0000 .. .. .. .. .. .. .. ..
> a8 0000 0001 0000 0000 0000 0000 0000 0000 .. .. .. .. .. .. .. ..
> b0 0000 0000 0000 0000 0000 0000 0000 0000 .. .. .. .. .. .. .. ..
> b8 0000 0000 0000 0000 0000 0000 0000 0000 .. .. .. .. .. .. .. ..
> c0 0000 0000 0000 0000 0000 0000 0000 0000 .. .. .. .. .. .. .. ..
> c8 0000 0000 0000 0000 0000 0000 0021 0000 .. .. .. .. .. .. .! ..
> d0 0000 4000 0000 0000 0100 0000 0000 0000 .. @. .. .. .. .. .. ..
> d8 0000 0001 0000 0000 0000 0000 103f 0000 .. .. .. .. .. .. .? ..
> e0 0000 0000 0000 0000 0000 0000 0000 0000 .. .. .. .. .. .. .. ..
> e8 0000 0000 0000 0000 0000 0000 0000 0000 .. .. .. .. .. .. .. ..
> f0 0000 0000 0000 0000 0000 0000 0000 0000 .. .. .. .. .. .. .. ..
> f8 0000 0000 0000 0000 0000 0000 0000 32a5 .. .. .. .. .. .. .. 2.
There is the WWN on line 0x68:
5e83 a97a 101b 6024
> [root at nfs-prod-3 /export]# sg_vpd -l -p bl /dev/da12
> Block limits VPD page (SBC):
> [PQual=0 Peripheral device type: disk]
> Write same no zero (WSNZ): 0
> Maximum compare and write length: 0 blocks
> Optimal transfer length granularity: 0 blocks
> Maximum transfer length: 0 blocks
> Optimal transfer length: 0 blocks
> Maximum prefetch length: 0 blocks
> Maximum unmap LBA count: 4294967295
> Maximum unmap block descriptor count: 256
> Optimal unmap granularity: 32
> Unmap granularity alignment valid: 0
> Unmap granularity alignment: 0
> Maximum write same length: 0x0 blocks
Many of those "0 blocks" should probably read "unlimited"
Might look at that.
> [root at nfs-prod-3 /export]# sg_vpd -l -p bdc /dev/da12
> Block device characteristics VPD page (SBC):
> [PQual=0 Peripheral device type: disk]
> Non-rotating medium (e.g. solid state)
> Product type: Not specified
> WABEREQ=0
> WACEREQ=0
> Nominal form factor not reported
> FUAB=0
> VBULS=0
> [root at nfs-prod-3 /export]# sg_vpd -l -p lbpv /dev/da12
> Logical block provisioning VPD page (SBC):
> [PQual=0 Peripheral device type: disk]
> Unmap command supported (LBPU): 1
> Write same (16) with unmap bit supported (LBWS): 0
> Write same (10) with unmap bit supported (LBWS10): 0
> Logical block provisioning read zeros (LBPRZ): 0
> Anchored LBAs supported (ANC_SUP): 0
> Threshold exponent: 1
> Descriptor present (DP): 0
> Provisioning type: 0
Grrr, LBPRZ=0 which implies read rubbish from trimmed
(unmapped) blocks.
> My older drives (with the 2.15 firmware) are identical except that
> they does not support VPD page 0xb2 (logical block provisioning).
So it looks like they have put a SAS target chip directly in front
of what is otherwise a SATA SSD.
> In contrast, a different SSD (STec ZeusRAM) supports the following VPD
> pages:
> Supported VPD pages VPD page:
> [PQual=0 Peripheral device type: disk]
> 0x00 Supported VPD pages [sv]
> 0x3
> 0x80 Unit serial number [sn]
> 0x83 Device identification [di]
> 0x86 Extended inquiry data [ei]
> 0x87 Mode page policy [mpp]
> 0x88 SCSI ports [sp]
> 0xb1 Block device characteristics (SBC) [bdc]
> 0xc0
> 0xdb
>
> (However, sg_vpd returns "page length too short" for 0xb1.)
sg_vpd -H -vvv -p 0xb1 <device_node>
might show what is returned (in hex).
At least Hitachi is breaking away from these silly games
with a 12 Gbps SAS-3 SSD whose maximum read rate is
around 1100 MB/sec. SATA won't be going to 12 Gbps, SAS is
already there and looking at 24 Gbps (or maybe 20 Gbps ...).
A SAS-3 SSD could theoretically read 2400 MB/sec aggregate
with its two phys doing separate READs on its 2-phy, wide port.
So it's between PCIe (SOP ?) and SAS for high end SSDs.
Doug Gilbert
More information about the freebsd-scsi
mailing list