趙鵬飛
(中國人民銀行 蘭州中心支行,甘肅 蘭州 730000)
利用DRBD和Pacemaker技術構建高可用數(shù)據(jù)容災備份系統(tǒng)
趙鵬飛
(中國人民銀行 蘭州中心支行,甘肅蘭州730000)
為充分保證數(shù)據(jù)信息安全,提高數(shù)據(jù)中心容災備份能力,以DRBD和Pacemaker技術為基礎構建具有高可用性的數(shù)據(jù)容災備份系統(tǒng),實現(xiàn)生產(chǎn)數(shù)據(jù)在本地、異地之間三臺服務器的鏡像復制,并且實現(xiàn)應用和數(shù)據(jù)兩個級別的高可用(HA),解決目前主流SAN存儲環(huán)境下共享磁盤陣列的單點故障威脅,有效滿足不斷提升的數(shù)據(jù)恢復RTO和RPO的要求。本論述為數(shù)據(jù)中心業(yè)務系統(tǒng)高可用和數(shù)據(jù)異地備份提出了低成本的技術方案。
數(shù)據(jù)中心;數(shù)據(jù)安全;DRBD;Pacemaker
目前,數(shù)據(jù)中心主流的存儲備份系統(tǒng)主要采用SAN(存儲區(qū)域網(wǎng)絡)技術,服務器、共享磁盤陣列、磁帶庫等設備通過光纖連接,數(shù)據(jù)讀寫具有較高的穩(wěn)定性和可靠性。但其高成本、不易擴展,且對技術人員要求較高,導致SAN網(wǎng)絡不能滿足中小應用系統(tǒng)快速接入、靈活多樣的存儲需求。此外,由于技術原因和費用問題,SAN網(wǎng)絡中共享的磁盤陣列往往采用單獨部署模式,存在發(fā)生存儲陣列故障造成數(shù)據(jù)損失的風險。因此,迫切需要采用安全可靠的容災備份方式保障數(shù)據(jù)安全,否則一旦數(shù)據(jù)遭受損失,將會造成系統(tǒng)無法使用、對外服務中斷的嚴重后果。
DRBD(Distributed Replicated Block Device)是一個用軟件實現(xiàn)的服務器之間鏡像塊設備內容復制的解決方案,主要被用于Linux平臺下的高可用(High Available)方案之中。DRBD是介于文件系統(tǒng)和磁盤硬件之間的中間件。DRBD負責接收要寫入文件系統(tǒng)的數(shù)據(jù),并把數(shù)據(jù)寫到本地磁盤,然后通過網(wǎng)絡發(fā)送給另一臺主機;另一臺主機在DRBD守護進程的作用下再將接收到的數(shù)據(jù)存到自己的磁盤中,本地節(jié)點與遠程節(jié)點的數(shù)據(jù)可以保證實時同步。因此,當本地節(jié)點的數(shù)據(jù)出現(xiàn)問題造成訪問中斷時,遠程節(jié)點的主機上還會保留有一份完全相同的數(shù)據(jù),繼續(xù)提供使用,以達到高可用的目的。DRBD通過網(wǎng)絡將整個塊設備進行鏡像,實現(xiàn)數(shù)據(jù)存儲的高可用性,可以看成是網(wǎng)絡版的RAID1。DRBD系統(tǒng)結構見圖1所示。
圖1 DRBD系統(tǒng)結構圖
在DRBD技術中,實現(xiàn)數(shù)據(jù)鏡像有三種數(shù)據(jù)復制同步方式,分別是異步復制協(xié)議、內存同步復制協(xié)議(也稱半同步復制協(xié)議)以及同步復制協(xié)議。異步復制協(xié)議A,它是在主節(jié)點將數(shù)據(jù)寫入到本地TCP發(fā)送緩存區(qū)的時候就認為將同步數(shù)據(jù)發(fā)送到從節(jié)點上。這種數(shù)據(jù)同步方式的速度較快,但是在發(fā)生故障的時候,可能會引起數(shù)據(jù)丟失;內存同步復制協(xié)議B,它是在主節(jié)點進行寫數(shù)據(jù)時,將數(shù)據(jù)寫入發(fā)送隊列后,就認為本地磁盤的寫入和從節(jié)點的數(shù)據(jù)寫入已經(jīng)同步完成,而事實是數(shù)據(jù)還在內存中等待實際的寫入;同步復制協(xié)議C,它是在主次節(jié)點數(shù)據(jù)寫入都被確認后才認為同步完成。這種復制方式,不會因為故障而造成同步失效,引起數(shù)據(jù)的不一致。數(shù)據(jù)復制流程見圖2所示。
圖2 DRBD數(shù)據(jù)復制流程
Pacemaker(直譯:起搏器)是一個集群資源管理器,它實現(xiàn)了集群資源級故障檢測和恢復,但它本身還需依賴其他集群基礎工具(如Corosync或Heartbeat)所提供的消息通信和成員關系的能力。它可以做任何規(guī)模的集群管理員,能夠準確地實施集群節(jié)點間資源的運行關系(包括順序和位置)。Pacemaker主要通過Resource Agents來實現(xiàn)資源的啟動停止。Pacemaker支持如下幾種 Resource Agents:1.LSB(Linux Standard Base),這是由操作系統(tǒng)提供的所有放在/etc/init.d下面的各種services,services(或Script)只要符合LSB規(guī)范就能被Pacemaker兼容;2.OCF(Open Cluster Frame-Work)是LSB的規(guī)范擴展,放在/usr/lib/ocf/resource.d/目錄下,常用的OCF資源有Filesystem、IPaddr、LVM、apache dhcpd等。
Pacemaker+DRBD架構常用的構建高可靠集群的方法有Active/Passive主備模式:使用DRBD實現(xiàn)主備機的容災,Heartbeat或Corosync做心跳監(jiān)測、服務切換甚至Failover,Pacemaker實現(xiàn)服務(資源)的切換及控制等。
如圖3所示,系統(tǒng)設計的高可用集群由三臺PC服務器組成,服務器nfs1和nfs2部署在本地數(shù)據(jù)中心,nfs3部署在異地備份中心。集群資源包括:資源組(group):NFS服務 IP、nfsserver;主從資源(Master/ Slave):ms_left、ms-right;普通資源(Primitive):Filesystem、stonith1、stonith2。
集群首先啟動主從資源,然后啟動其他資源(普通資源、資源組),普通資源和資源組都被限定在主從資源中角色為Master的服務器上運行,這樣實現(xiàn)了其他資源隨主從資源的節(jié)點切換而切換。集群中主從資源DRBD在兩臺服務器之間建立鏡像塊設備/dev/drbd0,在正常運行時,只有主服務器能夠修改同步空間中的數(shù)據(jù),從服務器只是保證同步空間中的數(shù)據(jù)和主服務器相同,不能對其中的數(shù)據(jù)進行修改。當主服務器出現(xiàn)故障,從服務器中的DRBD變?yōu)镻rimary模式,可以實現(xiàn)數(shù)據(jù)讀寫。Pacemaker中有兩個主從資源:DRBDPrimary和DRBD-Secondary組成的ms_left,ms_left中的主服務器和DRBD-Third組成的ms-right。在ms_left中,主服務器可能是nfs1或nfs2,而從服務器永遠設定為nfs3。其他資源、資源組則被限制在ms-right中Master角色的節(jié)點上,只在nfs1或nfs2上運行。nfs3只作為底層DRBD的遠程數(shù)據(jù)同步節(jié)點,不接管上層其他資源,這樣實現(xiàn)了本地數(shù)據(jù)中心高可靠的NFS服務,而底層數(shù)據(jù)能通過DRBD復制到異地災備節(jié)點nfs3中。普通資源stonith1、stonith2分別運行在兩個節(jié)點上,stonith(Shoot-The-Other-Node-In-The-Head)可翻譯為一槍斃命,是當服務器發(fā)現(xiàn)對端節(jié)點出現(xiàn)故障時采取的強行將對端節(jié)點踢出集群的措施,用來防止節(jié)點工作不穩(wěn)定造成集群癱瘓。
圖3 數(shù)據(jù)容災備份系統(tǒng)組成
通過DRBD+Pacemaker技術,在中國人民銀行蘭州中心支行數(shù)據(jù)生產(chǎn)中心、備份中心三臺PC服務器上實現(xiàn)了本地數(shù)據(jù)雙鏡像加遠程數(shù)據(jù)異步復制,達到了保障數(shù)據(jù)安全性、應用連續(xù)性的目的,使數(shù)據(jù)中心存儲備份架構得到了優(yōu)化完善。同時,還可以繼續(xù)做以下研究測試:一是可被Pacemaker管理的資源管理非常豐富,如:http、DB2、MQ、Tonglink、自定義腳本等,因此,可將Linux環(huán)境下重要業(yè)務系統(tǒng)通過Pacemaker建立HA集群,滿足系統(tǒng)業(yè)務不間斷對外服務需求;二是云計算開源技術快速發(fā)展,考慮今后將Pacemaker和Openstack結合,建立高可用的私有云環(huán)境。
[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] 馮建.黃河數(shù)據(jù)中心存儲備份平臺的發(fā)展和設計[J].電子信息與計算機科學,2014(11):3-5.
[5] 王鶴,孫曉艷.Heartbeat與Drbd在大容量OLT中的應用[J].現(xiàn)代電子技術,2012,35(24):131-137.
[6] 蔡亮節(jié).面向低帶寬的遠程鏡像系統(tǒng)設計與實現(xiàn)[D].南京:南京理工大學,2014.
[7] 黃晶.數(shù)據(jù)備份系統(tǒng)的研究與實現(xiàn)[D].湖北:華中科技大學,2008:3-4.
[8] 彭建榮.網(wǎng)絡存儲技術及其發(fā)展趨勢[J].計算機與現(xiàn)代化,2006(7):66-68.
TP309.2
A
10.3969/j.issn.1672-6375.2016.04.001
2016-02-18
趙鵬飛(1981-),男,漢族,甘肅蘭州人,研究生,工程師,主要研究方向:數(shù)據(jù)保護。