数据备份
UES的数据备份功能,使用Elasticsearch(以下简称ES)的 snapshot API,通过elasticsearch-repository-ufile 插件(以下简称US3插件)的支持,按照预先设定的备份计划,定时自动生成快照,保存在对象存储 US3当中,从而实现对UES索引数据的有效备份。
名词释义
快照(snapshot):一个快照是对于运行中的ES集群在快照生成时间点的一个备份,可以针对单个索引或者所有索引生成快照。快照采用增量机制生成,这意味着后续快照中仅包含之前快照中不存在的那部分数据。
仓库(repository):仓库是用于存放快照文件的存储空间,必须先创建一个仓库才能进行快照的备份操作。通过安装插件,ES可以支持使用不同类型的存储系统作为快照仓库。
对象存储 US3:对象存储 US3是TopnewCloud提供的非结构化文件云存储的服务,通过安装US3插件,UES使用US3作为存放快照的仓库。
准备工作
1.创建US3存储空间
登录US3控制台,创建用于保存UES快照数据的存储空间。要求: (1)存储空间所在地域必须与您需要快照备份的UES集群所在地域保持一致。 (2)空间类型请选择**”私有空间“**,以确保存储空间内的数据需要得到密钥授权才能访问。
2.创建US3令牌
在US3令牌管理页面,创建用于授权访问上述存储空间的令牌,合理设置有效时长,授权访问上述存储空间,并赋予对所有文件的上传、下载、删除、文件列表权限。
3.为需要备份的UES集群安装US3插件
登录UES控制台,在目标UES集群的插件管理页面进行US3插件的安装,具体操作方法可以参考文档插件管理章节。
操作步骤
数据备份功能入口:登录UES控制台,点击集群列表中目标集群的“详情”按钮,进入集群详情页面,切换至“数据备份”标签页。
1.注册仓库
在**“仓库管理”子页面中,点击“注册仓库”**按钮,在弹出的对话框中,按照页面提示完成相关信息的填写,点击确认,系统将为该集群创建一个存放快照的仓库。
参数 | 说明 |
---|---|
US3存储空间 | 用于存放UES集群的快照。注意:建立仓库之后不可以删除该仓库绑定的US3存储空间,否则已经生成的快照文件将会丢失,新的快照也将无法生成。 |
US3令牌 | 用于授权访问上述存储空间,必须具有该存储空间的上传、下载、删除、文件列表权限,缺一不可。注意:建立仓库之后不可以删除该仓库绑定的US3令牌,也不可以取消任何一项必备权限,同时还必须确保该US3令牌未过有效期,否则快照生成、快照恢复等操作将会失败。 |
仓库名称 | 用于标识一个仓库,在一个UES集群内部不允许出现多个同名仓库。 |
基础路径 | 快照文件在存储空间中的路径,默认为ues_backup,生成的快照文件会存放在US3存储空间中的该目录下。 |
只读 | 控制UES集群对于该仓库的读写权限。注意:在多个UES集群中注册指向同一个路径(US3存储空间 + 基础路径)的仓库时,只应该设置一个集群对其具有写入权限,其他集群应该设置为只读权限,以确保快照文件的完整性和一致性。 |
快照压缩 | 启用压缩后,将对快照中的索引映射和设置文件进行压缩,但数据文件不会被压缩。 |
分块大小 | 用于限制快照过程中单个文件分块的大小。 |
快照生成最大速度 | 用于限制每个节点生成快照的最大速度。 |
快照恢复最大速度 | 用于限制每个节点恢复快照的最大速度。 |
快照自动清理 | 如果开启快照自动清理,系统将会按照设定的时间长度,定期删除该仓库中过期的快照文件。 |
2.设定备份规则
在**“备份策略”子页面中,点击“新建规则”**按钮,在弹出的对话框中,按照页面提示完成相关信息的填写,点击确认,系统将为该集群创建一条自动生成快照的规则。
参数 | 说明 |
---|---|
规则名称 | 用于标识一条备份规则。 |
快照名称 | 指定该备份规则所生成快照的名称,系统将在快照名称后添加唯一标识符以区分不同时间生成的快照。 |
所在仓库 | 选择用于存放快照的仓库,只能选择注册仓库时设置为具有写入权限的仓库。 |
执行计划 | 设定进行自动备份的频率和时间点,目前支持在每天的指定时间进行一次自动备份。 |
备份索引 | 默认备份全部索引,也可以关闭此开关,手动输入索引名称以备份指定的索引,多个索引名称之间使用英文逗号分隔,支持索引表达式。 |
忽略不可用索引 | 用于控制对快照备份期间不可用索引的处理方式。此选项开启时,如果遇到不可用索引,将会继续生成不包含这些索引的快照。此选项关闭时,如果遇到不可用索引,快照备份将会失败。 |
允许不完全索引 | 用于控制对快照备份期间主分片不可用的索引的处理方式。此选项开启时,如果遇到此类情况,将会允许使用主分片不可用的索引生成快照。此选项关闭时,如果遇到此类情况,快照备份将会失败。 |
包含全局状态 | 用于控制是否将集群的全局状态保存在快照中。 |
3.执行备份规则
备份规则的执行有两种方式:自动定时执行和手动执行。
(1)自动定时执行
设置好备份规则后,系统会在规则设定的时间,按照规则中配置的参数,定时自动执行快照备份操作。
(2)手动执行
在**“备份策略”子页面中,点击一条规则右侧的“立即执行”**按钮,可以按照规则中配置的参数,立即执行一次快照备份操作。
4.管理生成的快照
在**“快照管理”**子页面中,可以查看或删除已经生成的快照。
(1)查看快照详情
点击一个快照右侧的**“详情”**按钮,可以查看这个快照的详细信息,包括快照的版本、备份状态、包含的索引等。
(2)删除快照
点击一个快照右侧的**“删除”**按钮,可以从仓库中删除这个快照。如果在注册仓库时,开启了快照自动清理功能,系统将会按照设定的时间长度,定期删除该仓库中过期的快照文件。
索引表达式
索引表达式用于指定多个索引,常用的表达式类型包括:
(1)英文逗号分隔的多个索引名称
例如:index_1,index_2,index_3 指定了3个索引。
(2)带通配符 * 的索引名称
例如:index_* 可以表示所有以 index_ 开头的索引,如 index_1,index_2020.02.02 等。
(3)使用通配符 * 时,利用 - 排除不需要的索引。
例如:index_*,-index_1 表示所有以 index_ 开头,但不包含 index_1 在内的索引。
(4)基于日期数学表达式的索引名称
<static_name{date_math_expr{date_format|time_zone}}>
上述表达式中,各个字段的含义如下:
static_name:索引名称中的静态部分
date_math_expr:动态的日期表达式
date_format:日期格式(可选),默认是YYYY.MM.dd
time_zone:时区(可选),默认是UTC
样例(表达式两端的尖括号 <> 必不可少):
假设当前时间是2020年2月20日中午12点(UTC)。
表达式 | 表达式的值 |
---|---|
<index_{now/d}> | index_2020.02.20 |
<index_{now-1d}> | index_2020.02.19 |
<index_{now/M}> | index_2020.02.01 |
<index_{now/M{YYYY.MM}}> | index_2020.02 |
参考信息
关于创建快照、从快照恢复数据、查询快照信息等操作的更多信息,请参考Elasticsearch官方文档: