Storage – Strip Unit Size

Background

A Storage disk’s Strip Unit Size is often taken into consideration as one considers storage alignment.

So I am finishing up and closing all opened Google’s Chrome Tab, and went back and read:

Disk Partition Alignment (Sector Alignment) for SQL Server: Part 4: Essentials (Cheat Sheet)
http://blogs.msdn.com/b/jimmymay/archive/2008/12/04/disk-partition-alignment-sector-alignment-for-sql-server-part-4-essentials-cheat-sheet.aspx

Jimmy May’s paper principally deals with Microsoft products: SQL Server on Windows OS, but his formula is very generalized.

 

Strip Unit Size – What does it matter?

Let us see how it plays out:

Here is Jimmy May’s formula:

Three Values - Two Essential Correlations

Jimmy’s document says:

  • Perform these calculations for each partition which must result in integer values
  • Of the two, the first is far more important.  Use the information below to divine this information.

And, here is how he says to get “File Allocation Unit Size” and also “Starting Offset”:

GetJimmysNumbers

It is left to the inquiring mind how to get “Stripe Unit Size” as that number is not based on the OS, Microsoft Windows, in this case; but based on the Vendor and each Application.

Matrix – Vendor

Here are some numbers for various vendors and models:

Strip Unit Size
Vendor Model# Strip Unit Size
EMC Clarion  64k
NetApp (all models)  4k
HP (all models)  64k -to- 256k

Matrix – Application

Here are popular applications along with their Block Size.

Block Size
Vendor Application Block Size
Microsoft SQL Server  64 kb
Hadoop HBASE  64 kb
MySQL\Percona InnoDB  512 Bytes

Matrix – Application – MySQL/Inno DB

http://www.percona.com/doc/percona-server/5.5/scalability/innodb_io_55.html?id=percona-server:features:innodb_io_55

This variable changes the size of transaction log records. The default size of 512 bytes is good in most situations. However, setting it to 4096 may be a good optimization with SSD cards. While settings other than 512 and 4096 are possible, as a practical matter these are really the only two that it makes sense to use. Clean restart and removal of the old logs is needed for the variable innodb_log_block_size to be changed.

Calculation

Calculation – NetApp

  1. NetApp’s default Strip Unit Size is 4K and Microsoft’s SQL Server best practice suggest using a File Allocation Unit Size of 64K.
  2. It does not take much calculation to deduce that 4K / 64K will not render an integer value, but a fractional value
  3. Please keep in mind that for NTFS, the default Strip Unit Size is 4K and one will get a whole number of 1 (Strip Unit Size / File Allocation Unit Size = 4 K / 4K = 1)

References

References – Vendor – Microsoft

References – Vendor – NetApp

References – Vendor – EMC

References – Vendor – HP

References – Vendor – Oracle

References – Vendor – MySQL

References – Technology – Hadoop

References – Changing Block Size

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s