I am putting together a dual-xeon quad core (i.e., 8 cores total) 12GB RAM linux server to replace several old smaller servers. I would like to use virtualization both to learn about it and because the individuals who were using the old servers need to be kept separated.
I will have two 120GB SSD drives in a RAID mirror and 2 2TB SATA II drives in a RAID mirror.
I believe I will use Ubuntu 10.04 LTS with KVM as the host system and Ubuntu 10.04 for the primary resource-intensive guest VM. The three additional guest VMs will probably be Debian Lenny and are low usage and low priority.
Does the following resource allocation plan make sense or do more experienced users see pitfalls?
- Host System: use 24 GB off the SSD, i.e. 12GB for files + 12GB as swap
- Primary Guest VM: use 96 GB SSD + 1,900GB SATA (allocate 4CPUs + 8GB RAM)
- VM DNS Server: use 8 GB SATA (allocate 1CPU +1GB RAM)
- VM WebServer: use 8 GB SATA (allocate 1CPU +1GB RAM)
- VM Mail Server: use 8 GB SATA (allocate 1CPU +1GB RAM)
- Reserved for Future Use: 76GB SATA
In particular, will 12GB be enough space for the host system's files?
Will 12GB swap be adequate? Is it a bad idea to use the SSD for the swap space?
The primary guest VM is the most-used server and it needs fast disk I/O, rebuilds a roughly 30GB MySQL database frequently, needs a lot of file storage space, runs Apache and a mail server. This entire hardware purchase is wasted if this server isn't performing well.
How should I partition the disks in order to most easily tell the host system where to put the various guest VMs? That is, I want the primary VM to take advantage of the faster SSD drives for its core/OS files, and use the SATA drives for its storage, and want the less important VMs to just use a portion of the SATA drives and stay off the SSDs.
Can I allocate more RAM or CPUs to the guest VMs (overcommit) without causing problems or is that just not worth it?
Thanks for any suggestions.