As promised, here is a brief description of my home network. My entire infrastructure is based on VMware ESX server.
For those of you who are not familiar with VMware, they are the leaders when it comes to server virtualization solutions. Server virtualization in a nutshell is the concept of hardware abstraction whereby you can place multiple workloads on a single physical server thereby leading to much more efficient usage of hardware resources. In the past, most corporate networks had a one to one mapping between applications and servers. Now with server virtualization, you can place multiple application workloads on a single physical server. This also leads to reduced cost in cooling, reduced data center space requirements, reduced power consumption, reduced hardware costs, less administrative overhead.
I currently have one physical server, an HP DL380 G3 with two Xeon 3.06Ghz processors, 6 GB RAM and 3 72 GB SCSI HDDs in RAID 5 configuration thus giving me a net storage capacity of about 140 GB. As of today, I have the following virtual machines running on this physical server:
- Windows Server 2003 Domain Controller for the internal domain – GKLAB.org
- Windows Server 2003 running Microsoft Exchange 2003 – Accepts mail for georgeandroshan.org, gksden.org, randg.org
- Citrix Presentation Server 4.5 hosting applications such as Microsoft Office, Various administration applications etc.
- Citrix Secure Gateway 3.1 for remote access into the Citrix farm.
- Windows Server 2003 template for additional servers if required.
- Windows Server 2008 template.
So in short, I have 6 virtual servers/workloads running on 1 physical server sharing the available resources.
In addition to this, I have another workstation that is used to host my website, photo gallery and my wordpress based blog.It is Windows XP machine running Apache, MySQL and PHP. This is a low end PC that I bought a long time back with just 512 megs of RAM, but it works like a charm.
I have only one public IP and since I have multiple resources to publish externally, I take advantage of virtual host headers in apache which allows you to distinguish resources based on the incoming host header request. The various resources published via Apache are: