【问题标题】:Elasticsearch backup only hot indicesElasticsearch 只备份热索引
【发布时间】:2021-11-06 19:41:13
【问题描述】:

我有一个由 6 个节点组成的 elastiсsearch 集群。 每天创建 5 个索引(每个索引消耗大约 10 到 250 GB) 我们现在有一个快照存储库(位于 NFS 共享上),这些索引每天都会在其中备份,但事实是,在一年内,这个快照存储库开始重达 40 TB,而事实是这些是支付日志法律要求在我的国家/地区存储 2 年,但我们在 NFS 上没有那么多空间,当 NFS 共享出现错误并且我们的快照存储库被损坏并且我们无法恢复它时,我们发生了一个事件 然后我想改变备份过程,制作一个每天都会出现的脚本

  1. 在 NFS 共享上创建一个具有当前日期的新文件夹 (logz-backup-Year-Month-Day)
  2. 将快照存储库注册到此文件夹
  3. 拍摄快照
  4. 从 elasticsearch 中删除快照存储库
  5. 从文件夹中存档

但问题是每次备份到新的快照存储库时,Elasticsearch 都会对内容进行完整备份,我怎样才能使弹性搜索只将新索引备份到新的快照存储库?我听说过https://www.elastic.co/guide/en/cloud/current/ec-getting-started-profiles-hot-warm.html,是否可以在前 24 小时内(用于备份)做一些索引很热的事情,如果它早于一天,它们就会切换到温暖状态,这样它们就不会被备份到新快照存储库? P.S 我尝试使用 gzip 压缩我的 elasticsearch 存储库文件夹,并且得到了明显的压缩(从 40 TB 到原来是 20 TB)

【问题讨论】:

    标签: elasticsearch devops


    【解决方案1】:

    首先,如果您使用相同的存储库,快照始终是增量的,即并非每次都执行完整备份。只有第一次,所有索引都会被快照,然后在每个新的快照操作上只备份差异。

    您每次都进行完整备份的原因是您每次都创建一个新的快照存储库(第 2 点)。这是对资源的浪费,并且快照/还原并非旨在以这种方式使用。昨天已创建快照的索引,自上次创建快照后不再向其写入任何内容,今天将不会再次创建快照。这就是增量快照的全部意义所在。

    由于快照是增量的,因此只保留少数快照(例如最后 50 或 100 个快照)很有用。例如,这就是在 Elastic Cloud 上实现的。

    为了帮助您解决此问题,您可以利用 Snapshot Lifecycle Management(简称 SLM)。因此,在 NFS 上 create your repository 之后,您可以简单地 set up a snapshot policy 在其中定义过期时间以及要保留的最小和最大快照数。这样您就可以始终控制存储库大小,即存储库大小将非常接近集群的实际大小(稍大一点,但不会大 10 倍)。

    【讨论】:

    • 这个运气好吗?
    猜你喜欢
    • 1970-01-01
    • 2017-03-10
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 2019-10-14
    • 1970-01-01
    • 2018-11-15
    相关资源
    最近更新 更多