Yes, one set of identical ring files is definitely the best option! Also the recon md5 ring check will likely complain forever if these alternative methods (for avoiding copying) are tried.

More interesting is why people want to avoid the copy? I'm guessing it is because this type of thing is hard to do in some of the automated provisioning tools (ahem..looking at you puppet):

- add disk on storage node

- tell ring generation/master node(s) about it

- make new rings on the node(s) above if new disks detected

- copy new rings from node(s) in step 2 (for every node in cluster)


Now the puppet-swift module does tell you how to do this (via exported resources), but it is not that simple (and in fact the examples in the module have mistakes that result in non identical rings proxy nodes...). Other complexities that make this tricky are multiple regions/geo replication - if each has its own puppet server...you can't (easily) use exported resources at all.

Keeping the rings in swift is quite a cool idea - but can't be used when bootstrapping the cluster initially (probably not that difficult to work around tho).


We are currently

- keeping boostrap ring in puppet
- add new disks/nodes manually (with helper scripts)
- keep 'master' rings on all proxies
- run ring rsync servers on all proxies
- storage nodes get rings from proxies (puppet or manually)

We run the recon md5 ring check as part of standard monitoring to pick up any mistakes we might do add devices.

cheers

Mark

On 23/01/17 03:16, Vladimir Maliaev wrote:
Anyway you will copy ring files to new node. Which node you are going to copy from? I think that to have only one set of ring files is helpful in troubleshooting if something goes wrong.

On Jan 22, 2017 6:08 AM, "Alexandr Porunov" <alexandr.poru...@gmail.com <mailto:alexandr.poru...@gmail.com>> wrote:

    Hello,

    I read different articles about how to add a new node and they all
    says this:
    1) Add a node to ring builder
    2) Rebalance ring
    3) Copy ring to each node.

    Is it possible to skip "copy" step by doing first and second step
    on each node? Will then all nodes have the same ring?
    I.e. I mean to do like this:
    1) Add a node to the ring builder (Execute this step on each node)
    2) Rebalance the ring (Execute this step on each node)

    Will the ring be the same or we still have to copy the ring from
    one node to all others?

    Best regards,
    Alexandr

    _______________________________________________
    Mailing list:
    http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
    <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack>
    Post to     : openstack@lists.openstack.org
    <mailto:openstack@lists.openstack.org>
    Unsubscribe :
    http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
    <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack>



_______________________________________________
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to     : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack


_______________________________________________
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to     : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack

Reply via email to