暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Elasticsearh 多个数据路径(弃用)

原创 ByteHouse 2025-09-05
214

path.data

Elasticsearch 将您索引到索引和数据流的数据写入data目录。Elasticsearch 编写自己的应用程序日志,其中包含有关群集运行状况和操作的信息。logs目录。

适用于 macOS.tar.gz, Linux.tar.gz, 和 Windows.zip设施,data和logs是子目录ESHOME默认。然而,文件在ES_HOME默认。然而,文件在ES_HOME升级期间的风险删除。

在生产中,我们强烈建议您设置path.data和path.logs在elasticsearch.yml到以外的地点ESHOME..DockerDocker、Debian和RPM安装将数据写入并记录到外部的位置ES_HOME. .DockerDocker、Debian 和 RPM 安装将数据写入并记录到外部的位置ES_HOME默认。

支持path.data和path.logs值因平台而异:

Linux 和 macOS 的安装支持 Unix 风格的路径:

path:
  data: /var/data/elasticsearch
  logs: /var/log/elasticsearch

w 警告
不要修改数据目录中的任何内容或运行可能干扰其内容的进程。如果 Elasticsearch 之外的东西修改了数据目录的内容,那么 Elasticsearch 可能会失败,报告损坏或其他数据不一致,或者在默默地丢失了一些数据后,可能看起来正常工作。不要尝试获取数据目录的文件系统备份;没有支持的方法来恢复这样的备份。相反,使用 Snapshot 和还原以安全地进行备份。不要在数据目录上运行病毒扫描器。病毒扫描器可以阻止Elasticsearch正确工作,并可能修改数据目录的内容。数据目录不包含可执行文件,因此病毒扫描只会发现误报。

多个数据路径

w 警告
7.13.0的弃用。

如果需要,您可以在中指定多个路径path.data. .Elasticsearch 将节点的数据存储在所有提供的路径上,但将每个分片的数据保留在同一路径上。

Elasticsearch 不能平衡节点数据路径上的分片。单路径中的高磁盘使用率可能会触发整个节点的高磁盘使用水印。如果触发,Elasticsearch 不会向节点添加分片,即使节点的其他路径有可用的磁盘空间。如果您需要额外的磁盘空间,我们建议您添加新节点而不是额外的数据路径。
类Unix系统

Linux 和 macOS 安装支持多个 Unix 风格的路径path.data:

path:
  data:
    - /mnt/elasticsearch_1
    - /mnt/elasticsearch_2
    - /mnt/elasticsearch_3

从多个数据路径迁移

对多个数据路径的支持在7.13中被弃用,并将在未来的版本中删除。

作为多种数据路径的替代方案,您可以创建一个文件系统,该文件系统具有硬件虚拟化层(如RAID)或Linux或Windows上的存储空间上的逻辑卷管理器(LVM)等软件虚拟化层。如果您希望在单个计算机上使用多个数据路径,则必须为每个数据路径运行一个节点。

如果您目前在高可用性群集中使用多个数据路径,highly available cluster则可以迁移到使用每个节点的单个路径的设置,而不会停机,rolling restart使用类似于滚动重新启动的过程:依次关闭每个节点,并将其替换为每个节点配置为使用单个数据路径的一个或多个节点。更详细地说,对于当前具有多个数据路径的每个节点,您应该遵循以下过程。原则上,您可以在滚动升级到 8.0 期间执行此迁移,但我们建议在开始升级之前迁移到单数据路径设置。

step 1.创建快照,以保护您的数据,以防发生灾难。

step 2.可选地,allocation filter使用分配过滤器将数据从目标节点迁移出去:

    PUT _cluster/settings
     
    {
      "persistent": {
        "cluster.routing.allocation.exclude._name": "target-node-name"
      }
    }

您可以使用 cat assocument API 来跟踪此数据迁移的进度。如果某些分片不迁移,则群集分配解释 API 将帮助您确定原因。

step 3.rolling restart process按照滚动重启过程中的步骤进行,包括关闭目标节点。
step 4.确保您的集群健康yellow或green,因此有一个分配到集群中至少一个其他节点的每个分片的副本。
step 5.如果适用,请删除前面步骤中应用的分配过滤器。

PUT _cluster/settings
 
{
  "persistent": {
    "cluster.routing.allocation.exclude._name": null
  }
}

step 6.通过删除其数据路径的内容来丢弃被停止节点所持有的数据。

step 7.重新配置您的存储。例如,使用 LVM 或 Storage Spaces 将磁盘组合到单个文件系统中。确保重新配置的存储有足够的空间来保存数据。

step 8.通过调整节点重新配置节点path.dataset in 其elasticsearch.yml档案。如果需要,安装更多的节点,每个节点都有自己的path.data设置指向单独的数据路径。

step 9.启动新节点,rolling restart process然后按照滚动重新启动过程的其余部分进行操作。

step 10.确保您的集群健康green让每个碎片都被分配。

您也可以向群集添加一些单数据路径节点,allocation filters使用分配过滤器将所有数据迁移到这些新节点,然后从群集中删除旧节点。这种方法将暂时使群集的大小增加一倍,因此只有当您有能力像这样扩展群集时,它才会起作用。

如果您当前使用多个数据路径,但群集不高可用,则可以通过拍摄快照,创建具有所需配置的新群集并将快照还原到其中,从而迁移到非废弃配置。

最后修改时间:2025-09-05 21:43:47
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论