将 "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
请分享上面命令的输出?
我的本地 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
请分享上面命令的输出?