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