Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set cluster name from configuration XML #40

Open
smclay opened this issue Jan 28, 2021 · 2 comments
Open

Set cluster name from configuration XML #40

smclay opened this issue Jan 28, 2021 · 2 comments

Comments

@smclay
Copy link
Contributor

smclay commented Jan 28, 2021

At the moment the ngas_hosts.cluster_name database value is set by default to the ngas_hosts.host_id value. As far as I can see if the administrator would like to change the cluster name they need to set it directly in the database using SQL. I think it would be better if this value could be set from the XML configuration file which should be a trivial feature to implement.

@rtobar
Copy link
Contributor

rtobar commented Feb 3, 2021

I actually have some small uncertainty as to what a cluster is meant to be in the first place. Until now any number of NGAS servers that are connected to the same central database already constitute in my mind a collaborative set of servers that work together, and as such I have considered that a "cluster" in a loose term. The code clearly makes a distinction about hosts belonging to the same cluster or not based on the database contents though, so the concept is a bit more specific that what I thought -- maybe to cater for different, isolated sets of servers connected to the same database?

There is also an existing ArchiveName attribute of the Server XML element in the configuration file, but once again its purpose seems to be slightly different, as it groups disks together, not hosts (because disks in NGAS in principle can be removed from one server and brought to another).

In summary: I think a new "Cluster" attribute would be needed in the Server XML element to set this value, but I will need to double-check this before proceeding.

@smclay
Copy link
Contributor Author

smclay commented Feb 3, 2021

I think you are mostly correct. The members of a cluster should belong to the same database schema. Although you could have multiple clusters using the same database schema. For example, every time you buy new physical machines and add them to the database schema you can give them a new cluster name. This can be useful for cloning/migrating data from the old cluster to the new cluster. Afterwards you can decommission the old cluster. The ngasXSyncTool.py supports this way of using clusters. We recently used ngasXSyncTool.py to clone our old nodes. It took an eternity but we got there. It could probably use some optimization.

I have also seen the cluster name used in mirroring plugin. You specify the source cluster (remote) and target cluster (local). I guess if the source NGAS servers have multiple clusters and you want to mirror all the clusters you have to configure multiple mirroring plugins in multiple machines.

Anyway, the concept of clustering in NGAS is a bit confusing and not well defined or documented. Nonetheless it is used in different parts of NGAS. I think adding the cluster name setting in the Server XML element would be a good fit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants