Version you are viewing: Zoomdata v4

Zoomdata v5

Zoomdata v3

Deploying Multiple Nodes in a New High Availability Installation

Before you can deploy multiple Zoomdata nodes (or instances), you must first configure an instance of the PostgreSQL data store that can be reached from any Zoomdata instance. This data store is used to store Zoomdata metadata, configuration data, and tracing data. Zoomdata recommends that this data store be clustered to ensure there is no single point of failure.

This section covers the following topics:

Configuring the PostgreSQL Data Store

To configure the PostgreSQL data store so it is available to all Zoomdata instances:

  1. Edit the postgresql.conf file:

    vi /var/lib/pgsql/9.5/data/postgresql.conf
  2. Set the following property in postgresql.conf and save the file.

    listen_address='*'
  3. Edit the pg_hba.conf file:

    vi /var/lib/pgsql/9.5/data/pg_hba.conf
  4. Add the following to the pg_hba.conf file:

    # TYPE   DATABASE   USER   ADDRESS             METHOD
    # IPv4 local connections
    host all all 0.0.0.0 /0 md5
  5. Save the pg_hba.conf file.

  6. Restart the PostgreSQL service:

    sudo service postgresql-9.5 restart

Deploying Multiple Zoomdata Instances

To deploy multiple Zoomdata nodes (or instances) in a new high availability environment:

  1. Install the Zoomdata instance as though it were a single instance (and not running in a high availability environment). See Installing Zoomdata.

  2. For each instance, run the following commands to set up the environment variables for the installation:

    export ZOOMDATA_CONSUL_ADDRESS=<instance_ip>:8500
    export ZOOMDATA_CONSUL_CLIENT=0.0.0.0
    export ZOOMDATA_POSTGRES_HOST=<postgres-host>
    export ZOOMDATA_POSTGRES_PORT=<postgres-port>
    export ZOOMDATA_POSTGRES_USER=<postgres-db-username>
    export ZOOMDATA_POSTGRES_PASS=<postgres-db-password>

    where:

    • <instance_ip> is the IP address of the Zoomdata instance
    • <postgres-host> and <postgres-port> are the host name and port number of the PostgreSQl data store
    • <postgres-db-username> and <postgres-db-password> are the user name and password required to access the PostgreSQL data store.
  3. Obtain the installation script from Zoomdata Technical Support and run:

    sudo -E /bin/sh bootstrap-zoomdata.run
  4. After the installation is complete, edit the consul.json file on the instance.

    vi /etc/zoomdata/consul.json
  5. Verify the consul.json file looks like this:

    {
    "bind_addr": "0.0.0.0",
    "bootstrap": false,
    "bootstrap_expect": 2,
    "client_addr": "0.0.0.0",
    "data_dir": "/opt/zoomdata/data/consul",
    "server": true
    }
    A bind address (bind_addr) and client address (client_addr) of 0.0.0.0 allow the Consul to listen over all network interfaces. Depending on your network setup, you may want to explicitly specify an IP address for this.
    The bootstrap_expect value is the total number of Zoomdata nodes (instances) in your Zoomdata cluster and must be the same value on every instance in the cluster.
  6. Restart all of the Zoomdata microservices for the instance. See Restarting Zoomdata Microservices.

  7. Join each instance to the Consul cluster by running this command:

    /opt/zoomdata/bin/zoomdata-consul join -http-addr=http://<external-Consul-node-IP>:<port>

    You can verify that the node has joined the Consul cluster by running this command:

    /opt/zoomdata/bin/zoomdata-consul members
  8. Repeat these steps for every Zoomdata instance (node) in your Zoomdata cluster.