--- title: "数据存储路径配置" date: 2026-02-15 lastmod: 2026-02-15 description: "指定 Easysearch 数据文件存储路径的配置项说明" tags: ["存储配置", "数据管理", "路径配置"] summary: "配置项作用 # path.data 配置项指定 Easysearch 存储数据文件的目录路径。数据文件包括索引数据、分片数据、事务日志等所有持久化数据。 配置项类型 # 该配置项为静态配置,需要在启动时设置,修改后需要重启节点才能生效。 默认值 # $ES_HOME/data(Easysearch 安装目录下的 data 文件夹) 是否必需 # 可选配置项(有默认值,但生产环境强烈建议配置) 配置格式 # # 单个路径 path.data: /var/lib/easysearch # 多个路径(数组) path.data: - /mnt/disk1/easysearch - /mnt/disk2/easysearch - /mnt/disk3/easysearch 数据目录内容 # path.data 目录下的主要文件和文件夹: path.data/ ├── nodes/ │ └── 0/ # 节点 ID │ ├── indices/ # 索引数据 │ │ └── [index_uuid]/ │ │ └── [shard_id]/ │ │ ├── index/ # 分片索引文件 │ │ ├── translog/ # 事务日志 │ │ └── state/ # 分片状态 │ └── _state/ # 节点状态 └── [其他数据文件] 使用示例 # 单磁盘部署:" --- ## 配置项作用 `path.data` 配置项指定 Easysearch 存储数据文件的目录路径。数据文件包括索引数据、分片数据、事务日志等所有持久化数据。 ## 配置项类型 该配置项为**静态配置**,需要在启动时设置,修改后需要重启节点才能生效。 ## 默认值 ``` $ES_HOME/data(Easysearch 安装目录下的 data 文件夹) ``` ## 是否必需 **可选配置项**(有默认值,但生产环境强烈建议配置) ## 配置格式 ```yaml # 单个路径 path.data: /var/lib/easysearch # 多个路径(数组) path.data: - /mnt/disk1/easysearch - /mnt/disk2/easysearch - /mnt/disk3/easysearch ``` ## 数据目录内容 `path.data` 目录下的主要文件和文件夹: ``` path.data/ ├── nodes/ │ └── 0/ # 节点 ID │ ├── indices/ # 索引数据 │ │ └── [index_uuid]/ │ │ └── [shard_id]/ │ │ ├── index/ # 分片索引文件 │ │ ├── translog/ # 事务日志 │ │ └── state/ # 分片状态 │ └── _state/ # 节点状态 └── [其他数据文件] ``` ## 使用示例 **单磁盘部署:** ```yaml path.data: /data/easysearch ``` **多磁盘部署(推荐):** ```yaml path.data: - /mnt/disk1/easysearch - /mnt/disk2/easysearch - /mnt/disk3/easysearch ``` **不同操作系统:** ```yaml # Linux/Mac path.data: /var/lib/easysearch # Windows path.data: "C:\\ProgramData\\Easysearch\\data" # Docker 挂载卷 path.data: /usr/share/easysearch/data ``` ## 多路径配置优势 使用多个数据目录可以带来以下好处: 1. **提高存储容量**:利用多个磁盘的存储空间 2. **提升性能**:并行读写多个磁盘 3. **提高可用性**:单个磁盘故障不影响其他分片 4. **负载均衡**:分片数据自动分布到各路径 ## 推荐设置建议 **生产环境建议**:使用多个独立磁盘 | 场景 | 推荐配置 | 说明 | |-----|---------|------| | 小型部署 | 单路径 | 简化配置 | | 中型部署 | 2-3 个路径 | 提高性能和容量 | | 大型部署 | 3-6 个路径 | 最大化性能和可用性 | ## 多路径最佳实践 1. **独立磁盘**:每个路径应位于独立的物理磁盘 2. **相同容量**:各路径磁盘容量应相近 3. **相同性能**:各路径磁盘性能应相近 4. **避免共享**:不要使用同一磁盘的不同分区 5. **权限一致**:确保各路径权限正确配置 ## 存储空间规划 **最低要求:** - 开发/测试:至少 10GB 可用空间 - 生产环境:至少 100GB 可用空间 **推荐容量:** 根据数据量估算: ``` 数据大小 × 1.5(索引开销)× 2(操作空间)= 所需容量 ``` **示例:** - 100GB 原始数据 → 约 300GB 存储空间 - 1TB 原始数据 → 约 3TB 存储空间 ## 权限配置 确保 Easysearch 进程对数据目录有正确权限: ```bash # 创建数据目录 sudo mkdir -p /data/easysearch # 设置所有权 sudo chown -R easysearch:easysearch /data/easysearch # 设置权限 sudo chmod 750 /data/easysearch ``` ## Docker 部署 ```yaml # Docker Compose version: '3' services: easysearch: image: infinilabs/easysearch:latest volumes: - /mnt/disk1/easysearch:/usr/share/easysearch/data ports: - "9200:9200" ``` ## 查看数据路径 ```bash # 通过 API 查看 GET /_nodes/settings?filter_path=**.path # 输出示例 { "nodes": { "node_id": { "settings": { "path": { "data": ["/data/easysearch"] } } } } } ``` ## 磁盘空间管理 **监控磁盘使用:** ```bash # 查看磁盘使用情况 GET /_cat/allocation?v&h=disk.used_percent # 查看节点磁盘信息 GET /_nodes/stats/fs ``` **磁盘水位线配置:** ```yaml # 低水位线(85%) cluster.routing.allocation.disk.watermark.low: 85% # 高水位线(90%) cluster.routing.allocation.disk.watermark.high: 90% # 洪水阶段水位线(95%) cluster.routing.allocation.disk.watermark.flood_stage: 95% ``` ## 常见问题 **问题 1:磁盘空间不足** ``` Disk usage threshold exceeded ``` **解决方案:** 1. 清理旧数据 2. 扩容磁盘 3. 调整磁盘水位线配置 4. 删除不需要的索引 **问题 2:权限问题** ``` AccessDeniedException[/data/easysearch] ``` **解决方案:** 1. 检查目录权限 2. 确认运行用户身份 3. 修正目录所有权 **问题 3:多路径配置无效** 确保: 1. 各路径位于独立磁盘 2. 各路径权限一致 3. 路径格式正确 ## 相关配置项 | 配置项 | 作用 | 默认值 | |-------|------|-------| | `path.home` | Easysearch 安装目录 | 启动路径 | | `path.logs` | 日志文件路径 | $ES_HOME/logs | | `path.repo` | 快照仓库路径 | - | | `path.shared_data` | 共享数据路径 | - | ## 安全建议 1. **独立磁盘**:使用专用磁盘存储数据 2. **定期备份**:配置快照仓库定期备份 3. **监控空间**:监控磁盘使用情况 4. **预留空间**:保持至少 20% 可用空间 5. **权限控制**:限制数据目录访问权限 ## 注意事项 1. **静态配置**:修改数据路径需要重启节点 2. **数据迁移**:修改路径后需要迁移现有数据 3. **备份优先**:修改配置前务必备份数据 4. **路径检查**:确保路径存在且权限正确 5. **多路径要求**:使用多路径时确保各磁盘独立