[openstack-dev] [swift] Problem balancing a ring file with multiple regions

Adrian Smith adrian_f_smith at dell.com
Wed Mar 20 16:40:41 UTC 2013


I'm putting together a simple test cluster across two DCs using the
new region level. Each DC has two storage nodes, each with two
devices. The logical setup looks like this,

region 1
   zone 1
      10.21.146.76
         sdb1
         sdc1
   zone 2
      10.21.146.77
         sdb1
         sdc1
region 2
   zone 1
      10.49.123.77
         sdb1
         sdc1
   zone 2
      10.49.123.78
         sdb1
         sdc1

Obviously this isn't an ideal setup since I only have four zones
rather than the preferred five but for my basic needs it's fine.

I create a ring,

swift-ring-builder account.builder create 10 3 1
swift-ring-builder account.builder add r1z1-10.21.146.76:6002/sdb1 100
swift-ring-builder account.builder add r1z1-10.21.146.76:6002/sdc1 100
swift-ring-builder account.builder add r1z2-10.21.146.77:6002/sdb1 100
swift-ring-builder account.builder add r1z2-10.21.146.77:6002/sdc1 100
swift-ring-builder account.builder add r2z1-10.49.123.77:6002/sdb1 100
swift-ring-builder account.builder add r2z1-10.49.123.77:6002/sdc1 100
swift-ring-builder account.builder add r2z2-10.49.123.78:6002/sdb1 100
swift-ring-builder account.builder add r2z2-10.49.123.78:6002/sdc1 100

and then attempt to rebalance it with,

swift-ring-builder account.builder rebalance

The output is...

Device r1z1-10.21.146.76:6002/sdb1_"" with 100.0 weight got id 0
Device r1z1-10.21.146.76:6002/sdc1_"" with 100.0 weight got id 1
Device r1z2-10.21.146.77:6002/sdb1_"" with 100.0 weight got id 2
Device r1z2-10.21.146.77:6002/sdc1_"" with 100.0 weight got id 3
Device r2z1-10.49.123.77:6002/sdb1_"" with 100.0 weight got id 4
Device r2z1-10.49.123.77:6002/sdc1_"" with 100.0 weight got id 5
Device r2z2-10.49.123.78:6002/sdb1_"" with 100.0 weight got id 6
Device r2z2-10.49.123.78:6002/sdc1_"" with 100.0 weight got id 7
Reassigned 1024 (100.00%) partitions. Balance is now 33.07.
-------------------------------------------------------------------------------
NOTE: Balance of 33.07 indicates you should push this
      ring, wait at least 1 hours, and rebalance/repush.
-------------------------------------------------------------------------------

Any idea why the balance is 33.07 rather than 0?

I've tried using a partition power of 18 but get the same result
(balance of 33.33 with 262144 partitions).

I'm using Swift 1.8.0-rc1.

Thanks
Adrian



More information about the OpenStack-dev mailing list