Converse to adding capacity to our OpenStack Object Storage cluster, there may be times where we need to scale back, or remove a failed node for service. You may need to remove a compute node from a cluster for troubleshooting or maintenance reasons.
We can do this by removing nodes from the zones in our cluster. In the following example, we will remove the node 172.16.0.212 in z5, which only has one storage device attached, /dev/sdb1.
Log in to the OpenStack Object Storage Proxy Server. To log on to our OpenStack Object Storage Proxy host that was created using Vagrant, issue the following command:
Vagrant ssh shift
Related Pages: Openstack Tutorial
How to Remove Nodes From a Cluster
Carry out the following to remove a storage node from a zone:
- To remove a node from OpenStack Object Storage, we first set its weight to be 0, so that when the rings get rebalanced, data is drained away from this node:
Subscribe to our youtube channel to get new updates..!
- We then rebalance the rings as follows:
- Once this is done, we can remove the node in this zone from the ring, as follows:
- We then copy the resultant ring.gz, container.ring.gz, and object.ring.gz files over to the rest of the nodes in our cluster. We are now free to decommission this storage node by physically removing this device.
Manually Removing a Node
Manually removing a node from our OpenStack Object Storage cluster is done in three steps:
1. Setting the node’s weight to be 0, so the data isn’t being replicated to it, by using the swift-ring-builder set-weight command.
2. Rebalancing the rings to update the data replication.
Removing the node from OpenStack object storage cluster, using the swift-ring-builder remove command. Once done, we are then free to decommission that node. We repeat it for each node (or device) in the zone.