数据量很大,如何进行快照备份?
当快照数据量极大,备份耗时超过一天时,可通过以下3种方法优化备份效率:
- 分批备份指定索引:通过控制台手动创建快照,每次指定部分索引,减少单次备份数据量。
- 自定义备份速率:通过控制台修改快照配置,调整最大备份速率,提升单次备份效率。
- 使用自定义快照仓库:通过Kibana创建自定义仓库,灵活配置备份速率和分块参数,实现高效备份。
方式一:分批备份指定索引
默认快照备份的索引范围为所有索引,数据量极大时可通过手动创建快照,每次指定部分索引,分批完成备份。
- 在Kibana/OpenSearch Dashboards的Dev Tools页面执行以下命令,查询集群中所有索引名称。
GET /_cat/indices
- 根据索引的数据量和业务优先级,将索引分为多个批次。
- 登录云搜索服务管理控制台。
- 在左侧导航栏,选择“集群管理”,根据目标集群选择集群类型,进入集群列表页面。
- 在集群列表单击目标集群名称,进入集群详情页。
- 选择“集群快照”页签,开启快照。
- 在集群快照页面,单击“手动创建快照”,在弹窗中完成备份策略配置。
表1 手动创建快照 参数
说明
快照名称
设置快照名称。可以使用“snapshot-batch1”、“snapshot-batch2”等命名方式区分批次。
索引
指定本次备份的索引名称。
如果不填写,则默认备份集群中所有索引。
快照描述
添加快照描述信息。
- 配置完成后,单击“确定”,开始创建快照。
- 在集群快照任务列表中,当“快照任务状态”为“可用”时,表示当前批次备份完成。
单击快照名称左侧的展开图标,查看备份的分片和索引信息,确认数据是否备份成功。
- 重复7-9,直到所有索引分批次备份完成。
方式二:自定义备份速率
通过修改快照配置,调整最大备份速率参数,提升每个节点的备份速度。
提高备份速率会增加集群CPU和磁盘IO负载,建议在业务低峰期执行,并在高峰期前降低速率。
- 登录云搜索服务管理控制台。
- 在左侧导航栏,选择“集群管理”,根据目标集群选择集群类型,进入集群列表页面。
- 在集群列表单击目标集群名称,进入集群详情页。
- 选择“集群快照”页签,单击“修改配置”提升最大备份速率。
表2 修改备份速率 参数
说明
最大备份速率(每秒)
配置每个节点的最大备份速率,当集群快照的备份速率超过设定值时将触发限流机制,防止速率太大导致资源占用过高,影响集群稳定性。
取值格式:数字(0~9999)+单位(KB、MB、GB、TB、PB、B)
默认取值:40MB
当填写0MB时,表示不限速。当备份速率过大时,可能导致集群资源占用过高,稳定性下降,建议谨慎配置。
实际备份速率可能因OBS性能、磁盘IO等限制而无法达到设定值。
最大恢复速率(每秒)
配置每个节点的最大恢复速率,当集群快照的恢复速率超过设定值时将触发限流机制,防止速率太大导致资源占用过高,影响集群稳定性。
取值格式:数字(0~9999)+单位(KB、MB、GB、TB、PB、B)
默认取值:Elasticsearch 7.6.2及之前版本缺省值为40MB,OpenSearch及高于Elasticsearch 7.6.2版本缺省值为0MB(不限速)。
当恢复速率过大时,可能导致集群资源占用过高,稳定性下降,建议谨慎配置。
OpenSearch及高于Elasticsearch 7.6.2版本的实际限流值还受“indices.recovery.max_bytes_per_sec”参数影响,取两者中的较小值。且实际恢复速率可能因OBS性能、磁盘IO等限制而无法达到设定值。
- 配置完成后,单击“确定”,保存修改。
- 修改配置后,手动创建快照或等待自动快照触发即可,备份将按照新的速率执行。
方式三:使用自定义快照仓库
除CSS服务提供的repo_auto仓库外,可通过创建自定义快照仓库,灵活配置备份速率、分块大小等参数,实现高效备份。
- 登录Kibana/OpenSearch Dashboards的Dev Tools页面。
- 创建自定义快照仓库。
PUT _snapshot/my_backup { "type": "obs", "settings": { "bucket": "<OBS桶名称>", "base_path": "<备份路径>", "chunk_size": "2g", "endpoint": "obs.<Region名称>.example.com", "region": "<Region名称>", "compress": "true", "access_key": "<AK>", "secret_key": "<SK>", "max_restore_bytes_per_sec": "100mb", "max_snapshot_bytes_per_sec": "100mb" } }
表3 自定义仓库参数说明 参数
是否必填
说明
bucket
是
OBS桶名称,桶必须与集群在同一区域,存储类别为标准存储。
base_path
是
快照在OBS桶中的存放路径,不能以“/”或“.”开头。
chunk_size
否
备份数据分块大小,缺省值为2g。数据量大时可保持缺省值。
endpoint
是
OBS域名地址,格式为“obs.<Region名称>.example.com”。
region
是
集群所在区域名称。
compress
否
是否启用数据压缩,缺省值为true。压缩可减少OBS存储空间占用。
access_key
是
OBS访问密钥AK,获取方法请参见如何获取访问密钥AK/SK。
secret_key
是
OBS访问密钥SK,获取方法请参见如何获取访问密钥AK/SK。
max_snapshot_bytes_per_sec
否
每个节点的最大备份速率。业务低峰期可适当提高(如100MB),高峰期建议降低。
max_restore_bytes_per_sec
否
每个节点的最大恢复速率,可根据集群性能调整。
- 使用自定义仓库创建快照。
PUT _snapshot/my_backup/<快照名称> { "indices": "*", "ignore_unavailable": true, "include_global_state": false }表4 创建快照参数说明 参数
是否必填
说明
<快照名称>
是
快照名称,建议使用“snapshot-batch1”等命名方式区分批次。
indices
否
指定备份的索引名称,多个索引用英文逗号分隔,支持通配符"*"。缺省值为"*"(备份所有索引)。
ignore_unavailable
否
当指定索引不存在时是否忽略,缺省值为false。
- true表示忽略并继续备份其他索引。
- false表示索引不存在时备份失败。
include_global_state
否
是否保存集群全局状态,缺省值为false,建议保持false避免全局状态干扰恢复。
- 查询快照状态。
GET _snapshot/my_backup/<快照名称>/_status等待返回结果中“state”字段为“SUCCESS”表示备份完成。