views:

2252

answers:

5

We're planning to set up a XEN virtualization server using Ubuntu. I'm looking for any recommendations with regard to what to watch out for when buying hardware for the system.

Some information about our planned usage of the system:

The server is going to host 4 or 5 instances of a Linux/Apache/MySQL/J2EE stack. Each of those instances will contain a mysql database with no more than 4 GB of data. Some of these instances are being used for mirroring the setup of our customers servers to be able to reproduce problems they're reporting, so these instances are probably idle most of the time (if they're started up at all). Some other instances are going to be used for testing purposes and we're going to restart them quite often, so startup time of our JBoss-Applicationserver (which is mainly CPU-bound) is gonna be very important. Another contstraint is the amount of memory that our instances need, which is about 1.5 GB for JBoss and 500 MB for mysql.

To clarify my question a little bit: I can of course do the math to calculate the amount of RAM and disk space I need to run 5 instances given the constraints stated above. I'm particularly interested in topics that are important for the interplay of XEN and the hardware (if there are any) because my experience with XEN is very limited.

Our Budget ist about 10,000 $ (just to provide some idea of what kind of hardware we can even consider).

Any advice is greatly appreciated.

A: 

That's a bit of a "how long is a piece of string" question. Are they going to be doing lots of IO bound tasks, will the CPUs be pegged all the time. Are you trying to run something that scales over lots of CPUs or is it mainly multi-threaded?

More info will get you a better answer. :)

marshall
A: 

Invariably Virtual Machine performance is dependent on disk IO, especially with multiple database servers like you described. You will want to make sure that your disk configuration is something that will give a maximum of IO performance, some disk striping, either raid 0 or raid 5 with the maximum number of disks that you can cram into your server and budget. With your budget Fibre Attached storage isn't an option but you should consider it for future expansion.

Winter
A: 

Try allocating the server as per their function. To be clear: 1. On Server A: Install all your Virtual servers that would be running Apache 2. On Server B: Install all your Virtual Servers running Tomcat (or whatever app server that is) and so on.

This way, you can customize the memory (or hardware requirements), and of course, tune the kernel/system/Xen params based on the apps that are running. (your DB tier would still be running, while maintenance is happening on the node thats serving the app).

Ram Prasad
+2  A: 

For $10,000 you can probably afford something with multiple multi-core 64-bit processors. I'd say go for more processors rather than higher clocked CPUs, if you have to choose. Goes without saying, of course: double check any processor you buy has hardware support for virtualization.

As much RAM as you can afford, probably at least 8GB. You'll want a decent, proper hardware RAID card, one with as much cache memory as possible, but one that can create multiple volumes out of your set of harddives - that way you can assign each VM its own physical disk / RAID array and not have different VMs fight over who gets to use a given harddrive. Also, you might be able to assign MySQL a volume of its own to increase performance. In a RAID array, more active disk spindles means better response time, so go for more smaller individual harddrives over fewer big ones. For good performance, get SAS drives, but you might also want to consider the WD VelociRaptor drive - a SATA drive (hence cheaper) that runs at 10,000RPM and comes in a 300GB version, offering a pretty good price/performance/size trade-off for those on a budget (warning: unusual fiting that doesn't work with hot-swap drive bays, so might be considered unusable if you want to be able to replace a broken drive without taking your server down).

Myself, I run a pool of around a dozen CentOS/Xen machines, but very much on a budget - some (well, most) of those machines cost around $200 and got most of their parts from eBay. I don't know how much of a DIY effect is acceptable to you - for instance, for a decent amount of storage you'll probably be looking at getting some kind of external powered rack for your harddrives. You can, of course, buy a nice neat and tidy rack-mount one, or you could get a cheap PC case and bodge something together.

David Hicks
A: 

Do not use Dell 1950's. The RAID controller in those does not play well with the Xen kernel. Any file I/O operation will cause the system to lock up hard with a kernel panic, even without any Xen VM's or xend running.

We're using Dell 2950's and they work like a champ.

Edit: this may be a firmware level issue. I've just done more research and the one 1950 we tried Xen on (that failed) has a PERC 5/i with firmware revision 1.00. I'm going to get an update and see if that works. Edit2: the firmware update did not work.

In any case, if you go with 1950's be sure to test them first.

Otto