We help IT Professionals succeed at work.

What´s the best Block size, allocation unit and RAID  element size to run VM?

Fairpoint asked

I hope you can help me.

Machine: DELL R710 with PERC H700. 6 x SEAGATE 600GB 15K RPM DISKS

I´m installing this machine for virtualization proposal, i will use Microsoft Hyper-v for that.

I will have 2 RAID Virtual Volumes one for the SO and the other one for machines.

The question is about the better block or allocation  size(both are the same?) config  for large VHD Files.

In the raid config i have "the strip element size", the default is 64kb, may i change?


in windows format option i have "Allocation unit size" may i change the default?

I ran some HDtune test, and seams to be fast with "block size" 1MB size.

sorry for poor english


Watch Question

Optimizing an IO subsystem requires to have a target " IO pattern usage " basically because optimizing for IOPS (random io) is not compatible with optimizing for throughput (sequential access).

Parity RAID (5/6/50/60) are terrible at random write io and may be slightly better than mirroring (1/10) on sequential io !

Usually, the OS itself are more sensitive to random io performance than sequential performance.
But I have no idea of the "io pattern" for your VM so I can't really optimize any block size.

To summarize:
-Optimizing random io with a low write level : Parity RAID with stripe equals to the client io size (64KB for NTFS for example)...buy a brended hw raid card with a large cache backed by a battery
-Optimizing random io with a high write level : Mirror with middle stripe size (256KB?)
-Optimizing for large sequential io : Parity RAID with largest stripe possible (2MB+)

And please:
-ALIGN your array when working on "old" OS (Win2003/XP, Linux)
-Use the raid controller scrubber to detect and correct silent errors
-Check that you know whose failed drive is to replace (I saw one customer definitely breaking a RAID 1 array by replacing the good drive instead of the bad one)



That´s will be RAID 5

I understand that the main deal is not the size of VHD but what is beeing write inside that. that´s it?

VMs / Aplications

Linux / Mail
Windows 2008 / SQL server
Windows 2008 / File server (small files inside)
Windows 2008 / Aplication Server

There are olny 25 clients in this network.

my arrey are set to 64kb block size may i format NTFS to 64kb alocation unit? thats what you mean with ALIGN? what about alocation unit inside VMS?



i mean 64kb "the strip element size" at RAID CONFIG.
SQL Server is usually a random io consumer with lots of write io...that is a very bad news for your RAID 5 expectation.

If you can live with 3x600= 1.8TB net capacity, you should go with a single RAID 10 array using 256KB stripe.

Alignment is not a problem with Win2008 as it reserves 1MB for the partition info (and 1MB is almost always a multiple of your stripe size)

Other points:
-A "must read" MS article "Analyzing Characterizing and IO Size Considerations.docx" for SQLServer 2008
-Windows can't boot on anything but a 4KB cluster size volume
-I won't touch the HyperV volume definitions
-You should give particular attention to the SQLServer VM and try a "generic" config on others


Thanks for the explanetion, i will keep RAID 5 because RAID10 will cot alot of space. cano´t do that. i think thats fot 20 user it´s ok! thanks!