Elasticsearch 备份:snapshot 镜像使用篇

上一篇文章中,我们简要的列举了 Elasticsearch 备份 主要的几个方案,比对了一下各个方案的实现原理、优缺点和适用的场景。现在我们来看看 ES 自带的镜像备份方案。

1. 镜像备份

在开始研究镜像备份之前,我先抛三个问题:

  1. ES 镜像备份是怎么实现增量备份的?
  2. 历史镜像清理维护是怎么做到保存完整数据的?
  3. 增量恢复要怎么操作的?

2. 镜像的准备条件

在做镜像备份之前,先要为 ES 注册一个镜像仓库,即 repository。目前 ES 支持的仓库类型有:

Respository 配置类型
Shared file system “type” : “fs”
Read-only URL “type”: “url”
S3 “type”: “s3”
HDFS “type”: “hdfs”
Azure “type”: “azure”
Google Cloud Storage “type”: “gcs”

注意: S3, HDFS, Azure and GCS 需要安装相应的插件。

那我们注册一个 S3 插件并使用 MinIO 来做仓库进行测试吧。

MinIO 的安装配置在这里简略了,从安装插件开始。

# 插件安装 在elasticsearch/bin目录下
./bin/elasticsearch-plugin install repository-s3

# 添加访问账号,并reload
bin/elasticsearch-keystore add s3.client.default.access_key
bin/elasticsearch-keystore add s3.client.default.secret_key

POST /_nodes/{node_id}/reload_secure_settings

# 注册 repository
PUT _snapshot/my-minio-repository
{
  "type": "s3",
  "settings": {
    "bucket": "es-bucket",
    "endpoint": "http://127.0.0.1:9002",
    "compress": true
  }
}

3. 备份流程

现在我们来看看整个镜像备份的流程,在这里我们使用 sample_data_flights 进行备份测试(为了方便测试比对,我们将该索引主分片设置为 1)。

3.1 首次备份

镜像快照是基于快照开始时间数据文件备份

snapshot 备份速度的主要影响参数是 max_snapshot_bytes_per_sec,是单节点数据备份的最快速度,默认为每秒 40mb,可以结合集群磁盘性能在仓库注册时做调整。

这里就是将 sample_data_flights 数据文件完整的放入 MinIO 存储中。可以查看系统上的文件进行验证。

操作命令:

# 第一次镜像名称设置为 snapshot_1
PUT _snapshot/minio-repository/snapshot_1
{
"indices": "sample_data_flights",
"ignore_unavailable": true,
"include_global_state": false,
"partial": false
}

在 data 目录下去寻找索引的 uuid 能找到对应的数据文件

# pwd
/data/nodes/0/indices/cv8DxU5BTfKB5SnI0ubVtQ/0/in
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值