cat recovery

recovery 命令是一个索引分片恢复的视图,包括恢复中的和先前已完成的。它是一个更紧凑的 JSON recovery API 的视图。

恢复事件可以发生任何时候。在集群中一个索引的分片移动到另一个节点时的,快照恢复时,副本级别改变时,故障发生时,或者节点重启。其中最后面的类型称为本地存储类型,并且在节点启动时从硬盘加载分片的方式是正常的。

例如,在没有分片从一个节点传输到另一个节点时,下面看起来像是一个集群状态的恢复 : 

> curl -XGET 'localhost:9200/_cat/recovery?v'
index shard time type  stage source_host  source_node target_host target_node repository snapshot files files_percent bytes bytes_percent
 total_files total_bytes translog translog_percent total_translog
index 0     87ms store done  127.0.0.1        I8hydUG      127.0.0.1        I8hydUG      n/a        n/a      0     0.0%          0     0.0%          0           0           0        100.0%           0
index 1     97ms store done  127.0.0.1        I8hydUG      127.0.0.1        I8hydUG      n/a        n/a      0     0.0%          0     0.0%          0           0           0        100.0%           0
index 2     93ms store done  127.0.0.1        I8hydUG      127.0.0.1        I8hydUG      n/a        n/a      0     0.0%          0     0.0%          0           0           0        100.0%           0
index 3     90ms store done  127.0.0.1        I8hydUG      127.0.0.1        I8hydUG      n/a        n/a      0     0.0%          0     0.0%          0           0           0        100.0%           0
index 4     9ms  store done  127.0.0.1        I8hydUG      127.0.0.1        I8hydUG      n/a        n/a      0     0.0%          0     0.0%          0           0           0        100.0%           0

在上面的情况中,source(源)和 target node(目标节点)都是一样的,因为恢复的类型是 store(存储)。

例如,在节点启动时它们将从本地硬盘读取数据。

现在让我们看一下集群恢复中的模样。通过增加索引的副本数量,引起另一个节点上线到副本的主机中,我们可以看到现在的恢复是这样的 : 

> curl -XPUT 'localhost:9200/wiki/_settings' -d'{"number_of_replicas":1}'
{"acknowledged":true}

> curl -XGET 'localhost:9200/_cat/recovery?v&h=i,s,t,ty,st,shost,thost,f,fp,b,bp'
i     s t      ty      st    shost  thost  f     fp      b        bp
wiki  0 1252ms store   done  hostA  hostA  4     100.0%  23638870 100.0%
wiki  0 1672ms replica index hostA  hostB  4     75.0%   23638870 48.8%
wiki  1 1698ms replica index hostA  hostB  4     75.0%   23348540 49.4%
wiki  1 4812ms store   done  hostA  hostA  33    100.0%  24501912 100.0%
wiki  2 1689ms replica index hostA  hostB  4     75.0%   28681851 40.2%
wiki  2 5317ms store   done  hostA  hostA  36    100.0%  30267222 100.0%

在上面的列表中我们可以看到,在不同的阶段中 3 个初始化的分片从一个节点复制到另一个节点。注意,恢复类型显示为 replcia。该文件和字节被复制,并且实时测量。

最后, 让我们看一下快照恢复的情况。假设我先前对我的索引做了一个备份,我可以使用 snapshot and restore来恢复它。

> curl -XPOST 'localhost:9200/_snapshot/imdb/snapshot_2/_restore'
{"acknowledged":true}
> curl -XGET 'localhost:9200/_cat/recovery?v&h=i,s,t,ty,st,rep,snap,f,fp,b,bp'
i     s t      ty       st    rep        snap     f     fp      b     bp
imdb  0 1978ms snapshot done  imdb       snap_1   79    8.0%    12086 9.0%
imdb  1 2790ms snapshot index imdb       snap_1   88    7.7%    11025 8.1%
imdb  2 2790ms snapshot index imdb       snap_1   85    0.0%    12072 0.0%
imdb  3 2796ms snapshot index imdb       snap_1   85    2.4%    12048 7.2%
imdb  4  819ms snapshot init  imdb       snap_1   0     0.0%    0     0.0%