應用場景
通過備份與恢復實現天翼云云搜索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 "//ip:9200/products" -H 'Content-Type: application/json' -d'
{
"mappings": {
"properties": {
"name": {
"type": "text"
},
"price": {
"type": "float"
}
}
}
}
'插入第一個產品
curl -u admin:****** -X POST "//ip:9200/products/_doc/1" -H 'Content-Type: application/json' -d'
{
"name": "Laptop",
"price": 899.99
}
'插入第二個產品
curl -u admin:****** -X POST "//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":"//xinan1.zos.daliqc.cn",
"srcAccessKey":"******",
"srcSecretKey":"******",
"srcBucket":"bucket-3cab",
"srcMigrationType": "Bucket",
"srcMigrateFolder": [],
"srcMigrateFiles": [],
"srcMigratePrefix": [],
"destUrl":"//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": "//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-******。