前言

隨着企業業務應用的拓展和業務數據不斷增長,作爲 IT 基礎架構的重要組成,存儲系統不僅面臨着存儲容量與性能提升的需求,還需要適應系統架構的變化。由於系統架構越來越複雜、數據類型越來越多樣性,存儲替換遷移工作也需要越來越細緻。爲了高效、安全、完整地完成存儲替換遷移任務,我們需要結合不同存儲及各自系統特點有策略地開展遷移相關的工作。

數據遷移方法

存儲替換遷移其實也是一個數據遷移的過程,首先我們需要先了解下常用的存儲數據遷移技術,其實現方法可以大致分爲如下幾類:

1) 基於應用軟件層的數據遷移

這種方法一般採用應用軟件自身的遷移程序或其他第三方遷移工具來實現數據遷移。比較典型的比如 Oracle 數據同步工具 DataGuard ,數據庫的備份恢復程序等等數據同步或複製方法。這類方法的優勢在於可以定製化數據遷移的過程,不受限於主機、存儲,但是隻適用於特定的應用。

2) 基於主機系統層的數據遷移

這種方法是通過主機系統層的數據拷貝或遷移來實現數據的遷移的。比較典型的比如虛擬化環境中的 VMotion 遷移數據存儲,或者通過支持 LVM 的系統的邏輯卷鏡像來實現數據遷移。這類方法優勢在於可以方便的在線遷移,但缺點是主機系統層較複雜的情況下,需要消耗較多的精力完成遷移所需的系統配置。

3) 基於存儲層的數據遷移

這種方法一般採用兩種方法來實現:一是藉助存儲虛擬化技術來很方便地實現數據遷移,比較典型的產品是 VPLEX 或 SVC 這類的存儲虛擬化設備,或者自帶存儲虛擬化技術的存儲陣列比如 HDS VSP 等,存儲虛擬化則是在服務器與存儲之間插入一箇中間層,通過存儲虛擬邏輯卷的可以實現類似於異構存儲系統間的數據鏡像等功能,這樣只需要在存儲虛擬化層創建鏡像再拆除鏡像,就可以更加高效的完成存儲間的數據遷移;二是通過存儲自帶的數據複製軟件或支持的數據複製工具,完成存儲卷的複製,一般在同類型的存儲系統中完成。基於存儲的數據遷移的優勢在於不受主機層、應用層限制,遷移效率更高。

存儲替換遷移實踐案例

以本人曾參與的存儲替換遷移工作爲例,某銀行同城雙機房原有 7 套高端存儲及兩套 VPLEX 設備,其中生產機房 5 臺存儲按照數據類型分爲 2 個區域:交易域和數據域,交易域存放交易類數據,數據域存放統計分析類數據,災備機房則是 2 臺存儲組成災備域。其存儲架構如下圖所示:

而主機系統則包括了 IBM 小型機、 X86 服務器以及 VMWare 虛擬機等多種類型的系統架構,應用則包括 DB2 、 ORACLE 等數據庫以及其他關鍵業務應用。

由於業務數據量的迅速增長等多種因素,原有的存儲架構存在着存儲替換、擴容以及分域規劃等需求,並確立了三個新的存儲體系規劃建設目標:一是數據域和交易域的存儲需要隔離分開;二是這三個存儲區域都需要擴容;三個需要實施存儲鏡像,消除存儲單點隱患。最終,通過在數據域另外引入一套 SVC 設備,其他三個存儲域各新增一臺存儲設備,並通過存儲間的替換遷移實現最終的架構規劃。

遷移難點分析

存儲替換遷移本質上是一個通過數據遷移技術完成存儲設備之間的數據遷移,並將原有的數據存儲路徑切換爲新的存儲路徑的實施過程。結合該銀行存儲替換遷移的案例來看,存儲替換遷移的難點可以大致總結爲如下幾點:

1) 遷移方法的選擇

各種數據遷移方法都有各自的優缺點,也適用於不同的數據遷移需求和遷移場景。在該銀行存儲替換遷移案例中,存儲方面涉及到了多個廠家多種型號的存儲系統,另外主機層面和應用層面的架構也不統一,而且涉及到幾乎全行的業務系統,存儲替換遷移整體的工作量也較大,具體該如何選擇存儲層的數據遷移方案。

2) 遷移時間窗口控制

由於待遷移的存儲容量較大或者涉及的系統較多或者遷移方法所限,整個遷移工作可能會持續較長時間。特別是本案例中,部分待遷移系統的業務連續性要求較高,停機窗口都有一些限制。所以怎麼去控制遷移時間窗口,做好遷移計劃也很關鍵。

3) 遷移影響性分析

存儲的替換遷移不僅僅涉及到存儲設備自身,還與系統以及其上運行的應用也密不可分。整個遷移過程中會給哪些系統帶來怎樣的影響,會持續多長時間,這些也是系統管理員需要充分評估的,並需要與其他同事溝通清楚的點。

4) 遷移的風險控制

存儲的替換遷移總是存在一定安全風險,如遷移失敗、數據不一致或丟失等等情況。這就涉及到了如何回退操作,控制遷移風險。另外存儲替換遷移後,數據又是否需要校驗,數據的完整性要求又如何保證等等風險。

應對策略

那麼存儲替換遷移工作又改如何開展,來應對上述的遷移難點呢?本文還將結合上述案例以及個人的存儲替換遷移實踐經驗,來談談具體的應對策略:

1) 存儲架構的提前規劃

首先我們需要明確存儲替換遷移的目的,一般存儲替換遷移都帶着明確的目標,比如舊設備更新換代,比如架構規劃調整等等。對於設備更新換代的,我們需要在存儲規劃之初就應該確定如何兼顧更新換代與存儲遷移的需求,更早地規劃好存儲架構;對於架構規劃調整的,我們也需要提前做好規劃,在架構規劃調整與存儲替換遷移之間找到平衡點。提前做好存儲規劃,選擇替換遷移阻力最小的方向,儘量減少系統的改造量

在本文的案例中,考慮到在線遷移需求且遷移數據量較大的情況,我們基本鎖定了存儲層的數據遷移方法。另外由於涉及到多廠商異構存儲和存儲鏡像雙活技術,存儲虛擬化技術成了唯一選項。但如果全部接入到原 VPLEX 設備下,還會存在無法滿足存儲分域及 VPLEX 性能不足等情況。所以最終的存儲規劃方案設計爲在數據域另外引入一套 SVC 設備,其他三個存儲域各新增一臺存儲設備,並通過存儲替換遷移實現最終的架構規劃,如下圖所示:

2) 遷移測試及分析

在正式遷移前,設計好遷移測試方案,並能完整模擬整個遷移過程,是一項很有意義的工作。在本文的案例中,遷移測試的內容主要包括異構存儲接入 SVC 納管的功能測試、原 VPLEX 環境下主機遷移到 SVC 的改造測試以及虛擬存儲卷數據遷移速度等測試。這可以讓我們更熟悉遷移方法和流程,是下一步工作的基礎。結合遷移測試的數據,我們可以估算遷移造成的影響以及大致的遷移時間窗口。

同時遷移測試也能驗證遷移方法的有效性,綜合對比各種遷移方法的優劣,結合實際環境,選出最優的替換遷移方法。以 NAS 存儲遷移爲例,之前實施過一個文件數接近 3000 萬的 NAS 文件系統,目標 NAS 存儲是 isilon ,原本考慮到文件權限等因素,計劃採用的是主機層面 rsync 數據同步工具來同步的,但是同步速度很慢,預估需要 5 天時間才能完成數據同步。後來測試了下 isilon 內置的基於 NDMP 協議的數據遷移工具,發現遷移速度更快,且文件權限也能遷移過來,最終 30 多個小時就能遷移完成。

3) 遷移前的環境檢查與影響性分析

環境檢查也是替換遷移重要的一步,對替換遷移所涉及的系統,都需要做進一步的健康性檢查。在本文的存儲替換遷移案例中, SVC 接入改造涉及到了多個數據域系統的停機維護變更,這些系統主要是 DB2 結合 PowerHA 的高可用架構 , 也有 GPFS 文件系統集羣應用。而待遷移改造系統本身的操作系統問題或 PowerHA 配置存在的問題,也給 SVC 接入改造工作帶來了不小的麻煩。

所以遷移前的環境檢查主要是從兩方面考慮的:一是爲了避免本身系統隱患在替換遷移中徹底暴露出來,比如說系統本身高可用或集羣配置存在隱患,在存儲替換遷移中可能會大大影響變更的實施進度,需要花費大量的精力來解決這類問題;二是可以摸清存儲遷移替換變更的影響範圍,結合遷移測試的部分,進一步分析遷移替換對整個系統的影響性,有利於把控存儲替換遷移的風險。

4) 制定合理的遷移替換計劃

合理的遷移替換計劃是存儲替換遷移工作中最關鍵的一個環節,在通過上述的三個關鍵環節的鋪墊之後,還需要制定具體的存儲遷移替換計劃。其主要包括如下的幾個部分工作:

制定遷移批次及遷移時間計劃

前文提到,存儲替換遷移很多時候會涉及到較大的數據量,架構衆多複雜的系統以及停機時間窗口限制。那麼合理的規劃遷移批次,估算每個批次的遷移時間是必要的應對策略。在具體遷移批次規劃方面,我們可能設置很多規則,但是總體來說,要考慮遷移的工作量的合理分配,要考慮儘量減少停機時間窗口和停機頻次,還要考慮人員資源的分配。

在本文的案例中,存儲替換遷移工作主要是數據類系統 SVC 接入改造、存儲間的數據遷移這兩類工作。而 VC 接入改造工作的難點在於涉及到 10 套系統環境的改造,都需要做停機維護,所以最終根據停機時間窗口及整體工作量分了三個批次來遷移改造;存儲間的數據遷移主要是通過 SVC 或 VPLEX 的雙活鏡像來實現的,但是涉及的存儲卷較多,遷移的數據量接近 80T ,最終對每批次的遷移數據量做了平衡,同樣也計劃了三個批次的存儲間數據遷移。

遷移前準備

針對每個批次的數據遷移,我們需要做好遷移前準備。考慮存儲數據的重要性以及遷移變更存在的極端異常情況,數據備份是遷移前不可忽視的部分。數據備份的範圍一定要儘可能的考慮周詳,不同類型的數據採用不同的備份方式,比如應用配置信息、集羣配置信息、數據庫備份、數據備份等等。另外數據備份要保證可恢復性,同時也是有時效性的,哪些數據相對靜態,哪些是增量數據,如何保證數據能儘可能地恢復到遷移前的時間點,都是需要重點考慮的。

人員協調

存儲替換遷移是基礎架構層面比較重要的調整動作,很多時候不是單個個體的力量就能很妥善的完成的,需要學會借力,協調各方面的資源參與進來。像本文的案例中這樣的存儲替換遷移工作,除了存儲管理方面的工作外,還涉及到了操作系統層的配置、數據庫的啓停和備份、應用的啓停和驗證等等工作。所以,從前期制定遷移計劃開始,到遷移方案的評審,再到遷移工作的開展,儘可能讓更多的人員參與進來,讓參與人員瞭解遷移工作的整個流程。這樣不僅給方案的提出更多寶貴的合理性建議,也能減少遷移工作的阻力,集思廣益,讓存儲替換遷移工作更加順利的推進。

遷移順序和操作流程

在做好上述工作之後,制定具體的遷移順序和操作流程會更加容易。下表是 SVC 遷移改造的操作流程模板,可供參考:

一般來說,需要將遷移所涉及的工作主要包括準備工作、系統啓停、數據遷移、存儲割接、系統驗證、應用驗證等待。我們還需要對這些工作進行原子化細分,詳細分析每個步驟所需時間,考慮遷移工作的關聯關係,梳理出哪些工作是串行的,哪些工作是可以並行的,做到科學地人員工作分配,減少遷移工作中本來就緊張的時間窗口下的等待時間。

應急方案

應急預案和回退方案是每個變更操作必須充分考慮的,在實際存儲替換遷移工作的過程中,依然會存在很多實施前未充分論證的細節,比如數據替換遷移過程中,由於各種原因遷移命令執行失敗,比如系統 HA 或者某個應用起不來等等異常情況。這些異常情況除了臨場的應對解決之外,還需要我們能事前制定完整的存儲替換遷移的應急預案和回退方案。一旦在計劃時間內無法解決異常問題,需要果斷採取應急預案和回退方案,畢竟數據丟失或者存儲不可用會造成極其惡劣的影響。

善後工作

由於遷移工作本身就佔用較多的精力以及善後工作可能會拉長時間週期,存儲替換遷移的善後工作很多時候會被忽視。在本文案例中的存儲替換工作,善後工作主要包括:一是數據完整性、一致性驗證工作,比如替換前後數據庫信息的校對,文件系統則可以統計文件 inode 數和文件 MD5 校驗;二是舊配置信息或者臨時配置信息清理工作,配置信息是否暫時保留,保留多久,一般來說舊的存儲配置信息都是在變更實施的第二天才做清理,主要是方便回退;三是存儲替換遷移前後的對比,替換遷移是否達到了遷移工作的預期,比如可以觀察遷移前後的批處理作業或其他性能監控指標。這些工作有些是遷移完成後就必須開展的,有些是需要觀察期的,都需要我們去落實完成的,否則會留下各種隱患,存儲替換遷移工作的質量也得不到保證。

結語

存儲替換遷移是一項涉及到了存儲、操作系統、應用系統、數據庫等等不同類型系統的工作,需要靈活應對不同的數據遷移需求。本文首先介紹了常用的數據遷移方法,再結合某銀行存儲體系規劃建設的實踐工作,分析存儲替換遷移過程中存在的難點、風險點,並具體解析其應對策略,包括存儲架構規劃、制定遷移計劃、遷移測試、遷移流程以及回退方案等方面工作,也希望給同行在存儲替換遷移工作方面提供一種借鑑。

相關文章