ES Snapshot

ES允许我们为某一个index或者是整个cluster创建snapshot, 并将这些snapshot存储在remote repository中比如shared file system S3 HDFS.

Repository

在我们创建snapshot之前,需要先向ES注册一个remote snapshot repository, 相当于是告知ES cluster,我们将在某一个地方(S3 bucket)创建一个remote repository专门用来存放当前这个集群的snapshot。根据snapshot存放的位置不同,有多种不同类型的snapshot repository

  • shared_file_system_repository
  • S3 repositories
  • HDFS repository
  • Google Cloud Storage repositories
  • ...

查看当前集群的所有repository

GET /_snapshot/_all

查看某一个repository的具体setting

GET /_snapshot/repo-name

repository verification

当一个repository被注册之后,ES会立刻验证集群中所有的节点(data node、 master node)都能正常和repository工作。这是默认行为。

删除repository

DELETE /_snapshot/my_backup

这样只会删除ES和这个remote repo的引用关系,相当于只是删除那次注册,remote repository中所有文件都依然存在。

Snapshot

一个repository中可以包含多个同一集群的snapshot,也就是ES期待我们只会在一个Repository只能存放某一个集群的snapshot。

如何创建Snapshot

通常我们会使用

PUT /_snapshot/repository_name/snapshot_name

指定在某一个repo中创建一个snapshot。默认情况下,这个指令会给整个cluster创建一个snapshot并存放在指定的remote repo中。

当然你可以创建snapshot的同时指定一些配置,比如只备份某一个index、

PUT /_snapshot/my_backup/snapshot_1
{
  "indices": "index_1,index_2",
  "ignore_unavailable": true,
  "include_global_state": false
}

这个指令可以只备份index_1/index_2两个index

如何查看snapshot

GET /_snapshot/repo_name/snapshot_name

这个指令返回关于snapshot的基本信息,包括开始和结束时间、创建快照的elasticsearch版本、包含的索引列表、快照的当前状态和快照期间发生的故障列表。

你也可以通过

GET /_snapshot/my_backup/_all

查看当前repo中所有的snapshot

如何删除snapshot

DELETE /_snapshot/my_backup/snapshot_1

使用以上指令删除snapshot的时候:

  • 会将repository中所有和这个快照相关的文件都删除
  • 会保留下来那些被其他还存在的快照使用的文件(因为快照是增量的)
Note

注意如果你想要删除repo中的所有快照,不要使用下面的命令,直接删除remote repo

DELETE /_snapshot/my_backup

因为这样只会删除ES和这个remote repo的引用关系,相当于只是删除那次注册,remote repository所有文件都依然存在。

增量snapshot

snapshot是增量的。在创建snapshot的时候,Elasticsearch会分析已经存在snapshot,只备份自上一次快照以来创建或更改的文件, 那些没有更改的文件会直接引用到上一次的snapshot中。因此如果频繁备份,那么snapshot的文件会越来越小。

注意

  • snapshot是某一个时间点的集群状态,因此开始创建快照之后所有对ES的修改都不会出现在这次snapshot中。

  • 创建snapshot的过程中,集群所有的工作都不会被block。但是同一时间,只能有一份snapshot在创建

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容