分布式緩存服務(wù)數(shù)據(jù)遷移概述
分布式緩存服務(wù)遷移流程
評估
獲取當(dāng)前待遷移的緩存數(shù)據(jù)信息(可參考緩存數(shù)據(jù)信息記錄以下信息),包括:
實例數(shù)量、各實例配置的數(shù)據(jù)庫數(shù)量、各數(shù)據(jù)庫的key數(shù)量、業(yè)務(wù)用到的數(shù)據(jù)庫、各實例數(shù)據(jù)占用空間、Redis版本、Redis實例配置(單機/主備/集群)、業(yè)務(wù)與各實例的連接關(guān)系。
根據(jù)獲取到的信息規(guī)劃分布式緩存服務(wù)DCS緩存實例,包括:
申請緩存實例數(shù)量、各緩存實例的規(guī)格、類型(單機/主備/集群)、緩存實例與業(yè)務(wù)所屬網(wǎng)絡(luò)規(guī)劃(VPC/子網(wǎng)/安全組)。
準(zhǔn)備
當(dāng)完成遷移評估后,需要準(zhǔn)備以下內(nèi)容:
移動存儲介質(zhì):用于在網(wǎng)絡(luò)不通(自建數(shù)據(jù)中心場景)的情況下以復(fù)制方式傳輸數(shù)據(jù)。
網(wǎng)絡(luò)資源:為彈性云服務(wù)器申請彈性IP、按照業(yè)務(wù)規(guī)劃創(chuàng)建虛擬私有云與子網(wǎng),設(shè)置安全組規(guī)則。建議為彈性IP申請臨時性高規(guī)格帶寬,提升傳輸效率。
服務(wù)器資源:申請彈性云服務(wù)器,承載Redis客戶端。用于導(dǎo)出或?qū)刖彺鏀?shù)據(jù)。彈性云服務(wù)器的規(guī)格建議不低于8C16G。
分布式緩存服務(wù)DCS緩存實例:按照遷移規(guī)劃申請緩存實例,如果實例數(shù)量超過用戶默認(rèn)配額,請?zhí)峁位蛘呗?lián)系客服支持。
相關(guān)工具安裝:包括SSH工具、FTP工具、Redis遷移工具等。
信息收集:信息收集包括參與人員聯(lián)系方式,服務(wù)器地址、登錄信息,緩存實例信息與數(shù)據(jù)庫信息等。
分布式緩存服務(wù)整體遷移方案:制定總體遷移計劃,包括人員安排、演練方案、遷移方案、驗證方案、業(yè)務(wù)切換方案、回退方案。
每一份方案需要有細(xì)化到可執(zhí)行的操作步驟,以及可標(biāo)記任務(wù)結(jié)束的里程碑。
演練
演練的目的主要有以下:
驗證遷移工具與過程的可行。
發(fā)掘遷移過程中遇到的問題,并作出有效的改進。
評估遷移耗時。
優(yōu)化遷移步驟,驗證部分工作并行的可行性,提高遷移效率。
備份
在遷移前,需要先行備份,包括但不限于緩存數(shù)據(jù)、Redis配置文件,用于應(yīng)急。
遷移
在完成一到兩輪的遷移演練,并根據(jù)演練過程中發(fā)現(xiàn)的問題進行優(yōu)化后,正式開始數(shù)據(jù)遷移。
遷移過程應(yīng)該細(xì)化到每一步可執(zhí)行的步驟,有明確的開始與結(jié)束確認(rèn)動作。
數(shù)據(jù)驗證
緩存數(shù)據(jù)的驗證可以包括以下幾方面:各數(shù)據(jù)庫的key分布是否與原來或者遷移預(yù)期一致、關(guān)鍵key的檢查、key的過期時間檢查、實例是否能夠正常備份和恢復(fù)。
業(yè)務(wù)切換
當(dāng)緩存數(shù)據(jù)完成遷移,且驗證無誤后,業(yè)務(wù)可以正式切換緩存數(shù)據(jù)的連接,恢復(fù)對外。
如果涉及到緩存數(shù)據(jù)庫編號的變化,業(yè)務(wù)還需修改編號的選擇配置。
如果業(yè)務(wù)整體由數(shù)據(jù)中心或其他云廠商遷移到華為云,業(yè)務(wù)和緩存數(shù)據(jù)的遷移可并行。
業(yè)務(wù)驗證
業(yè)務(wù)切換后建議驗證內(nèi)容包含以下:
業(yè)務(wù)應(yīng)用與分布式緩存服務(wù)DCS緩存實例的連通。
通過業(yè)務(wù)操作對緩存數(shù)據(jù)的增刪改查。
如果條件滿足,進行壓測,確認(rèn)性能滿足業(yè)務(wù)峰值壓力。
回退
當(dāng)遇到演練中沒有及時發(fā)現(xiàn)的問題,導(dǎo)致數(shù)據(jù)遷移后無法供業(yè)務(wù)使用,且短期無法解決,則涉及到業(yè)務(wù)回退。
由于源Redis數(shù)據(jù)仍然存在,因此只需業(yè)務(wù)完成回退,重新接入源Redis實例即可。
在完成回退后,可繼續(xù)從演練甚至準(zhǔn)備階段重新開始,解決問題。
遷移信息收集表
評估和準(zhǔn)備階段收集的信息填寫參考下表:
| 
                                         遷移源 
                                     | 
                                    
                                    
                                    
                                         信息項 
                                     | 
                                    
                                    
                                    
                                         說明 
                                     | 
                                    
                                  
|---|---|---|
源Redis(列出所有待遷移的實例)  | 
                                  
                                  源Redis實例的IP地址  | 
                                  
                                  —  | 
                                  
                                  
Redis訪問密碼(如有)  | 
                                  
                                  —  | 
                                  
                                  |
源Redis(列出所有待遷移的實例)  | 
                                  
                                  總數(shù)據(jù)量大小  | 
                                  
                                  info memory命令查詢得到,參考used_memory_human的值。 用于評估遷移方案、分布式緩存服務(wù)DCS緩存實例規(guī)格、ECS可用磁盤空間等是否滿足,以及預(yù)估遷移耗時(業(yè)務(wù)中斷時間)。  | 
                                  
                                  
源Redis(列出所有待遷移的實例)  | 
                                  
                                  不為空的數(shù)據(jù)庫編號  | 
                                  
                                  info keyspace命令查詢得到。 用于確認(rèn)遷移是否涉及多數(shù)據(jù)庫,非AOF文件方式遷移,部分開源工具可能須逐庫處理導(dǎo)出和導(dǎo)入。 分布式緩存服務(wù)DCS緩存實例中,單機和主備實例支持0-255共256個數(shù)據(jù)庫,集群默認(rèn)只提供一個數(shù)據(jù)庫。  | 
                                  
                                  
源Redis(列出所有待遷移的實例)  | 
                                  
                                  各數(shù)據(jù)庫的key數(shù)量  | 
                                  
                                  用于遷移后進行數(shù)據(jù)完整性驗證。  | 
                                  
                                  
源Redis(列出所有待遷移的實例)  | 
                                  
                                  數(shù)據(jù)類型  | 
                                  
                                  CDM遷移服務(wù)當(dāng)前支持Hash和String兩種數(shù)據(jù)格式,如果源數(shù)據(jù)含有l(wèi)ist、set之類數(shù)據(jù),請采用第三方遷移工具。  | 
                                  
                                  
華為云ECS(彈性云服務(wù)器) 如果待遷移實例較多,可準(zhǔn)備多臺ECS并行遷移  | 
                                  
                                  彈性IP地址  | 
                                  
                                  選擇與分布式緩存服務(wù)DCS緩存實例網(wǎng)絡(luò)互通的彈性云服務(wù)器進行數(shù)據(jù)導(dǎo)入,確保導(dǎo)入過程網(wǎng)絡(luò)穩(wěn)定。 帶寬建議選取高配,提升數(shù)據(jù)傳輸效率。  | 
                                  
                                  
華為云ECS(彈性云服務(wù)器) 如果待遷移實例較多,可準(zhǔn)備多臺ECS并行遷移  | 
                                  
                                  系統(tǒng)登錄用戶/密碼  | 
                                  
                                  |
華為云ECS(彈性云服務(wù)器) 如果待遷移實例較多,可準(zhǔn)備多臺ECS并行遷移  | 
                                  
                                  CPU/內(nèi)存  | 
                                  
                                  部分遷移工具支持多線程并行導(dǎo)入,使用高規(guī)格ECS,能提升導(dǎo)入速度。  | 
                                  
                                  
華為云ECS(彈性云服務(wù)器) 如果待遷移實例較多,可準(zhǔn)備多臺ECS并行遷移  | 
                                  
                                  可用磁盤空間  | 
                                  
                                  ECS需要預(yù)留足夠的可用磁盤空間,存儲壓縮文件以及解壓后的緩存數(shù)據(jù)文件。 注:為提高數(shù)據(jù)傳輸效率,對于較大的數(shù)據(jù)文件,建議壓縮后再傳輸?shù)綇椥栽品?wù)器。  | 
                                  
                                  
分布式緩存服務(wù)DCS緩存實例 (根據(jù)源Redis實例數(shù)與數(shù)據(jù)量情況選擇合適的規(guī)格與實例數(shù))  | 
                                  
                                  實例連接地址  | 
                                  
                                  —  | 
                                  
                                  
分布式緩存服務(wù)DCS緩存實例 (根據(jù)源Redis實例數(shù)與數(shù)據(jù)量情況選擇合適的規(guī)格與實例數(shù))  | 
                                  
                                  實例連接端口  | 
                                  
                                  —  | 
                                  
                                  
分布式緩存服務(wù)DCS緩存實例 (根據(jù)源Redis實例數(shù)與數(shù)據(jù)量情況選擇合適的規(guī)格與實例數(shù))  | 
                                  
                                  實例訪問密碼  | 
                                  
                                  |
分布式緩存服務(wù)DCS緩存實例 (根據(jù)源Redis實例數(shù)與數(shù)據(jù)量情況選擇合適的規(guī)格與實例數(shù))  | 
                                  
                                  實例類型  | 
                                  
                                  —  | 
                                  
                                  
分布式緩存服務(wù)DCS緩存實例 (根據(jù)源Redis實例數(shù)與數(shù)據(jù)量情況選擇合適的規(guī)格與實例數(shù))  | 
                                  
                                  實例規(guī)格/可用內(nèi)存  | 
                                  
                                  —  | 
                                  
                                  
網(wǎng)絡(luò)配置  | 
                                  
                                  VPC  | 
                                  
                                  提前規(guī)劃VPC,確保應(yīng)用服務(wù)、分布式緩存服務(wù)DCS緩存實例等處于相同VPC中。  | 
                                  
                                  
網(wǎng)絡(luò)配置  | 
                                  
                                  子網(wǎng)  | 
                                  
                                  |
網(wǎng)絡(luò)配置  | 
                                  
                                  安全組或白名單  | 
                                  
                                  由于Redis 3.0和Redis 4.0/5.0/企業(yè)版Redis 6.0實例部署模式不一樣,控制訪問方式也不一樣,需要制定相應(yīng)的安全組或白名單規(guī)則,確保網(wǎng)絡(luò)連通。具體請根據(jù)目標(biāo)Redis實例參考配置安全組或者配置白名單  | 
                                  
                                  
分布式緩存服務(wù)遷移方案
自建Redis,指的是在華為云、其他云廠商、本地數(shù)據(jù)中心自行搭建的Redis。
自建Redis遷移至分布式緩存服務(wù)DCS
分布式緩存服務(wù)DCS控制臺界面一鍵式遷移:
1、如果自建Redis和分布式緩存服務(wù)DCS Redis實例網(wǎng)絡(luò)連通,推薦使用在線遷移自建Redis。
2、如果自建Redis和分布式緩存服務(wù)DCS Redis實例網(wǎng)絡(luò)不通,推薦使用備份文件遷移自建Redis。
Redis-cli:
1、使用Redis-cli遷移自建Redis(AOF文件)。
2、使用Redis-cli遷移自建Redis(RDB文件)。
Redis-Shake:
使用Redis-Shake工具遷移自建Redis Cluster集群。
分布式緩存服務(wù)DCS實例間遷移
分布式緩存服務(wù)DCS控制臺界面一鍵式遷移:
1、低版本Redis實例遷移到高版本Redis實例,例如Redis 3.0遷移至Redis 4.0/5.0:
如果源Redis實例和目標(biāo)Redis實例的網(wǎng)絡(luò)連通,推薦使用在線遷移Redis實例。
如果網(wǎng)絡(luò)不連通,推薦使用備份文件遷移不同Redis版本的實例。
2、不同Region的Redis實例遷移,推薦使用備份文件遷移不同Region的實例。
3、不同帳號的Redis實例遷移,例如從華為云帳號A遷移到帳號B:
如果可以打通網(wǎng)絡(luò),也可以使用在線遷移Redis實例。
其他云廠商Redis服務(wù)遷移至分布式緩存服務(wù)DCS
分布式緩存服務(wù)DCS控制臺界面一鍵式遷移:
1、如果其他云廠商Redis服務(wù),沒有禁用SYNC和PSYNC命令,推薦使用在線遷移其他云廠商Redis。
2、如果其他云廠商Redis服務(wù),禁用了SYNC和PSYNC命令,推薦使用備份文件遷移其他云廠商Redis。
Rump:
Redis-Shake:
分布式緩存服務(wù)教程視頻
分布式緩存服務(wù)DCS
04:53
分布式緩存服務(wù)DCS
03:40
分布式緩存服務(wù)DCS
04:16