Alteryx Promote Knowledge Base

Definitive answers from Promote experts.

How To: Restore a Promote Cluster from a Backup

JohnPo
Alteryx Alumni (Retired)
Created

How To: Restore a Promote Cluster from a Backup

 

This article outlines the step-by-step procedure for enabling a set of backup nodes as a production cluster. This article does not describe how to capture the backup clones. Typically, these backup clones should come from a snapshot. The specific process for capturing these clones will depend on your deployment's infastructure. 

 

This process creates a new Docker Swarm (the container orchestration service Promote is based on) with the backed-up copies of nodes.

 

Prerequisites

 

  • Alteryx Promote > 2018.2.1
  • A clone of each of your nodes to restore your Promote instance from. 

 

Procedure

 

  1. Run the following command to determine how many nodes are available in Promote's Docker Swarm cluster:

    docker node ls
  2. The following command needs to be run on each node in the cluster to determine which of the three nodes is the Master node, which will contain the persistent data required for Promote. The node that has data in the bundles directory is the Master node:

    yum install -y tree
    tree /var/promote
  3. Run the following command on each node to remove the nodes from the existing Docker Swarm:

    docker swarm leave
  4.  Run the following two commands from the master node to demote and remove the two non-master nodes from the swarm.

    sudo docker node demote (node_id) --force
    sudo docker node rm (node_id) --force
  5. Run the following command to remove the master node from the Swarm cluster.

    sudo docker node rm (node_id) --force
  6. Exchange the current IP addresses saved in the daemon.json with the new internal IP addresses of the nodes you're using for the Promote instance. The daemon.json file is located in the following location path on each machine.

    ls /etc/docker/daemon.json
  7. Restart the Docker daemon and Docker.

  8. After updating the daemon.json file, reload the daemon and Docker so that the Swarm cluster detects the new daemon.json file.

    systemctl daemon-reload && systemctl restart docker
  9. Reinitiate the docker Swarm cluster on one of the three nodes. Each node needs to join the docker swarm with the leader node's "join-token manager". This command only needs to be run once on one node in the cluster. Once you run this command on a node, it will initiate a new Swarm cluster and convert the node into a manager.

    docker swarm init
  10. Run the command below and a join-token manager for the Docker Swarm Cluster will be produced, please run the result of this command on the remaining two docker nodes to add them to the Swarm cluster as managers.

    docker swarm join-token manager
  11. After the last two nodes join the swarm, run docker node ls. If the two remaining nodes don't appear as managers under the Leader Status heading, then run the following command:

    docker node promote {NODE ID}
  12. Run the following command:

    docker node ls
  13. If all the nodes appear to be managers, run the code snippet below to determine which of the nodes is the original master node. The original master node will have files inside of the bundles directory.

    yum install -y tree
    tree /var/promote/bundles

    1. If none of the nodes have files in the bundles directory, then your persistent data is gone. Confirm that you are using the correct backup nodes. The backup nodes should include a master node with persistent data.

  14. Once you have determined which of the nodes contains the persistent data (saved in the bundle's directory of the /var/promote/bundles path), run the following command from that node to assign it as the new master node:

    docker node update --label-add master=yes ${LEADER NODE ID}
  15. Run the following command from the master node assigned above to start your restored Promote instance:

    sudo promote.start

 

Additional Resources

 

  • If you have any trouble with the procedure, open a support ticket in the Case Portal.