Partition Alignment

Some informative posts on Partition Alignment:

Storage Notes – IOPS, RAID, Performance and Reliability

I’ve read countless articles and posts in my quest to understand the nuances of storage.
I’ll add the useful links I have now, and will update this post over time.


These first three posts cover many aspects of storage, so they’re a great start:

Some important excerpts from above:

For databases and other random-access applications, throughput is much less important than I/O latency and the number of I/O operations per second (IOPS) the storage system can perform.

So does it make sense to add SSDs to a storage system with 1-Gbps connections? Sure does, if that storage system is going to run a database application like Oracle, MySQL or even Exchange, all of which manage data in small pages. To saturate even one 1-Gbps connection would take 15,000 8K IOPS, while a 12-drive SATA system without SSD would struggle to deliver 1,500.

This relationship between IOPS and latency is one very good reason to pay more attention to published results from benchmarks like JetStress, TPC-C and SPC-1 rather than simple performance tests like Iometer.

In the real world many RAID controllers don’t have the bandwidth or CPU horsepower to achieve total parallelization, so a 14+1 RAID 5 set will do small I/Os significantly slower than a 5+1 RAID set.

While an oversimplification–as all rules of thumb are–the storage admin’s rule of thumb to use RAID 10 for random I/O workloads and parity RAID for sequential workloads does hold water. Of course, sequential workloads, other than backups, are becoming rare in today’s virtualized data center.

[Read more…]

Using SSD Drives for SQL Server

I’ve  just watched a great video explaining How to Optimally Use SQL Server with SSD’s Without Burning Them Out.

Here’s some notes:

  • 1 x SSD can give 4-5x the IOPS a 15k HDD gives. (I thought it would be more than this. Maybe because the video is from SQL Server Days 2011, and is a little out of date.)
  • The file allocation unit size (cluster size) recommended for SQL Server is 64 KB; this changes things when comparing IOPS stats from SAN. Ask for “Steady State IOPS”:
  • 4KB pages are standard on SSD
    • Smallest read/write structure.
  • Pages are grouped into blocks (128).
    • 512KB per block.
    • Smallest erasable structure
  • SSD write performance will degrade over time as it gets full.
  • SSD read performance stays roughly the same.
  • TRIM will help slow this down:
    • Check your OS supports TRIM by running this command
    • fsutil behavior query DisableDeleteNotify (should return 0)
    • If not 0, try to set it with this command:
    • fsutil behavior set DisableDeleteNotify 0
  • DO NOT defrag a SSD.
  • SSD typically don’t handle random writes very well.
  • Always use Enterprise SSDs, as they can last 10x longer than Prosumer SSDs.
  • Useful SMART tool is SSD Toolbox:
  • DO NOT use SSDs for TempDB, and maybe not even Log.
  • Base Solution – Tiered Infrastructure:
    • Eliminate bottlenecks:
      • Think 6Gbps and higher
      • Multilink
    • Use good controllers with Wear Levelling
    • Look at IOPS and response rates in Steady State
  • Problems with TempDB:
    • TempDB involves heavy Random writes.
    • Most used database
    • Enormous amounts of reads and erases
    • Kill (standard) SSDs extremely fast!
  • Log Files
    • Consider using Enterprise SSDs only, with RAID1 (mirrored).
    • Be careful with autogrowth.
    • Log files have more sequential reads and writes; more suited to HDDs.
  • Indexes
    • This is the best candidate for using SSD.
    • Place index filegroup on SSD.
    • Rebuild options that matter for SSDs:
      • MAXDOP=1 (this keep writes sequential)
  • Problem drive order of failure:
    • TempDB
    • Log
    • Data
  • Data Writes:
    • Logically view this as log entries being written and then used as instructions to write data pages out to the disk by an asynchronous process.
    • Heavily random access pattern; great for SSD.
  • Conclusion:
    • SSDs are not so good for sequential writes
    • SSDs are great for Random reads; indexes and Data files.
    • IO Volume matters, not just IOPS.

Data Deduplication in Server 2012

Just read this great post on Data Deduplication in Server 2012:

The post details that “enterprise organizations report that as much as 60% of their annual capital IT budget is related to storage hardware”, then goes on to explain data deduplication, and how to enable this feature in Server 2012.

Once the role is enabled, you can run DDPEVAL.exe, which will estimate the amount of disk space that can potentially be reclaimed by moving that data to a Windows Server 2012 NTFS volume with Data Deduplication enabled.

Here’s an excerpt:

When I’ve executed this against various shared folders on my servers, I’ve seen it compute anywhere between 30% – 80% estimated disk space reclamation, depending on the level of duplication on a volume and staleness of data.  Wouldn’t it be great to have 30% or more of your storage budget returned next year to spend on other projects?  Results may vary volume to volume, so I’d be very interested in hearing about your results!

RAID Controller Software for the Dell PERC 6/i RAID Card


You have purchased a Dell PERC 6/i RAID Card separately, and are using it in a non-Dell server, so you cannot use the Dell Management software to manage the card.


The Dell PERC 6/i RAID Card is just a rebadged LSI MegaRAID card, so download and install the latest version of LSI’s MegaRAID Storage Manager software – currently on version

For other software – like VIBs for VMware ESXi, look under the Support & Downloads section here:

Once installed, you can set up Alerts from the Tools > Monitor Configure Alerts menu:

Adding a node to a SQL Server 2008 R2 Failover Cluster using Server 2008 R2


You’ve successfully installed and configured a SAN, a Failover Cluster and an instance of SQL Server 2008 R2 on one node. Now you need add another node to this cluster so the SQL Server instance can failover.


  1. From the setup menu, select Installation > Add node to a SQL Server failover cluster:

  2. Click OK after the first set of checks:
    [Read more…]

Installing SQL Server 2008 R2 on a Failover Cluster using Server 2008 R2


You’ve configured a Failover Cluster using Server 2008 R2, and now you want to install SQL Server 2008 R2.



A few changes were made to the simple Failover Cluster that was previously configured:

  • Several LUNs were added to the FreeNAS VM so separate disks could be used for each function:
  • 3 x Network Interface Cards (NICs) were configured on each node, each on a different subnet:
    • LAN:
    • SAN:
    • Heartbeat:
  • The FreeNAS interface was configured on the SAN subnet (

This time round, the Failover Cluster Validation Report didn’t have a single warning; all green ticks 😉

[Read more…]

Configure a Failover Cluster using Server 2008 R2


You have already installed and configured an iSCSI SAN for your shared storage, and now you want to configure a Failover Cluster to provide increased availability to services like Exchange, SQL Server and virtualisation.

Two servers called node01 and node02 have already been joined to the domain, each with multiple Network Interface Cards (NICs).

Microsoft’s iSCSI Initiator was used to connect the volumes (LUNs) on the iSCSI SAN. One disk for Data, the other for the Witness disk.

[Read more…]

Connect an iSCSI SAN to Server 2008 R2 using the Microsoft iSCSI Initiator


You’ve installed FreeNAS 8.2 and configured it as a free iSCSI SAN. Now you need to connect to the iSCSI SAN using an iSCSI Initiator.

[Read more…]

Configure iSCSI SAN using FreeNAS 8.2


You’ve installed FreeNAS 8.2 in your Home Lab, and now wish to configure iSCSI for shared storage.

Here’s how.

[Read more…]