遷移流程示意圖


評估
獲取當前待遷移的緩(huan)存數據信息(xi)(可參考緩(huan)存數據信息(xi)記錄以下信息(xi)),包括:
- 實例數量
- 各實例配置的數據庫數量
- 各數據庫的key數量
- 業務用到的數據庫
- 各實例數據占用空間
- Redis版本
- Redis實例配置(單機/主備/集群)
- 業務與各實例的連接關系
根據獲取到(dao)的信息規劃DCS緩存實(shi)例,包括(kuo):
- 申請緩存實例數量
- 各緩存實例的規格、類型(單機/主備/集群)
- 緩存實例與業務所屬網絡規劃(VPC/子網/安全組)
說明
redis-cli -h ${redis_address} -p ${port}
- 查看數據分布情況,確認有數據的數據庫編號以及各自的key數量。
info keyspace
查看各DB存儲的key數量,并記錄下(xia)來,供遷(qian)移(yi)驗(yan)證對比。
- 查看數據占用空間,確認用于中轉的ECS可用磁盤空間是否足夠,實例規格與剩余可用內存是否足夠。
info memory
參考used_memory_human的值。
準備
當(dang)完成遷移評(ping)估后,需要準備以下內(nei)容:
- 移動存儲介質
用(yong)于(yu)在(zai)網絡(luo)不通(自建數據中心場景)的(de)情況下(xia)以復制方式傳輸數據。
- 網絡資源
按(an)照業務規劃創建(jian)虛(xu)擬私有(you)云與子網。
- 服務器資源
申請彈(dan)性(xing)云主(zhu)機,承(cheng)載Redis客(ke)戶端。用(yong)于導出或導入緩存數據。
彈性云主機的規格建議不低于8C16G。
- DCS緩存實例
按照(zhao)遷移規劃申請緩存實(shi)例(li),如果實(shi)例(li)數量超過用(yong)戶默認配額,請聯系(xi)技術支(zhi)持。
- 相關工具安裝
包括(kuo)FTP工具、Redis遷移工具等。
- 信息收集
信息收集包括參(can)與(yu)人員聯系方式(shi),服(fu)務器地址、登(deng)錄信息,緩(huan)存實例(li)信息與(yu)數據庫(ku)信息等。
- 整體遷移方案
制定總體遷(qian)移計(ji)劃(hua),包括人員安排、演練方(fang)(fang)(fang)案(an)(an)、遷(qian)移方(fang)(fang)(fang)案(an)(an)、驗證方(fang)(fang)(fang)案(an)(an)、業務切換方(fang)(fang)(fang)案(an)(an)、回退方(fang)(fang)(fang)案(an)(an)。
每(mei)一(yi)份方案需要有細化(hua)到(dao)可(ke)執行的(de)操作(zuo)步(bu)驟,以及可(ke)標記任務(wu)結(jie)束的(de)里程(cheng)碑。
演練
演練的目的主要有以下:
- 驗證遷移工具與過程的可行。
- 發掘遷移過程中遇到的問題,并作出有效的改進。
- 評估遷移耗時。
- 優化遷移步驟,驗證部分工作并行的可行性,提高遷移效率。
備份
在遷移前,需(xu)要先(xian)行備份,包括但不(bu)限于緩存數據、Redis配置文(wen)件(jian),用于應急。
遷移
在完(wan)成一到兩輪的遷移演練,并根(gen)據(ju)演練過(guo)程中發現的問題進(jin)行優化后,正式開始(shi)數據(ju)遷移。
遷(qian)移(yi)過程應該細化到(dao)每(mei)一步可執行的(de)步驟,有明(ming)確(que)的(de)開始與結束確(que)認動作。
數據驗證
緩存數據的(de)驗證(zheng)可(ke)以包(bao)括以下幾方面:
- 各數據庫的key分布是否與原來或者遷移預期一致
- 關鍵key的檢查
- key的過期時間檢查
- 實例是否能夠正常備份和恢復
業務切換
- 當緩存數據完成遷移,且驗證無誤后,業務可以正式切換緩存數據的連接,恢復對外。
- 如果涉及到緩存數據庫編號的變化,業務還需修改編號的選擇配置。
- 如果業務整體由數據中心或其他云廠商遷移到云服務,業務和緩存數據的遷移可并行。
業務驗證
業務(wu)切換后建議(yi)驗證內容包含以下:
- 業務應用與DCS緩存實例的連通。
- 通過業務操作對緩存數據的增刪改查。
- 如果條件滿足,進行壓測,確認性能滿足業務峰值壓力。
回退
當遇到(dao)演練中沒有(you)及時發(fa)現的問題,導(dao)致數(shu)據遷移后無法供業務(wu)使用,且(qie)短期無法解決,則涉及到(dao)業務(wu)回退。
由于源Redis數據仍然存在,因此(ci)只需業(ye)務(wu)完成回(hui)退,重新接(jie)入源Redis實例(li)即可。
在完成回(hui)退后,可繼續從演練甚至準(zhun)備階(jie)段重新(xin)開始,解決問題。
遷移信息收集表
評估和準備階段收集的信息填(tian)寫(xie)參考(kao)下(xia)表:
遷移源 信息項 說明 源Redis
(列出所有待遷移的實例)源Redis實例的IP地址 - Redis訪問密碼(如有) - 總數據量大小 info memory命令查詢得到,參考used_memory_human的值。
用于評估遷移方案、DCS緩存實例規格、ECS可用磁盤空間等是否滿足,以及預估遷移耗時(業務中斷時間)。不為空的數據庫編號 info keyspace命令查詢得到。
用于確認遷移是否涉及多數據庫,非AOF文件方式遷移,部分開源工具可能須逐庫處理導出和導入。
DCS緩存實例中,單機和主備實例支持0-255共256個數據庫,集群默認只提供一個數據庫。各數據庫的key數量 用于遷移后進行數據完整性驗證。 數據類型 CDM遷移服務當前支持Hash和String兩種數據格式,如果源數據含有list、set之類數據,請采用第三方遷移工具。 ECS(彈性云主機)
如果待遷移實例較多,可準備多臺ECS并行遷移彈性IP地址 選擇與DCS緩存實例網絡互通的彈性云主機進行數據導入,確保導入過程網絡穩定。
帶寬建議選取高配,提升數據傳輸效率。系統登錄用戶/密碼 - CPU/內存 部分遷移工具支持多線程并行導入,使用高規格ECS,能提升導入速度。 可用磁盤空間 ECS需要預留足夠的可用磁盤空間,存儲壓縮文件以及解壓后的緩存數據文件。
注:為提高數據傳輸效率,對于較大的數據文件,建議壓縮后再傳輸到彈性云主機。DCS緩存實例
(根據源Redis實例數與數據量情況選擇合適的規格與實例數)實例連接地址 - 實例連接端口 - 實例訪問密碼 - 實例類型 - 實例規格/可用內存 - 網絡配置 VPC 提前規劃VPC,確保應用服務、DCS緩存實例等處于相同VPC中。 子網 - 安全組或白名單 由于Redis 3.0和Redis 4.0/5.0/6.0實例部署模式不一樣,控制訪問方式也不一樣,需要制定相應的安全組或白名單規則,確保網絡連通。 ... ... 其他配置信息。