本發(fā)明涉及分布式塊存儲系統(tǒng)領域,尤其涉及一種分布式塊存儲系統(tǒng)中io數據的讀寫方法、裝置以及系統(tǒng)。
背景技術:
現有技術中,在分布式塊存儲系統(tǒng)中,通常的結構為一個卷對應一個卷控制器,這樣的結構使得卷控制器的管理比較復雜。
技術實現要素:
本發(fā)明的實施例提供了一種分布式塊存儲系統(tǒng)中io數據的讀寫方法、裝置以及系統(tǒng),能夠簡化對卷控制器的管理。
為了實現上述目的,本發(fā)明采取了如下技術方案。
一種分布式塊存儲系統(tǒng)中io數據的讀寫方法,包括:
客戶端與分布式塊存儲系統(tǒng)連接時,所述分布式塊存儲系統(tǒng)的集群管理器間的主節(jié)點從所述客戶端接收io數據讀寫消息,所述io數據讀寫消息包括待訪問卷編號;
所述集群管理器間的主節(jié)點根據所述卷編號與卷組編號之間的對應關系,獲取所述待訪問卷編號所對應的卷組編號;
所述集群管理器間的主節(jié)點查找所述卷組編號對應的卷組控制器間的主節(jié)點的訪問地址;
所述集群管理器間的主節(jié)點將所述卷組控制器間的主節(jié)點的訪問地址發(fā)送給客戶端,使得所述客戶端根據所述卷組控制器間的主節(jié)點的訪問地址,與所述卷組控制器間的主節(jié)點連接,以進行io數據的讀取。
一種分布式塊存儲系統(tǒng)中io數據的讀寫裝置,包括:
客戶端與分布式塊存儲系統(tǒng)連接時,從所述客戶端接收io數據讀寫消息,所述io數據讀寫消息包括待訪問卷編號;
根據所述卷編號與卷組編號之間的對應關系,獲取所述待訪問卷編號所對應的卷組編號;
查找所述卷組編號對應的卷組控制器間的主節(jié)點的訪問地址;
將所述卷組控制器間的主節(jié)點的訪問地址發(fā)送給客戶端,使得所述客戶端根據所述卷組控制器間的主節(jié)點的訪問地址,與所述卷組控制器間的主節(jié)點連接,以進行io數據的讀取。
一種分布式塊存儲系統(tǒng)中io數據的讀寫系統(tǒng),包括:
客戶端、一組集群管理器、至少一組卷組控制器;
所述一組集群管理器包括:至少一個集群管理器,其中一個集群管理器作為集群管理器間的主節(jié)點;
所述一組卷組控制器包括:至少一個卷組控制器,其中一個卷組控制器作為卷組控制器間的主節(jié)點;
所述分布式塊存儲系統(tǒng)的集群管理器間的主節(jié)點用于,客戶端與分布式塊存儲系統(tǒng)連接時,從所述客戶端接收io數據讀寫消息,所述io數據讀寫消息包括待訪問卷編號;根據所述卷編號與卷組編號之間的對應關系,獲取所述待訪問卷編號所對應的卷組編號;查找所述卷組編號對應的卷組控制器間的主節(jié)點的訪問地址;將所述卷組控制器間的主節(jié)點的訪問地址發(fā)送給客戶端,使得所述客戶端根據所述卷組控制器間的主節(jié)點的訪問地址,與所述卷組控制器間的主節(jié)點連接,以進行io數據的讀取。
由上述本發(fā)明的實施例提供的技術方案可以看出,本發(fā)明實施例中,每個卷屬于一個卷組,一組卷組由一個卷組控制器管理數據,簡化了系統(tǒng)中對卷組控制器的管理。
本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種分布式塊存儲系統(tǒng)中io數據的讀寫方法的處理流程圖;
圖2為本發(fā)明實施例中分布式塊存儲系統(tǒng)中io數據的讀寫裝置的連接示意圖;
圖3為本發(fā)明實施例中分布式塊存儲系統(tǒng)中io數據的讀寫系統(tǒng)的連接示意圖。
具體實施方式
下面詳細描述本發(fā)明的實施方式,所述實施方式的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施方式是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
如圖1所示,為本發(fā)明所述的一種分布式塊存儲系統(tǒng)中io數據的讀寫方法,包括:
步驟10,在所述分布式塊存儲系統(tǒng)內的物理節(jié)點上創(chuàng)建一組集群管理器、至少一組卷組控制器、至少一個卷組;
其中,所述一組集群管理器包括:至少一個集群管理器,其中一個集群管理器作為集群管理器間的主節(jié)點;所述集群管理器用于:保存分布式塊存儲系統(tǒng)中卷組的總數量、卷組編號與卷組控制器間的主節(jié)點的訪問地址之間的對應關系,分布式塊存儲系統(tǒng)的全局信息;用目錄結構表達scsi協(xié)議的層次結構、nfs協(xié)議的目錄;
所述一組卷組控制器包括:至少一個卷組控制器,其中一個卷組控制器作為卷組控制器間的主節(jié)點;所述卷組控制器用于:保存對應的卷組的各個卷所在的全部節(jié)點的地址信息、對應的卷組內的所有卷的各個chunk塊的地址信息;可選的,所述卷組控制器具體為:使用paxos協(xié)議保存對應的卷組的各個卷所在的全部節(jié)點的地址信息、對應的卷組內的所有卷的各個chunk塊的地址信息。
所述一個卷組包括:至少一個卷;所述卷的編號與所述卷組的編號為多對一的關系。
上述步驟為分布式塊存儲系統(tǒng)中創(chuàng)建集群管理器、卷組控制器、卷組的過程。本發(fā)明中,一個卷組包括多個卷,一個卷組控制器管理一個卷組,也就是管理多個卷。卷組控制器保存有本卷組內所有卷的元數據信息(卷的容量、chunk的分布等)。集群管理器負責對卷組控制器的管理,也就是說,集群管理器負責查找待訪問卷的所在卷組以及相應的卷組控制器。
步驟11,客戶端與分布式塊存儲系統(tǒng)連接時,所述分布式塊存儲系統(tǒng)的集群管理器間的主節(jié)點從所述客戶端接收io數據讀寫消息,所述io數據讀寫消息包括待訪問卷編號;
步驟12,所述集群管理器間的主節(jié)點根據所述卷編號與卷組編號之間的對應關系,獲取所述待訪問卷編號所對應的卷組編號;其中,步驟12具體為:所述卷集群管理器間的主節(jié)點根據所述待訪問卷編號,進行hash運算,獲取所述待訪問卷編號對應的卷組編號。該步驟中,卷編號與卷組編號之間的對應關系的建立也可以不通過hash函數的計算方法,只要使得卷編號與卷組編號建立多對一的關系即可。
步驟13,所述集群管理器間的主節(jié)點查找所述卷組編號對應的卷組控制器間的主節(jié)點的訪問地址;該步驟中,集群管理器中的主節(jié)點與分布式塊存儲網絡系統(tǒng)失去連接時,可以在集群管理器間重新進行選舉,選舉出一個集群管理器作為集群管理器的主節(jié)點。
步驟14,所述集群管理器間的主節(jié)點將所述卷組控制器間的主節(jié)點的訪問地址發(fā)送給客戶端,使得所述客戶端與所述卷組控制器間的主節(jié)點連接,以進行io數據的讀取。其中,該步驟中所述客戶端與所述卷組控制器間的主節(jié)點連接,以進行io數據的讀取具體為:所述客戶端與所述卷組控制器間的主節(jié)點連接,根據所述卷組控制器間的主節(jié)點保存的卷組的各個卷所在的全部節(jié)點的地址信息、卷組內的所有卷的各個chunk塊的地址信息,使用paxos協(xié)議進行io數據的讀取。上述實施例中,根據io數據對卷中數據的讀取,卷組控制器相應的更新chunk塊的地址信息。每個卷屬于一個卷組,一組卷組由一個卷組控制器管理數據,簡化了系統(tǒng)中對卷組控制器的管理。
可選的,所述方法還包括:
步驟15,當所述分布式塊存儲系統(tǒng)中的第一卷組對應的第一卷組控制器間的主節(jié)點與所述分布式塊存儲系統(tǒng)斷開連接時,所述第一卷組對應的所有卷組控制器中除所述第一卷組控制器外的其他卷組控制器進行選舉,選舉出一卷組控制器作為第一卷組對應的卷組控制器間的新的主節(jié)點;可選的,步驟15具體為:所述第一卷組對應的所有卷組控制器中除所述第一卷組控制器外的其他卷組控制器使用paxos協(xié)議進行選舉,選舉出一卷組控制器作為第一卷組對應的卷組控制器的新的主節(jié)點。
步驟16,將選舉的所述卷組控制器間的新的主節(jié)點的連接地址發(fā)送給所述集群管理器間的主節(jié)點,使得所述集群管理器間的主節(jié)點更新本地保存的卷組編號與卷組控制器間的主節(jié)點的訪問地址之間的對應關系。
該步驟中,卷組控制器間的自動選取機制,保證了卷組控制器相對于集群管理器的獨立性,不需要集群管理器來指定卷組控制器間的主節(jié)點,使得分布式系統(tǒng)維護比較簡單。
上述實施例中,一個卷組控制器由運行paxos實例的幾個節(jié)點選舉產生,選舉為主節(jié)點leader的節(jié)點擔任卷組控制器的角色,其他節(jié)點作為卷組控制的slave從節(jié)點,同時這幾個節(jié)點保存有本卷組內所有卷的元數據信息(卷的容量、chunk的分布),通過paxos協(xié)議可以使卷控制器的位置信息無需集群管理器來記錄;同時當系統(tǒng)出現腦裂時,也無需集群管理器來裁決,有效降低集群管理器的負擔。
如圖2所述,本發(fā)明還提供一種分布式塊存儲系統(tǒng)中io數據的讀寫裝置,包括:
接收單元21,客戶端與分布式塊存儲系統(tǒng)連接時,從所述客戶端接收io數據讀寫消息,所述io數據讀寫消息包括待訪問卷編號;
獲取單元22,根據所述卷編號與卷組編號之間的對應關系,獲取所述待訪問卷編號所對應的卷組編號;
查找單元23,查找所述卷組編號對應的卷組控制器間的主節(jié)點的訪問地址;
發(fā)送單元24,將所述卷組控制器間的主節(jié)點的訪問地址發(fā)送給客戶端,使得所述客戶端與所述卷組控制器間的主節(jié)點連接,以進行io數據的讀取。
本發(fā)明所述的分布式塊存儲系統(tǒng)中io數據的讀寫裝置可以為卷組控制器間的主節(jié)點;本發(fā)明中的分布式塊存儲系統(tǒng)可以為超融合系統(tǒng)。
如圖3所示,本發(fā)明提供一種分布式塊存儲系統(tǒng)中io數據的讀寫系統(tǒng),包括:
客戶端31、一組集群管理器33、至少一組卷組控制器33;
所述一組集群管理器包括:至少一個集群管理器,其中一個集群管理器作為集群管理器間的主節(jié)點;
所述一組卷組控制器包括:至少一個卷組控制器,其中一個卷組控制器作為卷組控制器間的主節(jié)點;
其中,所述客戶端與所述分布式塊存儲系統(tǒng)的集群管理器間的主節(jié)點接,給所述分布式塊存儲系統(tǒng)的集群管理器間的主節(jié)點發(fā)送io數據讀寫消息;所述io數據讀寫消息包括待訪問卷編號;
所述分布式塊存儲系統(tǒng)的集群管理器間的主節(jié)點根據所述卷編號與卷組編號之間的對應關系,獲取所述待訪問卷編號所對應的卷組編號;查找所述卷組編號對應的卷組控制器間的主節(jié)點的訪問地址;將所述卷組控制器間的主節(jié)點的訪問地址發(fā)送給客戶端;
所述客戶端根據所述卷組控制器間的主節(jié)點的訪問地址,與所述卷組控制器間的主節(jié)點連接,以進行io數據的讀取。
所述卷組控制器還用于:當所述分布式塊存儲系統(tǒng)中的第一卷組對應的第一卷組控制器間的主節(jié)點與所述分布式塊存儲系統(tǒng)斷開連接時,所述第一卷組對應的所有卷組控制器中除所述第一卷組控制器外的其他卷組控制器進行選舉,選舉出一卷組控制器作為第一卷組對應的卷組控制器間的新的主節(jié)點;將選舉的所述卷組控制器間的新的主節(jié)點的連接地址發(fā)送給所述集群管理器間的主節(jié)點,使得所述集群管理器間的主節(jié)點更新本地保存的卷組編號與卷組控制器間的主節(jié)點的訪問地址之間的對應關系。
以上所述,僅為本發(fā)明較佳的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應該以權利要求的保護范圍為準。