将 "single node cluster" 的快照还原到 "multi node cluster" 时出现问题

Problem on restore snapshot of "single node cluster" to "multi node cluster"

我的本地 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
  }
}

现在是时候将我的 snapshot_1 恢复到我的 3 node cluster 了。 所以我将本地快照文件夹中的全部内容复制到共享地址 /var/lib/elasticsearch/snapshots。 现在是时候恢复 snapshot_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

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

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

请分享上面命令的输出?