ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Elasticsearch 快照与恢复-快照仓库 repository

2022-08-31 19:01:13  阅读:260  来源: 互联网

标签:快照 repository 仓库 索引 only Elasticsearch url 集群


Elasticsearch 中的一个快照即一个运行时的集群备份。快照能在以下场景使用。

  • 不停机的情况下周期性的备份集群。
  • 数据被删除或者硬盘故障的情况下还原数据
  • 在集群之间传输数据
  • 使用可搜索快照来减少存储资源。

ES 把快照存储在一个叫做快照仓库的地方。在使用快照前,需要先注册快照库,用于管理快照,如提供存储位置、存储用途(敏感数据的存放)。ES 支持部分云存储类型的快照库。

  • AWS S3
  • Google Cloud Storage (GCS)
  • Microsoft Azure
    在注册完快照库之后,可以使用快照生命周期管理(SLM)来自动的生成和管理快照,之后可以使用快照还原来实现恢复或传输数据的功能。

快照内容

默认情况下,集群快照包含集群状态,所有常规的数据流、索引。
索引状态包含下面信息:

  • 集群持久化设置
  • 索引模板
  • 其它
    可以使用快照只备份集群中的数据流或索引。

快照如何工作

快照会自动的删除以便于节省存储空间和减少完了传输的消耗。为了备份一个索引,快照会复制索引的segment,并将其保存在快照库中,由于segement是不可变的,因此快照只需要复制比快照库中新的索引segement即可完成增量备份。

每个快照是逻辑独立的,当删除一个快照时, ES 只是删除由快照使用的专有段,不会删除快照库中其它快照的segement。

快照和shard allocation

快照从索引的主分片中拷贝segement。当启动一个快照时,ES立即开始复制可用的主分片上的段。当分片在启动中或者重定位时,ES会等该分片可用后再继续拷贝索引段,如果有一个或多个主分片不可以,快照备份会失败。

一旦一个快照开始复制某一个主分片,ES不会移动该分片到其它节点,ES会等到复制完成在进行移动操作。

快照开始和启动时间

一个快照并不能表示一个精确的时间点的集群。相反,每个快照都包含启动时间、结束时间。 快照表示的是在这两个时间点之间的分片数据的视图。

快照兼容性

不能先前兼容,即新版本的快照不能在老版本的es下进行还原。

快照是唯一可靠和支持备份集群的方式。采用备份底层文件的方式会有不可知的问题。
不要修改快照仓库下的任何内容。

注册一个仓库

自己管理下集群的仓库配置

Azure
Google Cloud Storage
AWS S3
Shared file system
Read-only URL
Source-only

使用共享文件系统注册仓库

创建文件系统快照库需要在配置文件中配置 仓库目录,否则会报错,集群中的所有节点需要挂载到相同的目录下。
vi elasticsearch.yml

path.repo: /usr/share/elasticsearch/_snapshots

创建共享文件系统镜像仓库

curl --location --request PUT "http://localhost:29201/_snapshot/person" \
--header "Content-Type: application/json" \
--data-raw "{
  \"type\": \"fs\",
  \"settings\": {
    \"location\": \"perosn\"
  }
}"

当多个集群使用相同的快照库时,只能有一个集群有权限对该仓库写入,其它的应当配置为只读。如集群间复制场景下。

只读配置
PUT _snapshot/my_fs_backup
{
  "type": "fs",
  "settings": {
    "location": "my_fs_backup_location",
    "readonly": true
  }
}
仓库配置
  • chunk_size
  • compress : 默认true
  • location : 快照在共享文件系统中的位置,必须要在 path.repo中配置。
  • max_number_of_snapshots: 最大快照数量。
  • readonly : ture ,只能读该仓库。

只读的url类型仓库

可以使用url仓库来给集群授予共享文件系统的只读权限。由于url 仓库是只读的,相较于共享文件系统仓库中的只读配置,该方式更安全和方便。

PUT _snapshot/my_read_only_url_repository
{
  "type": "url",
  "settings": {
    "url": "file:/mount/backups/my_fs_backup_location"
  }
}

source-only 快照库

可以使用Source-only 库来实现最小的快照, souce-only 可以比其它类型的快照减少50%的磁盘空间(只存储source 信息)。

和其它类型苦苦不同, souce-only 不直接存储快照,而是委托其它已注册的快照库来存储数据。

当采用source-only 的快照库时,ES 在代理库中创建source-only快照,该快照只包含属性和元数据信息,它不包含索引和文档值,而且当还原是,不是立即可搜索的。若要搜索已还原的数据,首先需要reindex到新的索引中。

source-only 只支持开启了_source 属性且 没有source_filtering 应用的索引。

  • restored 的索引是只读的,并且只能使用 match_all搜索或者 使用scroll 请求去重新reindex 新索引。
  • restored index 的mapping 信息是空的,当原始的mapping仍然可以使用,需要在最顶层的meta元素中查找。
PUT _snapshot/my_src_only_repository
{
  "type": "source",
  "settings": {
    "delegate_type": "fs",
    "location": "my_backup_repository"
  }
}

标签:快照,repository,仓库,索引,only,Elasticsearch,url,集群
来源: https://www.cnblogs.com/hhan/p/16644107.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有