验证存储库完整性 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
描述
编辑此 API 允许您对存储库的内容进行全面检查,查找其数据或元数据中的任何异常,这些异常可能会阻止您从存储库恢复快照,或者可能会导致将来的快照创建或删除操作失败。
如果您怀疑其中一个快照存储库的内容完整性,请立即停止对此存储库的所有写入活动,将其 read_only
选项设置为 true
,并使用此 API 验证其完整性。在您这样做之前
如果 验证存储库完整性 API 发现您的存储库内容的完整性存在任何问题,Elasticsearch 将无法修复损坏。在存储库内容损坏后将其恢复到完全可工作状态的唯一方法是从 存储库备份(在损坏发生之前进行的备份)恢复其内容。您还必须确定导致损坏的原因并采取措施防止再次发生。
如果您无法恢复存储库备份,请 注册一个新的存储库 并将其用于所有将来的快照操作。在某些情况下,可以通过 恢复 尽可能多的快照并 创建新快照 已恢复的数据,或者使用 重新索引 API 从损坏的存储库中挂载的任何 可搜索快照 复制数据来恢复损坏存储库的部分内容。
在 验证存储库完整性 API 运行期间,避免所有写入存储库的操作。如果在完整性验证运行期间某些内容更改了存储库内容,则 Elasticsearch 可能会错误地报告已检测到其内容中的某些异常,这是由于并发写入造成的。它也可能错误地未能报告并发写入阻止其检测到的某些异常。
此 API 旨在供人类进行探索性使用。您应该预计请求参数和响应格式在将来的版本中会有所不同。
此 API 在混合版本集群中可能无法正常工作。
路径参数
编辑-
<repository>
- (必需,字符串) 要验证其完整性的快照存储库的名称。
查询参数
编辑此 API 参数的默认值旨在限制完整性验证对集群中其他活动的影响。例如,默认情况下,它最多只会使用一半的 snapshot_meta
线程来验证每个快照的完整性,允许其他快照操作使用线程池的另一半。
如果您修改这些参数以加快验证过程,则可能会中断集群中的其他与快照相关的操作。对于大型存储库,请考虑只为运行完整性验证 API 设置一个单独的单节点 Elasticsearch 集群。
-
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
- (对象) 如果分析遇到阻止其成功完成的异常,则该异常将在此处报告。