--- title: "文件系统仓库位置配置" date: 2026-03-27 lastmod: 2026-03-27 description: "repositories.fs.location 配置项用于指定文件系统仓库的存储位置路径。" tags: ["Repositories", "快照", "路径配置", "备份"] summary: "配置项作用 # repositories.fs.location 配置项用于指定文件系统仓库的存储位置路径。 这是配置文件系统快照仓库的必需参数,指定了快照数据存储的根目录。所有节点都必须能够访问此位置。 配置项属性 # 配置路径: repositories.fs.location 数据类型: String(文件路径字符串) 默认值: 无(必须配置) 是否可选: 否(必需参数) 作用域: NodeScope(节点级别) 动态更新: 否(需要重启节点生效) 配置项详解 # 工作机制 # 仓库位置机制 配置位置: repositories.fs.location: /backup/easysearch │ ├── 必须配置 ❌ ├── 指向共享存储 └── 所有节点可访问 目录结构: /backup/esearch/ ├── indices/ # 索引数据 │ ├── index-0/ │ │ ├── 0/ │ │ │ ├── index-0 │ │ │ └── ... │ └── ... ├── meta-*/ # 元数据文件 │ ├── global-*." --- ## 配置项作用 `repositories.fs.location` 配置项用于指定**文件系统仓库的存储位置路径**。 这是配置文件系统快照仓库的必需参数,指定了快照数据存储的根目录。所有节点都必须能够访问此位置。 ## 配置项属性 - **配置路径**: `repositories.fs.location` - **数据类型**: `String`(文件路径字符串) - **默认值**: 无(必须配置) - **是否可选**: **否**(必需参数) - **作用域**: NodeScope(节点级别) - **动态更新**: **否**(需要重启节点生效) ## 配置项详解 ## 工作机制 ``` 仓库位置机制 配置位置: repositories.fs.location: /backup/easysearch │ ├── 必须配置 ❌ ├── 指向共享存储 └── 所有节点可访问 目录结构: /backup/esearch/ ├── indices/ # 索引数据 │ ├── index-0/ │ │ ├── 0/ │ │ │ ├── index-0 │ │ │ └── ... │ └── ... ├── meta-*/ # 元数据文件 │ ├── global-*.meta │ └── ... └── snapshot-*/ # 快照元数据 ├── snap-*.data └── ... 所有节点必须能够: ├── 读取此路径 ├── 写入此路径 └── 同时访问 ``` ## 与 path.repo 的关系 ``` path.repo 验证机制 path.repo 配置: path.repo: ["/backup", "/mnt/backup"] 验证规则: 1. location 必须在 path.repo 列表中 location: /backup/easysearch ├── 匹配: /backup ✅ └── 允许 2. location 不在 path.repo 中 location: /other/backup ├── 不匹配 └── 拒绝 ❌ 3. path.repo 未配置 location: /backup/easysearch ├── 必须是绝对路径 └── 某些系统可能允许 安全性: ├── path.repo: 限制仓库可用的根目录 ├── location: 指定具体仓库路径 └── 双重控制 ✅ ``` ## 共享文件系统要求 ``` 共享文件系统要求 必需条件: ├── 所有节点可访问 ├── 读写权限 ├── 文件锁支持 └── 原子操作支持 推荐配置: ├── NAS (网络附加存储) ├── SAN (存储区域网络) ├── NFS (网络文件系统) ├── 共享块存储 └── 其他 POSIX 兼容文件系统 避免使用: ├── 本地磁盘 (非共享) ├── 不一致的网络文件系统 ├── 无锁支持的文件系统 └── 对象存储挂载点 ❌ 权限配置: ├── 所有节点相同用户 ├── 目录权限: 755 (drwxr-xr-x) ├── 文件权限: 644 (rw-r--r--) └── 所有权: easysearch:easysearch ``` ## 配置建议 ## 生产环境 ```json PUT /_snapshot/backup { "type": "fs", "settings": { "location": "/mnt/easysearch/backup" } } ``` **建议**: 使用共享存储路径,确保所有节点可访问。 ## NAS 存储 ```json PUT /_snapshot/nas_backup { "type": "fs", "settings": { "location": "/nas/easysearch/snapshots" } } ``` **建议**: 配置高性能 NAS,确保网络稳定性。 ## 本地开发 ```json PUT /_snapshot/local_backup { "type": "fs", "settings": { "location": "/tmp/easysearch/snapshots" } } ``` **建议**: 仅用于单节点开发环境。 ## 多路径配置 ```yaml # easysearch.yml path.repo: ["/backup1", "/backup2", "/backup3"] ``` **建议**: 配置多个备用路径。 ## 代码示例 ## 创建基础仓库 ```json PUT /_snapshot/my_backup { "type": "fs", "settings": { "location": "/backup/easysearch" } } ``` ## 配置 path.repo ```yaml # easysearch.yml path.repo: ["/backup/easysearch", "/mnt/backup/easysearch"] ``` ## 查看仓库 ```json GET /_snapshot/_all // 响应 { "my_backup": { "type": "fs", "settings": { "location": "/backup/easysearch" } } } ``` ## 创建快照 ```json PUT /_snapshot/my_backup/snapshot_1?wait_for_completion=true ``` ## 恢复快照 ```json POST /_snapshot/my_backup/snapshot_1/_restore ``` ## 相关配置 | 配置项 | 作用 | 默认值 | |--------|------|--------| | `location` | 仓库位置 | 必须配置 | | `compress` | 元数据压缩 | false | | `chunk_size` | 分块大小 | Long.MAX_VALUE | | `path.repo` | 允许的根路径 | - | ## 使用场景 ## 推荐配置场景 - **生产备份**: 专用备份存储 - **灾难恢复**: 异地备份存储 - **开发测试**: 本地临时存储 ## 存储规划 ``` 存储规划建议 生产环境: /backup/easysearch/ ├── prod/ │ ├── daily/ │ ├── weekly/ │ └── monthly/ └── archive/ 容量规划: ├── 每日快照: 索引大小 × 保留天数 ├── 增长空间: 预留 50% ├── 监控使用率 └── 及时扩容 备份策略: ├── 每日增量备份 ├── 每周全量备份 ├── 每月归档 └── 自动清理过期 ``` ## 注意事项 1. **必须配置**: 这是必需参数,不能省略。 2. **需要重启**: 修改此配置需要重启节点。 3. **共享访问**: 所有节点必须能访问此位置。 4. **path.repo**: 必须在 path.repo 允许的路径中。 5. **目录存在**: 目录必须预先创建。 6. **权限正确**: 运行用户必须有读写权限。 7. **文件锁**: 文件系统必须支持文件锁。 8. **空间充足**: 确保有足够的存储空间。 9. **网络稳定**: 使用网络存储时确保稳定性。 10. **备份策略**: 配合快照生命周期管理使用。 ## 故障排查 ``` 常见问题排查 问题 1: 仓库创建失败 错误: location doesn't match any of the locations specified in path.repo 解决: ├── 配置 path.repo ├── 使用绝对路径 ├── 验证路径存在 └── 重启节点 问题 2: 节点无法访问 错误: failed to access repository 检查: ├── 路径存在性 ├── 挂载状态 ├── 网络连接 └── 权限设置 解决: ├── 检查挂载 ├── 修复网络 ├── 修改权限 └── 验证访问 问题 3: 快照失败 错误: failed to create snapshot 检查: ├── 磁盘空间 ├── 文件权限 ├── 锁问题 └── 网络问题 解决: ├── 清理空间 ├── 修复权限 ├── 检查文件系统 └── 修复网络 ``` ## 最佳实践 ``` 仓库配置最佳实践 1. 生产环境 location: /mnt/shared/easysearch/backup ├── 共享存储 ├── 冗余配置 ├── 定期测试恢复 └── 推荐 ✅ 2. 容量规划 ├── 当前数据 × 3 ├── 增长空间 ├── 监控告警 └── 及时扩容 3. 安全配置 ├── 限制访问 ├── 加密传输 ├── 备份加密 └── 权限控制 4. 监控 ├── 存储使用率 ├── 快照成功率 ├── 恢复测试 └── 性能指标 5. 维护 ├── 定期清理 ├── 验证完整性 ├── 测试恢复 └── 文档更新 ```