- Minio
Minio 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
- Elasticsearch
Elasticsearch是一个基于Lucene的分布式全文搜索引擎。ES支持快照功能,用于实现数据的备份与恢复。我们可以生成单个索引或整个集群的快照,并将其存储在共享文件系统上的存储库中,并且有一些插件支持 S3、HDFS、Azure、Google Cloud Storage 等上的远程存储库。
因为minio兼容S3,而es支持将快照存储在远程S3存储服务中,所以minio可以用于es的快照备份。
二、环境- elasticsearch:6.8.0
- minio:RELEASE.2021-08-25T00-41-18Z
略
四、配置es以支持minio备份- 安装repository-s3插件(集群环境下需要每个节点都安装)
./bin/elasticsearch-plugin install repository-s3
- 修改elasticsearch.yml配置文件(集群环境下待测试)
s3.client.default.endpoint: 127.0.0.1:9000(minio服务地址) s3.client.default.protocol: http(非https时需要指定)
- 将 minio访问密钥设置添加到密钥库(集群环境下待测试)
# 设置用户名 bin/elasticsearch-keystore add s3.client.default.access_key # 设置密码 bin/elasticsearch-keystore add s3.client.default.secret_key
- 配置完成后重启es服务(或集群)
备注:配置es快照在s3上的备份方式和上面的步骤类似。
五、测试- 创建快照仓库
PUT _snapshot/my_backup { "type":"s3", "settings":{ "bucket":"mybucket" } }
- 备份所有索引到仓库
PUT _snapshot/my_backup/snapshot_test?wait_for_completion=true
- 查看仓库中的快照
GET _snapshot/my_backup/_all?pretty
- 删除快照
DELETE _snapshot/my_backup/snapshot_test六、其它
- 快照删除注意事项
用 API 删除快照很重要,而不能用其他机制(比如手动删除,或者用 S3 上的自动清除工具)。因为快照是增量的,有可能很多快照依赖于过去的段。delete API 知道哪些数据还在被更多近期快照使用,然后会只删除不再被使用的段。
但是,如果你做了一次人工文件删除,你将会面临备份严重损坏的风险,因为你删除的是可能还在使用中的数据。
参考:
https://www.136.la/shida/show-150069.html