--- title: "Easysearch S3 备份实战" date: 2025-03-31 lastmod: 2025-03-31 description: "本文介绍如何将 S3 作为存储仓库,实现Easysearch执行快照备份,直接将数据直接存储在 S3 中,从而实现数据的持久化。" tags: ["Easysearch", "S3"] summary: "Easysearch 内置了 S3 插件,这意味着用户可以直接使用该功能而无需额外安装任何插件。通过这一内置支持,用户能够方便快捷地执行 Amazon S3 上的数据快照操作。这种设计不仅简化了配置流程,也提高了工作效率,使得数据备份或迁移等任务变得更加简单易行。对于需要频繁与 S3 存储服务交互的应用场景来说,这是一个非常实用且高效的功能特性。 Minio # MinIO 是一款高性能的开源对象存储系统,专为存储大量的非结构化数据而设计。它提供了与 Amazon S3 兼容的 API,本次测试我们使用 MinIO 作为存储仓库。 建立 Bucket # 进入 MinIO 管理界面,创建测试用的 bucket。 创建 Access key # 测试的 Access Key 设置的比较简单。 Easysearch # 为了能够使用 S3 存储,Easysearch 要进行必要的配置。 easyearch.yml # 修改 easysearch.yml 配置 S3 信息。 s3.client.default.endpoint: 172.17.0.4:9000 s3.client.default.protocol: http ⚠️注意:修改了 easysearch.yml 需要重启生效。 keystore # 为了安全,我们把 S3 的 Access key 信息加入 keystore 中。" --- Easysearch 内置了 S3 插件,这意味着用户可以直接使用该功能而无需额外安装任何插件。通过这一内置支持,用户能够方便快捷地执行 Amazon S3 上的数据快照操作。这种设计不仅简化了配置流程,也提高了工作效率,使得数据备份或迁移等任务变得更加简单易行。对于需要频繁与 S3 存储服务交互的应用场景来说,这是一个非常实用且高效的功能特性。 ## Minio MinIO 是一款高性能的开源对象存储系统,专为存储大量的非结构化数据而设计。它提供了与 Amazon S3 兼容的 API,本次测试我们使用 MinIO 作为存储仓库。 ## 建立 Bucket 进入 MinIO 管理界面,创建测试用的 bucket。 {{% load-img "/img/blog/2025/hands-on-guide-to-easysearch-s3-backup/1.png" "" %}} {{% load-img "/img/blog/2025/hands-on-guide-to-easysearch-s3-backup/2.png" "" %}} ## 创建 Access key 测试的 Access Key 设置的比较简单。 {{% load-img "/img/blog/2025/hands-on-guide-to-easysearch-s3-backup/3.png" "" %}} ## Easysearch 为了能够使用 S3 存储,Easysearch 要进行必要的配置。 ## easyearch.yml 修改 easysearch.yml 配置 S3 信息。 ```plain s3.client.default.endpoint: 172.17.0.4:9000 s3.client.default.protocol: http ``` ⚠️注意:修改了 easysearch.yml 需要重启生效。 ## keystore 为了安全,我们把 S3 的 Access key 信息加入 keystore 中。 ```plain bin/easysearch-keystore add s3.client.default.access_key #输入easysearch bin/easysearch-keystore add s3.client.default.secret_key #输入easysearch bin/easysearch-keystore list ``` ## 注册存储库 在 INFINI Console 的开发工具中,使用命令注册 s3 存储库。 ```plain PUT /_snapshot/easysearch_s3_repo?verify=true&pretty { "type": "s3", "settings": { "bucket": "easysearch-bucket", "compress": true } } ``` 更多参数请查看[文档](https://infinilabs.cn/docs/latest/easysearch/references/management/snapshot-restore/#amazon-s3)。 ## 创建快照 在 [INFINI Console](https://infinilabs.cn/products/console/) 的开发工具中,使用命令创建快照。 {{% load-img "/img/blog/2025/hands-on-guide-to-easysearch-s3-backup/4.png" "" %}} {{% load-img "/img/blog/2025/hands-on-guide-to-easysearch-s3-backup/5.png" "" %}} 备份执行完成。 ## S3 查看快照 我们在 INFINI Console 中通过命令创建了快照,可以在 MinIO 的 bucket 中进行进一步确认是否有相关文件。 {{% load-img "/img/blog/2025/hands-on-guide-to-easysearch-s3-backup/6.png" "" %}} {{% load-img "/img/blog/2025/hands-on-guide-to-easysearch-s3-backup/7.png" "" %}} ## 快照还原测试 删除以备份索引 .infini_metrics-0001,删除前先查看下索引情况,文档数 557953。 {{% load-img "/img/blog/2025/hands-on-guide-to-easysearch-s3-backup/8.png" "" %}} 删除 .infini_metrics-0001 索引。 {{% load-img "/img/blog/2025/hands-on-guide-to-easysearch-s3-backup/9.png" "" %}} 确认 .infini_metrics-0001 索引已被删除。 {{% load-img "/img/blog/2025/hands-on-guide-to-easysearch-s3-backup/10.png" "" %}} 进行快照还原。 {{% load-img "/img/blog/2025/hands-on-guide-to-easysearch-s3-backup/11.png" "" %}} 验证恢复索引。 {{% load-img "/img/blog/2025/hands-on-guide-to-easysearch-s3-backup/12.png" "" %}} 索引 .infini_metrics-0001 已经还原了,文档数也一致。 ## 小结 Easysearch 使用 S3 存储备份的步骤如下: 1. S3 服务建立 Bucket、Access Key。 2. Easysearch 编辑 easysearch.yml 添加 S3 服务 endpoint 信息。 3. easysearch-keystore 添加 S3 的 Access key 信息,加密保存。 4. Easysearch 注册 S3 存储仓库。 5. 执行快照备份。 有任何问题,欢迎加我微信沟通。 {{% load-img "/img/blog/banner/about_yangf.png" "" %}}