集群一直处于创建快照中
当集群的“任务状态”长时间处于“创建快照中”,通常有以下两个比较常见的原因:
- 集群数据量大或负载高导致备份耗时长
当集群数据量庞大或集群本身负载(如高索引/查询压力)较高时,创建快照的过程会显著变慢。Elasticsearch和OpenSearch默认会限制单个节点的快照速度(通常为40MB/s),且整体快照性能高度依赖集群资源状况。在高负载下,快照耗时会更长。
解决方案:
- 查询进度:使用API检查快照状态和剩余工作。
GET _snapshot/repo_auto/{snapshot_name}替换{snapshot_name}为实际快照名。
在响应中查看shards_stats字段(或类似字段,取决于版本) 了解已完成shard数和总shard数。
- 选择处理方案。
- 等待:如果预计耗时可接受或集群负载后续会降低,可选择等待其完成。
- 终止:如果耗时过长不可接受,可调用删除快照API终止任务。
DELETE _snapshot/repo_auto/{snapshot_name}
- 查询进度:使用API检查快照状态和剩余工作。
- 快照状态更新失败
Elasticsearch和OpenSearch会将进行中的快照状态信息保存在cluster state中。快照完成后,需要更新cluster state中的状态。如果更新操作失败(例如,由于当时集群内存压力极大,导致更新cluster state的请求被线程池拒绝或处理超时),那么该快照在cluster state中的状态就会卡在“进行中”。
解决方案:
尝试调用删除快照API,即使状态显示卡住,删除操作通常也能被成功执行并清理残留状态。
DELETE _snapshot/repo_auto/{snapshot_name}