Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.


I am trying to run a bunch of VMs to have a dedicated web testing environment for a massive corporate type project. I will need VMs for xp, vista, 7, ubuntu, and maybe hackintosh otherwise 2000. The base OS will either be windows 7 or ubuntu I suppose. I know I need tons of ram. I suppose the question is what should the specs be for the system so that I can support all of these things, or should I not do this all in one box? Thanks!

share|improve this question
add comment

3 Answers

up vote 3 down vote accepted

A lot depends on what you want to achieve. You can happily run all of the above concurrently on an ESXi box with 8GB of RAM, a quad core CPU and a pair of reasonably fast (10k) disks in a RAID 1 array for the datastore. You're going to have fairly minimal hardware configs on the VM's and I don't think ESXi can handle OS X, at least I've never heard of anyone doing it.

VMWare Workstation 7 will give you much better graphics performance on the XP, Vista & 7 Clients, improved support for Ubuntu (9.04 at any rate) and it will boot OS X guests with a little bit of encouragement. The new VMWare player (which is free) will handle the same Guests and has the same performance, it's limited in that it doesn't support more advanced features like snapshots, clones and teams which may be relevant for a testing exercise.

If you want to run the Guests at performance levels comparable to a real desktop then budget for around 8-10GB RAM for the guests, another 2 for the Host say 12GB of RAM in total.

Dual Quad Core CPU's (or a single Hexacore) will allow the hypervisor to schedule each VM in a Core of its own without having to juggle anything and interactive performance will be noticably smoother.

For the disk subsystem you ideally want to put as many spindles to work as you can for the volume that hosts the VM files, if money and space is no option try to get 6 or 8 10k/15k drives in a RAID 10 array but go for RAID 1 (if you can only afford 2 drives) or RAID 10. Whatever you do I'd avoid RAID 5 or 6 for this exercise - I can't see that capacity will be a problem for you and the write penalty given typical Client IO patterns will be murderous unless your really don't care about the performance of the Guests.

All the above is total overkill if you never intend to run the VM's concurrently. I run all of the above Guest OS's (plus a bunch of servers) on dual core 2.66Ghz system with 4GB of RAM and VMware Workstation 7.

share|improve this answer
    
Ooo. Yea this makes sense. Yes I do plan on running tests in parallel on multiple OSes... We have maybe up to 2000 things we are testing. Doing it in a reasonable amount of time on many machine types is important. –  Parris Nov 2 '09 at 20:12
    
If you are running the tests at the same time disk I/O could be a bottle neck. Since these are non-production consider a higher end hard drive card, no RAID at all and then install a hard drive for each VM, there by giving each VM a dedicated hard drive. Just keep a copy of the VM image somewhere should a drive fail. I've found 5 machines on a single drive the disk I/O really slowed them down when I was executing disk heavy tasks at the same time. –  SpaceManSpiff Nov 3 '09 at 1:37
add comment

One box should be fine for all this -- we run a lot more on a single physical server without adverse effects.

The hardware specs don't need to be overly exciting, apart from the RAM; a standard quad core (or maybe dual quad core if you want to be totally sure) with 16GB or maybe 32GB of RAM should do the trick, with a couple of 1TB SATA drives in RAID-1.

For the OS, I'd take Ubuntu over Windows 7, but that's mostly because it's what I'm familiar with. I'd probably choose KVM as the virtualisation layer at this point in time, and a bit of Google suggests that it should support the hackintosh well enough, too, which would be my main concern.

share|improve this answer
    
I will definitely look into KVM. –  Parris Nov 2 '09 at 20:13
add comment

Correct me if I'm wrong, but from your list of OSes I'm assuming you are looking to have these VMs for testing your corporate app on various client OSes.

One question will be, are you trying to test purely functionality or also performance?

If you are only concerned about functional testing (I run the app and it opens, I press this button and the appropriate action occurs, etc) then you should be fine running them up on any half way decent hardware. The more cores you can have in the box the better it will perform and same for the more RAM.

However, there shouldn't be any reason you couldn't test that with a single dual core, 1gb of ram for the host OS and 512mb of ram for each guest OS.

If you are looking for performance testing to see how quickly the app is going to react for the real clients, then I would say you basically need to have enough RAM, Cores and Disk to support each one similar to the real workstation counterpart. So if your workstations are single processors with 1gb of ram, then I would get a dual quad core with 6gb+ of ram, multiple disks (since its for testing, you could probably get away without RAID for your disks storing the VM data and just break up your VMs to store on separate disks to not get into IO issues) and assign resources to the machines appropriately.

share|improve this answer
    
I would say performance may also be tested in the future although it is not major consideration now. Yes. Performance testing will be important. Thanks :) –  Parris Nov 2 '09 at 20:08
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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