Swift ring modification is not supported in tripleo-image-elements

Bug #1413527 reported by Gerry Drudy
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Expired
High
Unassigned

Bug Description

The current ring building code in tripleo-image-elements/elements/swift/os-refresh-config/configure.d/73-swift should only be used to create the initial swift rings i.e. in its current form it cannot be used to include additional devices into the ring after initial system standup.

To add/replace devices to existing swift rings you need to use the 'swift-ring-builder add' command to add devices. Then run 'swift-ring-builder rebalance' after all the devices have been added. Note the rebalance command is simply rebalancing partitions in the swift rings. The movement of swift data happens after the rings are changed. Also, time is needed to allow swift data to move to new locations. Typically subsequent ring rebalances are required to ensure the ring is properly balanced.

Note care is needed to ensure the ring is not changed too much in one step. Large ring changes result in increased replication traffic and longer replication times.

When removing devices from the ring the safest approach is to drain the data from these devices rather than simply removing the devices from the ring. Devices can be drained by reducing the weight associated with the device, do this with the swift-ring-builder command. It is best to drop the weight on a device in stages, wait for the data to drain then drop the weight further. The final step after the weight is set to 0 and all the data is drained from the device is to remove the device from the ring.

Revision history for this message
Clint Byrum (clint-fewbar) wrote :

Thanks for the excellent write up Gerry.

I think we have a severe lack of documentation on evolutionary components of a TripleO system. We are good at defining how we'll deploy new things, but not how we'll change things as the system evolves.

I think this is a valid bug, but it is also in some ways a feature request too since we've never really talked about evolving swift rings in place and none of the elements or larger documents about TripleO mention this. We need to accurately document how to add and remove disks to and from boxes already in the swift ring. So a partial fix for this would be to simply allow turning off ring maintenance in Heat and documenting the steps necessary to use a workflow-oriented tool to do these operations on standing resources.

A proposed plan:

* Flesh out documentation in tripleo-image-elements for what the swift elements will do
* Add a disable flag to allow runtime disabling of ring managmeent.

Changed in tripleo:
status: New → Triaged
importance: Undecided → High
Revision history for this message
Clint Byrum (clint-fewbar) wrote :

Also, marking this High, even though this is a corner case, because we should document the corner case as a partial fix, at which time I think we could drop this to Wishlist.

Revision history for this message
Steven Hardy (shardy) wrote : potentially eol bug

This bug was reported against an old version of TripleO, and may no longer be valid.

Since it was reported before the start of the liberty cycle (and our oldest stable
branch is stable/liberty), I'm marking this incomplete.

Please reopen this (change the status from incomplete) if the bug is still valid
on a current supported (stable/liberty, stable/mitaka or trunk) version of TripleO,
thanks!

Changed in tripleo:
status: Triaged → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for tripleo because there has been no activity for 60 days.]

Changed in tripleo:
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.