2016-08-10 4 views
1

2つ以上のスナップショットを弾性クラスタに復元するスナップショットを自動化する必要があるとします。
次のapiコールの前にスナップショット操作が完了したことを検出する必要があります。_snaphot/<repository>/<snapshot>/_restore。それはとにかく0を返し、
curl -XGET 'http://127.0.0.1:9200/_cat/thread_pool?h=snapshot.active しかし:スナップショットが復元されている間、私が呼び出した場合
、クラスタの応答503弾性検索:現在実行中のスナップショット操作を取得

私はスナップショット操作を実行すると、スレッドプールAPIを使用しようとしました。

現在実行中のリストア操作に関する情報を取得する適切な方法は何ですか?

UPDATE:

- name: shell | restore latest snapshot 
    uri: 
    url: "http://127.0.0.1:9200/_snapshot/{{ es_snapshot_repository }}/snapshot_name/_restore" 
    method: "POST" 
    body: '{"index_settings":{"index.number_of_replicas": 0}}' 
    body_format: json 

- name: shell | get state of active recovering operations | log indices 
    uri: 
    url: "http://127.0.0.1:9200/_recovery?active_only" 
    method: "GET" 
    register: response 
    until: "response.json == {}" 
    retries: 6 
    delay: 10 

答えて

1

あなたはIndices Recovery APIを使用して復元されたインデックスのステータスを監視することができます:それはansibleで動作するように管理しているか 例。

これを行うための最も簡単な方法は、stageプロパティを見ている:

init:回復が

indexを開始していない:インデックス・メタデータとコピーを読むこと

送信元から宛先へバイト

start:エンジンを始動する。

opening使用トランスログのインデックス:リプレイトランザクションログ

finalize:行わクリーンアップ:コンプリート

donedone状態ではない破片に関する完全な

パラメータactive_only戻っ情報:
http://127.0.0.1:9200/_recovery?active_only

+0

提案をいただきありがとうございます。私はそれを試してみましょう – antonbormotov

+0

もう一度感謝します。回復APIを使用しました。 – antonbormotov