📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

配置项作用 #

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: /data/easysearch

多磁盘部署(推荐):

path.data:
  - /mnt/disk1/easysearch
  - /mnt/disk2/easysearch
  - /mnt/disk3/easysearch

不同操作系统:

# 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 进程对数据目录有正确权限:

# 创建数据目录
sudo mkdir -p /data/easysearch

# 设置所有权
sudo chown -R easysearch:easysearch /data/easysearch

# 设置权限
sudo chmod 750 /data/easysearch

Docker 部署 #

# Docker Compose
version: '3'
services:
  easysearch:
    image: infinilabs/easysearch:latest
    volumes:
      - /mnt/disk1/easysearch:/usr/share/easysearch/data
    ports:
      - "9200:9200"

查看数据路径 #

# 通过 API 查看
GET /_nodes/settings?filter_path=**.path

# 输出示例
{
  "nodes": {
    "node_id": {
      "settings": {
        "path": {
          "data": ["/data/easysearch"]
        }
      }
    }
  }
}

磁盘空间管理 #

监控磁盘使用:

# 查看磁盘使用情况
GET /_cat/allocation?v&h=disk.used_percent

# 查看节点磁盘信息
GET /_nodes/stats/fs

磁盘水位线配置:

# 低水位线(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.homeEasysearch 安装目录启动路径
path.logs日志文件路径$ES_HOME/logs
path.repo快照仓库路径-
path.shared_data共享数据路径-

安全建议 #

  1. 独立磁盘:使用专用磁盘存储数据
  2. 定期备份:配置快照仓库定期备份
  3. 监控空间:监控磁盘使用情况
  4. 预留空间:保持至少 20% 可用空间
  5. 权限控制:限制数据目录访问权限

注意事项 #

  1. 静态配置:修改数据路径需要重启节点
  2. 数据迁移:修改路径后需要迁移现有数据
  3. 备份优先:修改配置前务必备份数据
  4. 路径检查:确保路径存在且权限正确
  5. 多路径要求:使用多路径时确保各磁盘独立