“单节点集群”快照恢复到“多节点集群”问题

时间:2021-01-21 20:30:39

标签: snapshot elasticsearch-7

我的本​​地 Windows Elasticsearch 数据库中有一个 single node cluster,我成功地制作了索引的快照。我的 VMware 中有一个 3 nodes cluster,每个节点(服务器)都是 Ubuntu。 虽然我已成功将快照恢复到单节点集群,但现在我在将特殊索引恢复到多节点集群时遇到了问题。 我在本地 Elasticsearch-7.10-win64 中注册了一个名为“snapshots”的文件夹作为我的存储库,并从该文件夹中的索引中获取了一些快照:

PUT /_snapshot/my_fs_backup
{
  "type": "fs",
  "settings": {
    "location": "D:\\snapshots",
    "compress": true
  }
}   
PUT /_snapshot/my_fs_backup/snapshot_1? wait_for_completion = true
   {
      "indices": "suggestionindex",
      "ignore_unavailable": true,
      "include_global_state": false,
      "metadata": {
        "taken_by": "Ehsan",
        "taken_because": "Testing"
      }
}

我已经在 Windows 中完成了,现在让我们转到 3 Ubuntu servers。 我在所有 3 个节点上创建了一个名为 snapshots 的共享 NFS 文件夹,如下所述: Elasticsearch: Snapshot Backups on a Shared NFS 我在我的 3 nodes cluster 中注册了我的存储库,如下所示:

PUT /_snapshot/my_fs_backup
{
  "type": "fs",
  "settings": {
    "location": "/var/lib/elasticsearch/snapshots",
    "compress": true
  }
}

现在是将我的快照_1 恢复到我的 3 node cluster 的时候了。 因此,我将本地快照文件夹中的全部内容复制到共享地址 /var/lib/elasticsearch/snapshots。 现在是时候恢复快照_1了:

POST /_snapshot/my_fs_backup/snapshot_1/_restore?wait_for_completion=true
{
  "indices": "suggestionindex",
  "ignore_unavailable": true,
  "include_global_state": false,
  "include_aliases": false
}

响应是:(Kibana 中的开发工具)

{
  "snapshot" : {
    "snapshot" : "snapshot_1",
    "indices" : [
      "suggestionindex"
    ],
    "shards" : {
      "total" : 1,
      "failed" : 1,
      "successful" : 0
    }
  }
}

我不知道出了什么问题,但也许这些信息可能有用:

POST /_snapshot/my_fs_backup/_verify 结果:

{
  "nodes" : {
    "-S8rY_jOQMCvbAXvTRKQDw" : {
      "name" : "node-1"
    },
    "y4ZQBhkCTV6jcARKjvvh5A" : {
      "name" : "node-3"
    },
    "qlNcOrrJTtmvOOs4gCHgTw" : {
      "name" : "node-2"
    }
  }
}

POST /_snapshot/my_fs_backup/all 结果:

{
  "error" : {
    "root_cause" : [
      {
        "type" : "snapshot_exception",
        "reason" : "[my_fs_backup:all/4afsnEkiSd6MErwY_V-9GQ] Indices don't have primary shards [suggestionindex]"
      }
    ],
    "type" : "snapshot_exception",
    "reason" : "[my_fs_backup:all/4afsnEkiSd6MErwY_V-9GQ] Indices don't have primary shards [suggestionindex]"
  },
  "status" : 500
}

Get /_cat/shards?v 结果:

suggestionindex 0     r      UNASSIGNED                             
suggestionindex 0     p      UNASSIGNED                             
.kibana         0     r      STARTED      21 88.4kb 192.168.254.136 node-3
.kibana         0     p      STARTED      21 88.5kb 192.168.254.135 node-2

我使用与本地 Windows 10 相同的代码在我的 suggestionIndex 中创建了我的 3 nodes cluster,节点 2 上有一个主分片,节点 3 上有一个副本,然后我关闭了我的 {{1 }} 并再次尝试恢复快照,但仍然是无法分配的相同问题!

1 个答案:

答案 0 :(得分:1)

您可以从命令中获取未分配的分片原因: curl localhost:9200/_cat/shards?h=i,s,pr,st,n,ur,ua,uf,ud | grep UNASSIGNED

请分享上面命令的输出?