路径配置

路径配置 #

本页介绍 easysearch.yml 中与文件存储路径相关的配置项。这些都是静态设置,修改后需要重启节点生效。


path.data #

path.data: /data/easysearch/data
项目说明
参数path.data
默认值$ES_HOME/data
属性静态
说明索引数据的存储目录。Easysearch 的所有分片数据(Lucene 段文件、translog)都存储在此目录下。这是磁盘 I/O 最密集的路径

注意事项 #

  • 不要使用默认路径:默认路径在安装目录内($ES_HOME/data),升级时可能被覆盖。生产环境必须设置独立路径。
  • 目录权限:运行 Easysearch 的用户必须对该目录拥有读写权限。
  • 磁盘选择:建议使用 SSD 存储,可显著提升索引和查询性能。
  • 不要在多个节点之间共享:每个节点的 path.data 必须是独立的目录。

多路径(JBOD) #

支持配置多个数据路径,实现 JBOD(Just a Bunch of Disks)条带化,将分片分散到多块磁盘上:

# YAML 列表形式
path.data:
  - /data1/easysearch
  - /data2/easysearch
  - /data3/easysearch

多路径行为说明

  • Easysearch 会将不同的分片分配到不同的路径上。
  • 单个分片的所有文件始终存储在同一路径下,不会跨磁盘。
  • 磁盘空间的均衡取决于分片的大小和数量。
  • 如果其中一块磁盘故障,该磁盘上的所有分片都会不可用,但由于有副本机制,数据不会丢失。

如果需要磁盘级别的冗余,建议使用 RAID 或云盘。参见 RAID 配置


path.logs #

path.logs: /data/easysearch/logs
项目说明
参数path.logs
默认值$ES_HOME/logs
属性静态
说明日志文件的存储目录。包括主日志、慢日志、GC 日志等

注意事项 #

  • 同样不建议使用默认路径。
  • 日志目录应与数据目录分开,避免日志写入影响数据磁盘 I/O。
  • 确保有足够的磁盘空间存储日志,尤其在开启 DEBUG 日志时。

日志文件说明 #

文件说明
<cluster.name>.log主日志文件
<cluster.name>_server.jsonJSON 格式日志(便于日志采集)
<cluster.name>_deprecation.logAPI 弃用警告日志
<cluster.name>_slowlog.log慢查询/慢索引日志
gc.logJVM GC 日志

path.repo #

path.repo: ["/mnt/backup/easysearch"]
项目说明
参数path.repo
默认值未设置
属性静态
说明快照仓库的共享文件系统路径。使用 fs 类型的快照仓库时必须配置此项

注意事项 #

  • 该路径必须在所有 master 和 data 节点上都可访问(通常通过 NFS 共享挂载)。
  • 支持多个路径(YAML 列表形式)。
  • 创建快照仓库时指定的 location 必须是 path.repo 下的子目录。

使用示例 #

步骤 1:配置 path.repo(所有节点)

path.repo:
  - /mnt/nfs/backup
  - /mnt/nfs/archive

步骤 2:创建快照仓库

PUT /_snapshot/my_backup
{
  "type": "fs",
  "settings": {
    "location": "/mnt/nfs/backup/my_repo"
  }
}

path.shared_data #

path.shared_data: /data/easysearch/shared_data
项目说明
参数path.shared_data
默认值未设置
属性静态
说明集群内所有节点共享的数据目录(通常用于共享库、字典等)。可选配置

注意事项 #

  • 该路径应该在所有节点上都可访问,通常通过 NFS 挂载。
  • 主要用于存储需要在集群间共享的资源(如分析器字典、插件数据等)。

完整配置示例 #

生产环境(单磁盘) #

path.data: /data/easysearch/data
path.logs: /var/log/easysearch
path.repo: ["/mnt/nfs/easysearch-backup"]

生产环境(多磁盘 JBOD) #

path.data:
  - /data1/easysearch
  - /data2/easysearch
  - /data3/easysearch
  - /data4/easysearch
path.logs: /var/log/easysearch
path.repo: ["/mnt/nfs/backup"]

开发/测试环境 #

# 使用默认路径即可,无需显式配置
# path.data: data
# path.logs: logs

延伸阅读 #