本發(fā)明涉及一種數(shù)據(jù)安全存儲(chǔ)裝置,更具體的 ,涉及一種基于分布式軟件定義存儲(chǔ)的數(shù)據(jù)存儲(chǔ)裝置。
背景技術(shù):
目前傳統(tǒng)存儲(chǔ)陣列就是一個(gè)個(gè)的“鐵盒子”,在處理能力、擴(kuò)展性、可維護(hù)性、可靠性、以及成本考量上都呈現(xiàn)出很多的劣勢(shì)。其孤立地管理存儲(chǔ)架構(gòu)非常復(fù)雜,而且,數(shù)據(jù)結(jié)果可視性的缺乏,需要多重?cái)?shù)據(jù)保護(hù)方案和訪問(wèn)協(xié)議。架構(gòu)上,目前的存儲(chǔ)系統(tǒng)低效,日常開(kāi)銷(xiāo)高(特別是在區(qū)域范圍),缺少統(tǒng)一管理功能。而且,過(guò)于依賴(lài)專(zhuān)用設(shè)備,無(wú)法完全使用存儲(chǔ)空間。因此,在存儲(chǔ)陣列方面開(kāi)始采用分布式軟件定義存儲(chǔ),將分布式計(jì)算的強(qiáng)大功能與新型存儲(chǔ)優(yōu)化相結(jié)合,從而實(shí)現(xiàn)空間效率、性能效率、可管理性和擴(kuò)展。但由于物理存儲(chǔ)設(shè)備的良莠不齊,物理?yè)p壞和使用壽命導(dǎo)致存儲(chǔ)設(shè)備數(shù)據(jù)丟失經(jīng)常發(fā)生,而分布式存儲(chǔ)對(duì)用戶(hù)數(shù)據(jù)采用的還是單點(diǎn)存儲(chǔ),如果某個(gè)物理存儲(chǔ)設(shè)備損壞,存儲(chǔ)在該設(shè)備上的數(shù)據(jù)就丟失。數(shù)據(jù)的安全性得不到保障,一旦出現(xiàn)問(wèn)題將影響企業(yè)的數(shù)據(jù)運(yùn)維和業(yè)務(wù)運(yùn)營(yíng)。
技術(shù)實(shí)現(xiàn)要素:
發(fā)明目的: 本發(fā)明目的在于針對(duì)現(xiàn)有技術(shù)的不足,提供一種數(shù)據(jù)保密性強(qiáng)、安全性得到保障的基于分布式軟件定義存儲(chǔ)的數(shù)據(jù)存儲(chǔ)裝置。
技術(shù)方案: 本發(fā)明所述一種基于分布式軟件定義存儲(chǔ)的數(shù)據(jù)存儲(chǔ)裝置,包括數(shù)據(jù)應(yīng)用端還包括分布式存儲(chǔ)器,所述分布式存儲(chǔ)器與所述數(shù)據(jù)應(yīng)用端通過(guò)軟件定義存儲(chǔ)接口連通;所述分布式存儲(chǔ)器包括虛擬存儲(chǔ)池、用于臨時(shí)存放熱點(diǎn)數(shù)據(jù)的固態(tài)硬盤(pán)緩存器和用于海量數(shù)據(jù)存儲(chǔ)的后端存儲(chǔ)池,所述虛擬存儲(chǔ)池與所述固態(tài)硬盤(pán)緩存器相互通信連通,所述固態(tài)硬盤(pán)緩存器與所述后端存儲(chǔ)池相互通信連通。
本發(fā)明技術(shù)方案的進(jìn)一步限定為,還包括數(shù)據(jù)分片器和數(shù)據(jù)還原器,所述數(shù)據(jù)分片器的數(shù)據(jù)輸入端口與所述數(shù)據(jù)應(yīng)用端的數(shù)據(jù)輸出端口連通,所述數(shù)據(jù)分片器的數(shù)據(jù)輸出端口通過(guò)軟件定義存儲(chǔ)接口與所述分布式存儲(chǔ)器連通;所述數(shù)據(jù)還原器的數(shù)據(jù)輸入端口通過(guò)軟件定義存儲(chǔ)接口與所述分布式存儲(chǔ)器連通,所述數(shù)據(jù)還原器的數(shù)據(jù)輸出端口與所述數(shù)據(jù)應(yīng)用端的數(shù)據(jù)輸入端口連通。
進(jìn)一步地,所述虛擬存儲(chǔ)池為軟件定義存儲(chǔ)裝置,包括至少3個(gè)虛擬池。
進(jìn)一步地,所述后端存儲(chǔ)池中的存儲(chǔ)器包括SAN、NAS、DAS中的一種或者一種以上。
本發(fā)明提供的另一技術(shù)方案為:一種基于分布式軟件定義存儲(chǔ)的數(shù)據(jù)存儲(chǔ)裝置的存儲(chǔ)方法,包括
數(shù)據(jù)存儲(chǔ)步驟:首先,數(shù)據(jù)應(yīng)用端上產(chǎn)生的數(shù)據(jù)通過(guò)軟件定義存儲(chǔ)接口對(duì)數(shù)據(jù)進(jìn)行加密后存儲(chǔ)在虛擬存儲(chǔ)池中;然后,虛擬資源池中的數(shù)據(jù)存儲(chǔ)至固態(tài)硬盤(pán)緩存器中進(jìn)行緩存;最后,每隔一定的預(yù)設(shè)時(shí)間或達(dá)到一定空間比例,固態(tài)硬盤(pán)緩存器中的數(shù)據(jù)自動(dòng)分發(fā)到后端存儲(chǔ)池中;
數(shù)據(jù)提取步驟:首先在固態(tài)硬盤(pán)緩存器中提取數(shù)據(jù),經(jīng)過(guò)虛擬資源池的軟件定義存儲(chǔ)接口對(duì)數(shù)據(jù)進(jìn)行整合解密后傳送至數(shù)據(jù)應(yīng)用端;然后,如果未提取到需要的數(shù)據(jù),再?gòu)暮蠖舜鎯?chǔ)池中提取數(shù)據(jù)至虛擬資源池的軟件定義存儲(chǔ)接口對(duì)數(shù)據(jù)進(jìn)行整合解密后傳送至數(shù)據(jù)應(yīng)用端。
本發(fā)明技術(shù)方案的進(jìn)一步限定為,數(shù)據(jù)存儲(chǔ)步驟中通過(guò)軟件定義存儲(chǔ)接口對(duì)數(shù)據(jù)進(jìn)行加密處理的方法為:首先數(shù)據(jù)被轉(zhuǎn)換成對(duì)象并賦予一個(gè)oid,所述oid通過(guò)Hash算法轉(zhuǎn)換成Placement Group歸置組PG的PGid,每個(gè)虛擬資源池里放置數(shù)量不等的PG,不同PGid的PG通過(guò)CRUSH算法歸屬于不同的對(duì)象存儲(chǔ)設(shè)備OSD,每個(gè)PG對(duì)應(yīng)于數(shù)量相等的OSD,每個(gè)OSD對(duì)應(yīng)一個(gè)或多個(gè)PG,根據(jù)PGid將對(duì)象放入相應(yīng)的OSD中,作為一個(gè)文件被保存在組成OSD的文件里。
進(jìn)一步地,所述數(shù)據(jù)存儲(chǔ)步驟中,數(shù)據(jù)應(yīng)用端上產(chǎn)生的數(shù)據(jù)到達(dá)軟件定義存儲(chǔ)接口之前,還進(jìn)行了數(shù)據(jù)分片步驟:通過(guò)Agent抓取待存儲(chǔ)的數(shù)據(jù),根據(jù)信息離散算法,通過(guò)數(shù)據(jù)分片器將長(zhǎng)度為L(zhǎng)的數(shù)據(jù)分成N片,每片長(zhǎng)度為L(zhǎng)/K(其中K<N),并將其通過(guò)軟件定義存儲(chǔ)接口分發(fā)到不同的虛擬池中,并保證每個(gè)存儲(chǔ)池中沒(méi)有足夠的分片來(lái)恢復(fù)數(shù)據(jù)。
進(jìn)一步地,所述數(shù)據(jù)提取步驟中,數(shù)據(jù)經(jīng)過(guò)軟件定義存儲(chǔ)接口后,還進(jìn)行了數(shù)據(jù)還原步驟:數(shù)據(jù)還原器從反饋?zhàn)羁斓奶摂M存儲(chǔ)池中取得K片數(shù)據(jù),通過(guò)K片數(shù)據(jù)合并后進(jìn)行數(shù)據(jù)還原。
進(jìn)一步地,在數(shù)據(jù)存儲(chǔ)步驟中,采用MPI的方式實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的負(fù)載均衡;在數(shù)據(jù)提取步驟中,采用DNS輪詢(xún)的方式實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)的負(fù)載均衡。
有益效果: 本發(fā)明提供的一種基于分布式軟件定義存儲(chǔ)的數(shù)據(jù)存儲(chǔ)裝置,提供靈活的數(shù)據(jù)處理策略,應(yīng)用數(shù)據(jù)既可以通過(guò)數(shù)據(jù)分片器進(jìn)行數(shù)據(jù)的安全存儲(chǔ),也可以直接通過(guò)SDS API存儲(chǔ)加密后的原始數(shù)據(jù),存儲(chǔ)安全方便,后端存儲(chǔ)支持多種協(xié)議,管理和擴(kuò)展也非常簡(jiǎn)單,且故障處理高效及時(shí),適合應(yīng)用于對(duì)企業(yè)內(nèi)部多種異構(gòu)存儲(chǔ)設(shè)備進(jìn)行統(tǒng)一管理并完成企業(yè)內(nèi)部文件的安全存儲(chǔ),且后端存儲(chǔ)針對(duì)不同的應(yīng)用負(fù)載實(shí)現(xiàn)基于策略的存儲(chǔ)分層,更好的服務(wù)目前市場(chǎng)上主流應(yīng)用的數(shù)據(jù)安全存儲(chǔ)需求。
附圖說(shuō)明
圖1為本發(fā)明提供的一種基于分布式軟件定義存儲(chǔ)的數(shù)據(jù)存儲(chǔ)裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面通過(guò)附圖對(duì)本發(fā)明技術(shù)方案進(jìn)行詳細(xì)說(shuō)明,但是本發(fā)明的保護(hù)范圍不局限于所述實(shí)施例。
實(shí)施例1:本發(fā)明提供一種基于分布式軟件定義存儲(chǔ)的數(shù)據(jù)存儲(chǔ)裝置,其結(jié)構(gòu)示意圖如圖1所示,包括數(shù)據(jù)應(yīng)用端1、數(shù)據(jù)分片器7、數(shù)據(jù)還原器8和分布式存儲(chǔ)器2。所述分布式存儲(chǔ)器2與所述數(shù)據(jù)應(yīng)用端1通過(guò)軟件定義存儲(chǔ)接口(SDS API)6連通。軟件定義存儲(chǔ)接口(SDS API)能支持多種不同應(yīng)用,包括數(shù)據(jù)庫(kù)(OLAP&OLTP)、內(nèi)容分布網(wǎng)絡(luò)(CDN)、應(yīng)用數(shù)據(jù)(VM、boot等)、數(shù)據(jù)分析(Hadoop架構(gòu)等)、靜態(tài)備份數(shù)據(jù)等。
所述分布式存儲(chǔ)器2包括虛擬存儲(chǔ)池3、固態(tài)硬盤(pán)緩存器4和后端存儲(chǔ)池5,所述虛擬存儲(chǔ)池3與所述固態(tài)硬盤(pán)緩存器4相互通信連通,所述固態(tài)硬盤(pán)緩存器4與所述后端存儲(chǔ)池5相互通信連通。所述虛擬存儲(chǔ)池3為軟件定義存儲(chǔ)裝置,包括至少3個(gè)虛擬池9。所述固態(tài)硬盤(pán)緩存器4用于臨時(shí)存放數(shù)據(jù),臨時(shí)存放的數(shù)據(jù)為熱點(diǎn)數(shù)據(jù),即訪問(wèn)量大、訪問(wèn)次數(shù)高的數(shù)據(jù),保證熱點(diǎn)數(shù)據(jù)的快速讀寫(xiě)。所述后端存儲(chǔ)池5用于數(shù)據(jù)存儲(chǔ),分布式進(jìn)行海量數(shù)據(jù)的存儲(chǔ),所述后端存儲(chǔ)池5中的存儲(chǔ)器包括SAN、NAS、DAS中的一種或者一種以上。分布式存儲(chǔ)器2是構(gòu)建于分布式對(duì)象存儲(chǔ)基礎(chǔ)上的多存儲(chǔ)接口的統(tǒng)一存儲(chǔ)資源管理平臺(tái),無(wú)論是SAN、NAS、Object Based NAS還是傳統(tǒng)DAS,均可納入該分布式存儲(chǔ)系統(tǒng)內(nèi)進(jìn)行管理。
所述數(shù)據(jù)分片器7的數(shù)據(jù)輸入端口與所述數(shù)據(jù)應(yīng)用端1的數(shù)據(jù)輸出端口連通,所述數(shù)據(jù)分片器7的數(shù)據(jù)輸出端口通過(guò)軟件定義存儲(chǔ)接口6與所述分布式存儲(chǔ)器2連通;所述數(shù)據(jù)還原器8的數(shù)據(jù)輸入端口通過(guò)軟件定義存儲(chǔ)接口6與所述分布式存儲(chǔ)器2連通,所述數(shù)據(jù)還原器8的數(shù)據(jù)輸出端口與所述數(shù)據(jù)應(yīng)用端1的數(shù)據(jù)輸入端口連通。
利用上述基于分布式軟件定義存儲(chǔ)的數(shù)據(jù)存儲(chǔ)裝置的存儲(chǔ)方法,包括
數(shù)據(jù)存儲(chǔ)步驟:首先,數(shù)據(jù)應(yīng)用端1上產(chǎn)生的數(shù)據(jù)通過(guò)軟件定義存儲(chǔ)接口6對(duì)數(shù)據(jù)進(jìn)行加密后存儲(chǔ)在虛擬存儲(chǔ)池3中。
然后,虛擬資源池3中的數(shù)據(jù)存儲(chǔ)至固態(tài)硬盤(pán)緩存器4中進(jìn)行緩存。
最后,每隔一定的預(yù)設(shè)時(shí)間或達(dá)到一定空間比例,固態(tài)硬盤(pán)緩存器4中的數(shù)據(jù)自動(dòng)分發(fā)到后端存儲(chǔ)池5中。預(yù)設(shè)時(shí)間和一定的空間比例均為均根據(jù)系統(tǒng)運(yùn)行的情況和需求設(shè)定,并可以根據(jù)不同的場(chǎng)合進(jìn)行靈活的修改。
上述數(shù)據(jù)存儲(chǔ)步驟中通過(guò)軟件定義存儲(chǔ)接口6對(duì)數(shù)據(jù)進(jìn)行加密處理的方法為:首先數(shù)據(jù)被轉(zhuǎn)換成對(duì)象并賦予一個(gè)oid,所述oid通過(guò)Hash算法轉(zhuǎn)換成Placement Group歸置組PG的PGid,每個(gè)虛擬資源池(3)里放置數(shù)量不等的PG,不同PGid的PG通過(guò)CRUSH算法歸屬于不同的對(duì)象存儲(chǔ)設(shè)備OSD,每個(gè)PG對(duì)應(yīng)于數(shù)量相等的OSD,每個(gè)OSD對(duì)應(yīng)一個(gè)或多個(gè)PG,根據(jù)PGid將對(duì)象放入相應(yīng)的OSD中,作為一個(gè)文件被保存在組成OSD的文件里。
另外,本實(shí)施例中,所述數(shù)據(jù)存儲(chǔ)步驟中,數(shù)據(jù)應(yīng)用端1上產(chǎn)生的數(shù)據(jù)到達(dá)軟件定義存儲(chǔ)接口6之前,還進(jìn)行了數(shù)據(jù)分片步驟:通過(guò)Agent抓取待存儲(chǔ)的數(shù)據(jù),根據(jù)信息離散算法,通過(guò)數(shù)據(jù)分片器(7)將長(zhǎng)度為L(zhǎng)的數(shù)據(jù)分成N片,每片長(zhǎng)度為L(zhǎng)/K(其中K<N),并將其通過(guò)軟件定義存儲(chǔ)接口(6)分發(fā)到不同的虛擬池(9)中,并保證每個(gè)存儲(chǔ)池中沒(méi)有足夠的分片來(lái)恢復(fù)數(shù)據(jù)。
數(shù)據(jù)提取步驟:首先在固態(tài)硬盤(pán)緩存器4中提取數(shù)據(jù),經(jīng)過(guò)虛擬資源池3的軟件定義存儲(chǔ)接口6對(duì)數(shù)據(jù)進(jìn)行整合解密后傳送至數(shù)據(jù)應(yīng)用端1。
然后,如果未提取到需要的數(shù)據(jù),再?gòu)暮蠖舜鎯?chǔ)池5中提取數(shù)據(jù)至虛擬資源池3的軟件定義存儲(chǔ)接口6對(duì)數(shù)據(jù)進(jìn)行整合解密后傳送至數(shù)據(jù)應(yīng)用端1。
所述數(shù)據(jù)提取步驟中,數(shù)據(jù)經(jīng)過(guò)軟件定義存儲(chǔ)接口(6)后,還進(jìn)行了數(shù)據(jù)還原步驟:數(shù)據(jù)還原器(8)從反饋?zhàn)羁斓奶摂M存儲(chǔ)池中取得K片數(shù)據(jù),通過(guò)K片數(shù)據(jù)合并后進(jìn)行數(shù)據(jù)還原。
另外,本實(shí)施例還采用了負(fù)載均衡策略,具體為:采用MPI的方式實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的負(fù)載均衡;在數(shù)據(jù)提取步驟中,采用DNS輪詢(xún)的方式實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)的負(fù)載均衡。并在此基礎(chǔ)上,通過(guò)高度自覺(jué)的無(wú)人值守策略,遇到問(wèn)題自行發(fā)送通知,節(jié)點(diǎn)故障、底層硬盤(pán)故障、存儲(chǔ)空間接近飽和等問(wèn)題都會(huì)自覺(jué)提示;基于配置的副本數(shù)/EC校驗(yàn)節(jié)點(diǎn)數(shù),快速恢復(fù)失效節(jié)點(diǎn)中的數(shù)據(jù);無(wú)需人工干預(yù)的數(shù)據(jù)自動(dòng)平衡,不影響既有的業(yè)務(wù)。
本發(fā)明的分布式存儲(chǔ)器在架構(gòu)上采用了緩存加速+存儲(chǔ)池的方式對(duì)熱數(shù)據(jù)進(jìn)行緩存,將冷數(shù)據(jù)存儲(chǔ)在后端存儲(chǔ)池中,加速對(duì)數(shù)據(jù)的處理,所有數(shù)據(jù)首先保存在緩存區(qū)中,后臺(tái)服務(wù)會(huì)每隔一定時(shí)間自動(dòng)將緩存區(qū)中的數(shù)據(jù)傳輸?shù)胶蠖说拇鎯?chǔ)池中;當(dāng)需要取出數(shù)據(jù)的時(shí)候,首先從緩存區(qū)中獲取數(shù)據(jù),如果沒(méi)有,再?gòu)暮蠖速Y源池中取數(shù)據(jù)。其中針對(duì)不同的場(chǎng)景對(duì)冷熱數(shù)據(jù)提供了基于版本控制、時(shí)間和空間的三向保存策略,使冷熱數(shù)據(jù)的處理更加靈活多變。
本發(fā)明提供靈活的數(shù)據(jù)處理策略,應(yīng)用數(shù)據(jù)既可以通過(guò)數(shù)據(jù)分片器7進(jìn)行數(shù)據(jù)的安全冗余存儲(chǔ);也可以通過(guò)軟件定義存儲(chǔ)接口(SDS API)與多種應(yīng)用之間的直連,應(yīng)用數(shù)據(jù)直接經(jīng)過(guò)高強(qiáng)度加密后再分發(fā)到后端的虛擬資源池中,最大程度的利用存儲(chǔ)空間。數(shù)據(jù)安全處理中采用了分片加密算法,使得數(shù)據(jù)傳輸過(guò)程不可竊??;加密分片存儲(chǔ)后端分布式存儲(chǔ)的多個(gè)存儲(chǔ)結(jié)點(diǎn)了,且由于分片冗余的處理,使得即使某幾個(gè)存儲(chǔ)節(jié)點(diǎn)出現(xiàn)故障,數(shù)據(jù)也是安全的。
實(shí)施例2:本發(fā)明提供一種基于分布式軟件定義存儲(chǔ)的數(shù)據(jù)存儲(chǔ)裝置,其結(jié)構(gòu)是工作方法與實(shí)施例1基本相同,不同點(diǎn)為:本實(shí)施例不包括數(shù)據(jù)分片器7和數(shù)據(jù)還原器8,數(shù)據(jù)應(yīng)用端1直接通過(guò)軟件定義存儲(chǔ)接口(SDS API)6與分布式存儲(chǔ)器進(jìn)行數(shù)據(jù)的傳輸。
利用上述基于分布式軟件定義存儲(chǔ)的數(shù)據(jù)存儲(chǔ)裝置的存儲(chǔ)方法中,
數(shù)據(jù)存儲(chǔ)的步驟中:數(shù)據(jù)應(yīng)用端1直接通過(guò)軟件定義存儲(chǔ)接口(SDS API)6對(duì)數(shù)據(jù)進(jìn)行加密后存儲(chǔ)在虛擬存儲(chǔ)池3中,不通過(guò)數(shù)據(jù)分片的步驟。
數(shù)據(jù)提取步驟中:數(shù)據(jù)直接通過(guò)軟件定義存儲(chǔ)接口(SDS API)對(duì)數(shù)據(jù)還原至數(shù)據(jù)應(yīng)用端1,不通過(guò)數(shù)據(jù)還原步驟。
如上所述,盡管參照特定的優(yōu)選實(shí)施例已經(jīng)表示和表述了本發(fā)明,但其不得解釋為對(duì)本發(fā)明自身的限制。在不脫離所附權(quán)利要求定義的本發(fā)明的精神和范圍前提下,可對(duì)其在形式上和細(xì)節(jié)上作出各種變化。