[Other doc versions]
[Doc downloads]
You can rapidly scale the capacity of Stash Data Center, with very little downtime, by provisioning extra cluster nodes.
We highly recommend provisioning cluster nodes using an automated configuration management tool such as Chef, Puppet, or Vagrant, or by spinning up identical virtual machine snapshots.
The Stash cluster nodes all run the Stash Data Center web application:
Provisioning a cluster node involves the following steps:
The Stash Data Center makes use of a shared file system that lives on a dedicated machine and is accessible using NFS. See Installing Stash Data Center for more information.
Mount the shared home directory as ${STASH_HOME}/shared
. For example, suppose your Stash home directory is /var/atlassian/application-data/stash
, and your shared home directory is available as an NFS export called stash-san:/stash-shared
. Add the following line to /etc/fstab
on the cluster node:
stash-san:/stash-shared /var/atlassian/application-data/stash/shared nfs nfsvers=3,lookupcache=pos,noatime,intr,rsize=32768,wsize=32768 0 0
Then mount it:
mkdir -p /var/atlassian/application-data/stash/shared sudo mount -a
Download the latest Stash Data Center distribution from https://www.atlassian.com/software/stash/download, and install Stash as normal on the cluster node. See Getting started.
Start Stash on the new node. See Starting and stopping Stash. You can optionally give the node a persistent, human readable name by setting a node.name
system property under JVM_SUPPORT_RECOMMENDED_ARGS
in setenv.sh
. For example:
-Dcluster.node.name=stash-1
Once Stash has started, go to http://<load-balancer>/admin/clustering
. You should see the new node listed, similarly to this:
Verify that the new node you have started up has successfully joined the cluster. If it does not, please check your network configuration and the ${STASH_HOME}/log/atlassian-stash.log
files on all nodes. If you are unable to find a reason for the node failing to join successfully, please contact Atlassian Support.
The Stash Data Center makes use of a load balancer to distribute requests from your users to the cluster nodes. If a cluster node goes down, the load balancer immediately detects the failure and automatically directs requests to the other nodes within seconds. See Installing Stash Data Center for more information.
If you are using a hardware or software load balancer other than HAProxy, consult your vendor's documentation on how to add the new Stash cluster node to the load balancer.
If you are using HAProxy, simply add the following lines to your haproxy.cfg
file:
# In the backend stash_http_backend section, add: server stash<xx> 192.168.0.<x>:7990 check inter 10000 rise 2 fall 5
# In the backend stash_ssh_backend section, add: server stash<xx> 192.168.0.<x>:7999 check port 7999
where the values for <x>
and <xx>
don't conflict with an existing node.
Now restart HAProxy:
sudo service haproxy restart
Verify that the new node is in the cluster and receiving requests by checking the logs on each node to ensure that all are receiving traffic. Also check that updates done on one node are visible on the other nodes.
You can monitor the health of your cluster by navigating to HAProxy's statistics page at http://<load-balancer>:8090/
. You should see a page similar to this:
For any issues please raise a support ticket and mention that you are following the 'Adding cluster nodes to Stash Data Center' page.