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:
- How much memory could I save by overcommitment, and how does it affect performance?
- Is 6-core cpu enough to run above described system?
- 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?
- 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?
- 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.