{= include("docs.util"); start_docs_page(docs.technical_manual.page_titles.high_availability); =}
This document describes best practices for using $PRODUCT_NAME in a high availability or cluster environment.
To achieve high availability with $PRODUCT_NAME, it is best to create a cluster of $PRODUCT_NAME nodes, with a shared disk. Each node in the cluster mounts the shared drive, which contains the LogAnalysisInfo folder in the $PRODUCT_NAME installation. No other data sharing is necessary.
Because the data and configuration information in $PRODUCT_NAME are in the LogAnalysisInfo folder (except the database, in the case of a MySQL database), sharing the LogAnalysisInfo folder in this manner creates a $PRODUCT_NAME cluster, where each node can run its own $PRODUCT_NAME binary, in the directory containing LogAnalysisInfo.
Each node in the cluster will provide the same profile list, reports, and administrative interface, so any node can be accessed at any time, and will give the same results as any other node.
Add a load balancer in front of the cluster, a single IP address can then be accessed, and will be forwarded on to any active node in the cluster. Then if one node goes down, the load balancer will send traffic to another node instead.
An HTTP session in $PRODUCT_NAME can jump across nodes with no problems, so each request can be distributed randomly by the load balancer, without any need for the load balancer to keep a particular session on the same node.
This approach works with any $PRODUCT_NAME installation, whether it uses internal databases, or MySQL databases, or a combination of the two.
{= end_docs_page() =}