郭斌
摘要:業務系統的容災備份是非常重要的需求,尤其是在與人們的生產生活息息相關的業務系統中,必須要盡力提升服務的可用性和可靠性,業界的相關技術也在不斷的演進與革新。本文探討了容災備份技術的發展、現狀及局限性,并著重闡述了通過異地容災備份技術確保業務系統持續可用、數據可靠的技術架構。
關鍵詞:異地容災備份;兩地三中心;分布式
1引言
信息化的飛速發展不斷地提升社會的生產效率并改善人們的生活方式,尤其是通訊、金融、安全、交通、互聯網等關鍵領域的各種信息化業務系統,必須有足夠的手段去確保其服務的可用性和可靠性。災害事件造成業務系統的網絡中斷、供電異常、數據丟失、設備損壞等,不僅給人們的生產生活帶來干擾,也給不少企業和單位的業務開展帶來沉重的打擊,因此需要容災備份技術方法,更穩妥的保障其可用性和可靠性。
2容災備份技術現狀及局限性
容災備份技術的發展歷經多個階段,每一次技術革新都解決了前一代的某些局限性,體現了業界技術水平的提升和用戶預期的提高。
2.1冷備份技術
冷備份即業務系統定期或定量的把業務數據導出并備份到某種離線存儲介質上。如業務系統故障或數據丟失,可通過之前備份的數據將業務系統恢復到近期的某個狀態。冷備份的技術局限性在于,最近一次備份完成后至在線業務系統故障時產生的數據變更是無法挽救的,且在數據恢復過程中,在線業務系統的服務是中斷的。
2.2RAID技術
RAID(Redundant Array of Independent Disks)技術即業務系統的數據保存在由多塊磁盤組成的具有冗余性的陣列中,某塊磁盤損壞后,數據仍然可用,不影響上層業務系統對數據的讀寫訪問。RAID通常可配置為RAID1,RAID5,RAID6等模式,寫數據時通過一定的規則額外保存冗余的副本或校驗,用于故障后的恢復。專用的RAID磁盤陣列產品通常配置了雙電源和雙控制器,數據的可靠性和可用性有極大的保障,但基于數據的業務系統整體的可靠性和可用性還需要其他機制來保障。
2.3雙機熱備份技術
雙機熱備份技術,即兩臺業務系統服務器互為“主機”和“備機”,通過雙機軟件來管理。在同一時刻,只有做主機的服務器對外提供服務,當主機故障時,雙機軟件負責進行主機和備機的身份切換,之前的備機立刻切換為主機并提供服務。雙機熱備份技術中,業務系統的數據通常由共享的磁盤陣列存儲,當備機切換為主機時,直接使用該磁盤陣列上的數據提供服務。業務系統的雙機熱備份技術是現階段廣泛使用的一種應用模式,其局限性在于:性能方面無法橫向的線性擴展;備機不能對外提供服務,其配備的計算能力長期閑置;安全性方面,雖然數據有冗余,但整個陣列仍然容易成為一個單點故障點。
2.4分布式多副本技術
分布式多副本技術中,業務系統由多臺服務器節點組成一個集群。業務系統的數據集通常被分割為多個分區,每個分區有一個主副本和多個從副本,這些分區的各數據副本根據一定規則分布在集群中不同的服務器節點上,這些服務器有各自獨立的存儲。寫數據時通常會先在某個分區的主副本上寫入,然后相繼更新該分區所有副本上的數據,并確保副本間的數據一致性。當某分區的主副本故障時,系統會立刻選舉某個從副本承擔主副本的角色,無縫的提供不間斷的服務;當故障節點恢復正常后,其數據會在有限的時間內與其他副本上的最新數據保持同步。此技術架構下,集群可以橫向線性擴展,并且在一定場景下從副本也可提供數據的只讀服務,計算資源利用率有提升。但其局限性在于,因為總體上要保存多份數據,存儲資源利用率較低。
2.5分布式糾刪碼技術
分布式糾刪碼(Erasure Coding,EC)技術本質上是通過數學運算,用計算資源去交換存儲資源的一種時空權衡。糾刪碼首先針對原始數據進行分片(例如分為m片),然后基于這些分片數據進行矩陣運算,編碼生成若干備份數據分片(例如n片),最后將原始數據分片和備份數據分片分別寫入分布式系統中的不同節點。數據恢復是編碼的逆運算,在m+n片中取任意m片數據,即可恢復出完整的原始數據。糾刪碼技術有效克服了多副本技術中存儲資源利用率低的問題。
3異地容災備份關鍵技術
綜上所述,容災備份技術發展過程中不斷提升系統的可靠性和可用性,但仍然難以應對區域性的災害,如大面積停電、斷網等情況。因此對非常關鍵的業務系統來說,跨地域的容災備份是非常必要的。
3.1同集群同城部署
同集群部署可以運用在同城多數據中心的異地容災業務系統中。基于前述的分布式多副本技術,將同一個集群各個數據分區的多個副本分布到不同的數據中心(相當于把單個集群“拉遠”)。同城的數據中心間使用高速的網絡專線連接,確保盡可能低的網絡延遲和足夠的網絡帶寬。當某個數據中心失聯時,業務系統仍然有正常服務的能力。
3.2多集群異地部署
多集群異地的部署方式能夠更大程度上保障系統的可靠性和可用性,比如“兩地三中心”的方式,即業務系統總體部署于同城兩個數據中心,加上異地一個數據中心。同城兩數據中心可以是同一個集群,也可以是兩個獨立的集群,同城兩個數據中心間實時或準實時的同步數據,當其中一個數據中心失聯時,其服務優先由同城另一個數據中心承擔。如果業務系統在同城的兩個數據中心都可以同時提供服務(而不只是在另一個失聯時才承擔工作),這時可以叫做“同城雙活”模式。處于異地的數據中心因為距離較遠,與其他兩個數據中心間的網絡延遲和帶寬都得不到保障,因此只能異步的將自己的數據逐漸與其他集群保持一致。假如不幸發生地震、颶風等大面積災害,處于同城的2個數據中心都出現了問題,則處于異地的數據中心(通常在人工確認后)可以立即承擔業務系統的服務工作。
4結束語
在高速發展的互聯網時代,確保關鍵業務系統中數據的高可用和高可靠具有極其重要的意義,相關技術也是業界研究和應用的重要方向。本文探討了容災備份技術的歷次迭代,分析了其局限性的和解決方案,并著重闡述了通過異地容災備份技術確保業務系統持續可用、數據可靠的問題。具體到商用案例中,往往面臨著成本與目標的權衡,最合適的方案才是最好的方案。隨著技術的發展和應用需求的變化,業界對容災備份方案也會提出更高的要求,需要持續針對業務系統的需求進行研究,利用新技術不斷改善現有方案。
(作者單位:南京中興新軟件有限責任公司)