← Back to team overview

openstack team mailing list archive

Re: swift and two data-centres - hierarchical zones?


I have some ideas about Swift multi-cluster organisation. Please give
feedback on


On Sat, Mar 10, 2012 at 5:58 PM, John Leach <john@xxxxxxxxxxxxxxx> wrote:

> Hi,
> I'm looking at deploying swift across two data-centres - I'd like to
> write 3 replicas: two in one data-centre and the third in the other
> another (doesn't matter which way around). I'd like to be able to
> tolerate the failure of (or loss of connectivity to) either data centre.
> If I create one zone per data-centre, I can't write 3 replicas (as each
> replica needs to go in a different zone).
> I can create two zones per data-centre, which appears at first to do the
> job, but I can't add any more zones to either data centre (without
> increasing the replica count to ensure at least one copy is always in
> the other data-centre). So if I lose access to one data-centre, and lose
> one zone in the remaining data-centre, I can no longer make writes to
> the required minimum 2 zones.
> I could use container replication here of course, but then I'll be
> writing 6 replicas in all.
> I think what I need here is hierarchical zones - I'd define one parent
> zone per data-centre, and then multiple child zones within each
> (representing racks or whatever).
> Swift would be configured to write 3 replicas in 3 child zones, aiming
> for at least 1 one replica per parent zone (handing off if the parent
> zone is unavailable).
> Apache Cassandra can do this kind of thing with it's RackAwareStrategy
> replication strategy. You define which servers are in which racks and
> which racks are in which data-centres.
> I saw an oscon 2011 swift talk slide that mentioned "layered zones" as
> future dev work - mentioning "cabinets, not zones".  Extrapolating from
> these 5 words, this is exactly what I need, when will it be ready? ;)
> Any thoughts on this?  Can the existing Ring implementation be extended
> to do this kind of thing? Is the code modular enough to be able to make
> the Ring implementation pluggable?
> Thanks!
> John.
> --
> Brightbox UK Cloud - http://brightbox.com
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to     : openstack@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp

Kind regards
Dmitry Ukov
IT Engineer
Mirantis, Inc.