配置项作用 #
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
配置建议 #
生产环境 #
PUT /_snapshot/backup
{
"type": "fs",
"settings": {
"location": "/mnt/easysearch/backup"
}
}
建议: 使用共享存储路径,确保所有节点可访问。
NAS 存储 #
PUT /_snapshot/nas_backup
{
"type": "fs",
"settings": {
"location": "/nas/easysearch/snapshots"
}
}
建议: 配置高性能 NAS,确保网络稳定性。
本地开发 #
PUT /_snapshot/local_backup
{
"type": "fs",
"settings": {
"location": "/tmp/easysearch/snapshots"
}
}
建议: 仅用于单节点开发环境。
多路径配置 #
# easysearch.yml
path.repo: ["/backup1", "/backup2", "/backup3"]
建议: 配置多个备用路径。
代码示例 #
创建基础仓库 #
PUT /_snapshot/my_backup
{
"type": "fs",
"settings": {
"location": "/backup/easysearch"
}
}
配置 path.repo #
# easysearch.yml
path.repo: ["/backup/easysearch", "/mnt/backup/easysearch"]
查看仓库 #
GET /_snapshot/_all
// 响应
{
"my_backup": {
"type": "fs",
"settings": {
"location": "/backup/easysearch"
}
}
}
创建快照 #
PUT /_snapshot/my_backup/snapshot_1?wait_for_completion=true
恢复快照 #
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%
├── 监控使用率
└── 及时扩容
备份策略:
├── 每日增量备份
├── 每周全量备份
├── 每月归档
└── 自动清理过期
注意事项 #
必须配置: 这是必需参数,不能省略。
需要重启: 修改此配置需要重启节点。
共享访问: 所有节点必须能访问此位置。
path.repo: 必须在 path.repo 允许的路径中。
目录存在: 目录必须预先创建。
权限正确: 运行用户必须有读写权限。
文件锁: 文件系统必须支持文件锁。
空间充足: 确保有足够的存储空间。
网络稳定: 使用网络存储时确保稳定性。
备份策略: 配合快照生命周期管理使用。
故障排查 #
常见问题排查
问题 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. 维护
├── 定期清理
├── 验证完整性
├── 测试恢复
└── 文档更新





