Hi,
I am looking for some advice on what the best way to configure my disk system is for performance when using Hyper-V. Currently I have two midline 7.2k SATA disks used for the hyper-V OS in RAID 1, and then 14 x 10k 600GB SAS enterprise disks in RAID 10.
The RAID 10 is where all my VM’s exist on, but not directly on the physical disk, I use a product called StarWind which consumes almost all of the physical disk space, this is a virtual SAN and I use this for my CSV in the cluster, the VM’s all exist on this
starwind disk, there is a tiny amount of overhead but I don’t think that’s really where my problem lies. We have 12 Virtual machines, so there is 1 spindle per VM, however it’s in RAID 10 so does this actually mean I have 7 spindles for 12 VMs?
The entire system almost grinds to a halt whenever I am copying new VM’s onto this host. I can’t use any other RAID type except for RAID 1 or 10. I know RAID 0 would give me better performance but we are not willing to take the risk. Now, it is my understanding
that RAID 1 and 10 are essentially the same with the same performance and capacity, because of this I chose RAID 10 so I can take advantage of the combined capacity, but I am wondering if this is the best configuration.
I can think of a few other variations:
- A single RAID 10 with one large partition but multiple CSV’s instead of one large one
- A single RAID 10 with multiple partitions and a CSV on each partition
- Multiple RAID 1, each having a single partition and a single CSV
Reading this site, there are a few pointers I have taken away regarding disk performance, a couple below I have questions about.
http://www.altaro.com/hyper-v/23-best-practices-improve-hyper-v-vm-performance/
Point 6 says “Use separate volumes for each VM. Since the administrative tasks of a virtual machine are controlled by its own process (VMWP.exe), keeping several virtual machines on a single volume will cause more Disk I/O operations from each
worker process. Hence, it is recommended to use separate volumes for storing virtual machine files (VHD, VHDx, checkpoints, and XML).”
Does this mean the arrangement I propose in my second point above – multiple partitions and a CSV on each partition? The term “Volume” seems to be a bit ambiguous depending on where you read
I believe point 14 to be incorrect though. “De-fragment Hyper-V Server regularly or before creating a virtual hard disk. It is advisable to defrag Hyper-V Server disks where the VHD and virtual machine configuration files are stored regularly
or before creating a large virtual hard disk file.”
It is my understanding that defrag only tends to work well if there are many files on the disk, on the physical disk in my case there is one massive starwind file so I don’t think defrag on the physical will do anything, defrag in the starwind disk might
help but it is mostly large VHDX files – will defrag really make much difference?
Additionally, I don’t have any generation 2 VM’s and there’s nothing I can do about this right now, all data disks use SCSI channels on the VMs, all VHDX are fixed size.
Also, a slight side question but kind of related – I have both an exchange server and SQL server running as VM’s (the log files already exist on separate VHDs, but on the same physical RAID 10 disk), does my physical disks used for log files need to match
those used for the DB, or can they be slower lower class disks… for example, if I place a 7.2K disk in with a RAID made up of 10K disks, it is my understanding that the entire RAID will lower its performance of the slowest member – is this true with log files
and databases, if the log files are on slow disks will the database also go slower to match the pace of log files being written?
many thanks
Steve