Versions 3.3.1:
Describe the issue:
Until now I was using OpenSearch 2.10.0 and it was possible to:
-
Create a snapshot in a GCS bucket named
bucket1 -
Copy the snapshot files with
gsutilto another GCS bucket namedbucket2 -
Register
bucket2as a new repository and restore the snapshot from there
This was useful for DR scenarios.
After upgrading to OpenSearch 3.x this flow no longer works. Restoring from bucket2 fails with:
IndexShardRestoreFailedException[failed to restore snapshot [latest/WTNXuPysS3-ty09NvUohXw]];
nested: SnapshotMissingException[[bucket2:latest] is missing]
even though the snapshot exists in the bucket2 repository.
I noticed that the snapshot structure between 2.10.0 and 3.3.1 is different. The 3.3.1 snapshot includes an additional folder snapshot_shard_paths/ which contains metadata that seems to reference the original bucket.
My question: how can I restore from a copied snapshot in a different bucket when the original repository (original GCS bucket) is no longer available? Is there a supported way to use a “cloned” snapshot repository for DR in OpenSearch 3.x?