📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

验证指定的快照仓库,检查其配置、存储访问和完整性。

API 格式 #

POST /_snapshot/{repository}/_verify

API 作用 #

该 API 用于验证快照仓库的健康状态:

  • 验证仓库配置是否正确
  • 检查底层存储系统是否正常工作
  • 确认仓库可以被访问用于快照操作
  • 验证所有仓库设置和参数

API 参数 #

路径参数 #

参数类型是否必填默认值描述
{repository}String-要验证的快照仓库名称

查询参数 #

参数类型是否必填默认值描述
timeoutTime30s操作超时时间
master_timeoutTime30s连接主节点的超时时间

请求示例 #

验证指定仓库 #

POST /_snapshot/my_backup/_verify

设置超时时间 #

POST /_snapshot/my_backup/_verify?timeout=5m

响应示例 #

成功响应 #

{
  "verified": true,
  "repository": "my_backup",
  "verified_at": "2026-02-04T10:00:00Z",
  "checks": {
    "repository_exists": true,
    "storage_accessible": true,
    "configuration_valid": true,
    "permissions_ok": true
  },
  "details": {
    "location": "/mnt/backup/my_backup",
    "type": "fs",
    "size": "1.5GB",
    "snapshot_count": 5
  }
}

错误响应 #

{
  "error": {
    "root_cause": [
      {
        "type": "repository_exception",
        "reason": "failed to verify repository [my_backup]"
      }
    ],
    "type": "repository_exception",
    "reason": "failed to verify repository [my_backup]",
    "caused_by": {
      "type": "io_exception",
      "reason": "No such file or directory"
    }
  }
}

响应字段说明 #

成功响应字段 #

字段类型描述
verifiedBoolean仓库验证是否成功
repositoryString被验证的仓库名称
verified_atString验证时间戳
checksObject各项检查结果
detailsObject验证成功时的仓库详情

检查结果 (checks) #

字段类型描述
repository_existsBoolean仓库是否存在于集群中
storage_accessibleBoolean底层存储是否可访问
configuration_validBoolean所有仓库设置是否有效
permissions_okBoolean节点是否有访问存储的适当权限

仓库详情 (details) #

字段类型描述
locationString仓库存储路径
typeString仓库类型(如 fss3azure 等)
sizeString仓库大小
snapshot_countInteger仓库中的快照数量

使用场景 #

  1. 部署前检查:在创建关键快照之前验证仓库
  2. 健康监控:定期检查仓库健康状态
  3. 故障排查:当快照操作失败时验证仓库
  4. 仓库迁移:将仓库移动到新存储后进行验证

验证检查项目 #

API 执行以下验证:

  1. 仓库存在性:确认仓库在集群配置中存在
  2. 存储可访问性:验证底层存储可以访问
  3. 配置有效性:检查所有仓库设置正确
  4. 权限检查:确认节点有访问存储的权限

错误条件 #

验证可能因以下原因失败:

  • 仓库不存在
  • 存储路径不可访问
  • 网络连接问题(对于远程存储)
  • 权限不足
  • 配置参数无效

相关操作 #

  • PUT /_snapshot/{repository}:创建快照仓库
  • GET /_snapshot/{repository}:查询仓库信息
  • POST /_snapshot/{repository}/_cleanup:清理仓库
  • POST /_snapshot/{repository}/{snapshot}:创建快照

最佳实践 #

  1. 使用前验证:创建关键快照前始终验证仓库
  2. 定期检查:定期验证仓库以发现存储问题
  3. 错误处理:检查响应中是否有失败的验证项
  4. 存储监控:结合存储监控系统进行全面健康检查

注意事项 #

  1. 只读操作:验证操作不会修改仓库数据
  2. 执行时间:大型仓库的验证可能需要较长时间
  3. 并发操作:验证期间可能影响其他快照操作
  4. 网络依赖:对于云存储,验证需要网络连接

实现文件 #

  • REST 处理器RestVerifyRepositoryAction.java
  • Transport ActionTransportVerifyRepositoryAction.java
  • 请求类VerifyRepositoryRequest.java
  • 响应类VerifyRepositoryResponse.java
  • 结果类RepositoryVerificationResult.java