Deploy a Coordination Service Ensemble
The Coordination Service is built on Apache ZooKeeper(Link opens in a new window), an open-source project, and coordinates activities on the server, guaranteeing a quorum in the event of a failure, and serving as the source of "truth" regarding the server topology, configuration and state. The service is installed automatically on the initial Tableau Server node, but no additional instances are installed as you add additional nodes. Because the successful functioning of Tableau Server depends on a properly functioning Coordination Service, we recommend that for server installations of three or more nodes, you add additional instances of the Coordination Service by deploying a new Coordination Service ensemble. This provides redundancy and improved availability in the event that one instance of the Coordination Service has problems.
Important: The process to deploy a Coordination Service ensemble changed as of version 2020.1.0. If you are running an earlier version of Tableau Server, see the documentation for that version. You can find documentation for all supported versions here: Tableau Help(Link opens in a new window)
Hardware requirements
The hardware you use for Tableau Server can have an effect on how well the Coordination Service runs. In particular:
Memory. The Coordination Service maintains state information in memory. By design, the memory footprint is small, and is typically not a factor in overall server performance.
Disk speed. Because the service stores state information on disk, it benefits from fast disk speed on the individual node computers.
Connection speed between nodes. The service communicates continuously between cluster nodes; a fast connection speeds between nodes helps with efficient synchronisation.
Because the Coordination Service is I/O intensive, if you are running Tableau Server on computers that meet or just exceed the minimum hardware requirements, you may want to configure a Coordination Service ensemble that puts the service on nodes that are not being used for other server processes. This reduces the chance of delays due to I/O contention between server processes. For information on how to deploy an ensemble on dedicated Coordination Service-only nodes, see Configure Tableau Server for High Availability with Coordination Service-Only Nodes.
The Coordination Service Quorum
To ensure that the Coordination Service can work properly, the service requires a quorum – a minimum number of instances of the service. This means that the number of nodes in your installation impacts how many instances of the Coordination Service you want to configure in your ensemble.
Number of Coordination Service instances to use
The maximum number of Coordination Service instances you can have in an ensemble on Tableau Server depends on how many Tableau Server nodes you have in your deployment. Configure a Coordination Service ensemble based on these guidelines:
Total number of server nodes | Recommended number of Coordination Service nodes in ensemble (must be 1, 3, or 5) | Notes |
---|---|---|
1-2 nodes | 1 node | This is the default and requires no changes unless you want to move the Coordination Service off your initial node and onto your additional node. |
3-4 nodes | 3 nodes | |
5 or more nodes | 3 nodes or 5 nodes | Five is the maximum number of Coordination Service instances you can install. A 3-node Coordination Service ensemble allows for one of the ensemble nodes to fail without causing Tableau Server to fail. A 5-node ensemble allows for two of the ensemble nodes to fail without causing Tableau Server to fail. For most installations, three Coordination Service nodes are adequate, and because of the I/O-intensive nature of the Coordination Service, this is the most performant configuration. If high availability is your absolute priority, you may want to consider deploying a 5-node Coordination Service ensemble. This provides the most redundancy in the event that one or more nodes fail but will require more system resources. A maximum of two of the ensemble nodes can fail without impacting Tableau Server (as long as any other services on the node also exist on still-functioning nodes). To reduce performance impact, locate the Coordination Service on nodes that are running fewer other services or consider using Coordination Service-only nodes. For details, see Configure Tableau Server for High Availability with Coordination Service-Only Nodes. |
Deploy a new Coordination Service ensemble
If you install a total of three or more nodes, you should also deploy a Coordination Service ensemble. If you do not, you will get a warning message every time you make changes to the server configuration or topology. You can ignore this message, but as a best practice you should deploy a multi-node Coordination Service ensemble.
When you install Tableau Server, a single instance of the Coordination Service is installed on the initial node. TSM and Tableau Server depend on the Coordination Service to function properly, so to provide redundancy and ensure availability on multi-node installations, configure additional instances of the Coordination Service by deploying a Coordination Service ensemble. Coordination Service ensembles are installed with one, three or five instances of the Coordination Service. In a three-node installation of Tableau Server, the recommended number of Coordination Service instances is three, one on each node.
Do not attempt to deploy a Coordination Service ensemble if there are other changes pending. Discard or apply any pending changes before deploying a new Coordination Service ensemble.
Note: This operation includes steps that you may need to perform using the TSM command line.
The following steps illustrate how to deploy a new Coordination Service ensemble on an existing three-node Tableau Server cluster and clean up the old ensemble.
On the initial node, open a terminal session.
Stop Tableau Server:
tsm stop
If prompted, sign in as a TSM administrator.
Some TSM processes will continue to run, including the Administration Controller and Administration Agent.
Confirm there are no pending changes:
tsm pending-changes list
If there are pending changes, you need to either discard the changes or apply them. Applying pending changes will take some time:
Discard the changes
tsm pending-changes discard
Apply the changes:
tsm pending-changes apply
or
Wait until the command completes and you are returned to the system prompt.
Get the node IDs for each node in the cluster:
tsm topology list-nodes -v
Use the
tsm topology deploy-coordination-service
command to add a new Coordination Service ensemble by adding the Coordination Service to specified nodes. You must specify the node(s) that the Coordination Service should be added to, using the actual node ID to identify each node. The command also makes the new ensemble the "production" ensemble (the ensemble in use) and removes the old ensemble, unless the deployment fails. If this happens, see step 6 below.Note: A "y/n" prompt displays confirming that a server restart will take place. To run the command without input, include the
--ignore-prompt
option.For example, deploy the Coordination Service to all three nodes of a three-node cluster, where the nodes are node1, node2 and node3:
tsm topology deploy-coordination-service -n node1,node2,node3
Wait until the command completes and you are returned to the system prompt.
(Optional) If the deployment fails, you need to run the
tsm topology cleanup-coordination-service
command to remove the unsuccessfully deployed ensemble. For details on running the command, see tsm topology cleanup-coordination-service.Start Tableau Server:
tsm start