Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›REST API ›API снимков и восстановления

API проверки целостности репозитория

Новая справка по API

Для получения самых последних данных об API обратитесь к API снимков и восстановления.

Проверяет целостность содержимого репозитория снимков.

resp = client.snapshot.repository_verify_integrity(
    name="my_repository",
)
print(resp)
const response = await client.snapshot.repositoryVerifyIntegrity({
  name: "my_repository",
});
console.log(response);
POST /_snapshot/my_repository/_verify_integrity

Запрос

POST /_snapshot/<repository>/_verify_integrity

Предварительные условия

  • Если функции безопасности Elasticsearch включены, у вас должна быть привилегия manage cluster, чтобы использовать этот API. Дополнительная информация представлена в разделе Привилегии безопасности.

Описание

Этот API позволяет выполнить полную проверку содержимого репозитория, обнаруживая любые аномалии в данных или метаданных, которые могут помешать восстановлению снимков из репозитория или привести к сбоям будущих операций создания или удаления снимков.

Если вы подозреваете целостность содержимого одного из ваших репозиториев снимков, немедленно прекратите все операции записи в этот репозиторий, установите его read_only значение на true, и используйте этот API для проверки его целостности. До тех пор:

  • Возможно, невозможно будет восстановить некоторые снимки из этого репозитория.
  • Поисковые снимки могут сообщать об ошибках при поиске или иметь неназначенные фрагменты.
  • Создание снимков в этот репозиторий может завершиться ошибкой или показаться успешным, но созданный снимок будет невосстановим.
  • Удаление снимков из этого репозитория может завершиться ошибкой или показаться успешным, но подлежащие данные останутся на диске.
  • Продолжение записи в репозиторий, находящийся в некорректном состоянии, может привести к дополнительным повреждениям его содержимого.

Если API проверки целостности репозитория обнаружит проблемы с целостностью содержимого вашего репозитория, Elasticsearch не сможет исправить повреждения. Единственный способ вернуть репозиторий в полностью рабочее состояние после повреждения его содержимого — это восстановить его содержимое из бэкапа репозитория, сделанного до повреждения. Вам также необходимо определить причину повреждения и принять меры для предотвращения его повторного возникновения.

Если вы не можете восстановить бэкап репозитория, зарегистрируйте новый репозиторий и используйте его для всех будущих операций со снимками. В некоторых случаях возможно восстановить часть содержимого поврежденного репозитория, либо путем восстановления необходимого количества снимков и создания новых снимков восстановленных данных, или путем использования API переиндексации для копирования данных из любых поисковых снимков, подключенных к поврежденному репозиторию.

Избегайте всех операций записи в репозиторий во время выполнения API проверки целостности репозитория. Если что-то изменит содержимое репозитория во время проверки целостности, Elasticsearch может ошибочно сообщить о некоторых аномалиях в его содержимом из-за одновременных записей. Также возможны ошибки в определении аномалий, которые были предотвращены одновременными записями.

Этот API предназначен для исследовательского использования человеком. Следует ожидать изменения параметров запроса и формата ответа в будущих версиях.

Этот API может не работать корректно в кластере смешанных версий.

Параметры пути

<repository>
(Обязательно, строка) Имя репозитория снимков, целостность которого нужно проверить.

Параметры запроса

Значения параметров по умолчанию для этого API предназначены для ограничения влияния проверки целостности на другие задачи в вашем кластере. Например, по умолчанию он будет использовать не более половины snapshot_meta потоков для проверки целостности каждого снимка, что позволит другим операциям со снимками использовать другую половину этого пула потоков.

Если вы измените эти параметры для ускорения процесса проверки, вы рискуете нарушить другие операции, связанные со снимками, в вашем кластере. Для больших репозиториев рассмотрите возможность создания отдельного кластера Elasticsearch с одним узлом только для выполнения API проверки целостности.

snapshot_verification_concurrency
(Необязательно, целое число) Указывает количество снимков, которые будут проверены одновременно. По умолчанию это 0, что означает использование не более половины snapshot_meta пула потоков за раз.
index_verification_concurrency
(Необязательно, целое число) Указывает количество индексов, которые будут проверены одновременно. По умолчанию это 0, что означает использование всего snapshot_meta пула потоков.
meta_thread_pool_concurrency
(Необязательно, целое число) Указывает максимальное количество операций метаданных снимков, которые будут выполняться одновременно. По умолчанию это 0, что означает использование не более половины snapshot_meta пула потоков за раз.
index_snapshot_verification_concurrency
(Необязательно, целое число) Указывает максимальное количество снимков индексов, которые будут проверены одновременно в каждой проверке индекса. По умолчанию это 1.
max_failed_shard_snapshots
(Необязательно, целое число) Ограничивает количество сбоев снимка фрагмента, отслеживаемых во время проверки целостности, чтобы избежать чрезмерного использования ресурсов. Если ваш репозиторий содержит больше этого количества сбоев снимков фрагментов, проверка завершится ошибкой. По умолчанию это 10000.
verify_blob_contents
(Необязательно, булево) Указывает, нужно ли проверять контрольную сумму каждого блока данных в репозитории. По умолчанию это false. Если эта функция включена, Elasticsearch будет читать всё содержимое репозитория, что может быть очень медленным и дорогостоящим.
blob_thread_pool_concurrency
(Необязательно, целое число) Если ?verify_blob_contents равно true, этот параметр указывает количество блоков, которые будут проверены одновременно. По умолчанию это 1.
max_bytes_per_sec
(Необязательно, единицы измерения размера) Если ?verify_blob_contents равно true, этот параметр указывает максимальный объем данных, который Elasticsearch будет читать из репозитория каждую секунду. По умолчанию это 10mb.

Тело ответа

Ответ содержит подробности реализации анализа, которые могут изменяться от версии к версии. Поэтому формат тела ответа не считается стабильным и может отличаться в более новых версиях.

log

(массив) Последовательность объектов, которые сообщают о ходе анализа.

Свойства log
timestamp_in_millis
(целое число) Маркер времени этой записи журнала, представленный в виде числа миллисекунд с момента начала эпохи Unix.
timestamp
(строка) Маркер времени этой записи журнала, представленный в виде строки, отформатированной в соответствии с ISO 8601. Включается только если установлен флаг ?human.
snapshot
(объект) Если запись журнала относится к конкретному снимку, то снимок будет описан в этом объекте.
index
(объект) Если запись журнала относится к конкретному индексу, то индекс будет описан в этом объекте.
snapshot_restorability
(объект) Если запись журнала относится к возможности восстановления индекса, то подробности будут описаны в этом объекте.
anomaly
(строка) Если запись журнала относится к аномалии в содержимом репозитория, эта строка опишет аномалию.
exception
(объект) Если запись журнала относится к исключению, с которым столкнулась Elasticsearch во время проверки, подробности будут включены в этот объект.
results

(объект) Объект, описывающий окончательные результаты анализа.

Свойства results
status
(объект) Конечный статус задачи анализа.
final_repository_generation
(целое число) Номер генерации репозитория в конце анализа. Если во время анализа были внесены изменения в репозиторий, это значение будет отличаться от значения generation, указанного в статусе задачи, и анализ может обнаружить ложные аномалии из-за одновременных записей или даже не обнаружить некоторые аномалии в содержимом репозитория.
total_anomalies
(целое число) Общее количество аномалий, обнаруженных во время анализа.
result
(строка) Конечный результат анализа. Если содержимое репозитория кажется неповрежденным, это будет строка pass. Если этого поля нет или оно содержит другое значение, то содержимое репозитория не было полностью проверено.
exception
(объект) Если анализ столкнулся с исключением, которое помешало ему завершиться успешно, это исключение будет здесь указано.

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/verify-repo-integrity-api.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API