- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- CSS服务权限管理
-
使用Elasticsearch搜索数据
- Elasticsearch使用流程
- Elasticsearch集群规划建议
- 创建Elasticsearch集群
- 访问Elasticsearch集群
- 导入数据至Elasticsearch集群
- 使用Elasticsearch集群搜索数据
- 增强Elasticsearch集群搜索能力
- 配置Elasticsearch集群网络
- 备份与恢复Elasticsearch集群数据
- 扩缩容Elasticsearch集群
- 升级Elasticsearch集群版本
- 管理Elasticsearch集群
- 管理Elasticsearch集群索引策略
- Elasticsearch集群监控与日志管理
- 查看Elasticsearch集群审计日志
- 使用OpenSearch搜索数据
- 使用Logstash迁移数据
- CSS服务资源监控
- 最佳实践
- API参考
- SDK参考
- 场景代码示例
-
常见问题
- 产品咨询
- 计费相关
- CSS集群访问
- CSS集群迁移
-
CSS集群搜索引擎使用
- CSS服务中为什么新创建的索引分片集中分配到单节点上?
- CSS服务中Elasticsearch 7.x集群如何在index下创建type?
- CSS服务中如何配置Elasticsearch索引副本数量?
- CSS服务中Elasticsearch集群分片过多会有哪些影响?
- 如何查看CSS集群的分片数以及副本数?
- CSS服务中Elasticsearch集群的节点node.roles为i表示什么意思?
- CSS服务中如何设置Elasticsearch集群的默认分页返回最大条数?
- CSS服务中如何更新Elasticsearch生命周期策略?
- CSS服务中如何设置Elasticsearch集群慢查询日志的阈值?
- CSS服务中如何清理Elasticsearch索引数据?
- CSS服务中如何清理Elasticsearch缓存?
- 使用delete_by_query命令删除Elasticsearch集群数据后,为什么磁盘使用率反而增加?
- CSS服务的Elasticsearch集群是否支持script dotProduct?
-
CSS集群管理
- 如何查看CSS集群所分布的可用区?
- CSS服务中Filebeat版本与集群版本的关系是什么?
- 如何获取CSS服务的安全证书?
- CSS服务中如何转换CER安全证书的格式?
- CSS服务中Elasticsearch和OpenSearch集群支持修改安全组吗?
- CSS服务中Elasticsearch集群如何设置search.max_buckets参数?
- CSS服务中如何修改Elasticsearch和OpenSearch集群的TLS算法?
- CSS服务中如何开启Elasticsearch和OpenSearch集群的安全审计日志?
- CSS服务中是否支持停止集群?
- CSS集群冻结索引后如何查询OBS上的索引占用量?
- 如何查看Elasticsearch和OpenSearch集群的系统默认插件列表
- CSS集群备份与恢复
- CSS集群监控与运维
-
故障排除
-
访问集群类
- 无法正常打开Kibana
- Elasticsearch针对filebeat配置调优
- Spring Boot使用Elasticsearch出现Connection reset by peer问题
- 为什么集群创建失败
- Elasticsearch集群出现写入拒绝“Bulk Reject”,如何解决?
- Elasticsearch集群创建index pattern卡住,如何解决?
- 云搜索控制台页面提示系统繁忙
- Elasticsearch集群报错:unassigned shards all indices
- es-head插件连接Elasticsearch集群报跨域错误
- 单节点集群打开Cerebro界面显示告警
- ECS无法连接到集群
- 集群不可用
- 数据导入导出类
-
功能使用类
- 无法备份索引
- 无法使用自定义词库功能
- 快照仓库找不到
- 集群一直处于快照中
- 数据量很大,如何进行快照备份?
- 集群突现load高的故障排查
- 使用ElasticSearch的HLRC(High Level Rest Client)时,报出I/O Reactor STOPPED
- Elasticsearch集群最大堆内存持续过高(超过90%)
- Elasticsearch集群更改规格失败
- 安全集群索引只读状态修改报错
- Elasticsearch集群某一节点分配不到shard
- 集群索引插入数据失败
- CSS创建索引报错“maximum shards open”
- 删除索引报错“403 Forbidden”是什么原因?
- Kibana中删除index pattern报错Forbidden
- 执行命令update-by-query报错“Trying to create too many scroll contexts”
- Elasticsearch集群无法创建pattern
- 端口访问类
-
访问集群类
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
通过备份与恢复实现华为云Elasticsearch集群间数据迁移
CSS服务的Elasticsearch集群之间的数据迁移,可以通过备份与恢复集群快照功能实现。
应用场景
通过备份与恢复实现华为云Elasticsearch集群间数据迁移仅适用于源集群和目标集群都是CSS服务的集群,且依赖对象存储服务OBS。常用于以下场景:
- 跨地域或跨账号迁移:将其他Region或账号下的Elasticsearch集群迁移到当前集群中。
- 跨版本迁移:将低版本的Elasticsearch集群数据迁移到高版本的集群中。
- 集群合并:将两个Elasticsearch集群的索引数据合并到一个集群中。
方案架构
通过备份与恢复实现华为云Elasticsearch集群间数据迁移的迁移流程如图1所示。
- 源Elasticsearch集群创建快照,将快照存储在OBS桶中。
- 目标Elasticsearch集群恢复快照,从OBS桶中恢复快照。
方案优势
- 易于操作和管理:在CSS服务控制台使用集群快照功能实现备份恢复,操作简单,且易于管理和自动化。
- 适用于大规模数据迁移:快照备份适用于数据量大的场景,特别是当数据量达到GB、TB甚至PB级别时。
- 支持跨地域和跨账号迁移:通过结合OBS的跨区域复制功能,可以实现跨地域和跨账号的数据迁移。
- 恢复过程可控:在恢复数据时,可以选择恢复特定索引或全部索引,并且可以指定恢复到特定的集群状态。
- 迁移时长可控:基于迁移时长评估公式可以配置数据迁移速率,理想状态下等于文件复制速率。
性能影响
使用备份与恢复迁移集群的核心在于直接复制数据存储层的文件以实现数据备份,该方案避免了对Elasticsearch外部读写接口的依赖,从而显著降低了对源集群性能的影响。对于对业务延迟要求不严苛的集群而言,此方法对性能的干扰几乎可以忽略。
约束限制
- 目标集群的版本不能低于源集群的版本,版本兼容性分析请参见Snapshot version compatibility。
- 目标集群的节点数要大于源集群的节点数的一半,且不能小于源集群的shard副本数。
- 目标集群的CPU、MEM和Disk配置不能低于源集群的配置。
迁移时长
迁移过程的耗时长短依赖于源集群和目标集群的节点个数或索引shard个数。迁移过程分为备份阶段和恢复阶段,备份阶段耗时由源集群决定,恢复阶段耗时由目标集群决定。迁移总时长的评估公式如下:
评估公式是基于理想状态下(即单节点以最快速度40MB/s传输)的迁移时长,实际迁移时长还会受到网络、资源等因素影响。
前提条件
- 目标集群(Es-2)和源集群(Es-1)处于可用状态。建议在业务空闲期进行集群迁移。
- 确认目标集群(Es-2)和源集群(Es-1)在同一个Region和账号下。
如果集群跨地域或跨账号,请参考配置跨区域复制将源集群存储快照的OBS桶复制到目标集群存储快照的OBS桶中,迁移时在目标集群执行恢复操作。
操作步骤
- 登录云搜索服务管理控制台。
- 在“集群管理 > Elasticsearch”页面,单击源端集群名称“Es-1”进入集群基本信息页面。
- 在左侧导航栏选择“集群快照”,打开集群快照开关,设置快照的基础配置。
表1 集群快照基础配置 参数
说明
OBS桶
选择存储集群快照的OBS桶。
备份路径
集群快照在OBS桶中的存放路径。可以保持默认值。
IAM委托
快照数据存储到OBS桶中,需要OBS的操作权限。选择IAM委托,授权当前账号访问和使用OBS的权限。- 当首次配置委托时,可以单击“自动创建委托”新建委托“css-obs-agency”直接使用。
- 当已有自动创建的委托时,可以单击“委托一键授权”,自动删除委托中OBS Administrator系统策略的权限,并自动新增如下自定义策略授权委托到最小化权限。
"obs:bucket:GetBucketLocation", "obs:object:GetObjectVersion", "obs:object:GetObject", "obs:object:DeleteObject", "obs:bucket:HeadBucket", "obs:bucket:GetBucketStoragePolicy", "obs:object:DeleteObjectVersion", "obs:bucket:ListBucketVersions", "obs:bucket:ListBucket", "obs:object:PutObject"
- 当OBS桶使用SSE-KMS加密模式时,委托中需要包含KMS的权限,“自动创建委托”和“委托一键授权”会自动增加如下自定义策略授权委托到最小化权限。
"kms:cmk:create", "kms:dek:create", "kms:cmk:get", "kms:dek:decrypt", "kms:cmk:list"
- 执行“自动创建委托”和“委托一键授权”的用户需要如下最小权限。
"iam:agencies:listAgencies", "iam:roles:listRoles", "iam:agencies:getAgency", "iam:agencies:createAgency", "iam:permissions:listRolesForAgency", "iam:permissions:grantRoleToAgency", "iam:permissions:listRolesForAgencyOnProject", "iam:permissions:revokeRoleFromAgency", "iam:roles:createRole"
- 使用委托的用户需要如下最小权限。
"iam:agencies:listAgencies", "iam:agencies:getAgency", "iam:permissions:listRolesForAgencyOnProject", "iam:permissions:listRolesForAgency"
- 完成基础配置后,单击“创建快照”,在弹窗中完成参数配置,单击“确定”启动手动创建快照。
表2 创建快照的配置 参数
说明
快照名称
自定义快照名称,可以保持默认值。
索引
填写索引名称,支持选择索引进行备份。索引名称不能包含空格和大写字母,且不能包含“"\<|>/?”特殊字符,多个索引之间使用英文逗号隔开。如果不填写,则默认备份集群中所有索引。支持使用“*”匹配多个索引,例如“index*”,表示备份名称前缀是index的所有索引的数据。
说明:
在Kibana中使用GET /_cat/indices命令,可以查询集群中所有索引的名称。
快照描述
描述快照信息。
在快照管理列表中,当“快照状态”为“可用”时表示快照创建成功。
- 快照创建成功后,在快照管理列表,单击快照操作列的“恢复”,配置恢复参数将数据恢复至目标集群“Es-2”。
表3 恢复快照的配置 参数
说明
索引
填写需要进行恢复的索引名称。如果不填写,则表示恢复所有的索引数据。支持使用“*”匹配多个索引,比如index*,表示恢复快照中名称前缀是index的所有索引。
索引名称匹配模式
索引名称匹配规则。“索引名称匹配模式”和“索引名称替换模式”必须同时设置才会生效。通过配置这两参数,可对快照中匹配到的索引进行重命名。
索引名称替换模式
索引名称重命名规则。设置“索引名称替换模式”参数时,“索引名称匹配模式”参数和该参数必须同时设置才能生效。
默认值“restored_index_$1”表示在所有恢复的索引名称前面加上“restored_”。
集群
选择要恢复快照的目标集群,本案例选择“Es-2”。
选择“是否覆盖目标集群同名索引”,默认不覆盖,即不勾选。通过快照恢复数据是以覆盖快照文件的形式进行数据恢复,当目标集群存在同名索引时,需要勾选覆盖才能恢复同shard结构的索引,不同shard结构的索引不支持恢复。请谨慎勾选操作。
在快照管理列表中,当“任务状态”变更为“恢复成功”时表示集群数据迁移完成。
- 数据迁移完毕,检查目标Elasticsearch集群“Es-2”和源集群“Es-1”数据的一致性。例如,分别在源集群和目标集群执行_cat/indices命令,对比两者的索引信息是否一致。