A Simple Server Cluster Design - Part 2 |
Written by Administrator |
This series is intended to provide documentation of a simple server cluster based on two physical servers and four virtual servers per machine, and configured to host an instance of the Moodle Learning Management System. Topics
System HardwareFor this series I have built the systems on servers that have quad core CPU's and 8G ram. In production, and depending upon use, these can be scaled as required. I have not put emphasis on the HDD configuration, as those issues are dealt with better elsewhere. Needless to say, a production environment will need a RAID configuration to suit your requirement. The servers will require 2 network ports, and these need to be 1 gigabyte capable. The system requires a 1G Switch at the front end, where access is gained to the cluster. In a really redundant environment you will require redundant feeds, however that goes beyond the scope of this article. The Virtual Machines will communicate with each other by bridging to the second network port. If you were to scale this design to individual physical machines, you would be able to have individual networks for the connections, but adding additional network cards in this configuration is out of scope. Cluster DesignFor the purposes of this series of articles, I am defining a "cluster", as a grouping or configuration of a group of servers, so that from the outside, they appear to operate as a single entity, however providing the facility to remove one ( or more in a larger configuration) without impacting on the capability of the hosted application(s). Note that the capacity of the system may be reduced - ie slower response - but the overall capability must not be compromised, and data integrity must be maintained. So this design is meant to handle the complete failure of one server, or to permit it's extraction from the cluster for service and maintenance, without impacting on the operation of the Moodle application.
Virtual Server EnvironmentMost of my experience has been with VMware, for historical reasons, however I will try and include Xen configuration as well, as I believe this is an excellent alternative. The design requires four Virtual machines per server, providing the following functions:
Considerations for VirtualisationResourcesEach of the Virtual Machines require a certain amount of resources. For this design, which is entry - level cluster design, will require the following as a minimum:
This configuration is mindful of the target Moodle application, and the way it works. Any further suggestions or considerations on these parameters are welcome.
NetworkingLoad Balancer The eth0 network interface must be allocated an IP address and gateway relevant to the network it is connected to. Note that both Load Balancers are given identical IP numbers, however the reasons for this is covered in the next article. The eth1 interface is assigned to the internal network (eg, 192.168.10.0/24) which we will use in this example. The Load Balancer in operation will only communicate with the web servers for normal operation, and only with the file and database servers fro management and maintenance purposes.
Web server The eth1 interface will be allocated to the internal network ( 192.168.10.11 and 192.168.10.21 respectively) eth0 will not be used in this configuration.
File server The eth1 interface will be allocated to the internal network ( 192.168.10.15 and 192.168.10.25 respectively) eth0 will not be used in this configuration.
Database server The eth1 interface will be allocated to the internal network ( 192.168.10.18 and 192.168.10.28 respectively) eth0 will not be used in this configuration.
At this stage I will suggest that the reader set up their Virtual environment of choice. In the future I will document this process.
|