I am considering to purchase off-the-shelf commodity hardware in order to build server that will host virtual machines using ESXi server.

Intended purpose for this server is NOT mission critical tasks. It will have to run perhaps 20-50 Windows XP/Vista/7 virtual machines (in total, but closer to 20 figure). Each guest would have to have 1-2 GB of ram, and probably two-three times more disk space than guest OS needs with clean install and all updates applied (that would be around 6-8 GB for XP, and i believe closer to 10-15 for win7). Those guests will act as a test ground for a new product that is network management software, thus guests will idle most of their time once initially loaded, but if I give them some task to complete, they should be able to perform reasonably well.

Now, from what I have learned... CPU is usually not much of an issue (6 cores would do it), memory should not be lacking, but doesn't have to be sum of all guests, because of overcommitment... That leads me to IO, which is, as it seems, the bottleneck.

Since I have very little experience with ESXi (and ESX, too) server, I'd like to ask:

  1. How much memory could I save by overcommitment, and how does it affect performance?
  2. Is 6-core cpu enough to run above described system?
  3. Would it be possible to run entire server off two (or even one) SSD drives (to host system virtual disks), with few additional HDDs (2-3) in RAID 0 to be used as secondary storage?
  4. I read somewhere that ESXi allows having something like "master image", essentially virtual machine that is "deployed" many times, so that disk space can be saved by having only differences stored by specific guests, instead of copying around whole virtual disks. Is this true, and how can this help me?
  5. Are there any other things I need to take into consideration when building this off-the-shelf solution?

I should probably mention here that I'm fully aware of issues like SPOF regarding power supply, raid 0, etc, but since it's only a testing ground and not a production system, it's not so important for me.

Thanks, B.

4 Answers 4

  1. You can save a fair amount (~20-50%) but mixing between XP/Vista and W7 won't help - try to stick to one if you care about page sharing.
  2. I'd go for more cores myself, certainly if it's closer to 50 than 20 - think about a dual-CPU box, either Xeon 56xx or AMD Magny-Cours.
  3. DON'T try to do this with even the most enterprise-oriented SSDs, not unless you like rebuilding and restoring your systems. Bad idea, morris-dancing-bad in fact.
  4. I think you mean VMWare View - it's designed specifically for what you're doing and works very well indeed - costs though.
  5. Yes, either use fast centralised storage (i.e. FC or 10Gbps iSCSI) or if you want to do this with local disks then use a minimum of 4 disks in a hardware RAID 10 configuration, ideally 10krpm ones too.

Hope this helps but you probably want to get a few people's opinions too - that's the benefit of this site - varied experiences :)

  • Thanks for advices. So, just to make it clear to myself, SSDs are out of picture completely (due to their design), or just shouldn't be used in RAID configurations?
    – mr.b
    Jun 3, 2010 at 14:34
  • Windows writes back to it's boot disk a lot, VMs can often write back to their disks a reasonable amount (especially in memory-contended situations), SSDs die with writes, often surprisingly quickly - having 20-50 Windows based VMs in a potentially memory-contended system would probably kill your SSDs in less than a year, possibly much less. It's not about RAID though, just avoid - spend your money on more 10/15krpm disks and R10 them ok.
    – Chopper3
    Jun 3, 2010 at 15:02
  • right on the nose. I think that 15K disks would probably be in order here considering the number of VMs.
    – MDMarra
    Jun 3, 2010 at 15:48

You should choose your hardware from the official VMWare HCL. This is the only way to guarantee compatibility.

You should never use RAID 0, use a 6 disk RAID 10 if you want performance close to a 3 disk RAID 0. Also, how heavily used will these VMs be? If they are going to be used heavily, you are nowhere near that hardware that you will need. Finally, the term you are looking for is "linked clone" which uses a master disk image as its base.

  • It's not going to be used heavily. I see what you are saying about RAID0, and I believe it's backed by your personal experience. How come 3 drives in RAID0 are slower than 6 drives in RAID10? Also, do you have any advice on SSD drives? I would RAID0 two of them as well, most probably... Thanks!
    – mr.b
    Jun 3, 2010 at 14:20
  • 2
    @mr.b - Not using RAID 0 is not about performance and has nothing to do with my personal experience, it is about availability. If a single disk in a RAID 0 fails then all data is lost. You can lose up to three disks in a 6 disk RAID 10 as long as they are not from the same mirror. I realize that you don't care much for data availability since this is a test system but you should care about losing all of the config that you did because of a single disk failure. As for SSD, they are faster, but certainly at a premium cost.
    – MDMarra
    Jun 3, 2010 at 15:45

I would just like to add my experience that the biggest bottleneck I'm facing with virtualization is disk IO.

Since this kind of environment has a lot of simultaneous disk IO I would suggest the IO spread among as many disks as possible, and not any form of RAID0 variant (RAID10). You don't want a disk read from a single virtual machine to lock up all disks. This is also recommended for database-servers that does a lot of simultaneous read/writes.

This is even more important if you will over commit the memory, since it will start swapping stuff to disk when you over commit.

So preferably a lot of smaller disks with RAID1 or no redundancy at all if that's of no concern to you. Maybe a separate SAN or just a drive cabinet attached to your controller.

Also, since you will be doing mostly reads I assume, then a real hardware based RAID1 would be equally fast as a RAID0 since in a perfect world it would be able to read simultaneously from both drives, but not be able to share the write load. That is commonly foreseen when people start talking about performance RAID setups.


Yes VMware View is the best virtual desktop solution software out there that I know of and would probably be more appropriate for what you are talking about. Since you seem to be unclear about how many desktops you will use, 20 - 50, VMware View has a feature you will love. You can create your base image and set it to possibly deploy up to your 50 VMs. You may have your 20 created and then every one after that will be created almost on demand, with 1 being kept in a queue ready to go and then being replaced when it is deployed.

As far as hardware demands I usually see memory as the bottle neck. I use vFoglight to monitor a virtual environment and I see 90% plus alarms being fired off all the time from a host with ~15-20 server installs. If you are using a single host with that many VMs you may see that as more of an issue.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.