Snapshot and restore Documentation unclear

Hi,

I feel like the Snapshot documentation is not clear on if it is possible to register a repository locally on a member of a cluster (master) without this being accessible from the other members (non-masters).

This page
https://www.elastic.co/guide/en/elasticsearch/reference/current/snapshot-restore.html

states:

A snapshot is a backup taken from a running Elasticsearch cluster. You can take snapshots of individual indices or of the entire cluster. Snapshots can be stored in either local or remote repositories. Remote repositories can reside on S3, HDFS, Azure, Google Cloud Storage, and other platforms supported by a repository plugin.

You can take snapshots of individual indices or of the entire cluster. Snapshots can be stored in either local or remote repositories.

The above could be interpreted as you can take snapshot of a cluster locally on a node, without that repository needed be be accessible from the other members of the cluster.

Then concretely about fs repository types, it talks about Shared file system repositories as if it was a different thing to a local file system.
I sais for a shared files system the same location must be mounted on all members of the cluster but It does not specify clearly that a shared file system is required in an cluster as opposed to a local filesystem.

I find the language a bit vague and misleading.

The only way I knew how to interpret the documentations was by digging in to external tutorials, examples and ticket.

Could you please try and make this section of the Documentation a bit more concise.

Could registering a repository locally on a filesystem that is not shared across the cluster work?

Is there anyway to register a repository locally in the master mode without that repository being accessible from the other cluster members?

Kind regards and thanks.
\M

File system snapshots require shared storage available to all nodes in the cluster on the same path. Only if you have a single node cluster can you use local storage.

Thank Christian,

I gathered that after loads of testing and reading.

I would like this to be more clearly Documented on their official documentation.

And is this exclusively for FS type or any type or repo?
So, I have tried setting up Minio running locally in one of the nodes (master) but exclusively accessible from that node so other nodes cannot reach Minio's endpoint.

Funny enough in that scenario my result have been inconclusive, it has worked on some cases and not worked on others.

A shared filesystem is indeed a different thing from a local filesystem, but there's no such thing as a local filesystem repository.

"Local" in the context of "Snapshots can be stored in either local or remote repositories" means "within your network" as opposed to using one of the public clouds. Of course things like Minio have come along since that was written and now the lines are a bit more blurred.

In any case, whatever repository you're using needs to be accessible from all the nodes, and you can check this with the verify API.

1 Like

Thank you very much David for your clarifications.

It would be really handy if this was a bit more clear on the Documentations.

Your prompt response is much appreciated.

Kind regards and thanks.
\M

Would you open a Github issue (or better a PR) for the clarification you're suggesting? Thanks!

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.