Confluence Docs 3.0 : Cluster Checklist This page last changed on Jun 10, 2009 by pfragemann. It is possible to run Confluence in a clustered environment instead of on a single server. This means that you can run multiple copies of Confluence in a cluster, so that clients (such as a browser) can connect to any copy and see the same information. Refer to the clustering overview for more information and a list of related pages about clustering Confluence.
| Consider your options carefully before deciding on a clustered installation While we have tried to make clustering Confluence as easy and administrator-friendly as possible, it is a major architectural change and requires extra planning for deployment and upgrades. Please consider the information below and then consult Atlassian Sales before making your final decision.
Summary of the information on this page: Purpose of this Document Assumed Knowledge General Considerations Confluence Clustered is designed to scale the number of simultaneously connected users at a much better performance than what a single node can achieve Confluence Clustered will not improve performance in systems with few users. Confluence Clustered is not a high availability solution. Confluence Clustered is not for disaster recovery nor for transparent failover. Server Setup The number of supported cluster nodes is limited to four. All cluster nodes must have the same version of OS, application server, etc. Use good and up-to-date hardware. Confluence Clustered is not supported when run in VMware or other virtualisations. Confluence should be the only application on the cluster servers. Do not upgrade and switch to Confluence Clustered at the same time Database Setup Run the database on its own physical server. Attachments must be stored in a database and not the local file system Make sure that you use a supported version of a database server to store Confluence's data. Your database must be provisioned to store a large volume of binary data. You need an experienced DBA available to troubleshoot database performance issues. Network Setup We recommend hardware load balancers or putting a software loadbalancer onto its on server. Use separate network adapters for communication between servers. The switch connecting the Confluence cluster nodes must not be a 'smart switch'. Cisco switches need additional configuration. It is recommended that the database is on a different physical network from the Confluence server nodes. Minimize the latency between the Confluence cluster nodes and the database. Prepare a network diagram. You need network support staff available to troubleshoot cluster communication issues. Staging Environment You need a staging environment that is exactly the same as your production system.
## Purpose of this Document The purpose of this cluster checklist is to help you: Decide whether Confluence Clustered is the right solution for you. Create a plan for your clustered deployment. As a service to our customers, we offer to review your deployment plan and make recommendations to help you avoid common pitfalls. To make use of this service, please consider all the information below carefully while planning your clustered deployment. Then contact Atlassian Pre-Sales for recommendations. If you need to raise a support request with Atlassian during or after cluster deployment, we will need to ask you questions about your configuration. It will save crucial time if you can provide us with your deployment plan. For more information about clustering Confluence, refer to the clustering overview. ## Assumed Knowledge In writing this document, we have assumed that our readers have an in-depth knowledge of the following technical areas: Database Networking Application servers Load balancers Before starting a clustered deployment please read the information on this page carefully, as well as the linked documentation, to assess if you have the assumed knowledge. ## General Considerations
| What will Confluence Clustered do for you? The points in this section of the page will help you evaluate your reasons for considering a clustered deployment, and then decide whether Confluence Clustered is the right solution for your environment.
###### Confluence Clustered is designed to scale the number of simultaneously connected users at a much better performance than what a single node can achieve |
###### Confluence Clustered will not improve performance in systems with few users. | Clustering Confluence means that user requests can be served by independent machines. The performance gains are substantial, and have improved a lot further since Confluence 3.0. Clustering is especially great in dealing with spikes to the load, e.g. during certain hours of business. Just note that if rendering a complicated page (e.g. containing many macros or rendering many graphs) takes five seconds on an otherwise idle server, it will not be faster in a clustered environment. Also, the first step when you encounter performance issues is to tune your existing system, make sure you are using the right hardware and have looked at your database.
###### Confluence Clustered is not a high availability solution. | Confluence Clustered is not designed specifically to provide a high availability solution. General availability is higher in a Confluence cluster than on a single installation, you can for example take one node down for minor maintenance tasks e.g. when adding a new CPU or adding RAM. But you still have to bring down all nodes at the same time for software upgrades. Also there are certain conditions, like loss of network connectivity between nodes ('split brain'), that will result in the cluster shutting itself down. Confluence Clustered offers higher reliability, but not high availability.
###### Confluence Clustered is not for disaster recovery nor for transparent failover. | If one node crashes, there is no transparent failover for the connected client. Also, our network requirements (see below) make Confluence unsuitable for deployment to different cities or even to different buildings.
## Server Setup
###### The number of supported cluster nodes is limited to four. | Not supported. In theory, you can connect more than four nodes — but that is not covered by Atlassian Support.
###### All cluster nodes must have the same version of OS, application server, etc. | Confluence requires a homogeneous environment. All Confluence cluster nodes must have the same version of the following: Operating system CPU Installed memory Java Application server Note that 'same version' means 'same to the last digit'. For example, Java v1.4.2_16 is not the same as v1.4.2_15 We strongly recommend user to have the same memory configuration (both the JVM and the physical memory) because a cluster uses a replicated cache. A replicated cache requires the same amount of memory on each node in the operating cluster. The memory allocations must be equal.
###### Use good and up-to-date hardware. | While the details are up to you, we strongly suggest that your servers have at least 4GB of physical RAM. A high number of concurrent users means that a lot of RAM will be consumed. You usually don't need to assign more than 4GB per JVM process, and most of the time even just 1GB or 2GB will be fine, you should just be prepared to fine tune the settings.
###### Confluence Clustered is not supported when run in VMware or other virtualisations. | Not supported. We strongly discourage you to deploy a production environment of Confluence to virtual servers, and we will not be able to support you when problems arise. When running a Confluence cluster your goal is high capacity and performance, so you should not risk lower performance by virtualising it and sharing a computer with other processes. Many customers who are running Confluence on VMware, or similar virtualisation solutions, experience major performance problems that are extremely hard to pinpoint. Since the problems are not related to Confluence itself, we will not be able to help you.
###### Confluence should be the only application on the cluster servers. | No additional applications (other than core operating system services) should be running on the same servers as Confluence. Since your goal should be increased capacity and performance, you should not risk this by running any other process on the machine with a Confluence Clustered node. While it may be fine to run JIRA, Confluence and Bamboo on a dedicated Atlassian software server for small installations, it is strongly discouraged for clustering Confluence.
###### Do not upgrade and switch to Confluence Clustered at the same time | If you plan to migrate to a clustered solution, make sure you are migrating within the same version of Confluence. If you plan to upgrade to a higher version of Confluence, do this before the migration to the clustered version. For example, if you are currently running Confluence 2.9.2 standalone, and want to roll out the clustered version of Confluence 3.0, you must first upgrade to Confluence 3.0 standalone and check that everything works fine (e.g. by running and monitoring your production system for a week). Then you are in a good position to migrate to the clustered version.
## Database Setup
###### Run the database on its own physical server. | You are optimising for performance, so you don't want the database to slow down your application servers, or vice versa. In high load scenarios, the database may need to have better hardware than the application servers to be able to handle all requests. You should find out by performing loadtesting.
###### Attachments must be stored in a database and not the local file system | Storing attachments in the database is the only supported attachment storage configuration for clustering Confluence.
###### Make sure that you use a supported version of a database server to store Confluence's data. | Please check that your intended database is officially supported by Atlassian Confluence. The load on an average cluster solution is higher than on a single box installation, and it is therefore even more crucial to use the right database vendor and version.
###### Your database must be provisioned to store a large volume of binary data. | Note that Confluence clustered stores file attachments in the database, and you need an experienced DBA who can monitor and manage the data growth.
###### You need an experienced DBA available to troubleshoot database performance issues. | Not having an experienced full-time DBA at hand at short notice when entering the realm of high load is dangerous. While small installations of Confluence basically work 'out of the box', anything that involves high load and a lot of database space requires continual monitoring, optimising and fine tuning of the Confluence database. When we ramp up the load on our loadtesting environment, we see that database usage goes up as well. Having powerful hardware in place helps, but if there are queries that become inefficient with you particular load pattern, you need an expert to tune it. As an example, we have seen PostgresSQL switch its internal caching mechanism when a particular table reached a certain size, which resulted in a drop of performance by about 200ms per request. This happened from one second to the other. Being able to troubleshoot and then fix issues like these is important in any enterprise system, but it is even more in a high load scenario.
## Network Setup
###### We recommend hardware load balancers or putting a software loadbalancer onto its on server. | If you use a software load balancer (which is fine except for really extreme installations), it must be deployed on a machine of its own. Running a software load balancer on a cluster node is not supported. If a node unexpectedly got overwhelmed by a spike in load, a load balancer on that node would turn unresponsive. As a result, your whole cluster would be inaccessible even though the other nodes would be available. So using a different server is common practice and common sense.
###### Use separate network adapters for communication between servers. | The Confluence cluster nodes should have a separate physical network (i.e. separate NICs) for inter-server communication. This is the best way of getting the cluster to run fast and reliably. Performance problems are likely to occur if you connect cluster nodes via a network that has lots of other data streaming through it.
###### The switch connecting the Confluence cluster nodes must not be a 'smart switch'. | Not supported. Smart switches are not covered by Atlassian Support for Confluence Clustered. Do not use smart switches between cluster nodes. Many problems have been reported and attributed to smart switches. They have a tendency to interrupt broadcast or multicast traffic, thus reliably killing a cluster after a certain amount of time has passed. This makes troubleshooting especially complex and tedious.
###### Cisco switches need additional configuration. | If the switch connecting the Confluence cluster nodes is a Cisco switch then it might need additional configuration to support Confluence clustering. Please make sure you find out all the details about your switches before you start the deployment.
###### It is recommended that the database is on a different physical network from the Confluence server nodes. | Since you want to increase your capacity and performance for high loads, it is recommended to have your database on a different network. Please refer to the recommended topology diagram for more information.
###### Minimize the latency between the Confluence cluster nodes and the database. | Even though having the nodes and the database on the same physical network usually suffices, you should take the time to explicitly measure network latency, and make sure it is as close to zero as possible.
###### Prepare a network diagram. | To facilitate discussion and to ease planning, you should prepare a network diagram like this example of recommended network topology. If you request support with Confluence Clustered, we may ask for your network diagram. We recommend that you create one similar to our example before you proceed with the installation.
###### You need network support staff available to troubleshoot cluster communication issues. | Setting up a cluster is not trivial. Even small problems in network design will be expanded in a clustered installation. (This is true of any kind of software.) It is absolutely vital that you have dedicated network staff available to track down problems when they arise. A cluster will usually be used by thousands of users, and you don't want to keep them waiting because a network card breaks, or because someone made an undocumented change to the network and you don't have an expert around who can figure it out.
## Staging Environment
###### You need a staging environment that is exactly the same as your production system. | You must be able to test drive any change to the cluster (installing upgrades, installing plugins) and to perform other tests (checking connectivity, debugging problems) on a staging cluster. The staging environment must be: On the same OS, database, and Java version as your production environment. Clustered. If you require support, we may for example ask you to turn off certain third-party plugins. If you can't do this in your production environment and you don't have a staging environment for troubleshooting, we may not be able to help you.
| Getting a license for your staging environment
| Only a technical contact for your commercial/academic license is able to create a Developer license
Atlassian supplies 'developer' licenses which can be used by existing commercial license holders who wish to deploy non-production installations of our software to use in QA/staging environments. Developer licenses are free of charge to commercial license holders and, like our commercial offerings, they include 12 months of updates starting from the date of purchase of the commercial license. If you hold a commercial license, you can obtain a free developer license by performing the following: Log in to your Atlassian account. Under the "Licenses" heading, all of your licenses will be displayed. Click the plus sign next to a license to view its details. Click the 'View Developer License' link in the bottom right corner of the license detail panel, below your commercial license key.
RELATED TOPICS
Cluster Panic triggers
How do I supress cluster warning message in confluence?
Recommended network topology
Upgrading a Confluence Cluster
Cluster Troubleshooting
Changing Datasources Manually in a Cluster
Cluster Administration page
Technical Overview of Clustering in Confluence
Apache and Tomcat load balancing
Cluster safety mechanism
Confluence Cluster Installation
Viewing and Editing License Details
Confluence Clustering Overview

Document generated by Confluence on Nov 05, 2009 23:26