TRY ME

Try Valo for free

We want to show you something amazing.

We'll send you a link to download a fully functional Valo copy to play with.



Great! Check your email and enjoy Valo



Apologies, we seem to be having a problem processing your input, please try again

Removing a nodeΒΆ

Just as nodes can be added to the cluster, nodes can also be removed if a cluster has excess capacity. This will cause data transfers away from the node leaving, which will take time. As with adding nodes, we recommend scheduling such operations outside of business hours or heavy load.

Only one node can be removed at a time and the following conditions must be true:

  • No other nodes may be joining or leaving
  • All nodes must be reachable (see Node failure)
  • There must be at least two nodes in the cluster

As with adding a node, the removal process cannot be reversed or cancelled once started.

To remove a node, issue a DELETE using the Cluster API:

DELETE /cluster/nodes/valo2 HTTP/1.1

The request will return once all the other nodes in the cluster have seen the node is Leaving. It is normal for this to take several seconds.

{
  "nodes": [
    {
      "name": "valo",
      "publicKey": "NDkSJ}NVCMK1bk+k/p[?eOlkPv?USXu#*lTaP]-k",
      "address": "localhost",
      "port": 3333,
      "clusterPort": 2551,
      "version": {
        "number": "1.2",
        "revision": "fcbd5f3978ca34a4d4a1587e9d90dc2b2b797c20"
      },
      "state": "Joined",
      "available": true
    },
    {
      "name": "valo1",
      "publicKey": "y/0L){oT1/zPPeR*Mn%BEk[$<Njz(LY/<)3S1%J0",
      "address": "localhost",
      "port": 3334,
      "clusterPort": 2552,
      "version": {
        "number": "1.2",
        "revision": "fcbd5f3978ca34a4d4a1587e9d90dc2b2b797c20"
      },
      "state": "Joined",
      "available": true
    },
    {
      "name": "valo2",
      "publicKey": "!Do<)U2<8BhK)LVi4Z>lyC&{)G9(<!jd)tu@6+gv",
      "address": "otherHost",
      "port": 3334,
      "clusterPort": 2552,
      "version": {
        "number": "1.2",
        "revision": "fcbd5f3978ca34a4d4a1587e9d90dc2b2b797c20"
      },
      "state": "Leaving",
      "available": true
    }
  ]
}

The request can be issued on any node in the cluster, including the node that will leave. Once it returns, data transfers will begin and the progress can be monitored using the Cluster API.

Once the transfers are complete, the node will be removed from the cluster and can be shut down:

{
  "nodes": [
    {
      "name": "valo",
      "publicKey": "NDkSJ}NVCMK1bk+k/p[?eOlkPv?USXu#*lTaP]-k",
      "address": "localhost",
      "port": 3333,
      "clusterPort": 2551,
      "version": {
        "number": "1.2",
        "revision": "fcbd5f3978ca34a4d4a1587e9d90dc2b2b797c20"
      },
      "state": "Joined",
      "available": true
    },
    {
      "name": "valo1",
      "publicKey": "y/0L){oT1/zPPeR*Mn%BEk[$<Njz(LY/<)3S1%J0",
      "address": "localhost",
      "port": 3334,
      "clusterPort": 2552,
      "version": {
        "number": "1.2",
        "revision": "fcbd5f3978ca34a4d4a1587e9d90dc2b2b797c20"
      },
      "state": "Joined",
      "available": true
    }
  ]
}