Rolling Restarts
Because Riak functions as a multi-node system, cluster-level Riak version upgrades and restarts can be performed on a node-by-node, “rolling” basis.
The following steps should be undertaken on each Riak node that you wish to restart:
1/. Stop Riak
riak stop
2/. Perform any necessary maintenance, upgrade, or other work in your cluster.
3/. Start Riak again
riak start
4/. Verify that the riak_kv
service is once again available on the target node
riak-admin wait-for-service riak_kv <nodename>
If this responds with riak_kv is up
, then the service is available and you can move on to the next step. Otherwise, the console will periodically return riak_kv is not up
until the service is available.
5/. Verify that all in-progress handoffs have been completed
riak-admin transfers
If this responds with No transfers active
, then all handoffs are complete. You can either run this command periodically until no more transfers are active or run the following script, which will run the riak-admin transfers
command every 5 seconds until the transfers are complete:
while ! riak-admin transfers | grep -iqF 'No transfers active'
do
echo 'Transfers in progress'
sleep 5
done
6/. Repeat the above process for any other nodes that need to be restarted.