[GUIDE] Choosing HDDs for your VM Host

RAID5 has some often-ignored side effects. While it can achieve the throughput of n-1 disks, it will achieve the IOPS of 1 disk (namely the slowest disk). Adding more disks will not increase the IOPS. This principle extends to RAID6 (n-2) as well. RAID50 and RAID60 improve upon this, to the number of RAID5s striped across. Ex: If you have 6 disks in RAID50, you'd have a RAID0 of 2 RAID5s with 3 disks each. You'd achieve the IOPS of the two slowest HDDs in the total RAID50, roughly.

RAID10 yields the throughput, capacity, and IOPS of n/2 disks (roughly). Some implementations of RAID10 will allow read operations to occur on single disks in the RAID1s within the RAID10, so you'll have Read IOPS of n disks, which is as fast as a RAID0 of those disks. In all cases, Write IOPS will be slightly less than n/2. Ex: if you have 6 disks in a RAID10, you'd have the capacity of 3 disks, and the IOPS of 3 disks. Your IOPS will be significantly greater than if you had used RAID5 or RAID50: you'd have 300% the IOPS of the RAID5, or 133% the IOPS of the RAID50.

RAID5,6,50,60 all have very long rebuild times. RAID10 does not.

For this reason, I prefer RAID10 to any other RAID layer.

That's as general of a statement to make as the initial post. Without taking into consideration the controllers, or the drives as Iopoteve said, or even the access method to that array: internal via PCI/PCI-X/PCI-E/eSATA/SAS, or external via FC/FCOE/iSCSI/NFS/etc. Not anywhere near that simple...
 
That's as general of a statement to make as the initial post. Without taking into consideration the controllers, or the drives as Iopoteve said, or even the access method to that array: internal via PCI/PCI-X/PCI-E/eSATA/SAS, or external via FC/FCOE/iSCSI/NFS/etc. Not anywhere near that simple...

Disagreed. It's a fundamental principle of RAID5/6: each disk has to sign-off on each block by reading/updating the block's parity data, and comparing against that of the other disks. No matter how fast the controller can operate, the array will be bottlenecked by the HDDs themselves. Moreover, each filesystem-level action causes twice as many block-level actions as in a RAID1/0/10. Performance will be penalized no matter how you access it (NFS, CIFS, iSCSI, PCIe).

The HDDs peak IOPS (300 or less) will always be lower than the controller processor (10s of thousands), controller interface (PCIe, SAS, SATA can all do 100s of thousands) backplane (interface limited), expander (interface limited), or Network (1gig yields 100s of thousands, 10gig yields ~1million) peak IOPS. The only exception to this would be if you were using a very (slow|high-latency) network link, but that's WAY outside the scope of this thread.

The only workaround for this is to use a controller that can perform a block-level cache on NAND-based storage. This is uncommon, and when it is available, it's expensive.

RAID5/6 are suitable only for low-to-medium utilization storage applications, where storage capacity is more important than IOPS (and increasing disk count isn't possible). Unfortunately, these RAID layers don't provide adequate protection against failures in 12TB+ arrays, either. This is an additional argument entirely.
 
Last edited:
Hi,

I'll upgrade my hardware configuration for my Hypervisor ESXi 5.0, but i'm undecided concerning drive for datastore OS guest, between SSD and WD Velociraptor HDD.

I would like buy a SSD (two for raid 1), but i don't know if ESXi have TRIM support. If not, is there a risk to have a degradation (performances or lifetime) for my SSD? My other alternative is take a WD Velociraptor (two for raid 1 too). Which will the better choice?

I plan to start with between 12 and 15 VMs (Windows Server and Linux), and more in the futur...

Thank you for your return.

PS: Sorry for my english, I don't practise it often.
 
Last edited:
For that many VM's, you probably should go SSD. esxi doesn't have trim support, but drives with good background garbage collection should do ok.
 
Do you know some model sample for guide me on my choice ? I found "Corsair Performance Pro Series" but the price is double the other SSDs...

Thank you
 
I'm a fan of crucial m4's. A litle bit older now, but good performance, reliable and good price.
 
What are your guy's thoughts of using one SSD to host multiple VMs? I was thinking of running 5 or 6 hyper-v VMs off of one SSD. Right now I'm just putting them each on their own HDD. I was thinking of a cheap 256 GB Crucial.
 
That's as general of a statement to make as the initial post. Without taking into consideration the controllers, or the drives as Iopoteve said, or even the access method to that array: internal via PCI/PCI-X/PCI-E/eSATA/SAS, or external via FC/FCOE/iSCSI/NFS/etc. Not anywhere near that simple...

Disagreed. It's a fundamental principle of RAID5/6: each disk has to sign-off on each block by reading/updating the block's parity data, and comparing against that of the other disks. No matter how fast the controller can operate, the array will be bottlenecked by the HDDs themselves. Moreover, each filesystem-level action causes twice as many block-level actions as in a RAID1/0/10. Performance will be penalized no matter how you access it (NFS, CIFS, iSCSI, PCIe).

The HDDs peak IOPS (300 or less) will always be lower than the controller processor (10s of thousands), controller interface (PCIe, SAS, SATA can all do 100s of thousands) backplane (interface limited), expander (interface limited), or Network (1gig yields 100s of thousands, 10gig yields ~1million) peak IOPS. The only exception to this would be if you were using a very (slow|high-latency) network link, but that's WAY outside the scope of this thread.

The only workaround for this is to use a controller that can perform a block-level cache on NAND-based storage. This is uncommon, and when it is available, it's expensive.

RAID5/6 are suitable only for low-to-medium utilization storage applications, where storage capacity is more important than IOPS (and increasing disk count isn't possible). Unfortunately, these RAID layers don't provide adequate protection against failures in 12TB+ arrays, either. This is an additional argument entirely.

I agree with both of you. There are times RAID5 can absolutely perform - read heavy applications, for instance, or with appropriate caching in the right places to absorb peaks, or with architectures that modify the IO stream. But, at its basest level, it's a lousy IO layout for write-heavy applications without changing the IO stream a bit. :)
 
What are your guy's thoughts of using one SSD to host multiple VMs? I was thinking of running 5 or 6 hyper-v VMs off of one SSD. Right now I'm just putting them each on their own HDD. I was thinking of a cheap 256 GB Crucial.

I use a m4 128gb ssd for several vm's with thin provisioning, mainly test stuff. Works well, and the performance is great. Obviously with a single drive you want to make sure you backup or don't mind the loss if it craps out.
 
I use a m4 128gb ssd for several vm's with thin provisioning, mainly test stuff. Works well, and the performance is great. Obviously with a single drive you want to make sure you backup or don't mind the loss if it craps out.

Yeah. I figured if it does crap out from all the writes, it'll either be under warranty or it'll be off warranty and a new, bigger SSD will be even cheaper. This is just for test stuff, mainly for doing my MCSA.
 
Back
Top