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:
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”:
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:
|
Matrix – Application
Here are popular applications along with their Block Size.
|
Matrix – Application – MySQL/Inno DB
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
- NetApp’s default Strip Unit Size is 4K and Microsoft’s SQL Server best practice suggest using a File Allocation Unit Size of 64K.
- It does not take much calculation to deduce that 4K / 64K will not render an integer value, but a fractional value
- 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
- Disk Partition Alignment – Sector Alignment for SQL Server – Part 4 – Essentials – CheatSheet
http://blogs.msdn.com/b/jimmymay/archive/2008/12/04/disk-partition-alignment-sector-alignment-for-sql-server-part-4-essentials-cheat-sheet.aspx
References – Vendor – NetApp
- HP Launches an unproved attack on NetAPP Deduplication
https://communities.netapp.com/community/netapp-blogs/drdedupe/blog/2011/03/22/hp-launches-an-unprovoked-attack-on-netapp-deduplication
- Stripe Size and Block Size
http://communities.vmware.com/thread/296569
References – Vendor – EMC
- SQL Server Storage Design Best Practices
https://community.emc.com/message/596046#596046 - Windows “File Allocation Unit Size” and SQL Server 2008
https://community.emc.com/thread/171127?start=0&tstart=0
References – Vendor – HP
- Changing terms from stripe size to strip size with HP Smart Array utilities
http://www.bitcon.be/?p=743
References – Vendor – Oracle
- HP Launches an unproved attack on NetAPP Deduplication
https://communities.netapp.com/community/netapp-blogs/drdedupe/blog/2011/03/22/hp-launches-an-unprovoked-attack-on-netapp-deduplication
References – Vendor – MySQL
- Aligning IO on a hard disk RAID – the Theory ( Aurimas Mikalauskas http://www.mysqlperformanceblog.com/2011/06/09/aligning-io-on-a-hard-disk-raid-the-theory/
- Percona – Improved InnoDB I/O Scalability
http://www.percona.com/doc/percona-server/5.5/scalability/innodb_io_55.html?id=percona-server:features:innodb_io_55
References – Technology – Hadoop
- HFile: A Block-Indexed File Format to Store Sorted Key-Value Pairs
http://cloudepr.blogspot.com/2009/09/hfile-block-indexed-file-format-to.html
References – Changing Block Size
- Changing Block Size
http://storagesecrets.org/2008/12/changeblocksize/