You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K8s集群Solr Cloud 9.5双节点备份不一致问题求助

双节点Solr Cloud 9.5备份不一致问题的原因及解决办法

单节点缺失备份的可能场景

  • 存储挂载或权限问题:Kubernetes里如果某个Solr节点的/var/solr/data/solr_backup存储卷挂载失败、权限不足(比如Solr进程没有写入权限),或者存储本身有IO故障,该节点就生成不了备份文件,但Solr Backup API默认只要leader完成备份就返回成功,不会等待所有follower确认。
  • 副本未同步:如果collection的某个副本处于未同步状态(比如节点重启后还没追上leader的最新数据、刚完成分片迁移),Solr会跳过这个副本的备份。
  • 异步执行特性:Solr的BACKUP是异步任务,API返回成功仅代表任务已提交,不代表所有节点都完成了备份。要是某个节点因CPU、内存不足导致备份任务卡壳或终止,就会出现单节点无备份的情况。
  • 节点进程异常:备份过程中某个Solr节点出现长时间GC停顿、进程假死,会直接中断备份任务,最终只有正常节点生成备份。

确保双节点都生成备份的方法

  • 强制等待所有副本完成备份:调用Backup API时加上waitForFinalState=true参数,该参数会让API等所有副本都完成备份后再返回响应,避免异步执行带来的不一致。完整请求如下:
    http://localhost:8982/solr/admin/collections?action=BACKUP&name=dc0b1b5e-4333-42f0-8b1b-5e4333d2f084&collection=dc0b1b5e-4333-42f0-8b1b-5e4333d2f084&location=file:///var/solr/data/solr_backup&waitForFinalState=true
    
  • 备份前检查副本同步状态:先调用REPLICATESTATUS动作确认所有副本都同步:
    http://localhost:8982/solr/admin/collections?action=REPLICATESTATUS&collection=dc0b1b5e-4333-42f0-8b1b-5e4333d2f084
    
    只有所有副本状态为active、复制状态为OK时,再执行备份操作。
  • 校验存储卷配置:在Kubernetes里保证两个Solr节点的/var/solr/data/solr_backup存储卷配置一致,检查挂载权限(Solr运行用户一般是solr,要确保该用户有读写权限),可以进入容器执行touch /var/solr/data/solr_backup/test.file验证写入能力。
  • 备份后添加校验步骤:备份完成后,逐个检查节点的/var/solr/data/solr_backup目录,确认对应备份文件夹是否存在,有缺失就重新触发备份,也可以用Kubernetes探针或自定义脚本实现自动化校验。
  • 调整节点资源配置:给每个Solr节点分配足够的CPU和内存,避免资源不足中断备份;同时调整JVM参数,降低GC停顿的概率。

内容的提问来源于stack exchange,提问作者teji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 19:37:27