專利名稱:一種云存儲系統(tǒng)中提升并發(fā)訪問性能的數(shù)據(jù)快速存儲方法
技術領域:
本發(fā)明涉及一種云計算平臺的計算機軟件技術領域,特別是一種云存儲系統(tǒng)中提升并發(fā)訪問性能的數(shù)據(jù)快速存儲方法。
背景技術:
現(xiàn)代計算機在社會生活中扮演著非常重要的角色,隨著信息技術的發(fā)展,越來越大的集群應用系統(tǒng)投入到使用中,不同用戶間需要實現(xiàn)統(tǒng)一存儲、資源共享,這對數(shù)據(jù)存儲系統(tǒng)提出了新的要求,不同用戶可能在同一時間對同一個數(shù)據(jù)進行訪問,探求一種對數(shù)據(jù)讀寫并發(fā)性以及網(wǎng)絡流量的分擔協(xié)調(diào)的機制,對現(xiàn)代大型集群滿足多用戶、高并發(fā)的訪問需求具有重要的現(xiàn)實意義。
·
現(xiàn)有技術的云平臺存儲都是串行存儲方法,無法應對多客戶的密集海量存儲讀寫需求。
發(fā)明內(nèi)容
發(fā)明目的本發(fā)明所要解決的技術問題是針對現(xiàn)有技術的不足,提供一種云存儲系統(tǒng)中提升并發(fā)訪問性能的數(shù)據(jù)快速存儲方法。為了解決上述技術問題,本發(fā)明公開了一種云存儲系統(tǒng)中提升并發(fā)訪問性能的數(shù)據(jù)快速存儲方法,包括元數(shù)據(jù)服務器、數(shù)據(jù)存儲服務器以及客戶端,所述元數(shù)據(jù)服務器與客戶端之間只進行控制信號的傳輸,不進行存儲數(shù)據(jù)流的傳輸;
客戶端與存儲服務器之間進行存儲數(shù)據(jù)流傳輸;
將大于閾值的數(shù)據(jù)文件均勻分割為各個數(shù)據(jù)塊,分布式存儲在每個數(shù)據(jù)存儲服務器
上;
單個數(shù)據(jù)文件讀寫并發(fā)進行。本發(fā)明所述方法中,客戶端寫數(shù)據(jù)時,數(shù)據(jù)被分成各個數(shù)據(jù)塊,寫每個寫數(shù)據(jù)塊根據(jù)以下步驟進行操作,并行的向數(shù)據(jù)存儲服務器寫數(shù)據(jù)塊
(1)客戶端向元數(shù)據(jù)服務器發(fā)起數(shù)據(jù)寫請求;
(2)元數(shù)據(jù)服務器根據(jù)其管理的數(shù)據(jù)存儲服務器的工作和使用情況,根據(jù)負載均衡的方法計算目的數(shù)據(jù)存儲服務器,在目的數(shù)據(jù)存儲服務器上創(chuàng)建新的數(shù)據(jù)塊;
(3)目的數(shù)據(jù)存儲服務器的數(shù)據(jù)塊創(chuàng)建成功,將結果返回給元數(shù)據(jù)服務器;
(4)元數(shù)據(jù)服務器備份并同步此數(shù)據(jù)信息,并將目的存儲服務器信息返回給客戶端;
(5)客戶端根據(jù)得到的目的存儲服務器信息,向?qū)康拇鎯?jié)點發(fā)出數(shù)據(jù)寫請求,并向目的存儲服務器發(fā)送數(shù)據(jù);
(6)目的存儲節(jié)點接收數(shù)據(jù)并存儲到對應數(shù)據(jù)塊,同時也向其他存儲服務器備份;
(7)當本地數(shù)據(jù)寫入以及備份完成后,目的存儲節(jié)點將完成信息返回給客戶端;
(8)客戶端收到完成信息后,即完成數(shù)據(jù)的寫入。本發(fā)明所述方法中,客戶端讀數(shù)據(jù)時,讀請求被分成多個讀數(shù)據(jù)塊,每個讀數(shù)據(jù)塊根據(jù)以下步驟進行操作,并行的從數(shù)據(jù)存儲服務器讀數(shù)據(jù)塊
(1)客戶端根據(jù)讀數(shù)據(jù)文件時的請求偏移量除以數(shù)據(jù)塊的大小得到數(shù)據(jù)塊索引,并向元數(shù)據(jù)服務器發(fā)起數(shù)據(jù)讀請求;
(2)元數(shù)據(jù)服務器返回該數(shù)據(jù)塊所在的數(shù)據(jù)存儲服務器的列表,數(shù)據(jù)存儲服務器列表包括每個數(shù)據(jù)存儲服務器的地址和序號;
(3)客戶端向讀寫請求數(shù)最少的數(shù)據(jù)存儲服務器發(fā)送讀數(shù)據(jù)塊請求;
(4)數(shù)據(jù)存儲服務器從本地文件系統(tǒng)讀出數(shù)據(jù)塊,并返回數(shù)據(jù)塊給客戶端。 本發(fā)明所述方法中,負載均衡算法為遍歷所有數(shù)據(jù)存儲服務器列表,數(shù)據(jù)存儲服務器列表包括每個數(shù)據(jù)存儲服務器的地址,分別以每個數(shù)據(jù)存儲服務器的空間除以最大數(shù)據(jù)存儲服務器的空間作為每個數(shù)據(jù)存儲服務器的動態(tài)加權因子,加權因子取值范圍
O.(Ti. 0,加權因子與數(shù)據(jù)存儲服務器的當前權值之和構成新的權值,對所有數(shù)據(jù)存儲服務器權重進行排序,把負載最小的數(shù)據(jù)存儲服務器排列在列表前面,然后返回可用數(shù)據(jù)存儲服務器的地址,其權值減I。有益效果本方法從提高作為大量用戶數(shù)據(jù)存儲支撐的云存儲系統(tǒng)的高速并發(fā)訪問性能方面出發(fā),提出一種能滿足多用戶、高并發(fā)訪問的需求的方法,給現(xiàn)實應用調(diào)用提供方便、高性能的存儲支撐。
下面結合附圖和具體實施方式
對本發(fā)明做更進一步的具體說明,本發(fā)明的上述和其他方面的優(yōu)點將會變得更加清楚。圖I是云存儲系統(tǒng)客戶端向系統(tǒng)中快速寫數(shù)據(jù)的流程圖。圖2為云存儲系統(tǒng)客戶端快速讀存儲數(shù)據(jù)流程圖。圖3為本發(fā)明一個具體實施例示意圖。
具體實施例方式本發(fā)明采用了控制信號流與存儲數(shù)據(jù)流分離的技術,本發(fā)明有一種特有的讀寫機制客戶端在訪問云存儲系統(tǒng)時,首先訪問元數(shù)據(jù)服務器節(jié)點,獲取將要與之進行交互的存儲服務器信息,然后直接訪問這些存儲服務器完成數(shù)據(jù)存取。云存儲系統(tǒng)的這種設計方法實現(xiàn)了控制信號流和存儲數(shù)據(jù)流的分離??蛻舳伺c元數(shù)據(jù)服務器之間只有控制信號流,而無存儲數(shù)據(jù)流,這樣就極大地降低了元數(shù)據(jù)服務器的負載,使之不成為系統(tǒng)性能的一個瓶頸??蛻舳伺c存儲服務器之間直接傳輸存儲數(shù)據(jù)流,同時由于數(shù)據(jù)文件被分成多個數(shù)據(jù)塊進行分布式存儲,客戶端可以同時訪問多個存儲服務器,從而使得整個系統(tǒng)的I/O高度并行,系統(tǒng)整體性能得到提高。通常情況下,系統(tǒng)的整體吞吐率與存儲服務器的數(shù)量呈正比。下面詳細的介紹一下本發(fā)明云存儲系統(tǒng)的實際讀寫過程。云存儲系統(tǒng)客戶端向系統(tǒng)中寫數(shù)據(jù)的流程如圖I所示,包括以下步驟
1)云存儲系統(tǒng)客戶端把數(shù)據(jù)寫請求分成多個塊;
2)云存儲系統(tǒng)客戶端向元數(shù)據(jù)服務器發(fā)起數(shù)據(jù)寫請求;
3)元數(shù)據(jù)服務器根據(jù)其管理的數(shù)據(jù)存儲服務器的工作和使用情況,根據(jù)負載均衡的方法計算目的數(shù)據(jù)存儲服務器,在目的數(shù)據(jù)存儲服務器上創(chuàng)建一些新的數(shù)據(jù)塊;目的數(shù)據(jù)存儲服務器創(chuàng)建成功,將結果返回給元數(shù)據(jù)服務器;
4)元數(shù)據(jù)服務器備份并同步此數(shù)據(jù)信息到備份元數(shù)據(jù)服務器;
5)元數(shù)據(jù)服務器將目的存儲服務器信息返回給客戶端;
6)客戶端根據(jù)得到的目的存儲服務器信息,向?qū)康拇鎯?jié)點發(fā)出數(shù)據(jù)寫請求,并向目的存儲服務器發(fā)送數(shù)據(jù);
7)目的存儲節(jié)點接收數(shù)據(jù)并存儲到對應數(shù)據(jù)塊,同時也向其他存儲服務器備份;
8)當本地數(shù)據(jù)寫入以及備份完成后,目的存儲節(jié)點將完成信息返回給客戶端,即完成數(shù)據(jù)的寫入;
云存儲系統(tǒng)客戶端讀存儲數(shù)據(jù)流程圖2所示,包括以下步驟
1)云存儲系統(tǒng)客戶端把讀數(shù)據(jù)請求分成多個塊數(shù)據(jù)讀請求;
2)云存儲系統(tǒng)客戶端計算塊索引,并向元數(shù)據(jù)服務器發(fā)起數(shù)據(jù)讀請求;
3)元數(shù)據(jù)服務器返回該數(shù)據(jù)庫塊所在的數(shù)據(jù)存儲服務器的列表;
4)客戶端向讀寫請求數(shù)最少的數(shù)據(jù)存儲服務器發(fā)送讀數(shù)據(jù)塊請求;
5)數(shù)據(jù)存儲服務器從本地文件系統(tǒng)讀出數(shù)據(jù)塊,并返回數(shù)據(jù)塊給客戶端;
總的來說,云存儲系統(tǒng)的控制信號流和存儲數(shù)據(jù)流是分離的,一方面降低了元數(shù)據(jù)服務的負擔,使得其處理能力更強,另一方面將數(shù)據(jù)讀寫的負擔分擔到各存儲節(jié)點,使得系統(tǒng)的整體性能得到了提高,與節(jié)點數(shù)目成正相關。本發(fā)明采用負載自動均衡技術,云存儲系統(tǒng)采用中心服務器模式來管理整個云存儲文件系統(tǒng),所有元數(shù)據(jù)均保存在元數(shù)據(jù)服務器上,文件則劃分為多個數(shù)據(jù)塊存儲在不同的存儲服務器上。元數(shù)據(jù)服務器維護了一個統(tǒng)一的命名空間,同時掌握整個系統(tǒng)內(nèi)存儲服務器的使用情況,當客戶端向元數(shù)據(jù)服務器發(fā)送數(shù)據(jù)讀寫的請求時,元數(shù)據(jù)服務器根據(jù)存儲服務器的磁盤使用、網(wǎng)絡負擔等情況,選擇負擔最輕的存儲服務器對外提供服務,自動進行均衡負載。在云存儲系統(tǒng)中,客戶端主要進行的是文件的寫、讀等操作。寫時,元數(shù)據(jù)服務器根據(jù)負載均衡算法選擇存儲服務器集群中當前性能最優(yōu)的存儲服務器節(jié)點,如果僅限于此,當遇到高并發(fā)讀同一文件時,則存儲該份文件的存儲服務器必然會超載甚至崩潰,解決方案是元數(shù)據(jù)服務控制數(shù)據(jù)存儲服務器復制多個副本,元數(shù)據(jù)服務維護副本列表,客戶端根據(jù)與數(shù)據(jù)存儲服務器交互次數(shù)統(tǒng)計,向最少訪問次數(shù)的數(shù)據(jù)存儲服務器讀取數(shù)據(jù)塊。另外,當有某一個存儲服務器因為機器故障或者其他原因造成離線時,元數(shù)據(jù)服務器會將此機器自動屏蔽掉,不再將此存儲服務器提供給客戶端使用,同時存儲在此存儲服務器上的數(shù)據(jù)也會自動的備份到其他可用的存儲服務器上,自動屏蔽存儲服務器故障對系統(tǒng)的影響。包括以下步驟
1)元數(shù)據(jù)服務器周期性的與數(shù)據(jù)存儲服務器發(fā)送消息,感知對方是否離線;
2)元數(shù)據(jù)服務器根據(jù)感知情況檢測數(shù)據(jù)存儲服務器是否長期離線;
3)元數(shù)據(jù)服務器把所有保存在該數(shù)據(jù)存儲服務器的副本置為無效;
4)元數(shù)據(jù)服務器向負載較輕的數(shù)據(jù)存儲服務器發(fā)送復制數(shù)據(jù)塊消息;
5)數(shù)據(jù)存儲服務器從其它可用的副本數(shù)據(jù)存儲服務器復制一個新副本;實施例具體實施如圖3所示,云存儲由主備元數(shù)據(jù)服務器和多臺數(shù)據(jù)存儲服務器以及若干訪問客戶端組成,客戶端讀寫過程如下實施??蛻舳藢憯?shù)據(jù)時對數(shù)據(jù)進行分塊,塊可以分成不同的大小,下面取塊大小64M進行說明。寫數(shù)據(jù)時請求包括offset (相對文件起始位置的偏移量)、size (當前寫數(shù)據(jù)的大小)和data (當前請求的實際數(shù)據(jù))等字段,客戶端計算塊索引、block編號以及block內(nèi)部偏移量,計算過程如下
1)根據(jù)chnum= 0fTSet>>26得到總共需讀的塊數(shù)目,根據(jù)該數(shù)目啟動后續(xù)多個寫數(shù)據(jù)塊線程并行讀取請求數(shù)據(jù)塊;
2)根據(jù)indx= (0ffSet>>26),計算塊索引位置,發(fā)送消息給元數(shù)據(jù)服務器,元數(shù)據(jù)服務器根據(jù)索引創(chuàng)建一個新的插槽,并記錄新塊的元數(shù)據(jù)信息;3)根據(jù)chunkoffset= (offset&0x3FFFFFF)計算出該數(shù)據(jù)塊所在數(shù)據(jù)存儲服務器塊的偏移量;
客戶端讀數(shù)據(jù)時對讀數(shù)據(jù)進行分塊,塊可以分成不同的大小,下面取塊大小64M進行說明。讀數(shù)據(jù)時請求包括offset (相對文件起始位置的偏移量)、size (當前讀數(shù)據(jù)的大小)和buff (當前讀請求的實際返回的數(shù)據(jù))等字段,處理過程如下
1)根據(jù)siZe>>26得到總共需讀的塊數(shù)目,根據(jù)該數(shù)目啟動后續(xù)多個讀數(shù)據(jù)塊線程并行讀取請求數(shù)據(jù)塊;
2)根據(jù)indx= (0ffSet>>26),計算塊索引位置,發(fā)送消息給元數(shù)據(jù)服務器,元數(shù)據(jù)服務器根據(jù)索引位置,返回該數(shù)據(jù)塊所在的數(shù)據(jù)存儲服務器列表;
3)根據(jù)chunkoffset= (offset&0x3FFFFFF)計算出該數(shù)據(jù)塊所在數(shù)據(jù)存儲服務器塊的偏移量。本發(fā)明提供了一種云存儲系統(tǒng)的數(shù)據(jù)存儲方法,具體實現(xiàn)該技術方案的方法和途徑很多,以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。本實施例中未明確的各組成部分均可用現(xiàn)有技術加以實現(xiàn)。
權利要求
1.一種云存儲系統(tǒng)中提升并發(fā)訪問性能的數(shù)據(jù)快速存儲方法,包括元數(shù)據(jù)服務器、數(shù)據(jù)存儲服務器以及客戶端,其特征在于,所述元數(shù)據(jù)服務器與客戶端之間只進行控制信號的傳輸,不進行存儲數(shù)據(jù)流的傳輸; 客戶端與存儲服務器之間進行存儲數(shù)據(jù)流傳輸; 將大于閾值的數(shù)據(jù)文件均勻分割為各個數(shù)據(jù)塊,分布式存儲在每個數(shù)據(jù)存儲服務器上; 單個數(shù)據(jù)文件讀寫并發(fā)進行。
2.根據(jù)權利要求I所述的一種云存儲系統(tǒng)中提升并發(fā)訪問性能的數(shù)據(jù)快速存儲方法,其特征在于,客戶端寫數(shù)據(jù)時,數(shù)據(jù)被分成各個數(shù)據(jù)塊,寫每個寫數(shù)據(jù)塊根據(jù)以下步驟進行操作,并行的向數(shù)據(jù)存儲服務器寫數(shù)據(jù)塊 (O客戶端向元數(shù)據(jù)服務器發(fā)起數(shù)據(jù)寫請求; (2)元數(shù)據(jù)服務器根據(jù)其管理的數(shù)據(jù)存儲服務器的工作和使用情況,根據(jù)負載均衡的方法計算目的數(shù)據(jù)存儲服務器,在目的數(shù)據(jù)存儲服務器上創(chuàng)建新的數(shù)據(jù)塊; (3)目的數(shù)據(jù)存儲服務器的數(shù)據(jù)塊創(chuàng)建成功,將結果返回給元數(shù)據(jù)服務器; (4)元數(shù)據(jù)服務器備份并同步此數(shù)據(jù)信息,并將目的存儲服務器信息返回給客戶端; (5)客戶端根據(jù)得到的目的存儲服務器信息,向?qū)康拇鎯?jié)點發(fā)出數(shù)據(jù)寫請求,并向目的存儲服務器發(fā)送數(shù)據(jù); (6)目的存儲節(jié)點接收數(shù)據(jù)并存儲到對應數(shù)據(jù)塊,同時也向其他存儲服務器備份; (7)當本地數(shù)據(jù)寫入以及備份完成后,目的存儲節(jié)點將完成信息返回給客戶端; (8)客戶端收到完成信息后,即完成數(shù)據(jù)的寫入。
3.根據(jù)權利要求I所述的一種云存儲系統(tǒng)中提升并發(fā)訪問性能的數(shù)據(jù)快速存儲方法,其特征在于,客戶端讀數(shù)據(jù)時,讀請求被分成多個讀數(shù)據(jù)塊,每個讀數(shù)據(jù)塊根據(jù)以下步驟進行操作,并行的從數(shù)據(jù)存儲服務器讀數(shù)據(jù)塊 (1)客戶端根據(jù)讀數(shù)據(jù)文件時的請求偏移量除以數(shù)據(jù)塊的大小得到數(shù)據(jù)塊索引,并向元數(shù)據(jù)服務器發(fā)起數(shù)據(jù)讀請求; (2)元數(shù)據(jù)服務器返回該數(shù)據(jù)塊所在的數(shù)據(jù)存儲服務器的列表,數(shù)據(jù)存儲服務器列表包括每個數(shù)據(jù)存儲服務器的地址和序號; (3)客戶端向讀寫請求數(shù)最少的數(shù)據(jù)存儲服務器發(fā)送讀數(shù)據(jù)塊請求; (4)數(shù)據(jù)存儲服務器從本地文件系統(tǒng)讀出數(shù)據(jù)塊,并返回數(shù)據(jù)塊給客戶端。
4.根據(jù)權利要求2或3所述的一種云存儲系統(tǒng)中提升并發(fā)訪問性能的數(shù)據(jù)快速存儲方法,其特征在于, 負載均衡算法為遍歷所有數(shù)據(jù)存儲服務器列表,數(shù)據(jù)存儲服務器列表包括每個數(shù)據(jù)存儲服務器的地址,分別以每個數(shù)據(jù)存儲服務器的空間除以最大數(shù)據(jù)存儲服務器的空間作為每個數(shù)據(jù)存儲服務器的動態(tài)加權因子,加權因子取值范圍O. (Tl. O,加權因子與數(shù)據(jù)存儲服務器的當前權值之和構成新的權值,對所有數(shù)據(jù)存儲服務器權重進行排序,把負載最小的數(shù)據(jù)存儲服務器排列在列表前面,然后返回可用數(shù)據(jù)存儲服務器的地址,其權值減I。
全文摘要
本發(fā)明公開了一種云存儲系統(tǒng)中提升并發(fā)訪問性能的數(shù)據(jù)快速存儲方法,包括元數(shù)據(jù)服務器、數(shù)據(jù)存儲服務器以及客戶端,所述元數(shù)據(jù)服務器與客戶端之間只進行控制信號的傳輸,不進行存儲數(shù)據(jù)流的傳輸;客戶端與存儲服務器之間進行存儲數(shù)據(jù)流傳輸;將大于閾值的數(shù)據(jù)文件均勻分割為各個數(shù)據(jù)塊,分布式存儲在每個數(shù)據(jù)存儲服務器上;單個數(shù)據(jù)文件的讀寫并發(fā)進行。
文檔編號H04L29/08GK102882983SQ20121040364
公開日2013年1月16日 申請日期2012年10月22日 優(yōu)先權日2012年10月22日
發(fā)明者張真, 劉志明, 趙慶福, 蔣文佼, 袁高峰 申請人:南京云創(chuàng)存儲科技有限公司