蔣怡琳,李國祥
(廣西財經(jīng)學院教務處,南寧 530003)
基于P2P分布式存儲的雙機熱備份系統(tǒng)設計和實現(xiàn)
蔣怡琳,李國祥
(廣西財經(jīng)學院教務處,南寧 530003)
隨著社會信息化程度越來越高,信息數(shù)據(jù)對企業(yè)的重要性也隨之越來越大,保證信息數(shù)據(jù)的可靠性和安全性成為企業(yè)競爭的核心。為了適應社會發(fā)展變化,提出一套基于P2P分布式存儲的雙機熱備份系統(tǒng),對系統(tǒng)進行設計并實現(xiàn),系統(tǒng)利用心跳協(xié)議保證主存儲系統(tǒng)與備用存儲系統(tǒng)的聯(lián)系,以此提高企業(yè)數(shù)據(jù)庫的安全性和可靠性,保證數(shù)據(jù)不丟失,確保企業(yè)服務不間斷。
P2P分布式存儲;雙機熱備;心跳協(xié)議;文件備份
隨著社會信息化的不斷深入,社會對計算機系統(tǒng)的依賴越來越大,信息的可靠性和即時性成了企業(yè)競爭的關(guān)鍵。大數(shù)據(jù)分析技術(shù)發(fā)展到今天,數(shù)據(jù)中隱藏的信息慢慢被挖掘,這部分信息影響著企業(yè)未來的決策,因此數(shù)據(jù)在企業(yè)的發(fā)展過程中起著舉足輕重的作用。如何保障數(shù)據(jù)的安全性也成為企業(yè)需要著重考慮的問題。網(wǎng)絡傳輸?shù)陌l(fā)展,使得數(shù)據(jù)存儲從傳統(tǒng)的小型化存儲發(fā)展到現(xiàn)在的高可用性、易擴展性的存儲技術(shù)[1]。但這些數(shù)據(jù)在面對非抵抗性的外部影響時,顯得尤為脆弱,無論是系統(tǒng)的硬件、數(shù)據(jù)和系統(tǒng)都會受到很大程度的破壞,甚至是不可恢復的損壞,直接導致數(shù)據(jù)丟失。
數(shù)據(jù)備份作為提高數(shù)據(jù)可用性與可靠性的基本方法,其目的是為了系統(tǒng)崩潰時能夠快速的進行恢復。本文基于P2P分布式存儲技術(shù)設計并開發(fā)了一套雙機熱備份系統(tǒng)。該系統(tǒng)實現(xiàn)文件的上傳、下載以及文件更新、備份等功能,以此保證企業(yè)數(shù)據(jù)的安全性。
基于P2P的分布式存儲[2],P2P是Peer-to-Peer的縮寫,即為對等聯(lián)網(wǎng),所有的網(wǎng)絡節(jié)點通過網(wǎng)絡互連,相互共享節(jié)點的CPU、打印機、存儲能力等。每個節(jié)點既是資源的提供者同時也是資源的共享者,以此達到資源最大化共享[3]。
在基于P2P的分布式存儲中,每個節(jié)點是一個大的存儲服務器,負責存儲和管理本節(jié)點的文件,同時每個節(jié)點又是客戶端,可以從其余節(jié)點上獲取自己需要的文件,具體的特點有分散性、高性能、負載均衡等[4]。
雙機熱備份技術(shù)[5]是一種通過結(jié)合軟件和硬件的容錯技術(shù)應用方案。容錯是指當發(fā)生某些原因?qū)е孪到y(tǒng)出現(xiàn)了數(shù)據(jù)文件損壞或者丟失,不能提供服務時,系統(tǒng)能夠恢復到發(fā)生故障前的狀態(tài),連續(xù)正常運行的技術(shù)。在這個容錯方案中,應用程序安裝在兩臺數(shù)據(jù)服務器上,這兩臺數(shù)據(jù)服務器處于不同的地理位置,通過整個網(wǎng)絡系統(tǒng)進行數(shù)據(jù)集中管理和數(shù)據(jù)備份。數(shù)據(jù)集中管理指的是通過在數(shù)據(jù)服務器端安裝雙機熱備份系統(tǒng),將所有數(shù)據(jù)直接從存儲設備讀取和存儲,極大地保護了數(shù)據(jù)的安全性和保密性[6-7]。當任意一臺服務器出現(xiàn)故障不能提供正常服務時,備份機通過網(wǎng)絡主動替代主機工作,保證網(wǎng)絡服務不間斷。
雙機熱備份系統(tǒng)采用“心跳”方法保證主機與備份機的聯(lián)系[7]。所謂“心跳”,指的是主機與備份機之間約定安裝一定的時間間隔發(fā)送確認信息,以此表明各自當前的狀態(tài),若兩者均能正常收到心跳信息,表明均正常運行,一旦備份機收不到主機的“心跳”,表明主機系統(tǒng)發(fā)生故障,主機可能已經(jīng)停止工作,此時系統(tǒng)資源將轉(zhuǎn)移到備用系統(tǒng)上,備用系統(tǒng)將替代主機提供服務,以保證數(shù)據(jù)服務運行不間斷。
2.1 雙機熱備份系統(tǒng)的組成
備份系統(tǒng)由三部分組成:主服務器Tracker,存儲服務器Storage和備份服務器。
系統(tǒng)中每個服務器的具體功能如下:
(1)主服務器Tracker
主服務器Tracker保存文件存儲系統(tǒng)中所有文件的相關(guān)信息,管理文件元數(shù)據(jù),負責管理和協(xié)調(diào)各個存儲服務器Storage。但主服務器Tracker不負責存儲文件,也不負責具體的文件上傳下載工作,這樣就大大減輕了Tracker的負擔,避免Tracker成為系統(tǒng)的瓶頸。
(2)存儲服務器Storage
存儲服務器Storage負責存儲文件,以及文件的上傳下載工作。存儲服務器Storage之間是平等的,且具有很強的自主性,可以對本地所存儲的文件資源進行管理,并根據(jù)文件的下載頻率或者其他相關(guān)信息,在其余節(jié)點上冗余存儲文件,保證了文件在多個節(jié)點上都有冗余,當某個節(jié)點發(fā)生故障時,用戶可以從其余節(jié)點下載文件,保證了文件有穩(wěn)定的來源,用戶可以安全可靠地進行下載,并為多源下載提供了可能。
(3)備份服務器
備份服務器是備份系統(tǒng)的核心,它與存儲服務器Storage隨時保持文件的同步,當有文件上傳到存儲服務器的時候,存儲服務器會將新上傳的文件立刻同步到備份服務器上,保證在存儲服務器發(fā)生突發(fā)狀況宕機時,備份服務器能立刻運行,即文件信息的同步備份。
2.2 雙機熱備份系統(tǒng)的設計
雙機熱備份系統(tǒng)使用互為備份的兩臺服務器,其中只有一臺存儲服務器為客戶端提供服務,人為設置一臺存儲服務器為工作機(主存儲服務器),相應的另一臺服務器就作為備份用機(備份服務器)。當系統(tǒng)在正常的工作的情況下,工作機為客戶端提供服務,與此同時工作機與備份用機都發(fā)送心跳報告給主服務器Tracker,此段時間,備用機作為待機狀態(tài)。這時當多個客戶端同時發(fā)出請求的時候,存儲器也就是工作機響應客戶端的請求,在數(shù)據(jù)操作完之后將信息與備份機同步。當工作機出現(xiàn)故障,也即心跳停止,主服務器Tracker認為主存儲服務器發(fā)生了故障,這時備用服務器接管工作機的工作,繼續(xù)支持系統(tǒng)的運營。
由于它們之間的相互通信是通過發(fā)送心跳報告給主服務器Tracker的方式,由于這段心跳時間的存在,系統(tǒng)會有短暫的空白時間。當?shù)谝淮涡奶l(fā)出之后第二次心跳發(fā)出之前的這個時間段之間,是屬于系統(tǒng)的空白時間。主存儲服務器發(fā)生由于某種故障,導致主存儲服務器宕機,而在下一次心跳達到之前的這段時間,這段時間客戶端的所有請求服務器是無法響應的,即使得到主服務器的響應,但是客戶端是無法于主存儲器進行通信。因為這段時間內(nèi),主服務器還不知道主機的工作狀態(tài)是否正常。因此心跳時間的設置也就直接影響了系統(tǒng)的間斷時間。
服務器備份的實際工作方式是,服務器1(Server1)處于激活狀態(tài)(Active),服務器2(Server2)處于備用狀態(tài)(Standby),由于Server1處于Active狀態(tài),則“服務1”服務由Server1所提供。主服務器同時接受存儲服務器即服務器1和備份服務器即服務器2的心跳線路,當服務器1由于某些突發(fā)情況在設定時間內(nèi)沒有發(fā)送心跳信息的時候,也即當Server1由于物理故障或軟件故障而不能提供“服務1”服務,這時主服務器不能再接收到Server1的心跳報告,于是主服務器Tracker會認為Server1已經(jīng)死亡,這時Server2將接管Server1提供服務進程。在Server2提供服務的同時,當Server1恢復到正常工作狀態(tài)能提供服務時,Server1會發(fā)送心跳報告給主服務器Tracker,這時Tracker服務器會默認Server1為備份服務器,也即Server1與Server2的主次位置已經(jīng)發(fā)生交換。
程序?qū)崿F(xiàn)雙機熱備分系統(tǒng)時,程序主要功能由storage包,tracker包和user包組成。分別表示存儲服務器的各個功能實現(xiàn),主服務器Tracker的功能實現(xiàn)和客戶端的功能實現(xiàn)。雙機熱備的備份流程主要由三部分組成:第一部分主要是以客戶機為中心,主要描述了它與主服務器Tracker和主存儲器之間的信息交換和傳遞的過程。第二部分主要是以主存儲器為中心,主要描述了它與主服務器Tracker和備份服務器之間的信息交換和傳遞。第三部分是當主存儲服務器由于某種原因發(fā)生宕機的現(xiàn)象也即主存儲服務器失效,備份機繼續(xù)提供服務的情況。下面具體說明三個部分。
第一部分:
①客戶端讀取配置文件的過程,在配置文件中主要寫明了主服務器的IP和訪問端口以及緩存的大小。
②客戶端在獲取主服務器的IP和端口號之后,向主服務器發(fā)送請求協(xié)議,說明其需要服務的類型,主要有上傳、下載等。
③主服務器在監(jiān)聽端口的過程中,當接收到一個新的連接時會創(chuàng)建一個Socket來處理。在解析協(xié)議之后,主服務器會通過查詢存儲服務器的狀態(tài)表將設定的主存儲器的IP和端口號反饋給客戶端,讓客戶端去連接主存儲服務器。在程序中,默認狀態(tài)1為可用狀態(tài)。

④在客戶端獲得主服務器的信息反饋之后,就已得到了主存儲器的IP和端口號,這時,客戶端會根據(jù)IP和端口號將發(fā)送請求協(xié)議給主存儲服務器,并等待主存儲服務器的反饋信息。
⑤主存儲器會監(jiān)聽端口,直到接收到一個連接時就為其創(chuàng)建一個線程處理這個連接。先解析客戶端發(fā)送過來的協(xié)議,若為上傳請求則調(diào)用處理上傳請求的函數(shù)。之后返回給客戶端文件上傳應存儲的地址。
⑥客戶端獲取反饋之后,與主存儲器形成連接,傳輸文件流。
這時,第一部分的關(guān)于客戶端的文件流傳輸應該完成。
第二部分:
(1)主存儲器和備份存儲器首先會讀取配置文件。獲取主服務器的IP。
(2)在存儲器獲取主服務器IP之后向主服務器發(fā)送心跳信息,同時報告本機的一些基本信息。信息包括有本機(存儲服務器)的IP地址、端口號、狀態(tài)、剩余空間和總存儲空間等。
(3)主服務器收到心跳以及信息報告后,就會知道該存儲服務器為正常運行狀態(tài),并將其加入到Storage?List這個隊列里面去。并將這個隊列信息反饋給該存儲服務器。
(4)在主存儲服務器沒有宕機的情況下,主存儲服務器是處于活動狀態(tài)也即Active,也就是說只有主服務器是有數(shù)據(jù)的存儲變化的。因此在主存儲服務器收到主服務器的隊列信息后,會發(fā)送協(xié)議請求給備份服務器,以實現(xiàn)信息的同步。
(5)備份服務器的端口監(jiān)聽到連接之后,會將同步文件應該存儲的地址反饋給主存儲服務器,讓主存儲服務器將文件流發(fā)送至該地址。
(6)主存儲服務器與備份服務器完成數(shù)據(jù)的同步也即完成數(shù)據(jù)的備份。

第三部分:在主存儲服務器不再發(fā)送心跳信息的時候,主服務器經(jīng)過一段時間沒有接收到默認主存儲服務器的報告,而這時備份存儲服務器仍然在發(fā)送心跳信息的情況下,主服務器就會將備份存儲服務器設置為主存儲服務器,將其IP和端口號發(fā)送給客戶端,讓客戶端去主動連接備份存儲服務器。

由以上三個部分組成了雙機熱備份系統(tǒng)的整體運行情況。
4.1 測試環(huán)境
測試系統(tǒng)由兩臺服務器組成,其中存儲服務器兩臺,客戶機兩臺,考慮到節(jié)點服務器的負載量較少,所以選擇其中一臺客戶機同時作為節(jié)點服務器。另外各服務器通過華為HG520s路由交換機互連。所有的實驗數(shù)據(jù)都是實現(xiàn)文件上傳所做的記錄。
客戶機A同時為節(jié)點交換機,客戶機B,存儲器C, D。各服務器配置如表1所示:

表1 服務器配置表
服務器和客戶端所在的主機分別配置了IP,它們通過路由交換機相連組成局域網(wǎng),這就模擬了一個在局域網(wǎng)上進行備份速度的測試環(huán)境。
4.2 雙機熱備系統(tǒng)的備份速度
在整個測試的過程中,我們分別使用文件大小為1K,10K,100K,1000K的文件作為備份文件,而文件的數(shù)量則是以2的指數(shù)增長,即從128個文件到4096個文件。
收集雙機熱備份系統(tǒng)在文件大小和文件數(shù)量不斷變化下,備份時間的變化情況。如圖1所示:

圖1 雙機熱備份系統(tǒng)備份速度
由圖1顯示可以看出,相同的備份文件數(shù)量,隨著文件大小的變化,備份時間相差的并不明顯。
本文基于P2P分布式存儲設計并實現(xiàn)了雙機熱備份系統(tǒng),備份系統(tǒng)由主服務器Tracker,存儲服務器Stor?age和備份服務器組成,當主存儲服務器因為其他原因宕機不能提供服務時,通過心跳協(xié)議聯(lián)系,由備份服務器及時接管存儲服務器的工作,繼續(xù)支持系統(tǒng)的運行,提高企業(yè)數(shù)據(jù)庫的安全性和可靠性。
[1]付印金,肖儂,廖湘科,et al.Application-Aware Client-Side Data Reduction and Encryption of Personal Data in Cloud Backup Services [J].Journal of Computer Science and Technology,2013,28(6):1012-1024.
[2]Guidi B,Amft T,Salve A D,et al.DiDuSoNet:A P2P Architecture for Distributed Dunbar-based Social Networks[J].Peer-to-Peer Networking and Applications,2016,9(6):1-18.
[3]Park G S,Song H.A Novel Hybrid P2P and Cloud Storage System For Retrievability And Privacy Enhancement[J].Peer-to-Peer Networking and Applications,2016,9(2):299-312.
[4]Wang S,Zhu X,Sun Q,et al.Low-Cost Web Service Discovery Based on Distributed Decision Tree in P2P Environments[J].Wireless Personal Communications,2013,73(4):1477-1493.
[5]Toka L,Michiardi P.Analysis of User-driven Peer Selection In Peer-to-peer Backup and Storage Systems[J].Telecommunication Systems,2011,47(1):49-63.
[6]Neelaveni P,Vijayalakshmi M.FC-LID:File Classifier Based Linear Indexing for Deduplication in Cloud Backup Services[M].Distributed Computing and Internet Technology.2016.
[7]Li X,Qian L.A Hybrid Disaster-tolerant Model with DDFTechnology for Moosefs Open-Source Distributed File System[J].Journal of Super Computing,2016:1-17.
Design and Implementation of Dual Computer hot Backup System Based on P2P Distributed Storage
JIANG Yi-lin,LI GUO-xiang
(Department of Academic Affairs,Guangxi University of Finance and Economics,Nanning 530003)
With the degree of social information is getting higher and higher,the importance of information data to the enterprise is also growing,to en?sure the reliability and security of information data become the core of enterprise competition.In order to adapt to social development and change,designs and implements dual computer hot backup system based on P2P distributed storage,the system uses heartbeat protocol to ensure the connection between the primary storage system and the standby storage system,to improve the security and reliability of enter?prise database,to ensure that the data is not lost and business services uninterrupted.
蔣怡琳(1987-),女,廣西桂林人,碩士研究生,助理研究員,研究方向為分布式存儲、大數(shù)據(jù)
2017-03-06
2017-05-16
廣西財經(jīng)學院青年教師科研發(fā)展基金研究項目(No.2016QNA03)
1007-1423(2017)15-0076-05
10.3969/j.issn.1007-1423.2017.15.020
李國祥(1984-),男,山東濟寧人,碩士研究生,講師,研究方向為人工智能、圖像處理
P2P Distributed Storage;Dual Computer Hot Backup;Heartbeat Protocol;Backup