Load Balancing & Clustering
Total Page:16
File Type:pdf, Size:1020Kb
Load Balancing & Clustering TERACOTTA Load Balancing & Clustering Author: Pawan Modi Terracotta Server Page 1 Load Balancing & Clustering TABLE OF CONTENTS INTRODUCTION _________________________________________________________ 3 INSTALL TERRACOTTA SERVER _______________________________________________ 4 INSTALL GERONIMO SERVER ________________________________________________ 5 INSTALL TERRACOTTA CLIENT ________________________________________________ 6 UPDATE TERRACOTTA CONFIGURATION FILE ______________________________________ 7 Excerpt from tc-config.xml ______________________________________________ 7 START TERRACOTTA SERVER ________________________________________________ 8 START TERRACOTTA CLIENT AND GERONIMO SERVER ________________________________ 9 Starting Geronimo ____________________________________________________ 9 INSTALL WEB APPLICATION ON EACH GERONIMO CLUSTER MEMBER _____________________ 10 SETUP LOAD BALANCING AND FAILOVER _______________________________________ 11 Apache HTTP Server: _________________________________________________ 11 MOD_JK SETUP: _______________________________________________________ 13 TESTING DEMO LOAD BALANCING: ___________________________________________ 15 USEFUL LINKS: ________________________________________________________ 16 Terracotta Server Page 2 Load Balancing & Clustering Introduction Terracotta is open source infrastructure software that makes it inexpensive and easy to scale a Java application to as many computers as needed, without the usual custom application code and databases used to share data in a cluster. Terracotta manages mission critical data using Network-Attached Memory (NAM) technology. NAM enables Terracotta to cluster Java Virtual Machines (JVMs) directly underneath applications, and is a proven runtime approach to providing Java applications both high availability and scalability. Terracotta's open source community of developers is sponsored by Terracotta, Inc. This article describes the steps to cluster a simple web application's HttpSession data using Open Terracotta. The required step includes. • Install Terracotta Server • Install Geronimo Server • Install Terracotta Client • Update Terracotta configuration file • Start Terracotta Server • Start Terracotta Client and Geronimo Server • Install Web Application on each Geronimo cluster member • Setup Load Balancing and Failover • Testing Load Balancing and Failover • Use the Terracotta admin console Terracotta Server Page 3 Load Balancing & Clustering Install Terracotta Server Terracotta needs to be installed on one machine that will serve as the Terracotta Server. The Terracotta server will be responsible for maintaining session state and assuring that it is accurately reflected in each of the Geronimo cluster members. Download the Terracotta Sessions bundle and run the Installer. This example requires "Open Terracotta 2.2.1 Stable 2" or higher. Terracotta Server Page 4 Load Balancing & Clustering Install Geronimo Server The Geronimo Application Server needs to be installed on each machine that is to be clustered. The example in this article will install Geronimo on two separate machines (cluster members). Download the Geronimo image that includes the Tomcat web container from the Geronimo Website and unpack it on each of the cluster members. This example requires Geronimo 1.1.1 with the Tomcat web container. The Jetty web container is not yet supported by Terracotta. Note: - Download only J2EE certified release. Don’t download minimal / little-G releases. Minimal / little-G release doesn’t support administration console. User need Admin console for variety of purposes like new applications deployment etc. Note that the same version release of Geronimo must be installed on each machine to be clustered. Mixing versions of Geronimo is not currently supported by Terracotta. Terracotta Server Page 5 Load Balancing & Clustering Install Terracotta Client The Terracotta client needs to be installed on each machine that contains a Geronimo cluster member. Currently, the same install bundle includes both the Terracotta server and client. So, it is possible to run the Terracotta Server and Terracotta Client on the same machine with a common installation. Download the Terracotta Sessions bundle and run the Installer on each cluster member. This example requires "Open Terracotta 2.2.1 Stable 2" or higher. Terracotta Server Page 6 Load Balancing & Clustering Update Terracotta configuration file The tc-config.xml file identifies which context-roots are to be clustered as well as the data types that are to be placed in the HttpSession. This example will use the Terracotta configuration file that is delivered with the Terracotta distribution. The specific file is: C:\Terracotta\terracotta-2.2.1\sessions\sandbox\tomcat5.5\tc-config.xml Change the tc-config.xml file to look similar to the following example. Note that the tc- config.xml example below only shows the xml items that are to be updated. Other portions of that xml file should remain unchanged. Remember to change the IP address in the example below to the address of the Terracotta Server. Excerpt from tc-config.xml Terracotta Server Page 7 Load Balancing & Clustering Start Terracotta Server Start the Terracotta server specifying the location of the tc-config.xml file that you just updated. cd C:\Terracotta\terracotta-2.2.1\sessions\bin start-tc-server.bat -f c:\Terracotta\terracotta-2.2.1\sessions\sandbox\tomcat5.5\tc- config.xml Terracotta Server Page 8 Load Balancing & Clustering Start Terracotta Client and Geronimo Server Open Terracotta supports a variety of JVMs and each one requires a unique boot jar be present in the bootclasspath when launching the Geronimo server. The example below is using the Windows JVM that is present in the Terracotta Sessions Package. It is possible to use other JVMs, though a different boot jar will likely need to be created. Also some of the launch arguments in the script below were obtained by issuing the dso-env script in c:\Terracotta\terracotta-2.2.1\sessions\bin\ directory. You should issue this command on your system to find the arguments that are appropriate for your environment. The IPAddress in the example below needs to be replaced with the IP Address (or hostname) of your Terracotta server. This value will be used to determine which Terracotta server will provide the Terracotta client with its tc-config.xml file. Alternately, - Dtc.config="IPAddress:9510" can be omitted though you will need to update tc-config.xml on each cluster member (e.g. c:\Terracotta\terracotta- 2.2.1\sessions\sandbox\tomcat5.5\tc-config.xml). Review the Terracotta documentation for more details. Here is an example startup on a Windows Machine: Starting Geronimo c:\Terracotta\terracotta-2.2.1\jre\bin\java.exe -Xbootclasspath/p:"C:\Terracotta\terracotta-2.2.1\common\lib\dso-boot\dso-boot- hotspot_win32_150_09.jar" -Dtc.install-root="C:\Terracotta\terracotta-2.2.1" -Dtc.config="IPAddress:9510" -jar c:\geronimo-1.1.1-TERRACOTTA\geronimo-1.1.1\bin\server.jar Terracotta Server Page 9 Load Balancing & Clustering Install Web Application on each Geronimo cluster member Use the Geronimo admin console to install the appropriate example application to each of the Geronimo installations. Here are links to the example applications and the deployment plan. servlets-examples-cluster-node1.war - Web application for Cluster Member 1 servlets-examples-cluster-node2.war - Web application for Cluster Member 2 servlets-examples-geronimo-plan.xml - Geronimo common deployment plan (for both cluster members) Note that the two applications above are identical except for the field which indicates the Server name (e.g. Server1, Server2). This distinction will be useful when testing. The Geronimo admin console can be accessed at http://localhost:8080/console on each machine. The default id and password for the Geronimo admin console is id=system password=manager. Select "Applications-> Deploy New" from the GUI and follow the instructions on the panel for installing the example application Now test that the applications were deployed correctly by accessing the applications with your favourite Web Browser: http://YourHost1:8080/servlets-examples-terracotta/servlet/SessionExample http://YourHost2:8080/servlets-examples-terracotta/servlet/SessionExample If this is working correctly, it is now time to setup the Load Balancer. Terracotta Server Page 10 Load Balancing & Clustering Setup Load Balancing and Failover Now you are ready to setup the Load Balancer. We recommend using Apache HTTP server and mod_jk for this example. Apache HTTP Server: Install Apache HTTP server - instructions and downloads available at http://httpd.apache.org/ Set environment variable Apache_Home i.e. home directory of Apache http server installation. Run the Apache .msi file you downloaded above. This will prompt you for: Whether or not you want to run Apache for all users (installing Apache as a Service), or if you want it installed to run in a console window when you choose the Start Apache shortcut. It is recommended to install Apache HTTP server as service. HTTP server start automatically with system boot. User can start / stop / restart Apache HTTP server from \control panel\Administrative tool\services\Apache. Your Server name, Domain name and administrative email account. The directory to install Apache into. (the default is C:\Program Files\Apache Group\Apache although you can change this to any other directory you wish) The installation type. The "Complete" option installs everything, including