如何将Elasticsearch快照恢复到另一个集群?没有存储库-s3、存储库-hdfs、存储库-azure、存储库-gcs。
最佳答案
这个答案是关于 Elastic Search 7.14
。因此,可以在 NFS 上托管快照存储库。由于您希望将一个集群的快照恢复到另一个集群,因此您需要满足以下先决条件:
- NFS 应可从源集群和目标集群访问。
- 源集群和目标集群的版本应相同。目标集群最多可以比源集群高 1 个主要版本。例如:您可以恢复 5.x 快照。到 6.x 集群,但不是 7.x 集群。
- 确保共享 NFS 目录归 uid:gid = 1000:0(
elasticsearch
用户)所有,并授予适当的权限(chmod -R 777 <appropriate NFS directory>
作为elasticsearch
用户)
现在,我将详细介绍复制数据可以采取的步骤。
- 创建类型为
fs
的注册表在源集群上:
PUT http://10.29.61.189:9200/_snapshot/registry1 { "type": "fs", "settings": { "location": "/usr/share/elasticsearch/snapshotrepo", "compress": true } }
- 对创建的注册表拍摄快照:
PUT http://10.29.61.189:9200/_snapshot/registry1/snapshot_1?wait_for_completion=true { "indices": "employee,manager", "ignore_unavailable": true, "include_global_state": false, "metadata": { "taken_by": "binita", "taken_because": "test snapshot restore" } }
- 创建类型为
url
的注册表在目标集群上。类型url
将确保相同的注册表(就共享 NFS 路径而言)对于目标集群而言是只读的。目标集群只能恢复/读取快照信息,不能写入快照。
PUT http://10.29.59.165:9200/_snapshot/registry1
{ "type": "url", "settings": { "url": "file:/usr/share/elasticsearch/snapshotrepo" } }
- 将从源集群(第 2 步)生成的快照恢复到目标集群。
POST http://10.29.59.165:9200/_snapshot/registry1/snapshot_1/_restore
欲了解更多信息,请参阅:https://www.elastic.co/guide/en/elasticsearch/reference/current/snapshots-restore-snapshot.html
关于elasticsearch - Elasticsearch快照恢复另一个集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54598720/