Difference between revisions of "OPS335 Assignment 2"

From CDOT Wiki
Jump to: navigation, search
(Created page with 'From Wikipedia, the free encyclopedia: "A server farm or server cluster is a collection of computer servers usually maintained by an enterprise to accomplish server needs far bey…')
 
Line 1: Line 1:
From Wikipedia, the free encyclopedia: "A server farm or server cluster is a collection of computer servers usually maintained by an enterprise to accomplish server needs far beyond the capability of one machine."
+
'''From Wikipedia, the free encyclopedia: "A server farm or server cluster is a collection of computer servers usually maintained by an enterprise to accomplish server needs far beyond the capability of one machine."'''
  
In this assignment you will build (actually simulate) a web server farm consisting of Fedora 13 machines each running the Apache web server. Your farm will be behind a firewall that will use Linux's net filter (iptables) to balance the load across the web servers in a round-robin fashion. Yes, there are other ways to do load balancing (eg DNS) but in this assignment you must use iptables. Your web servers (you must have at least two) will be virtual machines. You will also require another VM to be used for backup and the consolidation of Apache error and access logs. Below is a network diagram of your cluster.
+
* In this assignment you will <u>build (actually simulate) a web server farm consisting of Fedora 13 machines each running the Apache web server.</u>
 +
* Your farm will be behind a firewall that will use Linux's net filter (iptables) to balance the load across the web servers in a round-robin fashion.  
 +
* Yes, there are other ways to do load balancing (eg DNS) but in this assignment you must use iptables.  
 +
* Your web servers (you must have at least two) will be virtual machines.  
 +
* You will also require another VM to be used for backup and the consolidation of Apache error and access logs.  
  
+
Below is a network diagram of your cluster.
  
ASSIGNMENT PARAMETERS:
+
'''ASSIGNMENT PARAMETERS:'''
All machines will start with the default Fedora Server (Server not Desktop) firewall. You will then add necessary rules as required.
+
# All machines will start with the default Fedora Server (Server not Desktop) firewall. You will then add necessary rules as required.
Each web server should have identical web pages in /var/www/html/, except for the title of the initial page (index.html) which should be different for each web site. This will make it easy to tell which server's page we are actually viewing with our browser. And yes, it's up to you to code these pages.
+
# Each web server should have identical web pages in /var/www/html/, except for the title of the initial page (index.html) which should be different for each web site. This will make it easy to tell which server's page we are actually viewing with our browser. And yes, it's up to you to code these pages.
The firewall on the gateway should use net filter (iptables) to distribute http requests evenly (load balance) among all web servers.
+
# The firewall on the gateway should use net filter (iptables) to distribute http requests evenly (load balance) among all web servers.
Both error and access logs of all web servers should be consolidated on the Logger/Backup machine. You should use the syslog facility on each web server to do this.
+
# Both error and access logs of all web servers should be consolidated on the Logger/Backup machine. You should use the syslog facility on each web server to do this.
All web servers should have cron jobs set up to rsync their web site data to the Logger/Backup machine.
+
# All web servers should have cron jobs set up to rsync their web site data to the Logger/Backup machine.
To demonstrate that your server farm is functioning properly you must include at least the following:
+
# To demonstrate that your server farm is functioning properly you must include at least the following:
A copy of each cron job used to backup the web site.
+
:* A copy of each cron job used to backup the web site.
Output produced by the cron jobs.
+
:* Output produced by the cron jobs.
A listing of the firewall on the gateway (use iptables-save command).
+
:* A listing of the firewall on the gateway (use iptables-save command).
Listings of the firewall on each web server.
+
:* Listings of the firewall on each web server.
A listing of the firewall on the Logger/Backup machine.
+
:* A listing of the firewall on the Logger/Backup machine.
Segments of the access and error logs from the Logger/Backup machine that show load balancing taking place.
+
:* Segments of the access and error logs from the Logger/Backup machine that show load balancing taking place.
Explaination of how you consolidated the log files. Show changes you made to syslog and httpd config files and include any scripts you wrote that assisted this effort.
+
:* Explaination of how you consolidated the log files. Show changes you made to syslog and httpd config files and include any scripts you wrote that assisted this effort.
The code (html) for each web site.
+
:* The code (html) for each web site.
Your testing methodology. State how you tested your configuration. You might consider writing a bash script that bombards your firewall with http requests from the outside - you can use wget or curl for this.
+
:* Your testing methodology. State how you tested your configuration. You might consider writing a bash script that bombards your firewall with http requests from the outside - you can use wget or curl for this.
Finally, comment on the effectiveness of your setup - this can be in your conclusions.
+
:* Finally, comment on the effectiveness of your setup - this can be in your conclusions.
And don't forget to set your clocks on all machines to the correct date and time. If I see any log records with unrealistic times you'll lose marks.
+
:* And don't forget to set your clocks on all machines to the correct date and time. If I see any log records with unrealistic times you'll lose marks.
NOTES:  
+
 
 +
'''NOTES:'''
 
Don't forget to end your report with at least one paragraph of conclusions.
 
Don't forget to end your report with at least one paragraph of conclusions.
This is a hands-on assignment to be done by each student individually (this is NOT a group assignment).
+
This is a hands-on assignment to be done by each student individually '''(this is NOT a group assignment)'''.
 +
 
 
Please submit this assignment in formal written form according to instructions posted on your teacher's web page and also email an electronic copy to him/her.
 
Please submit this assignment in formal written form according to instructions posted on your teacher's web page and also email an electronic copy to him/her.
This assignment is worth 10% of your final grade.
+
 
 +
'''This assignment is worth 10% of your final grade.'''

Revision as of 18:25, 19 October 2011

From Wikipedia, the free encyclopedia: "A server farm or server cluster is a collection of computer servers usually maintained by an enterprise to accomplish server needs far beyond the capability of one machine."

  • In this assignment you will build (actually simulate) a web server farm consisting of Fedora 13 machines each running the Apache web server.
  • Your farm will be behind a firewall that will use Linux's net filter (iptables) to balance the load across the web servers in a round-robin fashion.
  • Yes, there are other ways to do load balancing (eg DNS) but in this assignment you must use iptables.
  • Your web servers (you must have at least two) will be virtual machines.
  • You will also require another VM to be used for backup and the consolidation of Apache error and access logs.

Below is a network diagram of your cluster.

ASSIGNMENT PARAMETERS:

  1. All machines will start with the default Fedora Server (Server not Desktop) firewall. You will then add necessary rules as required.
  2. Each web server should have identical web pages in /var/www/html/, except for the title of the initial page (index.html) which should be different for each web site. This will make it easy to tell which server's page we are actually viewing with our browser. And yes, it's up to you to code these pages.
  3. The firewall on the gateway should use net filter (iptables) to distribute http requests evenly (load balance) among all web servers.
  4. Both error and access logs of all web servers should be consolidated on the Logger/Backup machine. You should use the syslog facility on each web server to do this.
  5. All web servers should have cron jobs set up to rsync their web site data to the Logger/Backup machine.
  6. To demonstrate that your server farm is functioning properly you must include at least the following:
  • A copy of each cron job used to backup the web site.
  • Output produced by the cron jobs.
  • A listing of the firewall on the gateway (use iptables-save command).
  • Listings of the firewall on each web server.
  • A listing of the firewall on the Logger/Backup machine.
  • Segments of the access and error logs from the Logger/Backup machine that show load balancing taking place.
  • Explaination of how you consolidated the log files. Show changes you made to syslog and httpd config files and include any scripts you wrote that assisted this effort.
  • The code (html) for each web site.
  • Your testing methodology. State how you tested your configuration. You might consider writing a bash script that bombards your firewall with http requests from the outside - you can use wget or curl for this.
  • Finally, comment on the effectiveness of your setup - this can be in your conclusions.
  • And don't forget to set your clocks on all machines to the correct date and time. If I see any log records with unrealistic times you'll lose marks.

NOTES: Don't forget to end your report with at least one paragraph of conclusions. This is a hands-on assignment to be done by each student individually (this is NOT a group assignment).

Please submit this assignment in formal written form according to instructions posted on your teacher's web page and also email an electronic copy to him/her.

This assignment is worth 10% of your final grade.