一種實現(xiàn)數(shù)據(jù)存儲的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本申請涉及云存儲技術(shù),尤指一種實現(xiàn)數(shù)據(jù)存儲的方法及裝置。
【背景技術(shù)】
[0002] 云存儲是在云計算(cloudcomputing)概念上延伸和發(fā)展出來的一個新的概念, 是一種新興的網(wǎng)絡(luò)存儲技術(shù),是指通過集群應(yīng)用、網(wǎng)絡(luò)技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng) 絡(luò)中大量各種不同類型的存儲設(shè)備通過應(yīng)用軟件集合起來協(xié)同工作,共同對外提供數(shù)據(jù)存 儲和業(yè)務(wù)訪問功能的一個系統(tǒng)。許多人把云存儲理解成把數(shù)據(jù)存到網(wǎng)上,其實不然。采用 云存儲技術(shù)進行數(shù)據(jù)存儲時,數(shù)據(jù)不一定是存儲在網(wǎng)絡(luò)的固定位置,也不一定以完整的文 件進行存儲,甚至存儲的方式也是隨機的,云存儲最基本要求是:數(shù)據(jù)的合法擁有者在存儲 完數(shù)據(jù)口必須能夠從存儲位置將數(shù)據(jù)還原。
[0003]目前,云存儲的基本方法是先將數(shù)據(jù)分塊,然后隨機的將數(shù)據(jù)分塊分布到網(wǎng)絡(luò)上 的多臺服務(wù)器上,并在本地記錄數(shù)據(jù)分塊和數(shù)據(jù)分塊后的分布信息,在需要重新獲取數(shù)據(jù) 時,根據(jù)本地記錄數(shù)據(jù)分塊和數(shù)據(jù)分塊后的分布信息進行還原數(shù)據(jù)的處理。為了保證云存 儲的安全性能,在進行數(shù)據(jù)分塊和分布數(shù)據(jù)分塊到服務(wù)器時需要進行比如數(shù)據(jù)切分、建立 數(shù)據(jù)影射、元數(shù)據(jù)存儲、索引、冗余、傳輸、加密解密等。例如、利用哈希(Hash)表進行存儲, 就要先合理切分?jǐn)?shù)據(jù),保證每一段切分的數(shù)據(jù)計算的關(guān)鍵(key)值都和其他段不同,對所 有服務(wù)器(也可以稱為存儲節(jié)點)也進行hash,各存儲節(jié)點的key值亦不重復(fù)。然后建立 一張映射表,使切分的數(shù)據(jù)的key值與存儲節(jié)點的key值形成對應(yīng)關(guān)系后,就可以進行打散 存儲了。打散存儲后,通過元數(shù)據(jù)表中記錄的每一塊切分?jǐn)?shù)據(jù)的key值和存儲節(jié)點的key 值,元數(shù)據(jù)用于數(shù)據(jù)還原。
[0004]雖然元數(shù)據(jù)數(shù)據(jù)量較小,但隨著切分?jǐn)?shù)據(jù)的塊數(shù)的增加和存儲節(jié)點數(shù)量的增加, 需要在本地存儲大量的元數(shù)據(jù),進行數(shù)據(jù)的存儲和還原時,需要較高的運算量,對于存儲或 運算的系統(tǒng)而言很難實現(xiàn)。
【發(fā)明內(nèi)容】
[0005]為了解決上述問題,本發(fā)明提供一種實現(xiàn)數(shù)據(jù)存儲的方法及裝置,能夠降低存儲 和還原數(shù)據(jù)時的計算量。
[0006]為了達到本發(fā)明的目的,本申請?zhí)峁┮环N實現(xiàn)數(shù)據(jù)存儲的方法;包括:
[0007]根據(jù)預(yù)先確定的無理數(shù)確定進行數(shù)據(jù)存儲的存儲參數(shù);
[0008]將切分為數(shù)據(jù)塊的存儲數(shù)據(jù)根據(jù)確定的存儲參數(shù)分別寫入到相應(yīng)的存儲節(jié)點,并 根據(jù)各數(shù)據(jù)塊的寫入生成還原參數(shù)信息,以在讀取存儲的數(shù)據(jù)時根據(jù)還原參數(shù)信息進行數(shù) 據(jù)還原。
[0009]進一步地,確定進行數(shù)據(jù)存儲的存儲參數(shù)具體包括:
[0010] 按照預(yù)設(shè)的位數(shù)間隔從設(shè)定的起始位開始逐個讀取第一預(yù)設(shè)位數(shù)的無理數(shù);
[0011] 將讀取的各第一預(yù)設(shè)位數(shù)的無理數(shù)對預(yù)先確定存儲所述存儲數(shù)據(jù)的存儲節(jié)點個 數(shù)進行取模,將取模的數(shù)值作為各數(shù)據(jù)塊相應(yīng)的寫入的存儲節(jié)點的存儲節(jié)點編號;
[0012] 所述預(yù)設(shè)的位數(shù)間隔為大于或等于0的整數(shù)。
[0013] 進一步地,將切分為數(shù)據(jù)塊的存儲數(shù)據(jù)根據(jù)確定的存儲參數(shù)分別寫入到相應(yīng)的存 儲節(jié)點具體包括:
[0014] 對各切分的數(shù)據(jù)塊進行排序編號后,根據(jù)所述確定的各數(shù)據(jù)塊相應(yīng)的寫入的存儲 節(jié)點的存儲節(jié)點編號,將所述存儲數(shù)據(jù)的各數(shù)據(jù)塊分別寫入相應(yīng)的存儲節(jié)點。
[0015] 進一步地,該方法之前還包括:
[0016] 根據(jù)預(yù)先設(shè)定的數(shù)據(jù)塊大小切分所述存儲數(shù)據(jù),獲得所述切分的數(shù)據(jù)塊;或,
[0017] 采用預(yù)先定義的取數(shù)規(guī)則從所述無理數(shù)中選取各所述數(shù)據(jù)塊相應(yīng)的第二預(yù)設(shè)位 數(shù)的切分大小數(shù)值;
[0018] 按照選取先后對所述第二預(yù)設(shè)位數(shù)的切分大小數(shù)值進行排序;
[0019] 根據(jù)排序的所述切分大小數(shù)值逐步切分所述存儲數(shù)據(jù),獲得所述切分的數(shù)據(jù)塊。
[0020] 進一步地,根據(jù)排序的所述切分大小數(shù)值逐步切分所述存儲數(shù)據(jù)前,該方法還包 括:
[0021] 刪除切分大小數(shù)值的排序中在預(yù)設(shè)區(qū)間以外的切分大小數(shù)值,并對排序進行更 新。
[0022] 進一步地,還原參數(shù)信息具體包括:存儲參數(shù)、各數(shù)據(jù)塊的數(shù)據(jù)塊排序編號、數(shù)據(jù) 塊大小和數(shù)據(jù)塊寫入至存儲節(jié)點時在各存儲節(jié)點的排序編號。
[0023] 另一方面,本申請還提供一種實現(xiàn)數(shù)據(jù)存儲的裝置,包括:存儲參數(shù)確定單元及存 儲寫入單元;其中,
[0024] 存儲參數(shù)確定單元,用于根據(jù)預(yù)先確定的無理數(shù)確定進行數(shù)據(jù)存儲的存儲參數(shù);
[0025] 存儲寫入單元包括寫入模塊和還原參數(shù)生成模塊;其中,
[0026] 寫入模塊,用于將切分為數(shù)據(jù)塊的存儲數(shù)據(jù)根據(jù)確定的存儲參數(shù)分別寫入到相應(yīng) 的存儲節(jié)點;
[0027] 還原參數(shù)生成模塊,用于根據(jù)各數(shù)據(jù)塊的寫入生成還原參數(shù)信息,以在讀取存儲 的數(shù)據(jù)時根據(jù)還原參數(shù)信息進行數(shù)據(jù)還原。
[0028] 進一步地,存儲參數(shù)確定單元具體用于,
[0029] 按照預(yù)設(shè)的位數(shù)間隔從設(shè)定的起始位開始逐個讀取第一預(yù)設(shè)位數(shù)的無理數(shù);
[0030] 將讀取的各第一預(yù)設(shè)位數(shù)的無理數(shù)對預(yù)先確定存儲所述存儲數(shù)據(jù)的存儲節(jié)點個 數(shù)進行取模,將取模的數(shù)值作為各數(shù)據(jù)塊相應(yīng)的寫入的存儲節(jié)點的存儲節(jié)點編號;
[0031] 所述預(yù)設(shè)的位數(shù)間隔為大于或等于0的整數(shù)。
[0032] 進一步地,該裝置還包括切分單元,用于根據(jù)預(yù)先設(shè)定的數(shù)據(jù)塊大小切分所述存 儲數(shù)據(jù),獲得所述切分的數(shù)據(jù)塊;或,
[0033] 采用預(yù)先定義的取數(shù)規(guī)則從所述無理數(shù)中選取各所述數(shù)據(jù)塊相應(yīng)的第二預(yù)設(shè)位 數(shù)的切分大小數(shù)值;
[0034] 按照選取先后對所述第二預(yù)設(shè)位數(shù)的切分大小數(shù)值進行排序;
[0035] 根據(jù)排序的所述切分大小數(shù)值逐步切分所述存儲數(shù)據(jù),獲得所述切分的數(shù)據(jù)塊。
[0036] 進一步地,寫入模塊具體用于,
[0037] 對各切分的數(shù)據(jù)塊進行排序編號后,根據(jù)所述確定的存儲參數(shù),將所述存儲數(shù)據(jù) 的各數(shù)據(jù)塊分別寫入相應(yīng)存儲節(jié)點編號的存儲節(jié)點;
[0038] 所述還原參數(shù)生成模塊具體用于,根據(jù)存儲參數(shù)、各數(shù)據(jù)塊的數(shù)據(jù)塊排序編號、數(shù) 據(jù)塊大小和數(shù)據(jù)塊寫入至存儲節(jié)點時在各存儲節(jié)點的排序編號生成所述還原參數(shù)信息,以 在讀取存儲的數(shù)據(jù)時根據(jù)還原參數(shù)信息進行數(shù)據(jù)還原。
[0039] 與現(xiàn)有技術(shù)相比,本發(fā)明提供的技術(shù)方案,包括:根據(jù)預(yù)先確定的無理數(shù)確定進行 數(shù)據(jù)存儲的存儲參數(shù);將切分為數(shù)據(jù)塊的存儲數(shù)據(jù)根據(jù)確定的存儲參數(shù)分別寫入到相應(yīng)的 存儲節(jié)點,并根據(jù)各數(shù)據(jù)塊的寫入生成還原參數(shù)信息,以在讀取存儲的數(shù)據(jù)時根據(jù)還原參 數(shù)信息進行數(shù)據(jù)還原。本發(fā)明通過預(yù)先確定的無理數(shù)及基于無理數(shù)確定的存儲參數(shù)進行數(shù) 據(jù)存儲,根據(jù)還原參數(shù)信息進行數(shù)據(jù)還原處理,相對于現(xiàn)有存儲方式的元數(shù)據(jù),進行數(shù)據(jù)讀 取和還原僅需保存無理數(shù)、存儲參數(shù)和還原參數(shù)信息既可,降低了存儲和還原數(shù)據(jù)的計算 量。
【附圖說明】
[0040] 附圖用來提供對本申請技術(shù)方案的進一步理解,并且構(gòu)成說明書的一部分,與本 申請的實施例一起用于解釋本申請的技術(shù)方案,并不構(gòu)成對本申請技術(shù)方案的限制。
[0041] 圖1為本發(fā)明實現(xiàn)數(shù)據(jù)存儲的方法的流程圖;
[0042] 圖2為本發(fā)明實現(xiàn)數(shù)據(jù)存儲的裝置的結(jié)構(gòu)框圖。
【具體實施方式】
[0043] 為使本申請的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文中將結(jié)合附圖對本申請 的實施例進行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中 的特征可以相互任意組合。
[0044] 圖1為本發(fā)明實現(xiàn)數(shù)據(jù)存儲的方法的流程圖,如圖1所示,包括:
[0045] 步驟100、根據(jù)預(yù)先確定的無理數(shù)確定進行數(shù)據(jù)存儲的存儲參數(shù);
[0046] 需要說明的是,這里的無理數(shù)可以是常規(guī)的無理數(shù),也可以是通過公式計算的無 理數(shù),只要是無理數(shù)既可。
[0047] 本步驟中,確定進行數(shù)據(jù)存儲的存儲參數(shù)具體包括:
[0048] 按照預(yù)設(shè)的位數(shù)間隔從設(shè)定的起始位開始逐個讀取第一預(yù)設(shè)位數(shù)的無理數(shù);
[0049] 將讀取的各第一預(yù)設(shè)位數(shù)的無理數(shù)對預(yù)先確定存儲存儲數(shù)據(jù)的存儲節(jié)點個數(shù)進 行取模,將取模的數(shù)值作為各數(shù)據(jù)塊相應(yīng)的寫入的存儲節(jié)點的存儲節(jié)點編號;
[0050] 預(yù)設(shè)的位數(shù)間隔為大于或等于0的整數(shù)。
[0051