分布式塊存儲系統中IO數據的讀寫方法、裝置以及系統與流程
2023-09-20 04:14:10 2

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