本發(fā)明涉及云存儲技術(shù)領(lǐng)域,尤其涉及一種云平臺數(shù)據(jù)存儲方法及裝置。
背景技術(shù):
網(wǎng)關(guān)(gateway)又稱為網(wǎng)間連接器、協(xié)議轉(zhuǎn)換器;在網(wǎng)絡(luò)層以上實(shí)現(xiàn)網(wǎng)絡(luò)互連,用于兩個高層協(xié)議不同的網(wǎng)絡(luò)互連。網(wǎng)關(guān)是承擔(dān)轉(zhuǎn)換任務(wù)的計(jì)算機(jī)系統(tǒng)或者設(shè)備,在使用不同的通信協(xié)議、數(shù)據(jù)格式的系統(tǒng)之間充當(dāng)翻譯器。
云存儲中的對于網(wǎng)關(guān)技術(shù)的引入,使得用戶無需改變本地文件系統(tǒng)接口,使用現(xiàn)有的訪問方式就能訪問的云存儲的相關(guān)服務(wù)。
云存儲是在云計(jì)算(cloud computing)概念上延伸和發(fā)展出來的一個新的概念,是指通過集群應(yīng)用、網(wǎng)格技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量各種不同類型的存儲設(shè)備通過應(yīng)用軟件集合起來協(xié)同工作,共同對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪問功能的一個系統(tǒng)。當(dāng)云計(jì)算系統(tǒng)運(yùn)算和處理的核心是大量數(shù)據(jù)的存儲和管理時,云計(jì)算系統(tǒng)中就需要配置大量的存儲設(shè)備,那么云計(jì)算系統(tǒng)就轉(zhuǎn)變成為一個云存儲系統(tǒng),所以云存儲是一個以數(shù)據(jù)存儲和管理為核心的云計(jì)算系統(tǒng)。
隨著存儲地位日益提高,對存儲效率也提出了更高的要求。想要得到更高存儲效率,必須使用更高性能的硬盤,而更高性能的硬盤價格昂貴難以普及。
上述內(nèi)容僅用于輔助理解本發(fā)明的技術(shù)方案,并不代表承認(rèn)上述內(nèi)容是現(xiàn)有技術(shù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提供一種云平臺數(shù)據(jù)存儲方法及裝置,旨在解決使用更高性能的硬盤提高存儲效率導(dǎo)致價格昂貴難以普及的問題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種云平臺數(shù)據(jù)存儲方法,包括以下步驟:
當(dāng)接收到客戶端發(fā)送過來的需要存儲在云平臺的數(shù)據(jù)時,判斷云平臺的寫入性能參數(shù)是否小于預(yù)設(shè)的寫入性能參數(shù);
當(dāng)云平臺的寫入性能參數(shù)小于預(yù)設(shè)的寫入性能參數(shù)時,緩存所述數(shù)據(jù);
當(dāng)云平臺的寫入性能參數(shù)大于或等于預(yù)設(shè)的寫入性能參數(shù)時,將所述數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。
優(yōu)選地,所述接收到客戶端發(fā)送過來的需要存儲在云平臺的數(shù)據(jù)的步驟之后,還包括:
判斷客戶端的輸出性能參數(shù)是否大于預(yù)設(shè)的輸出性能參數(shù);
當(dāng)客戶端的輸出性能參數(shù)大于預(yù)設(shè)的輸出性能參數(shù)時,緩存所述數(shù)據(jù);
當(dāng)客戶端的輸出性能參數(shù)小于或等于預(yù)設(shè)的輸出性能參數(shù)時,將數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。
優(yōu)選地,所述將所述數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲的步驟包括:
將數(shù)據(jù)拆分成若干大小相同的小塊數(shù)據(jù)并附加分片信息形成切片數(shù)據(jù);
將切片數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。
優(yōu)選地,所述將數(shù)據(jù)拆分成若干大小相同的小塊數(shù)據(jù)并附加分片信息形成切片數(shù)據(jù)的步驟之后,還包括:
對每一個切片數(shù)據(jù)生成至少1個副本數(shù)據(jù)和/或?yàn)榍衅瑪?shù)據(jù)配置糾刪碼。
優(yōu)選地,所述方法還包括:
當(dāng)緩存數(shù)據(jù)達(dá)預(yù)設(shè)閥值時,將數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。
此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種云平臺數(shù)據(jù)存儲裝置,包括:
判斷模塊,用于當(dāng)接收到客戶端發(fā)送過來的需要存儲在云平臺的數(shù)據(jù)時,判斷云平臺的寫入性能參數(shù)是否小于預(yù)設(shè)的寫入性能參數(shù);
緩存模塊,用于當(dāng)云平臺的寫入性能參數(shù)小于預(yù)設(shè)的寫入性能參數(shù)時,緩存所述數(shù)據(jù);
發(fā)送模塊,用于當(dāng)云平臺的寫入性能參數(shù)大于或等于預(yù)設(shè)的寫入性能參數(shù)時,將所述數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。
優(yōu)選地,所述判斷模塊,還用于判斷客戶端的輸出性能參數(shù)是否大于預(yù)設(shè)的輸出性能參數(shù);
所述緩存模塊,還用于當(dāng)客戶端的輸出性能參數(shù)大于預(yù)設(shè)的輸出性能參數(shù)時,緩存所述數(shù)據(jù);
所述發(fā)送模塊,還用于當(dāng)客戶端的輸出性能參數(shù)小于或等于預(yù)設(shè)的輸出性能參數(shù)時,將數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。
優(yōu)選地,所述發(fā)送模塊包括:
切片單元,用于將數(shù)據(jù)拆分成若干大小相同的小塊數(shù)據(jù)并附加分片信息形成切片數(shù)據(jù);
發(fā)送單元,用于將切片數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。
優(yōu)選地,所述切片單元,還用于對每一個切片數(shù)據(jù)生成至少1個副本數(shù)據(jù)和/或?yàn)榍衅瑪?shù)據(jù)配置糾刪碼。
優(yōu)選地,所述發(fā)送模塊,還用于當(dāng)緩存數(shù)據(jù)達(dá)預(yù)設(shè)閥值時,將數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。
本發(fā)明當(dāng)接收到客戶端發(fā)送過來的需要存儲在云平臺的數(shù)據(jù)時,判斷云平臺的寫入性能參數(shù)是否小于預(yù)設(shè)的寫入性能參數(shù);當(dāng)云平臺的寫入性能參數(shù)小于預(yù)設(shè)的寫入性能參數(shù)時,緩存所述數(shù)據(jù);當(dāng)云平臺的寫入性能參數(shù)大于或等于預(yù)設(shè)的寫入性能參數(shù)時,將所述數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。本發(fā)明在客戶端向云平臺存儲數(shù)據(jù)時,通過將數(shù)據(jù)進(jìn)行緩存再存入云平臺,無需使用價格昂貴的更高性能的硬盤,即能滿足客戶端對數(shù)據(jù)存儲效率高的需求。
附圖說明
圖1為本發(fā)明云平臺數(shù)據(jù)存儲方法的第一實(shí)施例的流程示意圖;
圖2為圖1中步驟S30一實(shí)施例的細(xì)化流程示意圖;
圖3為本發(fā)明云平臺數(shù)據(jù)存儲方法的第二實(shí)施例的流程示意圖;
圖4為本發(fā)明云平臺數(shù)據(jù)存儲方法的第三實(shí)施例的流程示意圖;
圖5為本發(fā)明云平臺數(shù)據(jù)存儲方法的第四實(shí)施例的流程示意圖;
圖6為本發(fā)明云平臺數(shù)據(jù)存儲裝置的優(yōu)選實(shí)施例的功能模塊示意圖;
圖7為圖6中發(fā)送模塊一實(shí)施例的細(xì)化功能模塊示意圖。
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明提供一種云平臺數(shù)據(jù)存儲方法。
參照圖1,圖1為本發(fā)明云平臺數(shù)據(jù)存儲方法的第一實(shí)施例的流程示意圖。
在一實(shí)施例中,所述云平臺數(shù)據(jù)存儲方法包括:
步驟S10,當(dāng)接收到客戶端發(fā)送過來的需要存儲在云平臺的數(shù)據(jù)時,判斷云平臺的寫入性能參數(shù)是否小于預(yù)設(shè)的寫入性能參數(shù);
使用云平臺存儲數(shù)據(jù)的好處有:企業(yè)不需投入大量的固定資產(chǎn)采購軟硬件,也不需要增加信息管理人員,只要透過云平臺服務(wù)供貨商所提供的服務(wù),在很短的時間內(nèi)就可以迅速取得服務(wù)。這對一些分秒必爭的企業(yè)營運(yùn)來說,將會產(chǎn)生相當(dāng)大的幫助。有了虛擬化的技術(shù),企業(yè)放在云端的資料備份及備援將會得到相當(dāng)程度的保障。這讓企業(yè)愿意將數(shù)據(jù)及應(yīng)用程序放在云端,透過網(wǎng)絡(luò)讓各分公司能夠及時取得服務(wù),達(dá)到隨選服務(wù)的要求,加快整體公司的營運(yùn)效率。另外整體連網(wǎng)裝置將涵蓋計(jì)算機(jī)、智能型手機(jī)、電子書等,再加上網(wǎng)絡(luò)的普及頻寬的提升、企業(yè)全球化的浪潮,行動辦公室對信息的取得將更為迫切。而透過云平臺服務(wù)供貨商提供的服務(wù)讓信息流可以隨時流入自己的手持裝置中,迅速做出決策,將是提升企業(yè)競爭力的首要關(guān)鍵。網(wǎng)關(guān)(gateway),又稱為網(wǎng)間連接器、協(xié)議轉(zhuǎn)換器;在網(wǎng)絡(luò)層以上實(shí)現(xiàn)網(wǎng)絡(luò)互連,用于兩個高層協(xié)議不同的網(wǎng)絡(luò)互連。網(wǎng)關(guān)是充當(dāng)轉(zhuǎn)換任務(wù)的計(jì)算機(jī)系統(tǒng)或者設(shè)備,在使用不同的通信協(xié)議、數(shù)據(jù)格式的系統(tǒng)之間的翻譯器。本發(fā)明一實(shí)施例引入存儲網(wǎng)關(guān),這一系統(tǒng)的引入是基于網(wǎng)絡(luò)存儲的私有云存儲體系的關(guān)鍵。存儲網(wǎng)關(guān)不僅僅承擔(dān)存儲的設(shè)備連接任務(wù),還承載著對存儲的I/O請求的處理任務(wù)。其主要軟件功能包括I/O請求包的獲取與轉(zhuǎn)發(fā)、虛擬存儲池的管理與映射邏輯管理、高可用性等其他數(shù)據(jù)保障技術(shù)支持等。由此可見,存儲網(wǎng)關(guān)的功能特點(diǎn)中,并不需要對存儲設(shè)備進(jìn)行存儲模式的改變,當(dāng)然這并不意味著不能對存儲模式進(jìn)行改變,如果有更好的存儲模式、更有效的存儲管理功能、而存儲設(shè)備中又不存在需要遷移或只有極少量的數(shù)據(jù)需要遷移的話,對其存儲模式進(jìn)行改變就是一個不錯的選擇。存儲網(wǎng)關(guān)的存儲I/O請求,其主要的任務(wù)事實(shí)上是轉(zhuǎn)發(fā),即將服務(wù)器針對存儲池中的虛擬設(shè)備的I/O請求轉(zhuǎn)換成對物理存儲設(shè)備的I/O請求。由于存儲池的存在,存儲池中的虛擬設(shè)備與實(shí)際的存儲物理設(shè)備間有某種映射關(guān)系存在,存儲網(wǎng)關(guān)的主要作用就是將這種映射關(guān)系清晰的定義出來,并將服務(wù)器的I/O請求轉(zhuǎn)換為對物理設(shè)備的I/O請求。虛擬存儲設(shè)備的I/O請求可以完全與服務(wù)器對實(shí)際物理存儲設(shè)備的I/O請求一致,這樣,存儲網(wǎng)關(guān)的主要作用將變成簡單的I/O請求包的轉(zhuǎn)發(fā)及對存儲池的管理。隨著數(shù)據(jù)增大、用戶增加,當(dāng)用戶希望數(shù)據(jù)能夠快速寫入云平臺時,云平臺可能因?yàn)榇鎯α吭黾訉?dǎo)致存儲性能下降而不能滿足用戶需求。針對這類情況,本發(fā)明一實(shí)施例通過在接收到客戶端發(fā)送過來的需要存儲在云平臺的數(shù)據(jù)時,所述網(wǎng)關(guān)判斷云平臺的寫入性能參數(shù)是否小于預(yù)設(shè)的寫入性能參數(shù),預(yù)設(shè)的寫入性能參數(shù)可以是一個固定的參數(shù),也可以根據(jù)用戶不同、上傳的數(shù)據(jù)不同而設(shè)置不同的參數(shù),以判斷云平臺的寫入性能是否能達(dá)到用戶需求。
步驟S20,當(dāng)云平臺的寫入性能參數(shù)小于預(yù)設(shè)的寫入性能參數(shù)時,緩存所述數(shù)據(jù);
當(dāng)云平臺的寫入性能參數(shù)小于預(yù)設(shè)的寫入性能參數(shù)時,即云平臺的寫入性能不能滿足客戶端快速存儲的需求,為了滿足客戶端快速存儲的需求,不能將客戶端的數(shù)據(jù)直接發(fā)送至云平臺進(jìn)行存儲,本發(fā)明一實(shí)施例通過將數(shù)據(jù)在存儲網(wǎng)關(guān)進(jìn)行緩存,從而對客戶端而言,實(shí)現(xiàn)了數(shù)據(jù)的快速存儲。
步驟S30,當(dāng)云平臺的寫入性能參數(shù)大于或等于預(yù)設(shè)的寫入性能參數(shù)時,將所述數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。
當(dāng)云平臺的寫入性能參數(shù)大于或等于預(yù)設(shè)的寫入性能參數(shù)時,即云平臺的寫入性能能夠滿足客戶端快速存儲的需求,所述網(wǎng)關(guān)可以將客戶端的數(shù)據(jù)直接發(fā)送至云平臺進(jìn)行存儲,也可以將存儲網(wǎng)關(guān)中緩存的數(shù)據(jù)存入云平臺。
參照圖2,圖2為圖1中步驟S30一實(shí)施例的細(xì)化流程示意圖;所述步驟S30包括:
步驟S31,將數(shù)據(jù)拆分成若干大小相同的小塊數(shù)據(jù)并附加分片信息形成切片數(shù)據(jù);
步驟S32,將切片數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。
隨著互聯(lián)網(wǎng)應(yīng)用的廣泛普及,海量數(shù)據(jù)的存儲和訪問成為了系統(tǒng)設(shè)計(jì)的瓶頸問題。對于一個大型的互聯(lián)網(wǎng)應(yīng)用,每天幾十億的頁面瀏覽量無疑對數(shù)據(jù)庫造成了相當(dāng)高的負(fù)載。對于系統(tǒng)的穩(wěn)定性和擴(kuò)展性造成了極大的問題。通過數(shù)據(jù)切分來提高網(wǎng)站性能,橫向擴(kuò)展數(shù)據(jù)層已經(jīng)成為架構(gòu)研發(fā)人員首選的方式。水平切分?jǐn)?shù)據(jù)庫,可以降低單臺機(jī)器的負(fù)載,同時最大限度的降低了宕機(jī)造成的損失。通過負(fù)載均衡策略,有效的降低了單臺機(jī)器的訪問負(fù)載,降低了宕機(jī)的可能性;通過集群方案,解決了數(shù)據(jù)庫宕機(jī)帶來的單點(diǎn)數(shù)據(jù)庫不能訪問的問題;通過讀寫分離策略更是最大限度的提高了應(yīng)用中讀取數(shù)據(jù)的速度和并發(fā)量。為了實(shí)現(xiàn)數(shù)據(jù)庫切分,在進(jìn)行數(shù)據(jù)存儲時即可將數(shù)據(jù)進(jìn)行切片,即將數(shù)據(jù)拆分成若干大小相同的小塊數(shù)據(jù)并附加分片信息形成切片數(shù)據(jù);將切片數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。分片信息(如總片數(shù)、當(dāng)前第幾片、文件大小、時間等)附加在每個分片數(shù)據(jù)開頭一并進(jìn)行存儲,以便在讀取時進(jìn)行解析并根據(jù)操作類型做相應(yīng)操作。進(jìn)一步地,還可以對發(fā)送至云平臺進(jìn)行存儲的數(shù)據(jù)進(jìn)行加密,可以使用非對稱加密算法,提高數(shù)據(jù)的保密性。
本實(shí)施例在客戶端向云平臺存儲數(shù)據(jù)時,通過將數(shù)據(jù)進(jìn)行緩存再存入云平臺,無需使用價格昂貴的更高性能的硬盤,即能滿足客戶端對數(shù)據(jù)存儲效率高的需求。
參照圖3,圖3為本發(fā)明云平臺數(shù)據(jù)存儲方法的第二實(shí)施例的流程示意圖。基于上述云平臺數(shù)據(jù)存儲方法的第一實(shí)施例,所述步驟S31之后,還包括:
步驟S33,對每一個切片數(shù)據(jù)生成至少1個副本數(shù)據(jù)和/或?yàn)榍衅瑪?shù)據(jù)配置糾刪碼。
隨著信息化進(jìn)程的不斷推進(jìn),需要存儲的各種數(shù)據(jù)量也不斷增加。傳統(tǒng)集中存儲模式存在一定的性能瓶頸,已經(jīng)不能滿足大規(guī)模存儲的需求。分布式存儲一般可以基于集群的存儲方式和基于P2P(peer-to-peer,對等互聯(lián)網(wǎng)絡(luò)技術(shù)或點(diǎn)對點(diǎn)網(wǎng)絡(luò)技術(shù))的存儲方式。由于P2P存儲可以提供存儲的高效率、高可擴(kuò)展性以及較好的魯棒性和負(fù)載均衡性。隨著分布式存儲系統(tǒng)的不斷發(fā)展,人們對存儲系統(tǒng)的性能要求也越來越高。存儲系統(tǒng)有許多評價指標(biāo)和功能需求。系統(tǒng)的吞吐量和請求響應(yīng)時間是存儲系統(tǒng)的兩個主要評價指標(biāo)。為了提高存儲系統(tǒng)的可用性和可靠性,本發(fā)明一實(shí)施例對每一個切片數(shù)據(jù)生成至少1個副本數(shù)據(jù),即在存儲系統(tǒng)中采用多副本存儲的方式,且同一個切片數(shù)據(jù)的多個副本會存放在不同節(jié)點(diǎn)上,采用這種多副本方式有以下幾個優(yōu)點(diǎn):1)可以讓用戶從不同的切片數(shù)據(jù)中讀取數(shù)據(jù),加快傳輸速度;2)可以判斷數(shù)據(jù)傳輸是否出錯;3)可以保證某個切片數(shù)據(jù)失效的情況下,不會丟失數(shù)據(jù)。然而,采用多副本存儲的方式需要占用更多的存儲空間,對于防止數(shù)據(jù)丟失而言,本發(fā)明一實(shí)施例提出了為切片數(shù)據(jù)配置糾刪碼的方式,糾刪碼是在丟失部分?jǐn)?shù)據(jù)的情況下根據(jù)剩余數(shù)據(jù)將丟失的數(shù)據(jù)重建的一組算法。例如,當(dāng)切片數(shù)據(jù)中存在k個數(shù)據(jù),使用糾刪算法后生成k+m個數(shù)據(jù),再將k+m個數(shù)據(jù)發(fā)送給云平臺中的多個不同節(jié)點(diǎn),從而實(shí)現(xiàn)數(shù)據(jù)的冗余。當(dāng)有數(shù)據(jù)出錯時,根據(jù)剩余的任何k個數(shù)據(jù)都能還原出原始的k個數(shù)據(jù);當(dāng)然,當(dāng)出錯數(shù)據(jù)超過糾正范圍時,即剩余的正確數(shù)據(jù)個數(shù)少于k個,已經(jīng)無法還原出原始的k個數(shù)據(jù),則可把無法糾錯的信息刪除。使用糾刪碼的方式比多副本存儲的方式占用更少的云存儲空間。糾刪碼和多副本存儲的方式也可以結(jié)合使用,能夠達(dá)到防數(shù)據(jù)丟失,且存儲空間占用較少,用戶讀取數(shù)據(jù)速度較快的目的。
本實(shí)施例通過使用糾刪碼和多副本存儲的方式,能夠達(dá)到防數(shù)據(jù)丟失,且存儲空間占用較少,用戶讀取數(shù)據(jù)速度較快的目的。
參照圖4,圖4為本發(fā)明云平臺數(shù)據(jù)存儲方法的第三實(shí)施例的流程示意圖。基于上述云平臺數(shù)據(jù)存儲方法的第二實(shí)施例,所述步驟S10中接收到客戶端發(fā)送過來的需要存儲在云平臺的數(shù)據(jù)的步驟之后,還包括:
步驟S40,判斷客戶端的輸出性能參數(shù)是否大于預(yù)設(shè)的輸出性能參數(shù);
步驟S50,當(dāng)客戶端的輸出性能參數(shù)大于預(yù)設(shè)的輸出性能參數(shù)時,緩存所述數(shù)據(jù);
步驟S60,當(dāng)客戶端的輸出性能參數(shù)小于或等于預(yù)設(shè)的輸出性能參數(shù)時,將數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。
前述實(shí)施例是通過判斷云平臺的寫入性能是否能達(dá)到用戶需求,以控制對數(shù)據(jù)緩存或存入云平臺,本發(fā)明一實(shí)施例進(jìn)一步提出,所述網(wǎng)關(guān)對客戶端存儲性能需求進(jìn)行判斷,對于不同客戶端和/或不同數(shù)據(jù),需要的存儲性能不一定相同,例如,當(dāng)客戶端向云平臺存儲小文件時,云平臺的寫入性能高低對存儲時間等影響差距不大,則可以直接存入云平臺;當(dāng)然,對于輸出性能較差的客戶端,也可以直接存入云平臺。因此,在接收到客戶端發(fā)送過來的需要存儲在云平臺的數(shù)據(jù)時,判斷客戶端的輸出性能參數(shù)是否大于預(yù)設(shè)的輸出性能參數(shù);當(dāng)客戶端的輸出性能參數(shù)大于預(yù)設(shè)的輸出性能參數(shù)時,緩存所述數(shù)據(jù);當(dāng)客戶端的輸出性能參數(shù)小于或等于預(yù)設(shè)的輸出性能參數(shù)時,將數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。根據(jù)客戶端及云平臺的性能狀態(tài)控制數(shù)據(jù)存儲,從而提高數(shù)據(jù)存儲的處理能力。
本實(shí)施例根據(jù)客戶端及云平臺的性能狀態(tài)控制數(shù)據(jù)存儲,從而提高數(shù)據(jù)存儲的處理能力。
參照圖5,圖5為本發(fā)明云平臺數(shù)據(jù)存儲方法的第四實(shí)施例的流程示意圖?;谏鲜鲈破脚_數(shù)據(jù)存儲方法的第三實(shí)施例,所述方法還包括:
步驟S70,當(dāng)緩存數(shù)據(jù)達(dá)預(yù)設(shè)閥值時,將數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。
如前所述,當(dāng)云平臺的寫入性能參數(shù)小于預(yù)設(shè)的寫入性能參數(shù)時,所述網(wǎng)關(guān)(執(zhí)行緩存功能的設(shè)備)對數(shù)據(jù)進(jìn)行緩存;但是,執(zhí)行緩存功能的設(shè)備的容量也是有限的,如果云平臺的寫入性能持續(xù)處于不能滿足數(shù)據(jù)寫入的狀態(tài),或者,數(shù)據(jù)緩存的速度大于云平臺存儲數(shù)據(jù)的速度,則執(zhí)行緩存功能的設(shè)備中存儲的數(shù)據(jù)量將越來越多,然而,執(zhí)行緩存功能的設(shè)備不可能無限量的緩存數(shù)據(jù),特別是當(dāng)緩存數(shù)據(jù)過多時,將導(dǎo)致執(zhí)行緩存功能的設(shè)備本身工作性能下降,因此,當(dāng)緩存數(shù)據(jù)達(dá)預(yù)設(shè)閥值時,將數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。例如,當(dāng)緩存數(shù)據(jù)達(dá)容量的80%時,不論云平臺的存儲性能如何,均強(qiáng)制將數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。
本實(shí)施例通過設(shè)置緩存數(shù)據(jù)的預(yù)設(shè)閥值,可以保證執(zhí)行緩存功能的設(shè)備中不至于因緩存過多數(shù)據(jù)而導(dǎo)致本身工作性能下降,從而保證系統(tǒng)的穩(wěn)定性。
本發(fā)明進(jìn)一步提供一種云平臺數(shù)據(jù)存儲裝置。
參照圖6,圖6為本發(fā)明云平臺數(shù)據(jù)存儲裝置的第一實(shí)施例的功能模塊示意圖。
在一實(shí)施例中,所述云平臺數(shù)據(jù)存儲裝置包括:判斷模塊10、緩存模塊20及發(fā)送模塊30。
所述判斷模塊10,用于當(dāng)接收到客戶端發(fā)送過來的需要存儲在云平臺的數(shù)據(jù)時,判斷云平臺的寫入性能參數(shù)是否小于預(yù)設(shè)的寫入性能參數(shù);
使用云平臺存儲數(shù)據(jù)的好處有:企業(yè)不需投入大量的固定資產(chǎn)采購軟硬件,也不需要增加信息管理人員,只要透過云平臺服務(wù)供貨商所提供的服務(wù),在很短的時間內(nèi)就可以迅速取得服務(wù)。這對一些分秒必爭的企業(yè)營運(yùn)來說,將會產(chǎn)生相當(dāng)大的幫助。有了虛擬化的技術(shù),企業(yè)放在云端的資料備份及備援將會得到相當(dāng)程度的保障。這讓企業(yè)愿意將數(shù)據(jù)及應(yīng)用程序放在云端,透過網(wǎng)絡(luò)讓各分公司能夠及時取得服務(wù),達(dá)到隨選服務(wù)的要求,加快整體公司的營運(yùn)效率。另外整體連網(wǎng)裝置將涵蓋計(jì)算機(jī)、智能型手機(jī)、電子書等,再加上網(wǎng)絡(luò)的普及頻寬的提升、企業(yè)全球化的浪潮,行動辦公室對信息的取得將更為迫切。而透過云平臺服務(wù)供貨商提供的服務(wù)讓信息流可以隨時流入自己的手持裝置中,迅速做出決策,將是提升企業(yè)競爭力的首要關(guān)鍵。網(wǎng)關(guān)(gateway),又稱為網(wǎng)間連接器、協(xié)議轉(zhuǎn)換器;在網(wǎng)絡(luò)層以上實(shí)現(xiàn)網(wǎng)絡(luò)互連,用于兩個高層協(xié)議不同的網(wǎng)絡(luò)互連。網(wǎng)關(guān)是充當(dāng)轉(zhuǎn)換任務(wù)的計(jì)算機(jī)系統(tǒng)或者設(shè)備,在使用不同的通信協(xié)議、數(shù)據(jù)格式的系統(tǒng)之間的翻譯器。本發(fā)明一實(shí)施例引入存儲網(wǎng)關(guān),這一系統(tǒng)的引入是基于網(wǎng)絡(luò)存儲的私有云存儲體系的關(guān)鍵。存儲網(wǎng)關(guān)不僅僅承擔(dān)存儲的設(shè)備連接任務(wù),還承載著對存儲的I/O請求的處理任務(wù)。其主要軟件功能包括I/O請求包的獲取與轉(zhuǎn)發(fā)、虛擬存儲池的管理與映射邏輯管理、高可用性等其他數(shù)據(jù)保障技術(shù)支持等。由此可見,存儲網(wǎng)關(guān)的功能特點(diǎn)中,并不需要對存儲設(shè)備進(jìn)行存儲模式的改變,當(dāng)然這并不意味著不能對存儲模式進(jìn)行改變,如果有更好的存儲模式、更有效的存儲管理功能、而存儲設(shè)備中又不存在需要遷移或只有極少量的數(shù)據(jù)需要遷移的話,對其存儲模式進(jìn)行改變就是一個不錯的選擇。存儲網(wǎng)關(guān)的存儲I/O請求,其主要的任務(wù)事實(shí)上是轉(zhuǎn)發(fā),即將服務(wù)器針對存儲池中的虛擬設(shè)備的I/O請求轉(zhuǎn)換成對物理存儲設(shè)備的I/O請求。由于存儲池的存在,存儲池中的虛擬設(shè)備與實(shí)際的存儲物理設(shè)備間有某種映射關(guān)系存在,存儲網(wǎng)關(guān)的主要作用就是將這種映射關(guān)系清晰的定義出來,并將服務(wù)器的I/O請求轉(zhuǎn)換為對物理設(shè)備的I/O請求。虛擬存儲設(shè)備的I/O請求可以完全與服務(wù)器對實(shí)際物理存儲設(shè)備的I/O請求一致,這樣,存儲網(wǎng)關(guān)的主要作用將變成簡單的I/O請求包的轉(zhuǎn)發(fā)及對存儲池的管理。隨著數(shù)據(jù)增大、用戶增加,當(dāng)用戶希望數(shù)據(jù)能夠快速寫入云平臺時,云平臺可能因?yàn)榇鎯α吭黾訉?dǎo)致存儲性能下降而不能滿足用戶需求。針對這類情況,本發(fā)明一實(shí)施例通過在接收到客戶端發(fā)送過來的需要存儲在云平臺的數(shù)據(jù)時,所述網(wǎng)關(guān)判斷云平臺的寫入性能參數(shù)是否小于預(yù)設(shè)的寫入性能參數(shù),預(yù)設(shè)的寫入性能參數(shù)可以是一個固定的參數(shù),也可以根據(jù)用戶不同、上傳的數(shù)據(jù)不同而設(shè)置不同的參數(shù),以判斷云平臺的寫入性能是否能達(dá)到用戶需求。
所述緩存模塊20,用于當(dāng)云平臺的寫入性能參數(shù)小于預(yù)設(shè)的寫入性能參數(shù)時,緩存所述數(shù)據(jù);
當(dāng)云平臺的寫入性能參數(shù)小于預(yù)設(shè)的寫入性能參數(shù)時,即云平臺的寫入性能不能滿足客戶端快速存儲的需求,為了滿足客戶端快速存儲的需求,不能將客戶端的數(shù)據(jù)直接發(fā)送至云平臺進(jìn)行存儲,本發(fā)明一實(shí)施例通過將數(shù)據(jù)在存儲網(wǎng)關(guān)進(jìn)行緩存,從而對客戶端而言,實(shí)現(xiàn)了數(shù)據(jù)的快速存儲。
所述發(fā)送模塊30,用于當(dāng)云平臺的寫入性能參數(shù)大于或等于預(yù)設(shè)的寫入性能參數(shù)時,將所述數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。
當(dāng)云平臺的寫入性能參數(shù)大于或等于預(yù)設(shè)的寫入性能參數(shù)時,即云平臺的寫入性能能夠滿足客戶端快速存儲的需求,所述網(wǎng)關(guān)可以將客戶端的數(shù)據(jù)直接發(fā)送至云平臺進(jìn)行存儲,也可以將存儲網(wǎng)關(guān)中緩存的數(shù)據(jù)存入云平臺。
參照圖7,圖7為圖6中發(fā)送模塊30一實(shí)施例的細(xì)化功能模塊示意圖;所述發(fā)送模塊30包括:
切片單元31,用于將數(shù)據(jù)拆分成若干大小相同的小塊數(shù)據(jù)并附加分片信息形成切片數(shù)據(jù);
發(fā)送單元32,用于將切片數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。
隨著互聯(lián)網(wǎng)應(yīng)用的廣泛普及,海量數(shù)據(jù)的存儲和訪問成為了系統(tǒng)設(shè)計(jì)的瓶頸問題。對于一個大型的互聯(lián)網(wǎng)應(yīng)用,每天幾十億的頁面瀏覽量無疑對數(shù)據(jù)庫造成了相當(dāng)高的負(fù)載。對于系統(tǒng)的穩(wěn)定性和擴(kuò)展性造成了極大的問題。通過數(shù)據(jù)切分來提高網(wǎng)站性能,橫向擴(kuò)展數(shù)據(jù)層已經(jīng)成為架構(gòu)研發(fā)人員首選的方式。水平切分?jǐn)?shù)據(jù)庫,可以降低單臺機(jī)器的負(fù)載,同時最大限度的降低了宕機(jī)造成的損失。通過負(fù)載均衡策略,有效的降低了單臺機(jī)器的訪問負(fù)載,降低了宕機(jī)的可能性;通過集群方案,解決了數(shù)據(jù)庫宕機(jī)帶來的單點(diǎn)數(shù)據(jù)庫不能訪問的問題;通過讀寫分離策略更是最大限度的提高了應(yīng)用中讀取數(shù)據(jù)的速度和并發(fā)量。為了實(shí)現(xiàn)數(shù)據(jù)庫切分,在進(jìn)行數(shù)據(jù)存儲時即可將數(shù)據(jù)進(jìn)行切片,即將數(shù)據(jù)拆分成若干大小相同的小塊數(shù)據(jù)并附加分片信息形成切片數(shù)據(jù);將切片數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。分片信息(如總片數(shù)、當(dāng)前第幾片、文件大小、時間等)附加在每個分片數(shù)據(jù)開頭一并進(jìn)行存儲,以便在讀取時進(jìn)行解析并根據(jù)操作類型做相應(yīng)操作。進(jìn)一步地,還可以對發(fā)送至云平臺進(jìn)行存儲的數(shù)據(jù)進(jìn)行加密,可以使用非對稱加密算法,提高數(shù)據(jù)的保密性。
本實(shí)施例在客戶端向云平臺存儲數(shù)據(jù)時,通過將數(shù)據(jù)進(jìn)行緩存再存入云平臺,無需使用價格昂貴的更高性能的硬盤,即能滿足客戶端對數(shù)據(jù)存儲效率高的需求。
進(jìn)一步地,所述切片單元31,還用于對每一個切片數(shù)據(jù)生成至少1個副本數(shù)據(jù)和/或?yàn)榍衅瑪?shù)據(jù)配置糾刪碼。
隨著信息化進(jìn)程的不斷推進(jìn),需要存儲的各種數(shù)據(jù)量也不斷增加。傳統(tǒng)集中存儲模式存在一定的性能瓶頸,已經(jīng)不能滿足大規(guī)模存儲的需求。分布式存儲一般可以基于集群的存儲方式和基于P2P(peer-to-peer,對等互聯(lián)網(wǎng)絡(luò)技術(shù)或點(diǎn)對點(diǎn)網(wǎng)絡(luò)技術(shù))的存儲方式。由于P2P存儲可以提供存儲的高效率、高可擴(kuò)展性以及較好的魯棒性和負(fù)載均衡性。隨著分布式存儲系統(tǒng)的不斷發(fā)展,人們對存儲系統(tǒng)的性能要求也越來越高。存儲系統(tǒng)有許多評價指標(biāo)和功能需求。系統(tǒng)的吞吐量和請求響應(yīng)時間是存儲系統(tǒng)的兩個主要評價指標(biāo)。為了提高存儲系統(tǒng)的可用性和可靠性,本發(fā)明一實(shí)施例對每一個切片數(shù)據(jù)生成至少1個副本數(shù)據(jù),即在存儲系統(tǒng)中采用多副本存儲的方式,且同一個切片數(shù)據(jù)的多個副本會存放在不同節(jié)點(diǎn)上,采用這種多副本方式有以下幾個優(yōu)點(diǎn):1)可以讓用戶從不同的切片數(shù)據(jù)中讀取數(shù)據(jù),加快傳輸速度;2)可以判斷數(shù)據(jù)傳輸是否出錯;3)可以保證某個切片數(shù)據(jù)失效的情況下,不會丟失數(shù)據(jù)。然而,采用多副本存儲的方式需要占用更多的存儲空間,對于防止數(shù)據(jù)丟失而言,本發(fā)明一實(shí)施例提出了為切片數(shù)據(jù)配置糾刪碼的方式,糾刪碼是在丟失部分?jǐn)?shù)據(jù)的情況下根據(jù)剩余數(shù)據(jù)將丟失的數(shù)據(jù)重建的一組算法。例如,當(dāng)切片數(shù)據(jù)中存在k個數(shù)據(jù),使用糾刪算法后生成k+m個數(shù)據(jù),再將k+m個數(shù)據(jù)發(fā)送給云平臺中的多個不同節(jié)點(diǎn),從而實(shí)現(xiàn)數(shù)據(jù)的冗余。當(dāng)有數(shù)據(jù)出錯時,根據(jù)剩余的任何k個數(shù)據(jù)都能還原出原始的k個數(shù)據(jù);當(dāng)然,當(dāng)出錯數(shù)據(jù)超過糾正范圍時,即剩余的正確數(shù)據(jù)個數(shù)少于k個,已經(jīng)無法還原出原始的k個數(shù)據(jù),則可把無法糾錯的信息刪除。使用糾刪碼的方式比多副本存儲的方式占用更少的云存儲空間。糾刪碼和多副本存儲的方式也可以結(jié)合使用,能夠達(dá)到防數(shù)據(jù)丟失,且存儲空間占用較少,用戶讀取數(shù)據(jù)速度較快的目的。
本實(shí)施例通過使用糾刪碼和多副本存儲的方式,能夠達(dá)到防數(shù)據(jù)丟失,且存儲空間占用較少,用戶讀取數(shù)據(jù)速度較快的目的。
進(jìn)一步地,所述判斷模塊10,還用于判斷客戶端的輸出性能參數(shù)是否大于預(yù)設(shè)的輸出性能參數(shù);
所述緩存模塊20,還用于當(dāng)客戶端的輸出性能參數(shù)大于預(yù)設(shè)的輸出性能參數(shù)時,緩存所述數(shù)據(jù);
所述發(fā)送模塊30,還用于當(dāng)客戶端的輸出性能參數(shù)小于或等于預(yù)設(shè)的輸出性能參數(shù)時,將數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。
前述實(shí)施例是通過判斷云平臺的寫入性能是否能達(dá)到用戶需求,以控制對數(shù)據(jù)緩存或存入云平臺,本發(fā)明一實(shí)施例進(jìn)一步提出,所述網(wǎng)關(guān)對客戶端存儲性能需求進(jìn)行判斷,對于不同客戶端和/或不同數(shù)據(jù),需要的存儲性能不一定相同,例如,當(dāng)客戶端向云平臺存儲小文件時,云平臺的寫入性能高低對存儲時間等影響差距不大,則可以直接存入云平臺;當(dāng)然,對于輸出性能較差的客戶端,也可以直接存入云平臺。因此,在接收到客戶端發(fā)送過來的需要存儲在云平臺的數(shù)據(jù)時,判斷客戶端的輸出性能參數(shù)是否大于預(yù)設(shè)的輸出性能參數(shù);當(dāng)客戶端的輸出性能參數(shù)大于預(yù)設(shè)的輸出性能參數(shù)時,緩存所述數(shù)據(jù);當(dāng)客戶端的輸出性能參數(shù)小于或等于預(yù)設(shè)的輸出性能參數(shù)時,將數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。根據(jù)客戶端及云平臺的性能狀態(tài)控制數(shù)據(jù)存儲,從而提高數(shù)據(jù)存儲的處理能力。
本實(shí)施例根據(jù)客戶端及云平臺的性能狀態(tài)控制數(shù)據(jù)存儲,從而提高數(shù)據(jù)存儲的處理能力。
進(jìn)一步地,所述發(fā)送模塊30,還用于當(dāng)緩存數(shù)據(jù)達(dá)預(yù)設(shè)閥值時,將數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。
如前所述,當(dāng)云平臺的寫入性能參數(shù)小于預(yù)設(shè)的寫入性能參數(shù)時,所述網(wǎng)關(guān)(執(zhí)行緩存功能的設(shè)備)對數(shù)據(jù)進(jìn)行緩存;但是,執(zhí)行緩存功能的設(shè)備的容量也是有限的,如果云平臺的寫入性能持續(xù)處于不能滿足數(shù)據(jù)寫入的狀態(tài),或者,數(shù)據(jù)緩存的速度大于云平臺存儲數(shù)據(jù)的速度,則執(zhí)行緩存功能的設(shè)備中存儲的數(shù)據(jù)量將越來越多,然而,執(zhí)行緩存功能的設(shè)備不可能無限量的緩存數(shù)據(jù),特別是當(dāng)緩存數(shù)據(jù)過多時,將導(dǎo)致執(zhí)行緩存功能的設(shè)備本身工作性能下降,因此,當(dāng)緩存數(shù)據(jù)達(dá)預(yù)設(shè)閥值時,將數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。例如,當(dāng)緩存數(shù)據(jù)達(dá)容量的80%時,不論云平臺的存儲性能如何,均強(qiáng)制將數(shù)據(jù)發(fā)送至云平臺以進(jìn)行存儲。
本實(shí)施例通過設(shè)置緩存數(shù)據(jù)的預(yù)設(shè)閥值,可以保證執(zhí)行緩存功能的設(shè)備中不至于因緩存過多數(shù)據(jù)而導(dǎo)致本身工作性能下降,從而保證系統(tǒng)的穩(wěn)定性。
以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。