数据层编辑

数据层是具有相同数据角色的节点集合,这些节点通常共享相同的硬件配置文件

  • 内容层节点处理内容(例如产品目录)的索引和查询负载。
  • 热层节点处理时间序列数据(例如日志或指标)的索引负载,并保存您最新、最常访问的数据。
  • 温层节点保存访问频率较低且很少需要更新的时间序列数据。
  • 冷层节点保存不常访问且通常不更新的时间序列数据。为了节省空间,您可以将完全挂载的索引可搜索快照)保留在冷层上。这些完全挂载的索引无需副本,与常规索引相比,所需的磁盘空间减少了约 50%。
  • 冻结层节点保存很少访问且从不更新的时间序列数据。冻结层专门存储部分挂载的索引可搜索快照)。这进一步扩展了存储容量,与温层相比,最多可扩展 20 倍。

Elasticsearch 节点的性能通常受到底层存储性能的限制。查看我们针对索引搜索优化存储的建议。

Elasticsearch 通常希望数据层内的节点共享相同的硬件配置文件。不遵循此建议的变化应谨慎设计,以避免热点

当您将文档直接索引到特定索引时,它们将无限期地保留在内容层节点上。

当您将文档索引到数据流时,它们最初驻留在热层节点上。您可以配置索引生命周期管理 (ILM) 策略,以根据您的性能、弹性和数据保留要求自动将时间序列数据在热层、温层和冷层之间转换。

内容层编辑

存储在内容层中的数据通常是项目的集合,例如产品目录或文章存档。与时间序列数据不同,内容的价值随着时间的推移保持相对恒定,因此在内容老化时将其移动到具有不同性能特征的层没有意义。内容数据通常具有较长的数据保留要求,并且您希望能够快速检索项目,而不管它们有多旧。

内容层节点通常针对查询性能进行了优化,它们优先考虑处理能力而不是 IO 吞吐量,因此它们可以处理复杂的搜索和聚合并快速返回结果。虽然它们也负责索引,但内容数据的摄取速率通常不如日志和指标等时间序列数据高。从弹性的角度来看,应将此层中的索引配置为使用一个或多个副本。

内容层是必需的。系统索引和其他不属于数据流的索引将自动分配给内容层。

热层编辑

热层是 Elasticsearch 时间序列数据的入口点,并保存您最新、最常搜索的时间序列数据。热层中的节点需要快速读取和写入,这需要更多的硬件资源和更快的存储(SSD)。为了实现弹性,应将热层中的索引配置为使用一个或多个副本。

热层是必需的。属于数据流的新索引会自动分配给热层。

温层编辑

当时间序列数据的查询频率低于热层中最近索引的数据时,它可以移动到温层。温层通常保存最近几周的数据。仍然允许更新,但可能不频繁。温层中的节点通常不需要像热层中的节点那样快。为了实现弹性,应将温层中的索引配置为使用一个或多个副本。

冷层编辑

当您不再需要定期搜索时间序列数据时,它可以从温层移动到冷层。虽然仍然可以搜索,但此层通常针对较低的存储成本而不是搜索速度进行了优化。

为了更好地节省存储空间,您可以将完全挂载的索引可搜索快照)保留在冷层上。与常规索引不同,这些完全挂载的索引不需要副本即可实现可靠性。如果发生故障,它们可以从基础快照中恢复数据。这可能会使数据所需的本地存储空间减半。要在冷层中使用完全挂载的索引,需要一个快照存储库。完全挂载的索引是只读的。

或者,您可以使用冷层来存储带有副本的常规索引,而不是使用可搜索快照。这使您可以在成本更低的硬件上存储旧数据,但与温层相比,不会减少所需的磁盘空间。

冻结层编辑

一旦数据不再被查询,或者很少被查询,它可能会从冷层移动到冻结层,并在那里度过余生。

冻结层需要一个快照存储库。冻结层使用部分挂载的索引从快照存储库存储和加载数据。这降低了本地存储和运营成本,同时仍然允许您搜索冻结数据。因为 Elasticsearch 有时必须从快照存储库中获取冻结数据,所以在冻结层上的搜索通常比在冷层上慢。

在 Elasticsearch Service 或 Elastic Cloud Enterprise 上配置数据层编辑

Elastic Cloud 部署的默认配置包括用于热数据和内容数据的共享层。此层是必需的,无法删除。

要在创建部署时添加温层、冷层或冻结层

  1. 创建部署页面上,单击高级设置
  2. 单击要添加的任何数据层的+ 添加容量
  3. 单击页面底部的创建部署以保存您的更改。
Elastic Cloud’s deployment Advanced configuration page

要将数据层添加到现有部署

  1. 登录到Elastic Cloud 控制台
  2. 部署页面上,选择您的部署。
  3. 在您的部署菜单中,选择编辑
  4. 单击要添加的任何数据层的+ 添加容量
  5. 单击页面底部的保存以保存您的更改。

要删除数据层,请参阅禁用数据层

为自管部署配置数据层编辑

对于自管部署,每个节点的数据角色都在elasticsearch.yml中配置。例如,集群中性能最高的节点可以同时分配给热层和内容层

node.roles: ["data_hot", "data_content"]

我们建议您在冻结层中使用专用节点

数据层索引分配编辑

默认情况下,当您创建索引时,Elasticsearch 会将index.routing.allocation.include._tier_preference设置为data_content,以自动将索引分片分配给内容层。

默认情况下,当 Elasticsearch 创建索引作为数据流的一部分时,Elasticsearch 会将index.routing.allocation.include._tier_preference设置为data_hot,以自动将索引分片分配给热层。

您可以显式设置index.routing.allocation.include._tier_preference以选择退出默认的基于层的分配。

自动数据层迁移编辑

ILM 使用迁移操作自动将托管索引在可用数据层之间转换。默认情况下,此操作会自动注入到每个阶段。您可以使用"enabled": false显式指定迁移操作以禁用自动迁移,例如,如果您使用分配操作手动指定分配规则。