[Openstack] [Swift] How to add a new node without ring copy?
Mark Kirkwood
mark.kirkwood at catalyst.net.nz
Mon Jan 23 02:37:21 UTC 2017
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.porunov at gmail.com <mailto:alexandr.porunov at 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 at lists.openstack.org
> <mailto:openstack at 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 at lists.openstack.org
> Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
More information about the Openstack
mailing list