趙鵬飛
(中國人民銀行 蘭州中心支行,甘肅 蘭州 730000)
利用DRBD和Pacemaker技術構建高可用數據容災備份系統
趙鵬飛
(中國人民銀行 蘭州中心支行,甘肅蘭州730000)
為充分保證數據信息安全,提高數據中心容災備份能力,以DRBD和Pacemaker技術為基礎構建具有高可用性的數據容災備份系統,實現生產數據在本地、異地之間三臺服務器的鏡像復制,并且實現應用和數據兩個級別的高可用(HA),解決目前主流SAN存儲環境下共享磁盤陣列的單點故障威脅,有效滿足不斷提升的數據恢復RTO和RPO的要求。本論述為數據中心業務系統高可用和數據異地備份提出了低成本的技術方案。
數據中心;數據安全;DRBD;Pacemaker
目前,數據中心主流的存儲備份系統主要采用SAN(存儲區域網絡)技術,服務器、共享磁盤陣列、磁帶庫等設備通過光纖連接,數據讀寫具有較高的穩定性和可靠性。但其高成本、不易擴展,且對技術人員要求較高,導致SAN網絡不能滿足中小應用系統快速接入、靈活多樣的存儲需求。此外,由于技術原因和費用問題,SAN網絡中共享的磁盤陣列往往采用單獨部署模式,存在發生存儲陣列故障造成數據損失的風險。因此,迫切需要采用安全可靠的容災備份方式保障數據安全,否則一旦數據遭受損失,將會造成系統無法使用、對外服務中斷的嚴重后果。
DRBD(Distributed Replicated Block Device)是一個用軟件實現的服務器之間鏡像塊設備內容復制的解決方案,主要被用于Linux平臺下的高可用(High Available)方案之中。DRBD是介于文件系統和磁盤硬件之間的中間件。DRBD負責接收要寫入文件系統的數據,并把數據寫到本地磁盤,然后通過網絡發送給另一臺主機;另一臺主機在DRBD守護進程的作用下再將接收到的數據存到自己的磁盤中,本地節點與遠程節點的數據可以保證實時同步。因此,當本地節點的數據出現問題造成訪問中斷時,遠程節點的主機上還會保留有一份完全相同的數據,繼續提供使用,以達到高可用的目的。DRBD通過網絡將整個塊設備進行鏡像,實現數據存儲的高可用性,可以看成是網絡版的RAID1。DRBD系統結構見圖1所示。

圖1 DRBD系統結構圖
在DRBD技術中,實現數據鏡像有三種數據復制同步方式,分別是異步復制協議、內存同步復制協議(也稱半同步復制協議)以及同步復制協議。異步復制協議A,它是在主節點將數據寫入到本地TCP發送緩存區的時候就認為將同步數據發送到從節點上。這種數據同步方式的速度較快,但是在發生故障的時候,可能會引起數據丟失;內存同步復制協議B,它是在主節點進行寫數據時,將數據寫入發送隊列后,就認為本地磁盤的寫入和從節點的數據寫入已經同步完成,而事實是數據還在內存中等待實際的寫入;同步復制協議C,它是在主次節點數據寫入都被確認后才認為同步完成。這種復制方式,不會因為故障而造成同步失效,引起數據的不一致。數據復制流程見圖2所示。

圖2 DRBD數據復制流程
Pacemaker(直譯:起搏器)是一個集群資源管理器,它實現了集群資源級故障檢測和恢復,但它本身還需依賴其他集群基礎工具(如Corosync或Heartbeat)所提供的消息通信和成員關系的能力。它可以做任何規模的集群管理員,能夠準確地實施集群節點間資源的運行關系(包括順序和位置)。Pacemaker主要通過Resource Agents來實現資源的啟動停止。Pacemaker支持如下幾種 Resource Agents:1.LSB(Linux Standard Base),這是由操作系統提供的所有放在/etc/init.d下面的各種services,services(或Script)只要符合LSB規范就能被Pacemaker兼容;2.OCF(Open Cluster Frame-Work)是LSB的規范擴展,放在/usr/lib/ocf/resource.d/目錄下,常用的OCF資源有Filesystem、IPaddr、LVM、apache dhcpd等。
Pacemaker+DRBD架構常用的構建高可靠集群的方法有Active/Passive主備模式:使用DRBD實現主備機的容災,Heartbeat或Corosync做心跳監測、服務切換甚至Failover,Pacemaker實現服務(資源)的切換及控制等。
如圖3所示,系統設計的高可用集群由三臺PC服務器組成,服務器nfs1和nfs2部署在本地數據中心,nfs3部署在異地備份中心。集群資源包括:資源組(group):NFS服務 IP、nfsserver;主從資源(Master/ Slave):ms_left、ms-right;普通資源(Primitive):Filesystem、stonith1、stonith2。
集群首先啟動主從資源,然后啟動其他資源(普通資源、資源組),普通資源和資源組都被限定在主從資源中角色為Master的服務器上運行,這樣實現了其他資源隨主從資源的節點切換而切換。集群中主從資源DRBD在兩臺服務器之間建立鏡像塊設備/dev/drbd0,在正常運行時,只有主服務器能夠修改同步空間中的數據,從服務器只是保證同步空間中的數據和主服務器相同,不能對其中的數據進行修改。當主服務器出現故障,從服務器中的DRBD變為Primary模式,可以實現數據讀寫。Pacemaker中有兩個主從資源:DRBDPrimary和DRBD-Secondary組成的ms_left,ms_left中的主服務器和DRBD-Third組成的ms-right。在ms_left中,主服務器可能是nfs1或nfs2,而從服務器永遠設定為nfs3。其他資源、資源組則被限制在ms-right中Master角色的節點上,只在nfs1或nfs2上運行。nfs3只作為底層DRBD的遠程數據同步節點,不接管上層其他資源,這樣實現了本地數據中心高可靠的NFS服務,而底層數據能通過DRBD復制到異地災備節點nfs3中。普通資源stonith1、stonith2分別運行在兩個節點上,stonith(Shoot-The-Other-Node-In-The-Head)可翻譯為一槍斃命,是當服務器發現對端節點出現故障時采取的強行將對端節點踢出集群的措施,用來防止節點工作不穩定造成集群癱瘓。

圖3 數據容災備份系統組成
通過DRBD+Pacemaker技術,在中國人民銀行蘭州中心支行數據生產中心、備份中心三臺PC服務器上實現了本地數據雙鏡像加遠程數據異步復制,達到了保障數據安全性、應用連續性的目的,使數據中心存儲備份架構得到了優化完善。同時,還可以繼續做以下研究測試:一是可被Pacemaker管理的資源管理非常豐富,如:http、DB2、MQ、Tonglink、自定義腳本等,因此,可將Linux環境下重要業務系統通過Pacemaker建立HA集群,滿足系統業務不間斷對外服務需求;二是云計算開源技術快速發展,考慮今后將Pacemaker和Openstack結合,建立高可用的私有云環境。
[1] The DRBD User's Guide[EB/O L].http://drbd.linbit.com/ users-guide-8.3.
[2] Pacemaker 1.1 Configuration Explained[EB/OL].http://clusterlabs.org/doc/.
[3] SUSE Linux Enterprise High Availability Extension[EB/OL]. https://www.suse.com/products/highavailability/.
[4] 馮建.黃河數據中心存儲備份平臺的發展和設計[J].電子信息與計算機科學,2014(11):3-5.
[5] 王鶴,孫曉艷.Heartbeat與Drbd在大容量OLT中的應用[J].現代電子技術,2012,35(24):131-137.
[6] 蔡亮節.面向低帶寬的遠程鏡像系統設計與實現[D].南京:南京理工大學,2014.
[7] 黃晶.數據備份系統的研究與實現[D].湖北:華中科技大學,2008:3-4.
[8] 彭建榮.網絡存儲技術及其發展趨勢[J].計算機與現代化,2006(7):66-68.
TP309.2
A
10.3969/j.issn.1672-6375.2016.04.001
2016-02-18
趙鵬飛(1981-),男,漢族,甘肅蘭州人,研究生,工程師,主要研究方向:數據保護。