本發(fā)明涉及一種分布式數(shù)據(jù)存儲方法和系統(tǒng),屬于計算機存儲領(lǐng)域。
背景技術(shù):
分布式文件系統(tǒng)存儲已經(jīng)逐漸在新的時代展現(xiàn)出了其特有的優(yōu)勢,比如支持超大數(shù)據(jù)的存儲,存儲量可以達到PB級別,檢測和快速反應(yīng)系統(tǒng)或硬件故障,支持磁盤容量擴展性,而不影響到整體架構(gòu),保證數(shù)據(jù)的一致性等。因此在很多場景下都會考慮采用分布式文件系統(tǒng)存儲。雖然分布式文件存儲系統(tǒng)有這么多的優(yōu)點,與傳統(tǒng)存儲方案相比在某些方面還是需要不斷的改進,比如在存儲容量上,主流的方式為多個副本存儲,但是存儲量就會較大,同時造成讀寫消耗較大,采用一些壓縮以及安全的算法保存數(shù)據(jù)的時候,會將處理后的數(shù)據(jù)和解密的密鑰存儲在同一類存儲器,這樣并不能完全消除,驗證用的數(shù)據(jù)的安全威脅。
技術(shù)實現(xiàn)要素:
為了解決上述問題,本發(fā)明通過提供一種分布式數(shù)據(jù)存儲方法和系統(tǒng)。
本發(fā)明采用的技術(shù)方案一方面為一種分布式數(shù)據(jù)存儲方法,包括:包括若干存儲區(qū)的副本存儲端接收待存儲數(shù)據(jù)并寫入至少一個存儲區(qū);副本存儲端將待存儲數(shù)據(jù)寫入緩存模塊中,所述緩存模塊對所述待存儲數(shù)據(jù)進行緩存;當(dāng)達到預(yù)設(shè)條件時,緩存模塊輸出預(yù)定大小的緩存數(shù)據(jù),對所述緩存數(shù)據(jù)基于糾刪碼編碼方式進行編碼并生成校驗數(shù)據(jù);所述緩存模塊將所述緩存數(shù)據(jù)寫入存儲服務(wù)器組的多個存儲服務(wù)器中,將所述校驗數(shù)據(jù)寫入所述存儲服務(wù)器組的至少一個存儲服務(wù)器中。
優(yōu)選地,所述預(yù)定條件包括:所述緩存模塊中所緩存的數(shù)據(jù)的大小達到所述預(yù)定大?。换蛘咚龈北敬鎯Χ藢懭霐?shù)據(jù)的操作超過預(yù)定時長;或者所述緩存模塊出現(xiàn)故障。
優(yōu)選地,所述緩存模塊包括固態(tài)硬盤單元和數(shù)據(jù)接口單元。
優(yōu)選地,所述存儲服務(wù)器組為基于對象存儲技術(shù)的存儲設(shè)備。
本發(fā)明采用的技術(shù)方案的另一方面為一種分布式數(shù)據(jù)存儲系統(tǒng),包括:包括若干存儲區(qū)的副本存儲端,用于接收待存儲數(shù)據(jù)并寫入至少一個存儲區(qū);緩存模塊,用于接收副本存儲端輸出的待存儲數(shù)據(jù)并進行緩存,當(dāng)達到預(yù)設(shè)條件時,輸出預(yù)定大小的緩存數(shù)據(jù),對所述緩存數(shù)據(jù)基于糾刪碼編碼方式進行編碼并生成校驗數(shù)據(jù),將所述緩存數(shù)據(jù)寫入存儲服務(wù)器組的多個存儲服務(wù)器中,將所述校驗數(shù)據(jù)寫入所述存儲服務(wù)器組的至少一個存儲服務(wù)器中;存儲服務(wù)器組,用于存儲數(shù)據(jù)。
本發(fā)明的有益效果為提供備份區(qū)以存儲原始數(shù)據(jù),通過固態(tài)硬盤以作為數(shù)據(jù)緩存以提高數(shù)據(jù)傳輸速度,通過糾刪技術(shù)以提高數(shù)據(jù)利用率,通過對象存儲技術(shù)以提高存儲效率,能夠?qū)崿F(xiàn)數(shù)據(jù)的安全和高效的存儲和運用,有利于數(shù)據(jù)管理能力。
附圖說明
圖1所示為基于本發(fā)明實施例的一種分布式數(shù)據(jù)存儲系統(tǒng)的示意圖。
具體實施方式
以下結(jié)合實施例對本發(fā)明進行說明。
基于發(fā)明的實施例,一種分布式數(shù)據(jù)存儲方法,包括:包括若干存儲區(qū)的副本存儲端接收待存儲數(shù)據(jù)并寫入至少一個存儲區(qū);副本存儲端將待存儲數(shù)據(jù)寫入緩存模塊中,所述緩存模塊對所述待存儲數(shù)據(jù)進行緩存;當(dāng)達到預(yù)設(shè)條件時,緩存模塊輸出預(yù)定大小的緩存數(shù)據(jù),對所述緩存數(shù)據(jù)基于糾刪碼編碼方式進行編碼并生成校驗數(shù)據(jù);所述緩存模塊將所述緩存數(shù)據(jù)寫入存儲服務(wù)器組的多個存儲服務(wù)器中,將所述校驗數(shù)據(jù)寫入所述存儲服務(wù)器組的至少一個存儲服務(wù)器中。
建立副本池,將數(shù)據(jù)存儲到副本池,這樣就保證了一份數(shù)據(jù)有多個備份,一旦系統(tǒng)出現(xiàn)單點故障的時候,副本池就自動接管,恢復(fù)到故障前的狀態(tài);副本存儲端接收數(shù)據(jù)并存入,設(shè)置備份,完成備份之后,將數(shù)據(jù)輸出到緩存模塊以增加數(shù)據(jù)傳遞和處理的速度,緩存模塊在抵達一定條件的時候,通過數(shù)據(jù)處理的串口單元將緩存輸出提取出來并進行糾刪碼處理,將經(jīng)過處理得到的檢驗數(shù)據(jù)和緩存數(shù)據(jù)映射到OSD設(shè)備(存儲服務(wù)器組),例如按照4數(shù)據(jù)塊和1個編碼塊,則糾刪碼處理后的糾刪池分為5個塊,每個塊存儲到一個OSD中,將塊的編號作為唯一性,保存到對象中;假設(shè)有5個OSD,每一個OSD對應(yīng)一個糾刪池塊,突然有1個OSD發(fā)生故障,這種情況下數(shù)據(jù)整體上并沒有受到破壞,在糾刪的過程中通過一定的計算方法已經(jīng)將1個OSD故障出現(xiàn)的情況納入在內(nèi),糾刪池的目的就是為了節(jié)省存儲空間,充分考慮到了編碼塊出錯的比例,滿足了用極少的空間存儲大容量的數(shù)據(jù),提升了磁盤的存儲能力。
所述預(yù)定條件包括:所述緩存模塊中所緩存的數(shù)據(jù)的大小達到所述預(yù)定大?。换蛘咚龈北敬鎯Χ藢懭霐?shù)據(jù)的操作超過預(yù)定時長;或者所述緩存模塊出現(xiàn)故障。
所述緩存模塊包括固態(tài)硬盤單元和數(shù)據(jù)接口單元。
磁盤的存儲容量擴大了,也就意味著在計算數(shù)據(jù)的時間上耗時更長,會影響到存儲的性能,為了解決這個問題,增加了一個緩存池,緩存池采用固態(tài)硬盤作為介質(zhì),將進來的數(shù)據(jù)先存儲到緩存池,由于固態(tài)硬盤讀寫效率非常高,當(dāng)緩存數(shù)據(jù)積累到一定的量的時候,再一次性寫入到OSD中,一個是緩解了內(nèi)存的壓力,再一個是減少了寫入的來回次數(shù);
接口單元則是起到將要輸出到OSD的數(shù)據(jù)進行糾刪處理,并對數(shù)據(jù)進行屬性組合,屬性信息的保存和標(biāo)記,追蹤,引導(dǎo)等操作以存儲數(shù)據(jù)到OSD(對象存儲設(shè)備)。
所述存儲服務(wù)器組為基于對象存儲技術(shù)的存儲設(shè)備。
對象存儲則將元數(shù)據(jù)獨立了出來,控制節(jié)點叫元數(shù)據(jù)服務(wù)器(服務(wù)器+對象存儲管理軟件),里面主要負(fù)責(zé)存儲對象的屬性(主要是對象的數(shù)據(jù)被打散存放到了那幾臺分布式服務(wù)器中的信息),而其他負(fù)責(zé)存儲數(shù)據(jù)的分布式服務(wù)器叫做OSD,主要負(fù)責(zé)存儲文件的數(shù)據(jù)部分。當(dāng)用戶訪問對象,會先訪問元數(shù)據(jù)服務(wù)器,元數(shù)據(jù)服務(wù)器只負(fù)責(zé)反饋對象存儲在哪些OSD,假設(shè)反饋文件A存儲在B、C、D三臺OSD,那么用戶就會再次直接訪問3臺OSD服務(wù)器去讀取數(shù)據(jù)。通過數(shù)據(jù)接口單元對數(shù)據(jù)的映射,實現(xiàn)待存儲數(shù)據(jù)的對象存儲。
基于發(fā)明的實施例,如圖1所示,一種分布式數(shù)據(jù)存儲系統(tǒng),包括:包括若干存儲區(qū)的副本存儲端,用于接收待存儲數(shù)據(jù)并寫入至少一個存儲區(qū);緩存模塊,用于接收副本存儲端輸出的待存儲數(shù)據(jù)并進行緩存,當(dāng)達到預(yù)設(shè)條件時,輸出預(yù)定大小的緩存數(shù)據(jù),對所述緩存數(shù)據(jù)基于糾刪碼編碼方式進行編碼并生成校驗數(shù)據(jù),將所述緩存數(shù)據(jù)寫入存儲服務(wù)器組的多個存儲服務(wù)器中,將所述校驗數(shù)據(jù)寫入所述存儲服務(wù)器組的至少一個存儲服務(wù)器中;存儲服務(wù)器組,用于存儲數(shù)據(jù)。
以上所述,只是本發(fā)明的較佳實施例而已,本發(fā)明并不局限于上述實施方式,只要其以相同的手段達到本發(fā)明的技術(shù)效果,都應(yīng)屬于本發(fā)明的保護范圍。在本發(fā)明的保護范圍內(nèi)其技術(shù)方案和/或?qū)嵤┓绞娇梢杂懈鞣N不同的修改和變化。