SolrCloud本地文件系统备份异常问题求助
Solr 8.11.1四节点ZK集群本地备份失败(NoSuchFileException)排查方案
问题背景
在Solr 8.11.1的4节点+ZK集群环境执行本地文件系统备份时失败,报错java.nio.file.NoSuchFileException,但相同操作在2节点+独立ZK环境可正常完成。备份执行步骤:
- 在solr.xml中配置
<str name="allowPaths">*</str> - 所有节点创建
server/butest2目录 - 执行备份命令:
curl 'http://XXX:8983/solr/admin/collections?action=BACKUP&name=testback2&collection=backuptest&location=butest2'
可能原因及排查解决步骤
1. 目录权限不匹配
- 检查所有节点上
server/butest2目录的所属用户/组是否与Solr进程运行用户一致。Solr进程需要对该目录有读写权限,否则创建子目录(如testback2/backuptest)时会触发权限错误。 - 验证命令:
# 查看Solr进程运行用户 ps aux | grep solr | grep -v grep # 查看目录权限信息 ls -ld /XXX/solr-8.11.1/server/butest2 - 解决:若权限不符,修改目录所属用户/组:
chown solr:solr /XXX/solr-8.11.1/server/butest2
2. 相对路径解析逻辑差异
集群环境下,Solr节点对location参数的相对路径解析可能基于Solr启动目录而非server目录。比如若从solr-8.11.1根目录启动Solr,相对路径butest2会被解析到根目录下,而非server/butest2。
- 验证:替换为绝对路径执行备份:
curl 'http://XXX:8983/solr/admin/collections?action=BACKUP&name=testback2&collection=backuptest&location=/XXX/solr-8.11.1/server/butest2' - 注意:所有节点的绝对路径必须完全一致,否则部分节点会找不到目标目录。
3. ZK集群的分布式协调异常
四节点集群中,备份操作需要ZK协调所有分片副本完成备份,若某节点的ZK客户端连接异常,会导致目录创建同步失败。
- 排查:
- 查看所有Solr节点的日志(
server/logs/solr.log),搜索zk_backup相关报错,确认是否存在ZK连接超时或权限问题。 - 检查ZK集群状态,确保所有ZK节点正常运行,Solr节点能正常连接ZK集群。
- 查看所有Solr节点的日志(
4. 指定分片副本的目录问题
报错中明确指向backuptest_shard3_replica_n10备份失败,单独检查该副本所在节点:
- 确认该节点的
server/butest2目录是否存在、权限是否正确。 - 手动创建
/XXX/solr-8.11.1/server/butest2/testback2/backuptest目录后,重新执行备份命令,验证是否能绕过目录创建失败的问题。
验证优先级
优先尝试使用绝对路径执行备份,同时确保所有节点目标目录权限正确;若仍失败,查看对应节点的Solr日志,定位具体是哪个环节的目录创建失败。
内容的提问来源于stack exchange,提问作者katja
相关产品推荐
相关产品推荐

