[Openstack] Remove storage from the rings and then re-add..

Shyam Prasad N nspmangalore at gmail.com
Tue Oct 21 06:29:51 UTC 2014

Thanks for the reply, Sam.
Will explore this option.
BTW, I'm running the Havana release of swift. Did swift have the above
features in this release?


On Mon, Oct 20, 2014 at 10:12 PM, Samuel Merritt <sam at swiftstack.com> wrote:

> On 10/19/14, 11:24 PM, Shyam Prasad N wrote:
>> Hi,
>> I've written a few scripts to make adding of storage to swift cluster
>> easier:
>> remakerings: removes existing ring files and builds new empty rings.
>> addtorings: adds new IP:DISK pair to existing rings.
>> removefromrings: removes an IP:DISK pair from existing rings.
>> I'm facing a problem in one scenario though...
>> After adding a few IP:DISK pairs to the swift cluster, and the cluster
>> is in use for sometime. Later, I decided to add more storage to the
>> cluster. For some reason, if the addtorings for the new storage fails
>> after partial completion (i.e. container and account rings updated; but
>> object ring update failed).  So now I did a removefromrings to rollback
>> my new changes. The remove request succeeds and gives a message "Will be
>> removed from rings on next rebalance". But rebalance fails because the
>> last rebalance was within 1 hr of the last rebalance. And re-adding the
>> same IP:DISK pair to rings also fails; says "Already a part of rings".
>> Is there anyway to workaround this problem? i.e. re-add the IP:DISK pair
>> without having to wait for min_part_hours.
> Two things:
> First, swift-ring-builder keeps backups of the builder files in an
> adjacent directory named "backups". Don't try to back out an un-pushed
> change by performing the inverse change; just grab the backup file and
> overwrite the modified builder files.
> (Note: an "un-pushed" change is one where the admin runs
> swift-ring-builder, but does not end up copying ring.gz files out to the
> cluster. Those changes can safely be thrown away since the cluster doesn't
> actually know about them. If a change makes it into ring.gz files and they
> are subsequently copied out to the cluster nodes, then it's better to undo
> a change by performing a new operation to cancel it out.)
> Second, that part about rebalance failing isn't quite right. That message
> is a warning, not an error, and its purpose is to tell the administrator
> that they're not done yet. swift-ring-builder exits with 0 on success, 1 on
> warning, and 2 on error. Your scripts should take that into account.
> _______________________________________________
> Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/
> openstack
> Post to     : openstack at lists.openstack.org
> Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/
> openstack

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20141021/28a76f5a/attachment.html>

More information about the Openstack mailing list