本發(fā)明涉及分布式存儲系統(tǒng)技術(shù)領(lǐng)域,尤其涉及一種對分布式存儲系統(tǒng)中卷的處理方法和裝置。
背景技術(shù):
傳統(tǒng)的基于hdd(harddiskdrive,硬盤驅(qū)動器)的分布式存儲中,采用一致性hash哈希來存放數(shù)據(jù),數(shù)據(jù)卷的副本分散存放在各個分布式節(jié)點中。通過數(shù)據(jù)并發(fā)訪問來提升系統(tǒng)的io性能。然而,在nvme(non-volatilememoryexpress,非易失性存儲器)ssd磁盤高速發(fā)展的今天,單個節(jié)點的ssd硬盤即可提供非常高的io性能,反而跨節(jié)點訪問增加了數(shù)據(jù)訪問的延遲,不能完全發(fā)揮ssd的性能。
技術(shù)實現(xiàn)要素:
本發(fā)明的實施例提供了一種對分布式存儲系統(tǒng)中卷的處理方法和裝置,能夠加快客戶端讀取分布式存儲系統(tǒng)中卷的數(shù)據(jù)的讀取速度。
為了實現(xiàn)上述目的,本發(fā)明采取了如下技術(shù)方案。
一種對分布式存儲系統(tǒng)中卷的處理方法,包括:
步驟1,在分布式存儲系統(tǒng)中,為客戶端創(chuàng)建一個卷,所述卷的物理占用空間為所述卷的預(yù)定大小;
步驟2,在分布式存儲系統(tǒng)的節(jié)點中,為客戶端選擇一第一節(jié)點作為所述客戶端對應(yīng)的本地化節(jié)點;在分布式存儲系統(tǒng)的節(jié)點中,為客戶端選擇至少一個第二節(jié)點作為所述客戶端對應(yīng)的異地節(jié)點;
步驟3,在所述本地化節(jié)點中,為所述客戶端分配預(yù)定大小的第一地址,用于存儲所述卷的一完整副本數(shù)據(jù);
步驟4,在所述至少一個異地節(jié)點中,為所述卷分配所述預(yù)定大小的地址,用于分布存儲所述卷的預(yù)定數(shù)量的完整副本數(shù)據(jù);
步驟5,接收所述客戶端向所述卷發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求包括第一待寫入數(shù)據(jù);
步驟6,將所述第一待寫入數(shù)據(jù)的一完整副本數(shù)據(jù),寫入所述第一節(jié)點的中;
步驟7,將所述第一待寫入數(shù)據(jù)的預(yù)定數(shù)量的完整副本數(shù)據(jù),分布寫入所述異地節(jié)點中。
一種對分布式存儲系統(tǒng)中卷的處理方法,包括:
步驟1,在分布式存儲系統(tǒng)中,為客戶端創(chuàng)建一個卷,所述卷的虛擬占用空間為所述卷的預(yù)定大小,所述卷的初始物理占用空間為0;
步驟2,接收所述客戶端向所述卷發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求包括第一待寫入數(shù)據(jù);
步驟3,在分布式存儲系統(tǒng)的節(jié)點中,為所述客戶端選擇一第一節(jié)點作為所述客戶端對應(yīng)的本地化節(jié)點,用于存儲所述第一待寫入數(shù)據(jù)的一完整副本數(shù)據(jù);
步驟4,為所述客戶端選擇至少一個節(jié)點作為所述客戶端對應(yīng)的異地節(jié)點,用于分布存儲所述第一待寫入數(shù)據(jù)的預(yù)定數(shù)量的完整副本數(shù)據(jù);
步驟5,將所述第一待寫入數(shù)據(jù)的一完整副本數(shù)據(jù)存儲到所述本地化節(jié)點中;將所述第一待寫入數(shù)據(jù)的預(yù)定數(shù)量的完整副本數(shù)據(jù)分布存儲到所述本地化節(jié)點中。
一種對分布式存儲系統(tǒng)中卷的處理裝置,包括:
創(chuàng)建單元,在分布式存儲系統(tǒng)中,為客戶端創(chuàng)建一個卷,所述卷的物理占用空間為所述卷的預(yù)定大??;
選擇單元,在分布式存儲系統(tǒng)的節(jié)點中,為客戶端選擇一第一節(jié)點作為所述客戶端對應(yīng)的本地化節(jié)點;在分布式存儲系統(tǒng)的節(jié)點中,為客戶端選擇至少一個第二節(jié)點作為所述客戶端對應(yīng)的異地節(jié)點;
第一分配單元,在所述本地化節(jié)點中,為所述客戶端分配預(yù)定大小的第一地址,用于存儲所述卷的一完整副本數(shù)據(jù);
第二分配單元,在所述至少一個異地節(jié)點中,為所述卷分配所述預(yù)定大小的地址,用于分布存儲所述卷的預(yù)定數(shù)量的完整副本數(shù)據(jù);
接收單元,接收所述客戶端向所述卷發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求包括第一待寫入數(shù)據(jù);
第一寫入單元,將所述第一待寫入數(shù)據(jù)的一完整副本數(shù)據(jù),寫入所述第一節(jié)點的中;
第二寫入單元,將所述第一待寫入數(shù)據(jù)的預(yù)定數(shù)量的完整副本數(shù)據(jù),分布寫入所述異地節(jié)點中。
一種對分布式存儲系統(tǒng)中卷的操作裝置,包括:
創(chuàng)建單元,在分布式存儲系統(tǒng)中,為客戶端創(chuàng)建一個卷,所述卷的虛擬占用空間為所述卷的預(yù)定大小,所述卷的初始物理占用空間為0;
接收單元,接收所述客戶端向所述卷發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求包括第一待寫入數(shù)據(jù);
第一選擇單元,在分布式存儲系統(tǒng)的節(jié)點中,為所述客戶端選擇一第一節(jié)點作為所述客戶端對應(yīng)的本地化節(jié)點,用于存儲所述第一待寫入數(shù)據(jù)的一完整副本數(shù)據(jù);
第二選擇單元,為所述客戶端選擇至少一個節(jié)點作為所述客戶端對應(yīng)的異地節(jié)點,用于分布存儲所述第一待寫入數(shù)據(jù)的預(yù)定數(shù)量的完整副本數(shù)據(jù);
存儲單元,將所述第一待寫入數(shù)據(jù)的一完整副本數(shù)據(jù)存儲到所述本地化節(jié)點中;將所述第一待寫入數(shù)據(jù)的預(yù)定數(shù)量的完整副本數(shù)據(jù)分布存儲到所述本地化節(jié)點中。
由上述本發(fā)明的實施例提供的技術(shù)方案可以看出,本發(fā)明實施例中,為客戶端在分布式存儲系統(tǒng)中創(chuàng)建一個卷,所述卷的一個完整的副本數(shù)據(jù)設(shè)置在一個節(jié)點上,當(dāng)客戶端訪問分布式存儲系統(tǒng)的卷時,可以連接保存有卷的完整副本數(shù)據(jù)的本地化節(jié)點,從而加快客戶端對卷的訪問速度。
本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明一實施例提供的一種對分布式存儲系統(tǒng)中卷的處理方法的處理流程圖;
圖2為本發(fā)明另一實施例提供的一種對分布式存儲系統(tǒng)中卷的處理方法的處理流程圖;
圖3為本發(fā)明另一實施例提供的一種對分布式存儲系統(tǒng)中卷的處理裝置的結(jié)構(gòu)連接流程圖;
圖4為本發(fā)明另一實施例提供的一種對分布式存儲系統(tǒng)中卷的處理裝置的結(jié)構(gòu)連接流程圖。
具體實施方式
下面詳細描述本發(fā)明的實施方式,所述實施方式的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施方式是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
以下處理模式為預(yù)分配卷的大小模式,也就是說,卷的初始物理占用空間為卷的預(yù)定大小。
如圖1所示,為本發(fā)明所述的一種對分布式存儲系統(tǒng)中卷的操作方法,包括:
步驟11,在分布式存儲系統(tǒng)中,為客戶端創(chuàng)建一個卷,所述卷的物理占用空間為所述卷的預(yù)定大小;
步驟12,在分布式存儲系統(tǒng)的節(jié)點中,為客戶端選擇一第一節(jié)點作為所述客戶端對應(yīng)的本地化節(jié)點;
步驟12具體為:獲取所述客戶端當(dāng)前連接的所述分布式存儲系統(tǒng)的第一節(jié)點,作為本地化節(jié)點;該實施例中,可以根據(jù)客戶端當(dāng)前連接的節(jié)點作為本地化節(jié)點。
或者,步驟12具體為:在所述分布式存儲系統(tǒng)中節(jié)點中,為所述客戶端指定一第一節(jié)點,作為本地化節(jié)點。該實施例中,指定一個節(jié)點作為本地化節(jié)點,后續(xù)可以將本地端的節(jié)點地址發(fā)送給客戶端,使得客戶端直接連接本地化節(jié)點。該步驟具體為:根據(jù)所述分布式存儲系統(tǒng)的節(jié)點的當(dāng)前容載率、所述分布式存儲系統(tǒng)中的各個節(jié)點的性能,和/或已連接客戶端的數(shù)量,在所述分布式存儲系統(tǒng)中節(jié)點中,為所述客戶端指定一第一節(jié)點,作為本地化節(jié)點。根據(jù)上述策略指定本地化節(jié)點,能夠考慮到各方面的因素,更有利于系統(tǒng)的穩(wěn)定和系統(tǒng)之間的均衡。
步驟13,在分布式存儲系統(tǒng)的節(jié)點中,為客戶端選擇至少一個第二節(jié)點作為所述客戶端對應(yīng)的異地節(jié)點;
步驟13具體為:根據(jù)所述分布式存儲系統(tǒng)的節(jié)點的當(dāng)前容載率、所述分布式存儲系統(tǒng)中的各個節(jié)點的性能,為客戶端選擇至少一個第二節(jié)點,作為所述客戶端對應(yīng)的異地節(jié)點。根據(jù)上述策略指定異地節(jié)點,能夠考慮到各方面的因素,更有利于系統(tǒng)的穩(wěn)定和系統(tǒng)之間的均衡。
步驟14,在所述本地化節(jié)點中,為所述客戶端分配預(yù)定大小的第一地址,用于存儲所述卷的一完整副本數(shù)據(jù);
步驟15,在所述至少一個異地節(jié)點中,為所述卷分配所述預(yù)定大小的地址,用于分布存儲所述卷的預(yù)定數(shù)量的完整副本數(shù)據(jù);
步驟16,接收所述客戶端向所述卷發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求包括第一待寫入數(shù)據(jù);
步驟17,將所述第一待寫入數(shù)據(jù)的一完整副本數(shù)據(jù),寫入所述第一節(jié)點中;
步驟18,將所述第一待寫入數(shù)據(jù)的預(yù)定數(shù)量的完整副本數(shù)據(jù),分布寫入所述異地節(jié)點中。
本發(fā)明實施例中,為客戶端在分布式存儲系統(tǒng)中創(chuàng)建一個卷,所述卷的一個完整的副本數(shù)據(jù)設(shè)置在一個節(jié)點上,當(dāng)客戶端訪問分布式存儲系統(tǒng)的卷時,可以連接保存有卷的完整副本數(shù)據(jù)的本地化節(jié)點,從而加快客戶端對卷的訪問速度。
所述方法還包括:
步驟19,根據(jù)所述第一待寫入數(shù)據(jù)的所有副本數(shù)據(jù)在所述分布式存儲系統(tǒng)中的各個節(jié)點的分布,記錄所述卷的副本數(shù)據(jù)在所述分布式存儲系統(tǒng)中的各個節(jié)點的存儲地址信息。
所述方法還包括:
步驟110,當(dāng)收到所述客戶端發(fā)送的對所述第一待寫入數(shù)據(jù)的操作指令時,根據(jù)所述操作指令,對所述第一待寫入數(shù)據(jù)在所述異地節(jié)點的副本數(shù)據(jù)根據(jù)所述操作指令進行操作;
步驟111,當(dāng)所述第一待寫入數(shù)據(jù)的在所述異地節(jié)點的副本數(shù)據(jù)根據(jù)所述操作指令進行操作完成后,根據(jù)所述操作指令對所述第一待寫入數(shù)據(jù)在所述本地化節(jié)點的副本數(shù)據(jù)進行操作。
可選的,所述步驟11和步驟12之間,所述方法還包括:
在所述本地化節(jié)點中,創(chuàng)建卷控制器;所述卷控制器用于記錄所述本地化卷的副本數(shù)據(jù)在所述分布式存儲系統(tǒng)中的節(jié)點的存儲地址信息,并且用于控制讀取所述副本數(shù)據(jù)的數(shù)據(jù)一致性和控制所述副本數(shù)據(jù)的io順序;
相應(yīng)的,所述步驟19具體為:所述卷控制器根據(jù)所述第一待寫入數(shù)據(jù)的所有副本數(shù)據(jù)在所述分布式存儲系統(tǒng)中的各個節(jié)點的分布,記錄所述卷的副本數(shù)據(jù)在所述分布式存儲系統(tǒng)中的各個節(jié)點的存儲地址信息。
以下描述第二種模式。該模式中,為客戶端創(chuàng)建一個卷,所述卷的虛擬占用空間為所述卷的預(yù)定大小,所述卷的初始物理占用空間為0,后續(xù)處理中,隨著卷中不斷存入數(shù)據(jù),卷的物理占用空間不斷增加。
如圖2所示,為本發(fā)明所述的一種對分布式存儲系統(tǒng)中卷的操作方法,包括:
步驟21,在分布式存儲系統(tǒng)中,為客戶端創(chuàng)建一個卷,所述卷的虛擬占用空間為所述卷的預(yù)定大小,所述卷的初始物理占用空間為0;
步驟22,接收所述客戶端向所述卷發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求包括第一待寫入數(shù)據(jù);
步驟23,在分布式存儲系統(tǒng)的節(jié)點中,為所述客戶端選擇一第一節(jié)點作為所述客戶端對應(yīng)的本地化節(jié)點,用于存儲所述第一待寫入數(shù)據(jù)的一完整副本數(shù)據(jù);
其中,步驟23具體為:獲取所述客戶端當(dāng)前連接的所述分布式存儲系統(tǒng)的第一節(jié)點,作為本地化節(jié)點;該實施例中,根據(jù)客戶端當(dāng)前連接的節(jié)點作為本地化節(jié)點。
或者,步驟23具體為:在所述分布式存儲系統(tǒng)中節(jié)點中,為所述客戶端指定一第一節(jié)點,作為本地化節(jié)點。該實施例中,指定一個節(jié)點作為本地化節(jié)點,后續(xù)可以將本地端的節(jié)點地址發(fā)送給客戶端,使得客戶端直接連接本地化節(jié)點。該步驟具體為:根據(jù)所述分布式存儲系統(tǒng)的節(jié)點的當(dāng)前容載率、所述分布式存儲系統(tǒng)中的各個節(jié)點的性能,和/或已連接客戶端的數(shù)量,在所述分布式存儲系統(tǒng)中節(jié)點中,為所述客戶端指定一第一節(jié)點,作為本地化節(jié)點。根據(jù)上述策略指定本地化節(jié)點,能夠考慮到各方面的因素,更有利于系統(tǒng)的穩(wěn)定和系統(tǒng)之間的均衡。
步驟24,為所述客戶端選擇至少一個節(jié)點作為所述客戶端對應(yīng)的異地節(jié)點,用于分布存儲所述第一待寫入數(shù)據(jù)的預(yù)定數(shù)量的完整副本數(shù)據(jù);
步驟24具體為,根據(jù)所述分布式存儲系統(tǒng)的節(jié)點的當(dāng)前容載率、所述分布式存儲系統(tǒng)中的各個節(jié)點的性能,為客戶端選擇至少一個第二節(jié)點,作為所述客戶端對應(yīng)的異地節(jié)點。根據(jù)上述策略指定異地節(jié)點,能夠考慮到各方面的因素,更有利于系統(tǒng)的穩(wěn)定和系統(tǒng)之間的均衡。
步驟25,將所述第一待寫入數(shù)據(jù)的一完整副本數(shù)據(jù)存儲到所述本地化節(jié)點中;將所述第一待寫入數(shù)據(jù)的預(yù)定數(shù)量的完整副本數(shù)據(jù)分布存儲到所述本地化節(jié)點中。
本發(fā)明實施例中,為客戶端在分布式存儲系統(tǒng)中創(chuàng)建一個卷,所述卷的一個完整的副本數(shù)據(jù)設(shè)置在一個節(jié)點上,當(dāng)客戶端訪問分布式存儲系統(tǒng)的卷時,可以連接保存有卷的完整副本數(shù)據(jù)的本地化節(jié)點,從而加快客戶端對卷的訪問速度。
可選的,所述方法還包括:
步驟26,根據(jù)所述第一待寫入數(shù)據(jù)的所有副本數(shù)據(jù)在所述分布式存儲系統(tǒng)中的各個節(jié)點的分布,記錄所述卷的副本數(shù)據(jù)在所述分布式存儲系統(tǒng)中的各個節(jié)點的存儲地址信息。
所述方法還包括:
步驟27,當(dāng)收到所述客戶端發(fā)送的對所述第一待寫入數(shù)據(jù)的副本數(shù)據(jù)操作指令時,根據(jù)所述操作指令,對所述第一待寫入數(shù)據(jù)在所述異地節(jié)點的副本數(shù)據(jù)進行操作;
步驟28,根據(jù)所述操作指令對所述第一待寫入數(shù)據(jù)在所述異地節(jié)點的副本數(shù)據(jù)進行操作后,根據(jù)所述操作指令對所述第一待寫入數(shù)據(jù)在所述本地化節(jié)點的副本數(shù)據(jù)進行操作。
可選的,所述步驟21和步驟22之間,所述方法還包括:
在所述本地化節(jié)點中,創(chuàng)建卷控制器,所述卷控制器用于記錄所述本地化卷的副本數(shù)據(jù)在所述分布式存儲系統(tǒng)中的節(jié)點的存儲地址信息,并且用于控制讀取所述副本數(shù)據(jù)的數(shù)據(jù)一致性和控制所述副本數(shù)據(jù)的io順序;
相應(yīng)的,所述步驟26具體為:卷控制器根據(jù)所述第一待寫入數(shù)據(jù)的所有副本數(shù)據(jù)在所述分布式存儲系統(tǒng)中的各個節(jié)點的分布,記錄所述卷的副本數(shù)據(jù)在所述分布式存儲系統(tǒng)中的各個節(jié)點的存儲地址信息。
如圖3所示,為本發(fā)明所述的一種對分布式存儲系統(tǒng)中卷的處理裝置,包括:
創(chuàng)建單元31,在分布式存儲系統(tǒng)中,為客戶端創(chuàng)建一個卷,所述卷的物理占用空間為所述卷的預(yù)定大??;
選擇單元32,在分布式存儲系統(tǒng)的節(jié)點中,為客戶端選擇一第一節(jié)點作為所述客戶端對應(yīng)的本地化節(jié)點;在分布式存儲系統(tǒng)的節(jié)點中,為客戶端選擇至少一個第二節(jié)點作為所述客戶端對應(yīng)的異地節(jié)點;
第一分配單元33,在所述本地化節(jié)點中,為所述客戶端分配預(yù)定大小的第一地址,用于存儲所述卷的一完整副本數(shù)據(jù);
第二分配單元34,在所述至少一個異地節(jié)點中,為所述卷分配所述預(yù)定大小的地址,用于分布存儲所述卷的預(yù)定數(shù)量的完整副本數(shù)據(jù);
接收單元35,接收所述客戶端向所述卷發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求包括第一待寫入數(shù)據(jù);
第一寫入單元36,將所述第一待寫入數(shù)據(jù)的一完整副本數(shù)據(jù),寫入所述第一節(jié)點的中;
第二寫入單元37,將所述第一待寫入數(shù)據(jù)的預(yù)定數(shù)量的完整副本數(shù)據(jù),分布寫入所述異地節(jié)點中。
如圖4所示,為本發(fā)明所述的一種對分布式存儲系統(tǒng)中卷的操作裝置,包括:
創(chuàng)建單元41,在分布式存儲系統(tǒng)中,為客戶端創(chuàng)建一個卷,所述卷的虛擬占用空間為所述卷的預(yù)定大小,所述卷的初始物理占用空間為0;
接收單元42,接收所述客戶端向所述卷發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求包括第一待寫入數(shù)據(jù);
第一選擇單元43,在分布式存儲系統(tǒng)的節(jié)點中,為所述客戶端選擇一第一節(jié)點作為所述客戶端對應(yīng)的本地化節(jié)點,用于存儲所述第一待寫入數(shù)據(jù)的一完整副本數(shù)據(jù);
第二選擇單元44,為所述客戶端選擇至少一個節(jié)點作為所述客戶端對應(yīng)的異地節(jié)點,用于分布存儲所述第一待寫入數(shù)據(jù)的預(yù)定數(shù)量的完整副本數(shù)據(jù);
存儲單元45,將所述第一待寫入數(shù)據(jù)的一完整副本數(shù)據(jù)存儲到所述本地化節(jié)點中;將所述第一待寫入數(shù)據(jù)的預(yù)定數(shù)量的完整副本數(shù)據(jù)分布存儲到所述本地化節(jié)點中。
以上所述,僅為本發(fā)明較佳的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求的保護范圍為準(zhǔn)。