--- title: "用 Easysearch 帮助大型车企降本增效" date: 2024-02-01 lastmod: 2024-02-01 description: "某汽车集团优化130TB的ES集群,采用Easysearch方案:近两天数据存本地,开启ZSTD压缩,每日快照备份至S3后删除索引,数据搜索直接从快照进行。迁移后存储节省50%,释放6台主机资源,有效缓解磁盘压力。" tags: ["Easysearch", "Console"] summary: "最近某头部汽车集团需要针对当前 ES 集群进行优化,背景如下: ES 用于支撑包括核心营销系统、管理支持系统、财务类、IT 基础设施类、研发、自动驾驶等多个重要应用,合计超 50 余套集群,累计数据超 1.5PB 。 本文针对其中一个 ES 集群进行分享,该集群原本使用的是 ES 7.3.2 免费版,数据已经 130TB 了,14 个节点。写入数据时经常掉节点,写入性能也不稳定,当天的数据写不完。迫切需要新的解决方案。 分析业务场景后总结需求要点:主要是写,很少查。审计需求,数据需要长期保存。 这个需求比较普遍,处理起来也很简单: 使用 Easysearch 软件,只需少量节点存储近两天的数据。 索引设置开启 ZSTD 压缩功能,节省磁盘空间。 每天索引数据写完后,第二天执行快照备份存放到 S3 存储。 备份成功后,删除索引释放磁盘空间。 需要搜索数据时,直接从快照搜索。 将近期的数据,存放到本地磁盘,保障写入速度。写入完毕的索引,在执行快照备份后,可删除索引,释放本地磁盘空间。 Easysearch 配置要点 # path.repo: ["/S3-path"] node.roles: ["data","search"] node.search.cache.size: 500mb path.repo : 指定 S3 存储路径,上传快照用。 node.roles : 只有 search 角色的节点,才能去搜索快照中的数据。 node.search.cache.size : 执行快照搜索时的,缓存大小。 更多信息请参考 官方文档。 旧数据迁移 # 通过 console 将原 ES 集群的数据,迁移到新 Easysearch 集群。迁移时,复制 mapping 和 setting,并在 setting 中添加如下设置。" --- 最近某头部汽车集团需要针对当前 ES 集群进行优化,背景如下: ES 用于支撑包括核心营销系统、管理支持系统、财务类、IT 基础设施类、研发、自动驾驶等多个重要应用,合计超 50 余套集群,累计数据超 1.5PB 。 本文针对其中一个 ES 集群进行分享,该集群原本使用的是 ES 7.3.2 免费版,数据已经 130TB 了,14 个节点。写入数据时经常掉节点,写入性能也不稳定,当天的数据写不完。迫切需要新的解决方案。 分析业务场景后总结需求要点:主要是写,很少查。审计需求,数据需要长期保存。 这个需求比较普遍,处理起来也很简单: - 使用 Easysearch 软件,只需少量节点存储近两天的数据。 - 索引设置开启 ZSTD 压缩功能,节省磁盘空间。 - 每天索引数据写完后,第二天执行快照备份存放到 S3 存储。 - 备份成功后,删除索引释放磁盘空间。 - 需要搜索数据时,直接从快照搜索。 {{% load-img "/img/blog/2024/using-ezs-to-help-automotive-companies-reduce-costs/0.png" "" %}} 将近期的数据,存放到本地磁盘,保障写入速度。写入完毕的索引,在执行快照备份后,可删除索引,释放本地磁盘空间。 ## Easysearch 配置要点 ``` path.repo: ["/S3-path"] node.roles: ["data","search"] node.search.cache.size: 500mb ``` - path.repo : 指定 S3 存储路径,上传快照用。 - node.roles : 只有 search 角色的节点,才能去搜索快照中的数据。 - node.search.cache.size : 执行快照搜索时的,缓存大小。 更多信息请参考[官方文档](https://docs.infinilabs.com/easysearch/main/docs/references/management/searchable_snapshot/)。 ## 旧数据迁移 通过 console 将原 ES 集群的数据,迁移到新 Easysearch 集群。迁移时,复制 mapping 和 setting,并在 setting 中添加如下设置。 ``` "codec": "ZSTD", "source_reuse": true, ``` {{% load-img "/img/blog/2024/using-ezs-to-help-automotive-companies-reduce-costs/1.png" "" %}} {{% load-img "/img/blog/2024/using-ezs-to-help-automotive-companies-reduce-costs/2.png" "" %}} 原索引数据量大,可拆分成多个小任务。 {{% load-img "/img/blog/2024/using-ezs-to-help-automotive-companies-reduce-costs/3.png" "" %}} 迁移完,索引存储空间一般节省 50% 左右。 原索引 279GB ,迁移完后 138GB。 {{% load-img "/img/blog/2024/using-ezs-to-help-automotive-companies-reduce-costs/4.png" "" %}} ## 搜索快照数据 挂载快照后,搜索快照里的索引和搜索本地的索引,语法完全一样。 {{% load-img "/img/blog/2024/using-ezs-to-help-automotive-companies-reduce-costs/5.png" "" %}} 如何判断一个索引是在快照还是本地磁盘呢?可以查看索引设置里的 settings.index.store.type {{% load-img "/img/blog/2024/using-ezs-to-help-automotive-companies-reduce-costs/6.png" "" %}} 如果是 remote_snapshot ,说明是快照中的数据。如果是空值,则是集群本地的数据。 这次迁移,节省了 6 台主机资源。更重要的是,用上对象存储后,主机磁盘空间压力骤减。 这次介绍就到这里了,有问题联系我。 {{% load-img "/img/blog/2024/using-ezs-to-help-automotive-companies-reduce-costs/7.jpg" "" %}}