Need help in elasticsearch snapshot

Hi Team,

I am planning to migrate data from one cluster to another cluster by taking snapshot of indices. In current k8s cluster, I do not have shared storage which is needed to define repo location. We are using rook-ceph block storage for elasticsearch cluster.

My first question, is shared path necessary for taking snapshot?

Second question is, can i use one PVC with ReadWriteMany with 3 elasticsearch sts objects? If yes, how would i define addition pvc information in values.yaml. I already defined volumeClaimTemplate: template in values.yaml.

volumeClaimTemplate:
  accessModes: [ "ReadWriteOnce" ]
  storageClassName: "rook-ceph-block"
  resources:
    requests:
      storage: 200Gi

I appreciate if anybody could help me out in this regard.

Yes.

I can't answer your second one sorry.

Thanks for your reply. If use shared path and take the snapshot, is snapshot taken from each elasticsearch pod ( I have 3 replicas of elasticsearch pods) or it is taken only from only one pod?

Thanks,
Kasim

Snapshots are taken on each node that holds data that is part of the indices being snapshotted.

okay, if I define one path in esconfig.yaml file like path.repo: ["/es-backup"], then each pod sanpshot would be stored under /es-backup path. When other pods of ealsticsearch initiates the snapshot, would that not overwrite existing snapshot? I am clear with the snapshot concept. Could you explain me clearly

Each node only snapshots the data that it has, so there won't be anything overwritten.

for example, as I defined path.repo, each node creates separate folder under /es-backup and stores the snapshot. Am i right ?

Not exactly. There are directories created that map to the index structure. Then each node puts the data from the shards it holds into that structure.

so, all nodes stores the snapshot under /es-backup.

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