I am an independent contractor and as part of my work setup I am currently using VMware Workstation to isolate test configurations and software installs between several customers. Currently I am running this on a Windows XP laptop with 3Gb of memory. My general workflow is
- Fire up VMware when I need to do a test install
- Clone a pre-existing base model Guest VM
- Give it the latest updates
- Install the test software
- Test it on and off over the course of a project
- Put it away for later reference
However I have decided that I want to offload this task to a separate desktop machine that will sit in my office with me. So I have a blank piece of paper on which to design a practical VMware machine that meets my requirements (both hardware and software):
Case: I want to keep the case a physically small as possible and I like the idea of a shuttle style machine. I would also want to minimize noise as much as possible. I have no experience with liquid cooling but I am willing to give anything a go. I have also briefly toyed with the idea of a rack mount solution.
I see the case supporting an internal drive for the Host O/S and two other hard drives: One for storing the VM's and the second for backing up the VMs. I also see the backup drive being mounted in a removable caddy so I can easily slot in multiple backup drives for easy offsite storage. I can also see the VM drive being in a caddy as well (but not necessary).
Motherboard/CPU: I don't know if I should be going 2 or 4 core on the CPU, but it should be capable of supporting the Host and 2 or 3 Guest O/S at the same time in a usable manner. However I do know that I want something that supports more than 3Gb of RAM for the host O/S. I also need a scattering of USB ports, gigabit ethernet and good 2d graphics support. I don't do any 3d work and I am not interesting in playing 3d games.
Drives: Good solid (but not screaming) performance. I probably need 500+Gb for Guest VM storage and another 100+Gb for collected file storage. Host O/S probably needs 50-100Gb alone. I am not sure if any sort of RAID configuration is necessary (or if so the most suitable). I assume 3.5" over 2.5" . Also is Flash a viable competitor here?
Host O/S: I am not tied to any Host O/S*, but I do know that I will need to run both 32 and 64 bit guest OS's. The Host O/S will also act as a file share for various documents etc associated with the guest VMs. ( * But I can't spring for a Mac Pro running OS X)
VMware product I only have experience with VMware workstation on my laptop. I don't know if another VMware product would better suit my needs. Or even another competitors product ;-) However I would like to be able to sling the odd Guest VM onto my current laptop and run it from there.
So who wants to help me design my server!
Edit
Budget Oops I left that off the initial question. I'd say up to US$1200 would be a reasonable one. But I want to try and keep it below $1000.
What's your budget? I mean, I can give you several really cool options but they may not fit your budget.
You can easily fit that into a 1U though.
UPDATE:
Now that we've established a budget of $1,000 or so...
Obviously the more drives, etc you add to this thing the louder its going to be so I don't think you need to go too hog wild.
Hardware is getting cheaper all the time so you don't really need anything over the top... just enough to keep you happy for 1-2 years... then you can update/upgrade as you see fit.
CPU Count Go for the 4 processor chips. I just upgraded from 2 cores to 4 my own VMWare workstation and it is one of the best things I've ever done.
OS Whatever you use, use the 64-bit version of it. It'll allow you to...
RAM Lots. The more RAM you can cram in, the more parallel sessions you can run. You can prototype entire AD trees this way. 8GB would be a good spot to aim for.
Drives If you're going to be snapshotting, your space usage will go up a lot. 500GB would be a minimum. If you have budget, go for a faster spinning drive to reduce latency. All those parallel disk writes are going to really task this drive. Running parallel sessions is a highly random I/O pattern, and SATA isn't that great for it. If you have the budget, SAS may do you better. SSD's aren't quite big enough yet to be viable for your bulk VM drive, but they are very good at random I/O; I expect SSD's to take over VM hosting on workstations once they drop in price to the point to make it cost-effective.
RAID I prefer hardware RAID, but if that isn't in the budget... eh. It can help reduce the I/O load on SATA drives, which can make them last longer performance wise before they start hitting walls.
VMWare Product Stick with VMWare Workstation. You can take images from there and directly import them to ESX machines. Handy if you want to hand off a completed image to a customer who has an ESX cluster.
If your building a "dedicated machine for testing" it should be dedicated. Use ESXi. You're already used to Vmware. You can use common tools for both your laptop and testing server. Transfer VM's between laptop and server, etc..
Case: Full size Tower - Larger fans spin slower = quieter. Standard parts. Easy to work on. If you're full size tower is loud you're using cheap parts and/or stock coolers. Keeping the case small will only add cost. If you willing to spend more go rackmount but it won't be quiet. A Full size Tower can easily support a dual cpu motherboard, 16gb RAM, 12 drives, Multiport server NIC, Watchdog and CPU to power it all with room to spare. HTPC will be limiting your choices in many areas and adding cost. You'll be accessing this server over gigabit ethernet anyway so put it in another room if needed.
Motherboard/CPU: 1 or 2 Quad-Core CPUs, depending on load. If you'll never go over 4 simultaneous VMs use a single quad core cpu. Otherwise get a dual cpu motherboard with two quad cores CPUs. Motherboard should have dual gigabit NICs. You may later want to purchase a multiport server class NIC.
Drives: 4 1tb or larger SATA 7200rpm drives. = Total cost ~$250. Stripe, mirror, raid, etc. can all be used/tested Many motherboards support 6-8 sata drives, use extra ports for esata and an external esata disk for backup. Host OS ESXi should use less than 64mb of space. Don't think about flash drives until you've maxed out raid/mirror/stripes. Dual CPU and more Ram is a much better investment today.
Ram: 2gb ram chips are cheap, anything larger isn't cost effective for non-production use.
Well under $1000 for single Quad-core system, under $1600 for dual quad-core system.
OS: Hypervisor, ESXi in your case.
UPS: You'll want this machine to safely shutdown if there's a power failure.
IPMI: Can be useful for remote management. Not required until it's in a rack in another room.
I tend to be a bit conservative about building PC's from scratch. It can end up being more expensive than buying, and I like the idea of having a base machine that tons of people have (so MS is likely to test stuff on it) and a warranty.
To that end, I generally go with the Dell Optiplex line.
The Case. Even though you said small form factor, I would really encourage you to not do that and go with a regular small tower. When they get too small, you end up with a lot of proprietary parts which are expensive to replace, and it also limits your future expansion.
Base PC. So I would recommend the Dell Optiplex 760 with the "mini tower." Get it with the bare minimum it will let you order (they usually have "Dell Deals" that are a good mix of price/performance), and get your additional RAM and hard drives from NewEgg. Max out the RAM from Newegg. This machine goes up to 8 GB which should be fine.
CPU. I usually go with the "recommended" processor from Dell or one that has the best price/performance mix. I've found RAM to be more of a limitation than CPU on my VM's, so you should be fine with a Core 2 Duo E8400 (3 Ghz/6M).
Drives. It doesn't sounds like your hard drive needs are that extreme, but what fun is having a new PC without something shiny? If you have the money, splurge for two 10K RPM VelociRaptor drives and throw them in a RAID 0 array (have a good SATA external backup HD and backup of course). You'll notice the speed difference, and you deserve it :-). If you can afford it, go with a big Flash array, but I think the VelociRaptors are a good price/performance mix.
Operating System. Go with Windows 2008 Server with Hyper-V. This is expensive, so see if you can get it through MSDN or something. Otherwise go for Windows 7 x64 I guess (make sure it is compatible with your virtualization software first).
Noise Factor. The Optiplexes are pretty quiet, but once you get it if you don't like the noise you could swap out the cpu fan for a water cooling system. The VelociRaptors aren't too quiet, so if that is a huge deal you may want to look for SSD's.
Have fun!
I'm going to tell you easy you can do this. Due to items beyond my control I was handed a new box as my test lab. One and only One to setup a fairly large test lab.
So here is what it is
8 gig RAM
150 gig HDD (single SATA, no RAID, but this isn't production)
4 core CPU about 2 ghz (I think)
Full desktop case (its off the shelf), They could have gotten the small form factor with the same specs though.
ESXi 4.0 server (Free)
I'm currently running 15 (all at once) VM's. Response started to get a little on slightly slower side at about 11, since I'm the only one use this box there is no load on it when its at idle, usually I'll only work it when I'm installing software and it still installs faster then I can keep up with it when I'm installing on more then one machine at a time.
Yes 15 machines all running at the same time. Great trial lab. The key is that ESXi can do memory and CPU over commit and gives it to the machines only when they need it.
ESXi support multply snap shots per VM, you can use VMWare converter to make copies of your master VM for new images (take about 15-20 minutes to do a copy)
Down side, ESXi does not support USB anything. You only can access the host machine using the vSphere client from another workstation so don't expect wild graphic performance if that is what you need. But neither of those mattered to me.
I'll never use VMWare server again (POS), VMWare workstation works but the ability to run that many machines at once was what I needed to replicate the production setup for testing configs, settings, etc.
All told I think it about about $1000
You can buy the band new Shuttle K-48 which . You can get it all pre-configured from Shuttle for about $550 . It has a 2GB limit of RAM but for another $100 you can get a shuttle that has more ram on it. For VMWare, I'd say 2.5GB+ is the amount of RAM you want if your using Windows7. YOu can get the case+ram+hd+cpu from newegg for a total of $256 .
I have a server running some VMWare VMs that I built a couple of years ago for around $700 in parts from online vendors. I just built a gaming/development desktop that I run several VMs on.
Case Shuttle is fine. My VM server is in a shuttle case stuffed under a table behind me.
CPU Cheapest 64-bit i7.
Memory 1G per Core. The new i7's are hyper-threaded, so it looks like you have 8-cores.
Motherboard If you're not testing graphics intensive OSes/Apps, get a motherboard with integrated video. I've found an eSATA connection to be handy.
Drives Largest you can buy for less than $100.
Operating System Windows 7, Fedora 10, or CentOs 5.2. I've found that VMs are a bit faster under windows than Linux. Also note that regardless of OS, if your VMs are all doing IO operations, they may slow your system to a crawl.
Virtualization Software I prefer VirtualBox because it's lighter weight than VMWare server or player. If your new machine is headless, I'd recommend VMWare.
Do you want to run concurrent VMs? Sometimes in a testing environment, your server is dependent upon another machine or configuration (maybe active directory or a database). If not, I think any machine with at least 4GB of RAM is more than enough for your needs. For me, when it comes to virtual servers, it's the number of concurrent VMs running and the minimum RAM for each VM, then the CPU and lastly storage.
In terms of hardware, it's hard to say what's best because you want something small and portable and virtual servers require more substance then the average computer. Honestly, if I were you, I'd just fill up your laptop with as much RAM as you can (4GB?) and get an SSD hard drive to increase the raw I/O for your laptop, and buy a portable/external hard drive for all your images/backup and stick with VMWorkstation. It's just an idea, but if you can part with $1000 or so, maybe look into upgrading the laptop you use.
But if an external machine is what you need I would highly recommend Citrix XenServer 5.5 with XenCenter. It's completely free for production use and totally capable. I used to manage ESX 3.0 servers with VirtualCenter and I must say that XenServer 5.5 is really feature packed considering it's free. I've also used ESXi 3.5 and while it's free, bear in mind that sometimes the biggest pain with virtualization is just managing images. XenCenter is really solid as far as a VM management goes. Lots of options
As far as hardware goes, I wouldn't waste too much energy on hard drives as they're extremely large for your needs and cheap. These days you can get 1TB drives for less than $90. If you can find a small form factor box that can hold 8GB RAM, I think that might be a better option then upgrading your laptop. I would look into buying higher quality RAM as virtualization is RAM intensive and a few extra bucks goes a long way. If you can, I would recommend using AMD processors as they're typically cheaper and all of them have virtualization extensions and are 64-bit. I believe that there are several Intel CPUs that don't have virtualization extensions so that could be an issue.