2016-08-10 3 views
1

Предположим, вам необходимо автоматизировать восстановление моментальных снимков из двух или более снимков в эластичный кластер.
Необходимо определить, что операция моментального снимка завершена до следующего вызова api: _snaphot/<repository>/<snapshot>/_restore.
Если я позвоню в то время как снимок восстановления, кассетные ответы 503.Elasticsearch: получить текущую операцию моментального снимка

Я пытался использовать пул потоков API с запуском операции снимка:
curl -XGET 'http://127.0.0.1:9200/_cat/thread_pool?h=snapshot.active Но, она возвращает 0 в любом случае.

Что такое правильный способ получения информации о текущей операции восстановления?

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.

Самый простой способ сделать это, глядя на stage собственности:

init: Восстановление не началось

index: Чтение индекса мета-данных и копирование байтов от источника к месту назначения

start: Запуск двигателя;

opening индекс для использования транслогарифмического: Воспроизведение журнала транзакций

finalize: Cleanup сделано: Полный

done: Полное

Параметр active_only возвращает информацию о осколками, которые не в done состоянии:
http://127.0.0.1:9200/_recovery?active_only

+0

Спасибо за предложение, позвольте мне проверить его – antonbormotov

+0

еще раз спасибо, я использовал восстановление api, см. Пример, который я добавил к вопросу. – antonbormotov

Смежные вопросы