# HP MSA60 and Quirks with 4k Devices



## kira12 (Feb 8, 2014)

Hey all,

*I* am new here and *I* use an ML110G7 with an MSA60 with 12HDDs. I use Seagate Barracuda ES.3 devices, FreeBSD 10 see only 512sec devices. The disk is a 4k device, camcontrol detects a <HP RAID 0 OK> device. I add the following line to scsi_da.c:


```
/* Seagate Advanced Format drives */
{ T_DIRECT, SIP_MEDIA_FIXED, "HP*", "SCSI*" },
/*quirks*/DA_Q_4K
```

but it is not working. Anybody has an idea what*'*s wrong or has the same configuration?

Thanks ré.


----------



## trh411 (Feb 8, 2014)

kira12 said:
			
		

> I use an ML110G7 with an MSA60 with 12HDDs. I use Seagate Barracuda ES.3 Devices, FreeBSD 10 see only 512sec-Devices. The Disk is a 4k Device, cam control detects a <HP RAID 0 OK> Device.


Currently, all 4K drives say they use 512-byte blocks. So unless you are having a specific problem you can ignore this discrepancy.


----------



## kpa (Feb 8, 2014)

I believe some drives that are only for external enclosure use and not for booting the OS from do report 4k sectors.


----------



## kira12 (Feb 8, 2014)

But if I create a spool without gnop, ashift is 9 and not 12. Only with gnop ashift will be 12.

Regards ré.


----------



## kira12 (Feb 8, 2014)

All drives are only for data, not for booting the OS.

Regards ré.


----------



## kpa (Feb 8, 2014)

kira12 said:
			
		

> but if i create a spool without gnop ashift is 9 and not 12. Only with gnop ashift will be 12.
> 
> regards ré



If you get ashift=9 without using gnop(8) it's sure sign that the drive reports 512 byte sectors even if it's internally 4096 byte sectors.


----------



## Terry_Kennedy (Feb 8, 2014)

kira12 said:
			
		

> i am new here and i use an ML110G7 with an MSA60 with 12HDDs. I use Seagate Barracuda ES.3 Devices, FreeBSD 10 see only 512sec-Devices. The Disk is a 4k Device, cam control detects a <HP RAID 0 OK> Device.


That device string shows that you're talking to a [hopefully] smart controller, not directly to the disk. The controller probably doesn't report anything other than 512 bytes, regardless of the disk(s) behind it.

You can't simply assume that the usual 4K mitigation methods will work effectively. Consider a drive where the controller stores its metadata on the first 2 512-byte sectors (physical sectors 0 and 1). That means the sectors it reports to the operating system start at physical sector 2, even though it reports them as starting at 0. So if you create a partition starting at what you think is sector 8 (the second 4K sector), you're actually writing 3 KB on one of the actual 4K sectors and 1 KB on the second 4K sector.

The four solutions / workarounds for this are:

Use a controller that understands 4K drives and does the "right thing"
Use a controller that either doesn't store metadata on the drive(s) or stores it at the last sectors instead of the first
Hope the controller has enough buffering and that does write-behind and hope the performance impact isn't too great
Have the controller put the disk(s) in "dumb mode" and export the raw drives to the operating system, not as RAID volumes
It is unlikely that you'll get a correct answer from HP about how their controller deals with the first 3 things on that list. You may have to do extensive benchmarking of various configuration options to discover what the HP controller is doing.

Note that if you're using ZFS, you don't want the controller to aggregate multiple drives into a volume - ZFS will be a lot happier managing each drive individually. The above list is still important, though.


----------



## kira12 (Feb 8, 2014)

Hi Terry,

Thanks for your explanation. ;-)

Regards ré.


----------

