Skip to content

Support immutable repository when using snapshot and restore along with point in time recovery #118187

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

Open
bradquarry opened this issue Dec 6, 2024 · 6 comments
Labels
:Distributed Coordination/Snapshot/Restore Anything directly related to the `_snapshot/*` APIs >enhancement Team:Distributed Coordination Meta label for Distributed Coordination team

Comments

@bradquarry
Copy link

bradquarry commented Dec 6, 2024

Description

A customer has a requirement to use the Elastic snapshot capability to store data in an immutable repository endpoint.

The repository filesystem only allows for writes and does not allow deletes under any circumstances.

They are asking that we look at how we might adapt the current snapshot and restore capabilities to use this immutable filesystem endpoint.

They also need to be able to restore from any snapshot state.

Meaning, keeping all segments in the repository and if a restore is done from an older backup vs. current only restoring the older segments as a 'point in time'.

@bradquarry bradquarry added >enhancement needs:triage Requires assignment of a team area label labels Dec 6, 2024
@DaveCTurner DaveCTurner added :Distributed Coordination/Snapshot/Restore Anything directly related to the `_snapshot/*` APIs and removed needs:triage Requires assignment of a team area label labels Dec 9, 2024
@elasticsearchmachine elasticsearchmachine added the Team:Distributed Coordination Meta label for Distributed Coordination team label Dec 9, 2024
@elasticsearchmachine
Copy link
Collaborator

Pinging @elastic/es-distributed-coordination (Team:Distributed Coordination)

@DaveCTurner
Copy link
Contributor

They are asking that we look at how we might adapt the current snapshot and restore capabilities to use this immutable filesystem endpoint.

I believe ES will already work correctly against such a filesystem. If deletes are blocked by the underlying storage then the snapshot functionality will still work correctly. It'll log warnings about being unable to delete blobs but they can be ignored if this is expected. I expect we could find a way to quieten down any such logs.

They also need to be able to restore from any snapshot state.

This can be achieved by preventing users from deleting snapshots by removing the cluster:admin/snapshot/delete permission from all roles.

@ywangd
Copy link
Member

ywangd commented Dec 12, 2024

If the deletion keeps failing and blobs accumulating, will the cluster still risk OOM or is it no longer an issue since #109848?

@DaveCTurner
Copy link
Contributor

#109848 bounds the memory usage for the blobs-to-delete list to 2GiB, so as long as the master has more than this spare it'll be fine. But also this only applies if the user is deleting snapshots, which they won't be able to do if cluster:admin/snapshot/delete is forbidden.

@jmathew1279
Copy link

Even the initial repository connection fails for the first time with a immutability enabled. Because of this we are not able to create a repository since it tries to create an object and delete it as part of the initial repository creation.

@DaveCTurner
Copy link
Contributor

Ah interesting, I'd forgotten about that. You can skip this step by setting ?verify=false when you register the repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
:Distributed Coordination/Snapshot/Restore Anything directly related to the `_snapshot/*` APIs >enhancement Team:Distributed Coordination Meta label for Distributed Coordination team
Projects
None yet
Development

No branches or pull requests

5 participants