应用场景
通过备份与恢复实现天翼云云搜索Elasticsearch/OpenSearch集群间的数据迁移适用于源集群和目标集群都是天翼云云搜索服务的集群,且依赖天翼云对象存储服务ZOS。常用于以下场景:
跨地域或跨账号迁移:将其他Region或账号下的Elasticsearch/OpenSearch集群迁移到当前集群中。
Elasticsearch迁移OpenSearch:将Elasticsearch集群数据迁移到OpenSearch集群中。
集群合并:将两个Elasticsearch/OpenSearch集群的索引数据合并到一个集群中。
方案优势
一站式便捷管理
通过天翼云云搜索服务控制台集成的集群备份功能,实现可视化备份与恢复操作。支持自动化运维策略预设(如定时备份、增量备份),降低人工干预成本。
专为海量数据迁移设计,可高效承载GB至PB级数据迁移任务。基于分布式架构的弹性扩展能力,确保超大规模数据迁移场景下的系统稳定性。
灵活跨域协作
依托天翼云对象存储ZOS跨区域复制技术,支持多地域数据同步迁移。
精准恢复模式
提供细粒度恢复选择:可按索引维度定向恢复,或基于时间戳回滚至特定集群状态。支持数据版本回溯与一致性校验,保障业务连续性。
约束限制
备份与恢复不支持动态增量数据同步,建议停止数据更新后再进行备份。
第三方存储仓库要配置公网访问才能迁移快照数据。
前提条件
源实例和目标实例处于可用状态。
目标实例的云搜索实例开通备份功能,同资源池下的对象存储服务(ZOS)可用。
已开通好两个不同区域的在用云搜索实例。
操作步骤
本文以西南1资源池云搜索服务迁移进华东1资源池云搜索服务实例为例,模拟数据迁移过程。
源端西南1资源池云搜索服务实例操作
Elasticsearch实例绑定公网访问:购买弹性IP,在“安全设置”中绑定Elasticsearch集群,安全组开放9200端口访问,具体操作参见“实例公网访问”
创建索引和数据:通过公网ip+端口,在Elasticsearch中插入数据。
创建索引
curl -u admin:****** -X PUT "http://ip:9200/products" -H 'Content-Type: application/json' -d'
{
"mappings": {
"properties": {
"name": {
"type": "text"
},
"price": {
"type": "float"
}
}
}
}
'
插入第一个产品
curl -u admin:****** -X POST "http://ip:9200/products/_doc/1" -H 'Content-Type: application/json' -d'
{
"name": "Laptop",
"price": 899.99
}
'
插入第二个产品
curl -u admin:****** -X POST "http://ip:9200/products/_doc/2" -H 'Content-Type: application/json' -d'
{
"name": "Smartphone",
"price": 499.99
}
'
打开备份管理功能
开通ZOS服务,创建存储桶,在云搜索控制台开启备份能力,填写AK/SK。具体开通操作可参考“创建快照备份”。
手动备份索引
点击手动备份,填写备份名称“backuptest”,选择存储桶,备份对象我们选择“索引”,填写索引名称“products”,确认。等待备份完成。
目的端华东1资源池云搜索实例操作
开通云主机:在华东1资源池与云搜索实例同一个VPC下,开通一台云主机。
下载安装ZOS数据迁移工具,根据系统下载如下工具包:
unzip ZOS_Migration_Tool_linux-amd64.zip
chmod +x zsync
打开备份管理功能
开通ZOS服务,创建存储桶,在云搜索控制台开启备份能力,填写AK/SK。具体操作可参考“创建快照备份”。
配置ZOS数据迁移工具
根据实际情况配置migaration.conf文件。
注意
因为云主机在华东1,西南1需要配置外网地址,而华东1只需要配置内网地址。
如果是跨云迁移,例如友商云迁移到天翼云,需要填写不同的srcType。具体可参考ZOS数据迁移工具页面上的《ZOS数据迁移工具使用手册》.pdf文件。
迁移工具里的AKSK需要填ZOS对象存储的。其值可以从对应的对象存储页面获取。
srcUrl/destUrl的值可以从桶页面的概览页获取。
不同版本的迁移工具,配置项可能略有区别,根据实际情况调整即可。
示例配置如下:
{
"srcType":"S3",
"srcUrl":"https://xinan1.zos.ctyun.cn",
"srcAccessKey":"******",
"srcSecretKey":"******",
"srcBucket":"bucket-3cab",
"srcMigrationType": "Bucket",
"srcMigrateFolder": [],
"srcMigrateFiles": [],
"srcMigratePrefix": [],
"destUrl":"http://100.123.136.65:80",
"destAccessKey":"******",
"destSecretKey":"******",
"destBucket":"bucket-5daa",
"destPrefix":"",
"multipartSize(megabytes)": 5,
"enableConsistencyCheck":"False",
"objectStorageClass":"",
"objectAcl":"",
"recordFailedObject": "True",
"migrationAfterModified": "",
"migrationBeforeModified": "",
"conflictMode": "IGNORE",
"logLevel":"DEBUG",
"processNums":12,
"threadNums":16,
"failRetryMode": "False",
"retryFailFiles": []
}
启动迁移
迁移完成后,在华东1的对应的桶中,应该可以看到所有的快照信息。备份数据路径参考esearch/snapshots/manual/Elasticsearch-******。
恢复索引
创建快照仓库:
curl -u admin:****** -X PUT "ip:9200/_snapshot/remote_restore_only?pretty" -H 'Content-Type: application/json' -d'
{
"type": "s3",
"settings": {
"bucket": "bucket-5daa",
"base_path": "esearch/snapshots/manual/Elasticsearch-******",
"protocol": "http",
"endpoint": "http://100.123.136.65:80"
}
}'
恢复索引:
curl -u admin:****** -X POST "ip:9200/_snapshot/remote_restore_only/backuptest/_restore?pretty" -H 'Content-Type: application/json' -d'
{
"indices": "products"
}'
注意,这里填写的快照名称要和创建时一致。
返回成功:
{
"accepted" : true
}
restore完成后查看恢复情况:
curl -u admin:****** -X GET "192.168.0.24:9200/products/_recovery?pretty"
等待索引恢复成功。
迁移完成后清理
删除迁移用的快照:
curl -u admin:****** -X DELETE "ip:9200/_snapshot/remote_restore_only/backuptest"
删除迁移用的快照仓库:
curl -u admin:****** -X DELETE "ip:9200/_snapshot/remote_restore_only"
删除ZOS桶中的数据:路径参考:esearch/snapshots/manual/Elasticsearch-******。