ES冷热分离架构设计:一招让你的ELK日志系统节省 50% 的硬盘成本

这篇具有很好参考价值的文章主要介绍了ES冷热分离架构设计:一招让你的ELK日志系统节省 50% 的硬盘成本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

首先抛出问题:对于热点搜索而言,最高效的存储手段是什么?

一味地堆硬件配置,不仅不能有效的解决问题,反而会让服务变得臃肿,集群变得累赘增加管理成本和硬件成本。

本文主要探讨关于热点数据的高效存储问题,讨论范围在数据持久化前提下,多级缓存暂不讨论。

1、冷热数据分离思想

冷热集群架构方案即我们常说的冷热数据分离。本质是针对不同访问频率的数据做分离存储,让访问量高的数据存放在性能更好的磁盘中,以实现更合理的资源分配和调度。

就实际而言,其实超过80%的请求,集中在20%的数据上,所以如果普遍采取廉价的机械磁盘存储,势必达不到良好的性能。而如果全面采用SSD做保证数据持久化存储,又会带来高昂的硬件成本,这其实完全没有必要。

这里有人提过质疑,说热数据做缓存就行了呀,费这个劲干啥?其实从原理上来说,冷热数据分离和多级缓存是非常类似的,一句话概括就是把更高频访问的数据,放在性能搞好的硬件上。但区别就是多级缓存是不考虑数据持久化的。

这种资源分层调度的思想应用其实非常广泛:
ES冷热分离架构设计:一招让你的ELK日志系统节省 50% 的硬盘成本
性能越快的硬件往往空间越少,以至于其只能把最高频使用的数据放进去,如CPU的L1、L2、L3三级缓存。性能递减,容量递增。上升到整个计算机层面,CPU到内存再到磁盘,也是速度递减,容量递增。本质上讲,就是把最常用的东西放在最近的位置。

举个通俗易懂的例子:

  • 我们睡觉的时候,都是把第二天要穿的衣服放在床边,床边是最方便的,但是床边就只能放这么一套衣服,放不了太多。
  • 如果向要换衣服,就要去衣柜里找,衣柜的空间更大,但是衣柜离我们更远,拿取衣服就需要翻箱倒柜(寻址)
  • 衣柜里也没你想要的衣服了,那你就要去商场里购买,商场里有足够多的衣服让你选,但是商场很远,你需要更多的时间来选衣服、把衣服运送过来。

这个例子可以看成是一个多级缓存的例子,在这里例子里,床边让你放衣服的椅子拿衣服是最快的,你可以看成是你的顶级缓存或一级缓存;衣柜可以看成是你的二级缓存,容量大一些,速度慢一些;而商场就是三级缓存,容量更大,速度更慢。如果把这个过程看成是计算机的CPU、内存到磁盘的过程。那么在商场中选购衣服可以看成是在磁盘中查找数据。选衣服的过程就是磁盘寻址,而把衣服拿回家,就是磁盘IO。

同样这个例子也可以是冷热数据分离的一个比喻,此时我们可以把数据划分为热数据、温数据、冷数据三个阶段。那么可以做如下类比:

  • 床边放衣服的椅子 => 热数据
  • 衣柜 => 温数据
  • 商场 => 冷数据

2、数据层:Data tiers

在 Elasticsearch 中,不同热度的数据,通过 Data tiers 来界定。数据层是具有相同数据角色的节点的集合,通常共享相同的硬件配置文件。根据不同的热度,ES 把数据层定义为四个阶段:

  • hot tier:处理时间序列数据(例如日志或指标)的索引负载,并保存您最近、最常访问的数据。
  • warm tier:保存访问频率较低且很少需要更新的时间序列数据。
  • cold tier:保存不经常访问且通常不更新的时间序列数据。
  • frozen tier:保存很少访问且从不更新的时间序列数据,保存在可搜索的快照中。

另外还有一个特殊的内容层

  • content tier:处理产品目录等内容的索引和查询负载。

当文档直接索引到特定 index 时,会永久保留在 content tier 节点上。

当文档索引到数据流时,数据最初驻留在 hot tier 节点上。

2.1 内容层:Content Tier

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

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

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

2.2 热数据层:Hot Tier

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

热层是必须的。作为数据流一部分的新索引会自动分配给热层。

2.3 温数据层:Warm Tier

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

2.4 冷数据层:Cold Tier

一旦数据不再被更新,它就可以从暖层移动到冷层,并在不经常被查询的情况下停留在那里。冷层仍然是响应式查询层,但冷层中的数据不会正常更新。随着数据转换到冷层,它可以被压缩和缩小。对于弹性,冷层可以使用完全安装的 可搜索快照索引,从而消除对副本的需求。

2.5 冻结层:Frozen Tier

一旦数据不再被查询或很少被查询,它可能会从冷层移动到冻结层,并在其余生中停留。

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

3、节点角色

根绝不同的数据层,ES 制定了不同的节点角色:

  • data_content
  • data_hot
  • data_warm
  • data_cold
  • data_frozen

3.1 内容节点

内容数据节点容纳用户创建的内容。它们支持 CRUD、搜索和聚合等操作。

要创建专用内容节点,在配置文件中设置:

node.roles: [ data_content ]

3.2 热数据节点

热数据节点在进入 Elasticsearch 时存储时间序列数据。热层对于读取和写入都必须快速,并且需要更多的硬件资源(例如 SSD 驱动器)。

要创建专用热节点,配置

node.roles: [ data_hot ]

3.3 温数据节点

暖数据节点存储不再定期更新但仍在查询的索引。查询量的频率通常低于索引处于热层时的频率。此层中的节点通常可以使用性能较低的硬件。

要创建一个专用的暖节点,

node.roles: [ data_warm ]

3.4 冷数据节点

冷数据节点存储访问频率较低的只读索引。该层使用性能较低的硬件,并且可以利用可搜索的快照索引来最小化所需的资源。

要创建专用冷节点,设置

node.roles: [ data_cold ]

3.5 冻结数据节点

冻结层 专门存储部分安装的索引。我们建议您在冻结层中使用专用节点。

要创建专用的冻结节点,设置文章来源地址https://www.toymoban.com/news/detail-448585.html

node.roles: [ data_frozen ]

到了这里,关于ES冷热分离架构设计:一招让你的ELK日志系统节省 50% 的硬盘成本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WordPress博客优化:四招让搜索引擎爱上你的网站

    作为一位自雇人士兼博客作者,长期以来,我运用WordPress构建并运营着自身的个人博客。近期,意识到其未能被搜索引擎充分收录,经过深入探究与实践,我总结出若干关键诱因与解决策略,以期能惠及广大WordPress使用者。 1.网站结构不合理 搜索引擎对于网站的结构及可访问

    2024年03月13日
    浏览(83)
  • 数据库调优--冷热分离

    目录 业务场景: 数据库分区技术: 数据库分区的优点: 缺点: 冷热分离的简介: 热数据 冷数据 冷热分离 什么情况下我们可以使用冷热分离: 冷热分离的实现思路: 一、冷热数据都用mysql         需要考虑的问题: 二、冷数据存放到hbase Hbase: 什么是非关系型数据库

    2024年02月11日
    浏览(43)
  • 华为云HBase冷热分离最佳实践

    本文分享自华为云社区 《华为云HBase 冷热分离最佳实践》,作者:pippo。 HBase是Hadoop Database的简称,是建立在Hadoop文件系统之上的分布式面向列的数据库,它具有高可靠、高性能、面向列和可伸缩的特性,提供快速随机访问海量数据能力。 HBase采用Master/Slave架构,由HMaster节

    2024年02月08日
    浏览(44)
  • ClickHouse多级磁盘和冷热数据分离实践

    特别注意 ck可以大小写区分也可以不区分 ck 配置文件中的各个卷的是有顺序的。 开启远程访问  vim /etc/clickhouse-server/config.xml 前言 ClickHouse 的冷热数据分离和ES的类似,可以选择冷数据跑在哪个数据目录上。 总的来说 ClickHouse 冷热存储架构的整体设计思想是:本地 SSD 存储查

    2024年02月10日
    浏览(49)
  • Apache Doris 2.0 冷热分离快速体验

    对于任何一种数据库类软件来说,无论其基于传统数据库模型还是基于分布式结构,作为核心的永远是数据本身。而数据的生命周期,则体现在CRUD操作(创建、查询、更新、删除)上。任何一条数据从其生成的时刻开始,数据价值随着时间的推移而逐渐降低,直至成为无用数

    2024年02月09日
    浏览(50)
  • 30个前端和设计必备网站,让你的工作更轻松!

    当今互联网时代,前端开发和设计领域变化迅速,每天都会有新技术和工具不断涌现。无论你是一名前端工程师还是一名设计师,都需要不断了解最新的前沿技术和工具。下面是30个前端和设计经常会用到的网站,以及每个网站的功能介绍。 链接:https://www.w3schools.com/ W3Scho

    2024年01月16日
    浏览(56)
  • 设计模式之策略模式:让你的代码灵活应对不同的算法

    作为一个程序员,我们经常会面临着在不同的情况下选择不同的算法来解决问题的需求。这种情况下,策略模式是一个非常有用的设计模式。在本文中,我将向你介绍策略模式的概念、结构以及如何应用这个模式来使你的代码更灵活。 策略模式是一种行为型设计模式,它允许

    2024年02月08日
    浏览(44)
  • QUiLoader:彻底分离你的Ui设计工作

    原文链接:https://blog.csdn.net/adonis1620/article/details/5794797 Trolltech提供的界面所见即所得工具designer极大的简化了开发者花费在UI布局上的时间。但一部分喜欢在终端上开发的工程师认为拖拖拉拉这种伎俩实在是”雕虫小技,壮夫不为“也。即使专门的界面设计师为他设计.ui文件的

    2024年02月15日
    浏览(47)
  • Nacos 注册中心的设计原理:让你的应用轻松实现高效注册与发现!

    当应用开始脱离单机运行和访问时,服务发现就诞生了。目前的网络架构是每个主机都有⼀个独立的 IP 地址,服务发现基本都是通过某种方式获取到服务所部署的 IP 地址。 DNS 协议是最早将⼀个网络名称翻译为网络 IP 的协议,在最初的架构选型中,DNS+LVS+Nginx 基本满足所有

    2024年02月10日
    浏览(60)
  • 【设计模式】模板方法模式--让你的代码更具灵活性与可扩展性

    在软件开发中,设计模式是一种经过实践检验的、可复用的解决方案,它们可以帮助我们解决某一特定领域的典型问题。设计模式不仅能提高代码的可读性、可维护性,还能让我们的代码更加灵活和易于扩展。在这个不断发展的技术世界中,了解并掌握设计模式对于软件开发

    2024年02月04日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包