[發(fā)明專利]基于多層一致性哈希的分布式數(shù)據(jù)存儲(chǔ)方法與系統(tǒng)有效
| 申請(qǐng)?zhí)枺?/td> | 201880005526.5 | 申請(qǐng)日: | 2018-07-10 |
| 公開(kāi)(公告)號(hào): | CN110169040B | 公開(kāi)(公告)日: | 2021-09-28 |
| 發(fā)明(設(shè)計(jì))人: | 郝斌 | 申請(qǐng)(專利權(quán))人: | 深圳花兒數(shù)據(jù)技術(shù)有限公司 |
| 主分類號(hào): | H04L29/08 | 分類號(hào): | H04L29/08;G06F16/13;H04L12/26 |
| 代理公司: | 深圳鼎合誠(chéng)知識(shí)產(chǎn)權(quán)代理有限公司 44281 | 代理人: | 彭愿潔;彭家恩 |
| 地址: | 518000 廣東省深圳市前海深港合作區(qū)前*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 多層 一致性 分布式 數(shù)據(jù) 存儲(chǔ) 方法 系統(tǒng) | ||
一種基于多層一致性哈希的分布式數(shù)據(jù)存儲(chǔ)方法與系統(tǒng)包含:多個(gè)提供數(shù)據(jù)存儲(chǔ)及冗余保護(hù)的存儲(chǔ)節(jié)點(diǎn);多個(gè)維護(hù)存儲(chǔ)節(jié)點(diǎn)屬性及虛擬組?存儲(chǔ)節(jié)點(diǎn)映射信息的管理節(jié)點(diǎn);多個(gè)維護(hù)存儲(chǔ)節(jié)點(diǎn)狀態(tài)并處理存儲(chǔ)節(jié)點(diǎn)添加、刪除和故障等狀態(tài)變化的監(jiān)控節(jié)點(diǎn);以及一個(gè)或多個(gè)為應(yīng)用或用戶提供訪問(wèn)存儲(chǔ)系統(tǒng)接入點(diǎn)的客戶端。存儲(chǔ)節(jié)點(diǎn)以樹(shù)形架構(gòu)組織,樹(shù)中每層的每個(gè)存儲(chǔ)節(jié)點(diǎn)被分配多個(gè)標(biāo)識(shí)并維護(hù)保持一致性的哈希空間。存儲(chǔ)節(jié)點(diǎn)架構(gòu)樹(shù)中存在多個(gè)在每層中保持一致的哈??臻g,而不是在所有存儲(chǔ)節(jié)點(diǎn)之間共享一個(gè)哈??臻g。系統(tǒng)保證了存儲(chǔ)過(guò)程的可靠性和可用性,避免了訪問(wèn)系統(tǒng)時(shí)負(fù)載不均衡問(wèn)題的出現(xiàn)。
技術(shù)領(lǐng)域
本發(fā)明涉及分布式存儲(chǔ)系統(tǒng),特別涉及一種具有容錯(cuò)和自動(dòng)負(fù)載均衡的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)。
背景技術(shù)
分布式存儲(chǔ)系統(tǒng),是將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)獨(dú)立的設(shè)備上。傳統(tǒng)的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)大多采用集中的存儲(chǔ)服務(wù)器存放所有數(shù)據(jù),存儲(chǔ)服務(wù)器成為系統(tǒng)性能的瓶頸,也是可靠性和安全性的焦點(diǎn),不能滿足大規(guī)模存儲(chǔ)應(yīng)用的需要。分布式網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)采用可擴(kuò)展的系統(tǒng)結(jié)構(gòu),利用多臺(tái)存儲(chǔ)服務(wù)器分擔(dān)存儲(chǔ)負(fù)荷,利用位置服務(wù)器定位存儲(chǔ)信息,它在一定程度上提高了系統(tǒng)的可靠性、可用性和存取效率,但還存在以下問(wèn)題。
分布式存儲(chǔ)系統(tǒng)需要使用多臺(tái)服務(wù)器共同存儲(chǔ)數(shù)據(jù),然而隨著服務(wù)器數(shù)量的增加,服務(wù)器出現(xiàn)故障的概率也在不斷增加,特別是對(duì)于大型數(shù)據(jù)存儲(chǔ)系統(tǒng),發(fā)生故障更是不可避免的。為了保證在有服務(wù)器出現(xiàn)故障的情況下系統(tǒng)仍然可用。一般做法是把一個(gè)數(shù)據(jù)分成多份存儲(chǔ)在不同的服務(wù)器中。但是由于故障和并行存儲(chǔ)等情況的存在,同一個(gè)數(shù)據(jù)的多個(gè)副本之間可能存在不一致的情況。
分布式存儲(chǔ)系統(tǒng)需要多臺(tái)服務(wù)器同時(shí)工作。當(dāng)服務(wù)器數(shù)量增多時(shí),其中一些服務(wù)器出現(xiàn)故障是在所難免的。這樣的情況會(huì)對(duì)整個(gè)系統(tǒng)造成影響。在系統(tǒng)中的一部分節(jié)點(diǎn)出現(xiàn)故障之后,要確保系統(tǒng)的整體不影響客戶端的讀/寫(xiě)請(qǐng)求,即系統(tǒng)的可用性要有保證。
其次,除了故障以外,另一個(gè)重要的問(wèn)題是如何將數(shù)據(jù)均勻地分配給存儲(chǔ)節(jié)點(diǎn),避免訪問(wèn)系統(tǒng)時(shí)出現(xiàn)熱點(diǎn)的負(fù)載均衡或數(shù)據(jù)路由等問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明提供一種基于多層一致性哈希的分布式數(shù)據(jù)存儲(chǔ)方法與系統(tǒng),解決了分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)容錯(cuò)性差,負(fù)載均衡差的問(wèn)題。
一種基于多層一致性哈希的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),包括:多個(gè)提供數(shù)據(jù)存儲(chǔ)和冗余保護(hù)的存儲(chǔ)節(jié)點(diǎn);多個(gè)維護(hù)存儲(chǔ)節(jié)點(diǎn)屬性及虛擬組-存儲(chǔ)節(jié)點(diǎn)映射信息的管理節(jié)點(diǎn);多個(gè)維護(hù)存儲(chǔ)節(jié)點(diǎn)的狀態(tài),處理存儲(chǔ)節(jié)點(diǎn)的添加、刪除和故障的監(jiān)控節(jié)點(diǎn); 一個(gè)或多個(gè)提供應(yīng)用程序或用戶訪問(wèn)存儲(chǔ)系統(tǒng)的接入點(diǎn)的客戶端。
存儲(chǔ)節(jié)點(diǎn)的屬性包括:節(jié)點(diǎn)標(biāo)識(shí)(ID),父節(jié)點(diǎn)標(biāo)識(shí)(ParentID),層級(jí)類型(LayerType),存儲(chǔ)節(jié)點(diǎn)容量權(quán)重值(Weight)、節(jié)點(diǎn)虛擬標(biāo)識(shí)(VIDs)、節(jié)點(diǎn)所屬主機(jī)標(biāo)識(shí)(ServerID)、節(jié)點(diǎn)所屬機(jī)架標(biāo)識(shí)(RackID)、節(jié)點(diǎn)所屬集群標(biāo)識(shí)(ClusterID)、 IP、 Port和節(jié)點(diǎn)狀態(tài)(Status)。
存儲(chǔ)節(jié)點(diǎn)基于每個(gè)存儲(chǔ)節(jié)點(diǎn)的屬性形成存儲(chǔ)架構(gòu)樹(shù), 該樹(shù)有多層,每層包含不同種類的節(jié)點(diǎn),例如,根層表示整個(gè)存儲(chǔ)集群;設(shè)備層(存儲(chǔ)節(jié)點(diǎn))位于樹(shù)底部(葉節(jié)點(diǎn)),是數(shù)據(jù)存儲(chǔ)的目的地。樹(shù)的每一層(葉節(jié)點(diǎn)除外,其無(wú)子節(jié)點(diǎn))都是其直接子節(jié)點(diǎn)的父層,父節(jié)點(diǎn)的權(quán)重等于其所有直接子節(jié)點(diǎn)權(quán)重總和。
管理節(jié)點(diǎn)維護(hù)基于一致性哈希的虛擬組-存儲(chǔ)節(jié)點(diǎn)映射信息,包括:從虛擬組到合格存儲(chǔ)節(jié)點(diǎn)列表的映射信息;從虛擬組和故障存儲(chǔ)節(jié)點(diǎn)到故障存儲(chǔ)節(jié)點(diǎn)對(duì)應(yīng)替換節(jié)點(diǎn)的映射信息。本發(fā)明中虛擬組(Virtual Group,VG)對(duì)應(yīng)哈希空間的一個(gè)分區(qū),即哈希子空間。
存儲(chǔ)節(jié)點(diǎn)以兩種方式通過(guò)心跳消息交換其狀態(tài):在進(jìn)行數(shù)據(jù)傳輸時(shí),從主節(jié)點(diǎn)到輔助節(jié)點(diǎn)的轉(zhuǎn)發(fā)請(qǐng)求同時(shí)被視為心跳包; 空閑時(shí),不包含任何對(duì)象數(shù)據(jù)的主節(jié)點(diǎn)到輔助節(jié)點(diǎn)的消息將用作心跳包,輔助節(jié)點(diǎn)向主節(jié)點(diǎn)發(fā)送回復(fù)以聲明處于在線狀態(tài)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于深圳花兒數(shù)據(jù)技術(shù)有限公司,未經(jīng)深圳花兒數(shù)據(jù)技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201880005526.5/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。





