專利名稱:一種分區(qū)擴展方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲技術(shù)領(lǐng)域,尤其涉及一種分區(qū)擴展方法及裝置。
背景技術(shù):
分布式存儲系統(tǒng)中,一般使用DHT (Distributed Hash Table,分布式哈希表)來決定數(shù)據(jù)存放位置。即通過一個哈希Hash函數(shù)計算Hash值,根據(jù)Hash值將數(shù)據(jù)映射到一個Hash空間,Hash空間是一個首尾相連的環(huán)狀空間,Hash環(huán)可分成若干等份,每份稱為一個分區(qū),再將分區(qū)平均分配到各個物理節(jié)點上,同時,建立數(shù)據(jù)到分區(qū)以及分區(qū)到物理節(jié)點的映射關(guān)系并存儲在DHT中。其中,數(shù)據(jù)的讀寫、分布式集群的擴容、故障處理等都依賴于DHT的變動。因此,DHT需要達到負載均勻、可靠性良好、節(jié)點上的數(shù)據(jù)存儲方式有利于數(shù)據(jù)遷移、擴展性良好(即系統(tǒng)可以進行多次擴容)的目標?,F(xiàn)有技術(shù)中,在分布式存儲系統(tǒng)中增設(shè)新的物理節(jié)點,即增大物理節(jié)點的數(shù)量可以實現(xiàn)系統(tǒng)的擴容。具體的擴容方法可以包括:在系統(tǒng)中增設(shè)新的物理節(jié)點,并移動原有物理節(jié)點上的分區(qū)至新的物理節(jié)點,從而進行分布式存儲系統(tǒng)的擴容。其中,物理節(jié)點上的分區(qū)數(shù)量大致相同。在實現(xiàn)上述系統(tǒng)擴容的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:如果分布式存儲系統(tǒng)經(jīng)過多次擴容,物理節(jié)點上的分區(qū)數(shù)量會越來越少,則會影響系統(tǒng)擴容(例如,當(dāng)每個物理節(jié)點上僅有4個分區(qū)時,系統(tǒng)最大只能擴容到原容量的4倍),導(dǎo)致分布式存儲系統(tǒng)的擴展性較差。
發(fā)明內(nèi)容
本發(fā)明的實施例提 供一種分區(qū)擴展方法及裝置,可以在分布式存儲系統(tǒng)擴容時,增加物理節(jié)點上中的分區(qū)數(shù)量,從而保證分布式存儲系統(tǒng)的擴展性。為達到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:本發(fā)明實施例的第一方面,提供一種分區(qū)擴展方法,包括:獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值;若所述分區(qū)數(shù)量的平均值小于預(yù)設(shè)閾值,則對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增;在預(yù)存的分布式哈希表DHT中添加新增加的分區(qū)與所述新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系。結(jié)合第一方面,在一種可能的實現(xiàn)方式中,在所述對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增后,所述方法還包括:獲取所述各個物理節(jié)點中的各個分區(qū)中的數(shù)據(jù)的哈希值;獲取所述數(shù)據(jù)的哈希值與所述數(shù)據(jù)所在的物理節(jié)點中擴展后得到的分區(qū)數(shù)量取模所得的模值;根據(jù)所述數(shù)據(jù)的所述模值確定所述數(shù)據(jù)遷移的目的分區(qū),若所述目的分區(qū)和所述數(shù)據(jù)當(dāng)前所在分區(qū)不同,則將所述數(shù)據(jù)遷移到所述目的分區(qū)。結(jié)合第一方面和上述可能的實現(xiàn)方式,在另一種可能的實現(xiàn)方式中,所述對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增,包括:將所述各個物理節(jié)點中的分區(qū)數(shù)量至少倍增至所述分區(qū)數(shù)量的2倍。結(jié)合第一方面和上述可能的實現(xiàn)方式,在另一種可能的實現(xiàn)方式中,在所述在預(yù)存的分布式哈希表DHT中增設(shè)所述分區(qū)對應(yīng)的新分區(qū)與所述分區(qū)所在的物理節(jié)點的映射關(guān)系后,所述方法還包括:獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中擴展后的分區(qū)數(shù)量的平均值;若所述擴展后的分區(qū)數(shù)量的平均值小于所述預(yù)設(shè)閾值,則對所述各個物理節(jié)點中的分區(qū)數(shù)量進行再次倍增;其中,每次倍增的倍數(shù)相同。結(jié)合第一方面和上述可能的實現(xiàn)方式,在另一種可能的實現(xiàn)方式中,所述獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值,包括:周期性獲取所 述分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值;或者,響應(yīng)于用戶的觸發(fā)指令,獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值。本發(fā)明實施例的第二方面,還提供一種分區(qū)擴展裝置,包括:第一獲取單元,用于獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值;第一倍增單元,用于若所述分區(qū)數(shù)量的平均值小于預(yù)設(shè)閾值,則對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增;映射單元,用于在預(yù)存的分布式哈希表DHT中添加新增加的分區(qū)與所述新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系。結(jié)合第二方面,在一種可能的實現(xiàn)方式中,所述分區(qū)擴展裝置,還包括:第二獲取單元,用于在所述第一倍增單元對所述各個物理節(jié)點中的分區(qū)數(shù)量進行倍增后,獲取所述各個物理節(jié)點中的各個分區(qū)中的數(shù)據(jù)的哈希值;第三獲取單元,用于獲取所述數(shù)據(jù)的哈希值與所述數(shù)據(jù)所在的物理節(jié)點中擴展后得到的分區(qū)數(shù)量取模所得的模值;遷移單元,用于根據(jù)所述數(shù)據(jù)的所述模值確定所述數(shù)據(jù)遷移的目的分區(qū),若所述目的分區(qū)和所述數(shù)據(jù)當(dāng)前所在分區(qū)不同,則將所述數(shù)據(jù)遷移到所述目的分區(qū)。結(jié)合第二方面和上述可能的實現(xiàn)方式,在另一種可能的實現(xiàn)方式中,所述第一倍增單元,還用于將所述各個物理節(jié)點中的分區(qū)數(shù)量至少倍增至所述分區(qū)數(shù)量的2倍。結(jié)合第二方面和上述可能的實現(xiàn)方式,在另一種可能的實現(xiàn)方式中,所述分區(qū)擴展裝置,還包括:第四獲取單元,用于在所述映射單元在預(yù)存的分布式哈希表DHT中添加新增加的分區(qū)與所述新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系后,獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中擴展后的分區(qū)數(shù)量的平均值;第二倍增單元,用于若所述擴展后的分區(qū)數(shù)量的平均值小于所述預(yù)設(shè)閾值,則對所述各個物理節(jié)點中的分區(qū)數(shù)量進行再次倍增;其中,每次倍增的倍數(shù)相同。結(jié)合第二方面和上述可能的實現(xiàn)方式,在另一種可能的實現(xiàn)方式中,所述第一獲取單元,還用于周期性獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值;或者,響應(yīng)于用戶的觸發(fā)指令,獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值。本發(fā)明實施例的第三方面,還提供一種分區(qū)擴展裝置,包括:處理器,用于獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值;若所述分區(qū)數(shù)量的平均值小于預(yù)設(shè)閾值,則對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增;在預(yù)存的分布式哈希表DHT中添加新增加的分區(qū)與所述新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系;存儲器,用于存儲所述處理器添加的新增加的分區(qū)與所述新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系。結(jié)合第二方面,在一種可能的實現(xiàn)方式中,所述處理器,還用于獲取所述各個物理節(jié)點中的各個分區(qū)中的數(shù)據(jù)的哈希值;獲取所述數(shù)據(jù)的哈希值與所述數(shù)據(jù)所在的物理節(jié)點中擴展后得到的分區(qū)數(shù)量取模所得的模值;根據(jù)所述數(shù)據(jù)的所述模值確定所述數(shù)據(jù)遷移的目的分區(qū),若所述目的分區(qū)和所述數(shù)據(jù)當(dāng)前所在分區(qū)不同,則將所述數(shù)據(jù)遷移到所述目的分區(qū)。結(jié)合第二方面和上述可能的實現(xiàn)方式,在另一種可能的實現(xiàn)方式中,所述處理器,還用于將所述各個物理節(jié)點中的分區(qū)數(shù)量至少倍增至所述分區(qū)數(shù)量的2倍。結(jié)合第二方面和上述可能的實現(xiàn)方式,在另一種可能的實現(xiàn)方式中,所述處理器,還用于在所述DHT中增設(shè)所述分區(qū)對應(yīng)的新分區(qū)與所述分區(qū)所在的物理節(jié)點的映射關(guān)系后,獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中擴展后的分區(qū)數(shù)量的平均值;若所述擴展后的分區(qū)數(shù)量的平均值小于所述預(yù)設(shè)閾值,則對所述各個物理節(jié)點中的分區(qū)數(shù)量進行再次倍增;其中,每次倍增的倍數(shù)相同。結(jié)合第二方面和上述可能的實現(xiàn)方式,在另一種可能的實現(xiàn)方式中,所述處理器,還用于周期性獲取所述分布式存儲`系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值;或者,響應(yīng)于用戶的觸發(fā)指令,獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值。本發(fā)明實施例提供的分區(qū)擴展方法及裝置,可以獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值,若分區(qū)數(shù)量的平均值小于預(yù)設(shè)閾值,則對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增,并在預(yù)存的分布式哈希表DHT中添加新增加的分區(qū)與新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系。與現(xiàn)有技術(shù)中,由于物理節(jié)點中分區(qū)數(shù)量較少導(dǎo)致分布式存儲系統(tǒng)的擴展性較差相比,可以在分布式存儲系統(tǒng)擴容時,若分區(qū)數(shù)量小于預(yù)設(shè)值,則執(zhí)行分區(qū)數(shù)量的倍增,從而可以保證分布式存儲系統(tǒng)的擴展性。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例1中的一種分區(qū)擴展方法流程圖;圖2為本發(fā)明實施例2中的一種分區(qū)擴展方法流程圖3為本發(fā)明實施例3中的一種分區(qū)擴展裝置組成示意圖;圖4為本發(fā)明實施例3中的另一種分區(qū)擴展裝置組成示意圖;圖5為本發(fā)明實施例4中的一種分區(qū)擴展裝置組成示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。實施例1本發(fā)明實施例提供一種分區(qū)擴展方法,如圖1所示,包括:101、分區(qū)擴展裝置獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值。其中,分布式存儲系統(tǒng)在使用分布式哈希表(Distributed Hash Table,DHT)存儲數(shù)據(jù)時,可以根據(jù)不同數(shù)據(jù)的數(shù)據(jù)標識通過一個哈希函數(shù)計算出該數(shù)據(jù)標識對應(yīng)的數(shù)據(jù)的哈希值Hash,根據(jù)該哈希值將數(shù)據(jù)映射到一個哈??臻g,哈??臻g是一個首尾相連的環(huán)狀空間,哈希環(huán)可分成若干等份,每份稱為一個分區(qū),然后將分區(qū)平均分配到各個物理節(jié)點上。其中,物理節(jié)點可以是分布式存儲系統(tǒng)中的物理地址,分布式存儲系統(tǒng)可以將其物理地址劃分成多個地址段,每一段物理地址為一個物理節(jié)點。分區(qū)擴展裝置獲取分布式存儲系統(tǒng)中的物理節(jié)點中分區(qū)數(shù)量的平均值的方法可以包括:分區(qū)擴展裝置周期性獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值;或者,分區(qū)擴展裝置響應(yīng)于用 戶的觸發(fā)指令,獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值。具體的,分區(qū)擴展裝置可以預(yù)先設(shè)置一個獲取周期,并根據(jù)該周期自發(fā)的獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值;或者,在進行分布式系統(tǒng)擴容時,分區(qū)擴展裝置接收用戶的觸發(fā)指令,響應(yīng)于該觸發(fā)指令,以獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值。102、若分區(qū)數(shù)量的平均值小于預(yù)設(shè)閾值,分區(qū)擴展裝置則對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增。其中,預(yù)設(shè)閾值可以為滿足分布式存儲系統(tǒng)進行至少一次擴容時,分布式存儲系統(tǒng)中的所有物理節(jié)點中的分區(qū)數(shù)量的平均值。其中,在分區(qū)擴展裝置對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增后,本發(fā)明實施例的方法還包括:分區(qū)擴展裝置獲取各個物理節(jié)點中的各個分區(qū)中的數(shù)據(jù)的哈希值;分區(qū)擴展裝置獲取數(shù)據(jù)的哈希值與數(shù)據(jù)所在的物理節(jié)點中擴展后得到的分區(qū)數(shù)量取模所得的模值;分區(qū)擴展裝置根據(jù)數(shù)據(jù)的模值確定數(shù)據(jù)遷移的目的分區(qū),若目的分區(qū)和數(shù)據(jù)當(dāng)前所在分區(qū)不同,分區(qū)擴展裝置則將數(shù)據(jù)遷移到所述目的分區(qū)。103、分區(qū)擴展裝置在預(yù)存的DHT中添加新增加的分區(qū)與新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系。其中,分布式存儲系統(tǒng)中可以使用DHT決定數(shù)據(jù)存放位置。即DHT可以存儲數(shù)據(jù)標識到分區(qū)的映射關(guān)系,以及分區(qū)到物理節(jié)點的映射關(guān)系,因此,分區(qū)擴展裝置對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增后,還需要在預(yù)存的DHT中添加新增加的分區(qū)與新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系。本發(fā)明實施例提供的分區(qū)擴展方法,可以獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值,若分區(qū)數(shù)量的平均值小于預(yù)設(shè)閾值,則對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增,并在預(yù)存的分布式哈希表DHT中添加新增加的分區(qū)與新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系。與現(xiàn)有技術(shù)中,由于物理節(jié)點中分區(qū)數(shù)量較少導(dǎo)致分布式存儲系統(tǒng)的擴展性較差相比,可以在分布式存儲系統(tǒng)擴容時,若分區(qū)數(shù)量小于預(yù)設(shè)值,則執(zhí)行分區(qū)數(shù)量的倍增,從而可以保證分布式存儲系統(tǒng)的擴展性。實施例2本發(fā)明實施例提供一種分區(qū)擴展方法,如圖2所示,包括:201、分區(qū)擴展裝置獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值。示例性的,分區(qū)擴展裝置獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值的方法具體可以是:分區(qū)擴展裝置在預(yù)存的DHT中查詢分布式存儲系統(tǒng)中的物理節(jié)點的數(shù)量和所有的物理節(jié)點中的分區(qū)的總數(shù);分區(qū)擴展裝置根據(jù)物理節(jié)點的數(shù)量和所有的物理節(jié)點中的分區(qū)的總數(shù),計算物理節(jié)點中的分區(qū)數(shù)量的平均值。其中,物理節(jié)點的數(shù)量即分布式存儲系統(tǒng)中的物理節(jié)點的總數(shù)。分區(qū)擴展裝置根據(jù)物理節(jié)點的數(shù)量和所有的物理節(jié)點的分區(qū)的總數(shù),計算物理節(jié)點的分區(qū)的數(shù)量的平均值的方法具體可以是:分區(qū)擴展裝置采用所有的物理節(jié)點的分區(qū)的總數(shù)除以物理節(jié)點的數(shù)量所得的商值作為物理節(jié)點中的分區(qū)數(shù)量的平均值。例如,若物理節(jié)點的數(shù)量為A,所有的物理節(jié)點的分區(qū)的總數(shù)為B,物理節(jié)點的分區(qū)的數(shù)量的平均值為C,則物理節(jié)點的數(shù)量、所有的物理節(jié)點的分區(qū)的總數(shù)以及物理節(jié)點的分區(qū)的數(shù)量的平均值應(yīng)該滿足公式:C = A/B。進一步的,在本實施例的一種應(yīng)用場景中,由于分布式存儲系統(tǒng)在使用DHT進行數(shù)據(jù)存儲時,物理節(jié)點上的分區(qū)數(shù)量大致相同,因此,分區(qū)擴展裝置也可以在預(yù)存的DHT中查詢分布式存儲系統(tǒng)中任意一個物理節(jié)點中的分區(qū)數(shù)量,將該物理節(jié)點中分區(qū)的數(shù)量作為分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值。202、分區(qū)擴展裝置判斷分區(qū)數(shù)量的平均值是否低于預(yù)設(shè)閾值,若分區(qū)數(shù)量的平均值低于預(yù)設(shè)閾值,則執(zhí)行步驟203 ;若分區(qū)數(shù)量的平均值不低于預(yù)設(shè)閾值,則執(zhí)行步驟211。203、分區(qū)擴展裝置對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增。其中,分區(qū)擴展裝置對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增苦于包括:分區(qū)擴展裝置將各個物理節(jié)點中的分區(qū)數(shù)量至少倍增至分區(qū)數(shù)量的2倍。具體的,分區(qū)擴展裝置可以將預(yù)存的DHT中的各個物理節(jié)點中的分區(qū)數(shù)量修改為各個物理節(jié)點中的分區(qū)數(shù)量的至少2倍。需要說明的是,一般情況下,分區(qū)擴展裝置對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增時,分區(qū)數(shù)量的倍數(shù)都為2。當(dāng)然,分區(qū)擴展裝置也可以對各個物理節(jié)點中的分區(qū)數(shù)量3倍,甚至更多倍數(shù)的擴展。本發(fā)明實施例中以分區(qū)擴展裝置對各個物理節(jié)點中的分區(qū)數(shù)量進行2倍擴展為例,但并不限制分區(qū)擴展裝置對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增的分區(qū)數(shù)量倍增倍數(shù)。204、 分區(qū)擴展裝置獲取各個物理節(jié)點中的各個分區(qū)中的數(shù)據(jù)的哈希值。具體的,分區(qū)擴展裝置可以根據(jù)各個分區(qū)中的數(shù)據(jù)的標識在預(yù)存的DHT中查詢各個物理節(jié)點中的各個分區(qū)中的數(shù)據(jù)的哈希值。一個分區(qū)中不同的數(shù)據(jù)的哈希值不同。例如,分區(qū)A中包含數(shù)據(jù)1、數(shù)據(jù)2和數(shù)據(jù)3。數(shù)據(jù)I的數(shù)據(jù)標識為a,哈希值為Hashl ;數(shù)據(jù)2的數(shù)據(jù)標識為b,哈希值為Hash2 ;數(shù)據(jù)3的數(shù)據(jù)標識為C,哈希值為Hash3。205、分區(qū)擴展裝置獲取數(shù)據(jù)的哈希值與數(shù)據(jù)所在的物理節(jié)點中擴展后得到的分區(qū)數(shù)量取模所得的模值。其中,數(shù)據(jù)所在的物理節(jié)點中擴展后得到的分區(qū)數(shù)量為該數(shù)據(jù)所在物理節(jié)點中擴展前的分區(qū)數(shù)量與分區(qū)擴展裝置對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增的倍數(shù)的乘積。示例性的,若數(shù)據(jù)K的哈希值為Hashk,數(shù)據(jù)K所在的物理節(jié)點中的分區(qū)數(shù)量為N,分區(qū)擴展裝置對各個物理節(jié)點中的分區(qū)數(shù)量進行η倍倍增,則數(shù)據(jù)K所在的物理節(jié)點中擴展后得到的分區(qū)數(shù)量為ηΧΝ,則數(shù)據(jù)K的哈希值與數(shù)據(jù)K所在的物理節(jié)點中擴展后得到的分區(qū)數(shù)量取模所得的模值Xk可以根據(jù)公式:xk = Hashk% (ηXN)計算得到。206、分區(qū)擴展裝置根據(jù)數(shù)據(jù)的模值確定數(shù)據(jù)遷移的目的分區(qū),若目的分區(qū)和數(shù)據(jù)當(dāng)前所在分區(qū)不同,則將數(shù)據(jù)遷移到目的分區(qū)。其中,分布式存儲系統(tǒng)存儲數(shù)據(jù)時,可以根據(jù)一個哈希函數(shù)計算待存儲數(shù)據(jù)的哈希值Hash,然后根據(jù)各個待存儲數(shù)據(jù)的哈希值和分布式存儲系統(tǒng)中的分區(qū)總數(shù)將待存儲數(shù)據(jù)分配至各個分區(qū)中進行存儲,然后將分布式存儲系統(tǒng)中的分區(qū)相對均勻的分配到各個物理節(jié)點中。示例性的,若一些數(shù)據(jù)的哈希值Hash分別為45、46、47、47……75,分區(qū)數(shù)量為N,則將各個數(shù)據(jù)的哈希值與分區(qū)數(shù)量取余所得結(jié)果相同的數(shù)據(jù)分配到一個分區(qū)中,如公式Hash % N。當(dāng)N = 3時,這些數(shù)據(jù)的哈希值與分區(qū)數(shù)量取余所得余數(shù)分別為0、1、2、0、1、2、O、1、2、O、1、2……O、1、2、O。根據(jù)其取余所得余數(shù)可以將這些數(shù)據(jù)分配至三個分區(qū)中。分區(qū)I (余數(shù)為 O):45、48、51、54、57、60、63、66、69、72、75。分區(qū)2(余數(shù)為 I):46、49、52、55、58、61、64、67、70、73。分區(qū)3(余數(shù)為 2):47、50、53、56、59、62、65、68、71、74。示例性的,以上述分區(qū)I為例,進行分區(qū)擴展。此時,分區(qū)數(shù)量N為3,當(dāng)分區(qū)數(shù)量倍增的倍數(shù)η = 2時,分區(qū)I所在的物理節(jié)點中擴展后得到的分區(qū)數(shù)量為2X3,分區(qū)I中的各個數(shù)據(jù)的模值分別為:x45 = 45% (2X3) = 3,X48 = 48% (2X3) = 0、χ51 = 51% (2X3)
=3,X54 = 54% (2X3) = 0、χ57 = 57% (2X3) = 3......X72 = 72% (2X3) = O,X75 = 75%
(2X3) = 3。具體的,若分區(qū)數(shù)量倍增的倍數(shù)η = 2,則分區(qū)擴展裝置可以將模值為3的數(shù)據(jù)遷移至該數(shù)據(jù)所在物理節(jié)點中新增加的分區(qū)中,將模值為O的數(shù)據(jù)保留在原分區(qū)中;例如,分區(qū)擴展裝置可以將 X45 = 45% (2X3) = 3、X51 = 51% (2X3) = 3、X57 = 57% (2X3)=3……X75 = 75% (2X3) = 3對應(yīng)的數(shù)據(jù)遷移至該數(shù)據(jù)所在物理節(jié)點中新增加的分區(qū)中,
將 X48 = 48% (2X3) = O、X54 = 54% (2X3) = 0......X72 = 72% (2X3) = O 對應(yīng)的數(shù)據(jù)
保留在原分區(qū)中。或者,分區(qū)擴展裝置可以將模值為O的數(shù)據(jù)遷移至該數(shù)據(jù)所在物理節(jié)點中新增加的分區(qū)中,將模值為3的數(shù)據(jù)保留在原分區(qū)中;例如,分區(qū)擴展裝置可以將X48 =
48% (2X3) = 0、χ54 = 54% (2X3) = 0......X72 = 72% (2X3) = O 對應(yīng)的數(shù)據(jù)遷移至該
數(shù)據(jù)所在物理節(jié)點中新增加的分區(qū)中,將X45 = 45% (2X3) = 3、X51 = 51% (2X3) = 3、X57 = 57% (2X3) = 3……X75 = 75% (2X3) = 3對應(yīng)的數(shù)據(jù)保留在原分區(qū)中。需要說明的是,以上述分區(qū)I為例,當(dāng)分區(qū)數(shù)量倍增的倍數(shù)η = 3時,分區(qū)I中的各個數(shù)據(jù)的模值分別為:X45 = 45% (3X3) = 0、x48 = 48% (3X3) = 3、x51 = 51% (3X3)=
6、x54 = 54% (3X3) = O、x57 = 57% (3X3) = 3......X72 = 72% (3X3) = O、X75 = 75%
(3X3) =3。分區(qū)擴展裝置可以根據(jù)數(shù)據(jù)的模值0、3、6,遷移模值對應(yīng)的數(shù)據(jù)。其中,分布式擴展裝置遷移數(shù)據(jù)到目的分區(qū)的方法與分區(qū)數(shù)量2倍倍增的方法類似,本實施例不再贅述。207、分區(qū)擴展裝置在預(yù)存的DHT中添加新增加的分區(qū)與新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系。208、分區(qū)擴展裝置獲取分布式存儲系統(tǒng)中所有物理節(jié)點中擴展后的分區(qū)數(shù)量的平均值。其中,分區(qū)擴展裝置在對分布式存儲系統(tǒng)中所有物理節(jié)點上分區(qū)數(shù)量進行倍增,并完成將分區(qū)中對應(yīng)數(shù)據(jù)的遷移后,可以獲取分布式存儲系統(tǒng)中所有物理節(jié)點中擴展后的分區(qū)數(shù)量的平均值,并根據(jù)判斷分布式存儲系統(tǒng)中的分區(qū)數(shù)量是否滿足分布式存儲系統(tǒng)進行至少一次擴容所需要的分區(qū)數(shù)量。需要說明的是,分區(qū)擴展裝置獲取分布式存儲系統(tǒng)中所有物理節(jié)點中擴展后的分區(qū)數(shù)量的平均值的方法與本實施例中分區(qū)擴展裝置獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值的方法類似,本實施例這里不再贅述。209、分區(qū)擴展裝置判斷擴展后的分區(qū)數(shù)量的平均值是否小于預(yù)設(shè)閾值;若擴展后的分區(qū)數(shù)量的平均值小于預(yù)設(shè)閾值,則執(zhí)行步驟210 ;若擴展后的分區(qū)數(shù)量的平均值不小于預(yù)設(shè)閾值,則執(zhí)行步驟211。210、分區(qū)擴展裝置對各個物理節(jié)點中的分區(qū)數(shù)量進行再次倍增;其中,每次倍增的倍數(shù)相同。 其中,當(dāng)擴展后的分區(qū)數(shù)量的平均值小于預(yù)設(shè)閾值時,分區(qū)擴展裝置則可以對各個物理節(jié)點中的分區(qū)數(shù)量進行再次倍增。分區(qū)擴展裝置對各個物理節(jié)點中的分區(qū)數(shù)量進行再次倍增時的倍增倍數(shù)與分區(qū)擴展裝置對分區(qū)數(shù)量進行第一次倍增時的倍增倍數(shù)相同。在分區(qū)擴展裝置對各個物理節(jié)點中的分區(qū)數(shù)量進行再次倍增后,本實施的方法還可以包括:分區(qū)擴展裝置在預(yù)存的DHT中添加新增加的分區(qū)與新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系。需要說明的是,分區(qū)擴展裝置可以對物理節(jié)點中的分區(qū)數(shù)量進行至少一次倍增,每次倍增的倍數(shù)相同,且倍增的倍數(shù)大于等于2。211、結(jié)束分區(qū)擴展流程。需要說明的是,分區(qū)擴展裝置可以根據(jù)分布式存儲系統(tǒng)中的物理節(jié)點的分區(qū)的數(shù)量的平均值對分布式存儲系統(tǒng)中的物理節(jié)點的分區(qū)進行至少一次擴展。本發(fā)明實施例對分區(qū)擴展的次數(shù)不做限制,分區(qū)擴展裝置對分布式存儲系統(tǒng)中的物理節(jié)點的分區(qū)進行二次擴展或者更多次數(shù)的擴展的方法與本實施例中的分區(qū)擴展方法類似,本實施例這里不再贅述。進一步,需要說明的是,本實施例提供的倍增方法,不僅可以應(yīng)用于分布式存儲系統(tǒng)的分區(qū)擴展過程中,也可以應(yīng)用于其他存儲系統(tǒng)中存儲節(jié)點的倍增過程中,對于本發(fā)明的方法的應(yīng)用范圍,本實施例這里不作限制。本發(fā)明實施例提供的分區(qū)擴展方法,可以獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值,若分區(qū)數(shù)量的平均值小于預(yù)設(shè)閾值,則對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增,并在預(yù)存的分布式哈希表DHT中添加新增加的分區(qū)與新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系。與現(xiàn)有技術(shù)中,由于物理節(jié)點中分區(qū)數(shù)量較少導(dǎo)致分布式存儲系統(tǒng)的擴展性較差相比,可以在分布式存儲系統(tǒng)擴容時,若分區(qū)數(shù)量小于預(yù)設(shè)值,則執(zhí)行分區(qū)數(shù)量的倍增,從而可以保證分布式存儲系統(tǒng)的擴展性。實施例3本發(fā)明實施例提供一種分區(qū)擴展裝置,如圖3所示,包括:第一獲取單元31、第一倍增單元32、映射單元33。第一獲取單元31,用于獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值。第一倍增單元32,用于若所述分區(qū)數(shù)量的平均值小于預(yù)設(shè)閾值,則對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增。映射單元33,用于在預(yù)存的分布式哈希表DHT中添加新增加的分區(qū)與所述新增加的分區(qū)所在的物理節(jié) 點的映射關(guān)系。進一步的,如圖4所示,所述分區(qū)擴展裝置,還可以包括:第二獲取單元34、第三獲取單元35、遷移單元36。第二獲取單元34,用于在所述第一倍增單元32對所述各個物理節(jié)點中的分區(qū)數(shù)量進行倍增后,獲取所述各個物理節(jié)點中的各個分區(qū)中的數(shù)據(jù)的哈希值。第三獲取單元35,用于獲取所述數(shù)據(jù)的哈希值與所述數(shù)據(jù)所在的物理節(jié)點中擴展后得到的分區(qū)數(shù)量取模所得的模值。遷移單元36,用于根據(jù)所述數(shù)據(jù)的所述模值確定所述數(shù)據(jù)遷移的目的分區(qū),若所述目的分區(qū)和所述數(shù)據(jù)當(dāng)前所在分區(qū)不同,則將所述數(shù)據(jù)遷移到所述目的分區(qū)。進一步的,所述第一倍增單元32,還用于將所述各個物理節(jié)點中的分區(qū)數(shù)量至少倍增至所述分區(qū)數(shù)量的2倍。進一步的,所述分區(qū)擴展裝置,還可以包括:第四獲取單元37、第二倍增單元38。第四獲取單元37,用于在所述映射單元33在預(yù)存的分布式哈希表DHT中添加新增加的分區(qū)與所述新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系后,獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中擴展后的分區(qū)數(shù)量的平均值。第二倍增單元38,用于若所述擴展后的分區(qū)數(shù)量的平均值小于所述預(yù)設(shè)閾值,則對所述各個物理節(jié)點中的分區(qū)數(shù)量進行再次倍增;其中,每次倍增的倍數(shù)相同。進一步的,所述第一獲取單元31,還用于周期性獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值;或者,響應(yīng)于用戶的觸發(fā)指令,獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值。需要說明的是,本發(fā)明實施例提供的分區(qū)擴展裝置中部分功能模塊的具體描述可以參考方法實施例中的對應(yīng)內(nèi)容,本實施例這里不再詳細贅述。本發(fā)明實施例提供的分區(qū)擴展裝置,可以獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值,若分區(qū)數(shù)量的平均值小于預(yù)設(shè)閾值,則對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增,并在預(yù)存的分布式哈希表DHT中添加新增加的分區(qū)與新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系。與現(xiàn)有技術(shù)中,由于物理節(jié)點中分區(qū)數(shù)量較少導(dǎo)致分布式存儲系統(tǒng)的擴展性較差相比,可以在分布式存儲系統(tǒng)擴容時,若分區(qū)數(shù)量小于預(yù)設(shè)值,則執(zhí)行分區(qū)數(shù)量的倍增,從而可以保證分布式存儲系統(tǒng)的擴展性。實施例4本發(fā)明實施例提供一種分區(qū)擴展裝置,如圖5所示,可以包括:處理器41、存儲器42。處理器41,用于獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值;若所述分區(qū)數(shù)量的平均值小于預(yù)設(shè)閾值,則對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增;在預(yù)存的分布式哈希表DHT中添加新增加的分區(qū)與所述新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系;存儲器42,用于存儲所述處理器41添加的新增加的分區(qū)與所述新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系。進一步的,所述處理器41,還用于獲取所述各個物理節(jié)點中的各個分區(qū)中的數(shù)據(jù)的哈希值;獲取所述數(shù)據(jù)的哈希值與所述數(shù)據(jù)所在的物理節(jié)點中擴展后得到的分區(qū)數(shù)量取模所得的模值;根據(jù)所述數(shù)據(jù)的所述模值確定所述數(shù)據(jù)遷移的目的分區(qū),若所述目的分區(qū)和所述數(shù)據(jù)當(dāng)前所在分區(qū)不同,則將所述數(shù)據(jù)遷移到所述目的分區(qū)。進一步的,所述處理器41,還用于將所述各個物理節(jié)點中的分區(qū)數(shù)量至少倍增至所述分區(qū)數(shù)量的2倍。進一步的,所述處理器41,還用于在所述DHT中增設(shè)所述分區(qū)對應(yīng)的新分區(qū)與所述分區(qū)所在的物理節(jié)點的映射關(guān)系后,獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中擴展后的分區(qū)數(shù)量的平均值;若所述擴展后的分區(qū)數(shù)量的平均值小于所述預(yù)設(shè)閾值,則對所述各個物理節(jié)點中的分區(qū)數(shù)量進行再次倍增;其中,每次倍增的倍數(shù)相同。進一步的,所述處理器41`,還用于周期性獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值;或者,響應(yīng)于用戶的觸發(fā)指令,獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值。需要說明的是,本發(fā)明實施例提供的分區(qū)擴展裝置中部分功能模塊的具體描述可以參考方法實施例中的對應(yīng)內(nèi)容,本實施例這里不再詳細贅述。本發(fā)明實施例提供的分區(qū)擴展裝置,可以獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值,若分區(qū)數(shù)量的平均值小于預(yù)設(shè)閾值,則對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增,并在預(yù)存的分布式哈希表DHT中添加新增加的分區(qū)與新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系。與現(xiàn)有技術(shù)中,由于物理節(jié)點中分區(qū)數(shù)量較少導(dǎo)致分布式存儲系統(tǒng)的擴展性較差相比,可以在分布式存儲系統(tǒng)擴容時,若分區(qū)數(shù)量小于預(yù)設(shè)值,則執(zhí)行分區(qū)數(shù)量的倍增,從而可以保證分布式存儲系統(tǒng)的擴展性。通過以上的實施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在可讀取的存儲介質(zhì)中,如計算機的軟盤,硬盤或光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以所述權(quán)利要求的保護范圍為準。以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此 ,本發(fā)明的保護范圍應(yīng)以所述權(quán)利要求的保護范圍為準。
權(quán)利要求
1.一種分區(qū)擴展方法,其特征在于,包括: 獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值; 若所述分區(qū)數(shù)量的平均值小于預(yù)設(shè)閾值,則對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增;在預(yù)存的分布式哈希表DHT中添加新增加的分區(qū)與所述新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系。
2.根據(jù)權(quán)利要求1所述的分區(qū)擴展方法,其特征在于,在所述對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增后,所述方法還包括: 獲取所述各個物理節(jié)點中的各個分區(qū)中的數(shù)據(jù)的哈希值; 獲取所述數(shù)據(jù)的哈希值與所述數(shù)據(jù)所在的物理節(jié)點中擴展后得到的分區(qū)數(shù)量取模所得的模值; 根據(jù)所述數(shù)據(jù)的所述模值確定所述數(shù)據(jù)遷移的目的分區(qū),若所述目的分區(qū)和所述數(shù)據(jù)當(dāng)前所在分區(qū)不同,則將所述數(shù)據(jù)遷移到所述目的分區(qū)。
3.根據(jù)權(quán)利要求1或2所述的分區(qū)擴展方法,其特征在于,所述對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增,包括 : 將所述各個物理節(jié)點中的分區(qū)數(shù)量至少倍增至所述分區(qū)數(shù)量的2倍。
4.根據(jù)權(quán)利要求1所述的分區(qū)擴展方法,其特征在于,在所述在預(yù)存的分布式哈希表DHT中增設(shè)所述分區(qū)對應(yīng)的新分區(qū)與所述分區(qū)所在的物理節(jié)點的映射關(guān)系后,所述方法還包括: 獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中擴展后的分區(qū)數(shù)量的平均值; 若所述擴展后的分區(qū)數(shù)量的平均值小于所述預(yù)設(shè)閾值,則對所述各個物理節(jié)點中的分區(qū)數(shù)量進行再次倍增;其中,每次倍增的倍數(shù)相同。
5.根據(jù)權(quán)利要求1所述的分區(qū)擴展方法,其特征在于,所述獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值,包括: 周期性獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值;或者, 響應(yīng)于用戶的觸發(fā)指令,獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值。
6.一種分區(qū)擴展裝置,其特征在于,包括: 第一獲取單元,用于獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值;第一倍增單元,用于若所述分區(qū)數(shù)量的平均值小于預(yù)設(shè)閾值,則對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增; 映射單元,用于在預(yù)存的分布式哈希表DHT中添加新增加的分區(qū)與所述新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系。
7.根據(jù)權(quán)利要求6所述的分區(qū)擴展裝置,其特征在于,還包括: 第二獲取單元,用于在所述第一倍增單元對所述各個物理節(jié)點中的分區(qū)數(shù)量進行倍增后,獲取所述各個物理節(jié)點中的各個分區(qū)中的數(shù)據(jù)的哈希值; 第三獲取單元,用于獲取所述數(shù)據(jù)的哈希值與所述數(shù)據(jù)所在的物理節(jié)點中擴展后得到的分區(qū)數(shù)量取模所得的模值; 遷移單元,用于根據(jù)所述數(shù)據(jù)的所述模值確定所述數(shù)據(jù)遷移的目的分區(qū),若所述目的分區(qū)和所述數(shù)據(jù)當(dāng)前所在分區(qū)不同,則將所述數(shù)據(jù)遷移到所述目的分區(qū)。
8.根據(jù)權(quán)利要求6或7所述的分區(qū)擴展裝置,其特征在于,所述第一倍增單元,還用于將所述各個物理節(jié)點中的分區(qū)數(shù)量至少倍增至所述分區(qū)數(shù)量的2倍。
9.根據(jù)權(quán)利要求1所述的分區(qū)擴展裝置,其特征在于,還包括: 第四獲取單元,用于在所述映射單元在預(yù)存的分布式哈希表DHT中添加新增加的分區(qū)與所述新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系后,獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中擴展后的分區(qū)數(shù)量的平均值; 第二倍增單元,用于若所述擴展后的分區(qū)數(shù)量的平均值小于所述預(yù)設(shè)閾值,則對所述各個物理節(jié)點中的分區(qū)數(shù)量進行再次倍增;其中,每次倍增的倍數(shù)相同。
10.根據(jù)權(quán)力要求6所述的分區(qū)擴展裝置,其特征在于,所述第一獲取單元,還用于周期性獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值;或者, 響應(yīng)于用戶的觸發(fā)指令,獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均 值。
11.一種分區(qū)擴展裝置,其特征在于,包括: 處理器,用于獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值;若所述分區(qū)數(shù)量的平均值小于預(yù)設(shè)閾值,則對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增;在預(yù)存的分布式哈希表DHT中添加新增加的分區(qū)與所述新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系; 存儲器,用于存儲所述處理器添加的新增加的分區(qū)與所述新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系。
12.根據(jù)權(quán)利要求11所述的分區(qū)擴展裝置,其特征在于,所述處理器,還用于獲取所述各個物理節(jié)點中的各個分區(qū)中的數(shù)據(jù)的哈希值;獲取所述數(shù)據(jù)的哈希值與所述數(shù)據(jù)所在的物理節(jié)點中擴展后得到的分區(qū)數(shù)量取模所得的模值;根據(jù)所述數(shù)據(jù)的所述模值確定所述數(shù)據(jù)遷移的目的分區(qū),若所述目的分區(qū)和所述數(shù)據(jù)當(dāng)前所在分區(qū)不同,則將所述數(shù)據(jù)遷移到所述目的分區(qū)。
13.根據(jù)權(quán)利要求11或12所述的分區(qū)擴展裝置,其特征在于,所述處理器,還用于將所述各個物理節(jié)點中的分區(qū)數(shù)量至少倍增至所述分區(qū)數(shù)量的2倍。
14.根據(jù)權(quán)利要求11所述的分區(qū)擴展裝置,其特征在于,所述處理器,還用于在所述DHT中增設(shè)所述分區(qū)對應(yīng)的新分區(qū)與所述分區(qū)所在的物理節(jié)點的映射關(guān)系后,獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中擴展后的分區(qū)數(shù)量的平均值;若所述擴展后的分區(qū)數(shù)量的平均值小于所述預(yù)設(shè)閾值,則對所述各個物理節(jié)點中的分區(qū)數(shù)量進行再次倍增;其中,每次倍增的倍數(shù)相同。
15.根據(jù)權(quán)利要求11所述的分區(qū)擴展裝置,其特征在于,所述處理器,還用于周期性獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值;或者, 響應(yīng)于用戶的觸發(fā)指令,獲取所述分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值。
全文摘要
本發(fā)明實施例公開了一種分區(qū)擴展方法及裝置,涉及存儲技術(shù)領(lǐng)域,可以在分布式存儲系統(tǒng)擴容時,增加物理節(jié)點上中的分區(qū)數(shù)量,從而保證分布式存儲系統(tǒng)的擴展性。具體方案為獲取分布式存儲系統(tǒng)中所有物理節(jié)點中分區(qū)數(shù)量的平均值;若分區(qū)數(shù)量的平均值小于預(yù)設(shè)閾值,則對各個物理節(jié)點中的分區(qū)數(shù)量進行倍增;在預(yù)存的分布式哈希表DHT中添加新增加的分區(qū)與新增加的分區(qū)所在的物理節(jié)點的映射關(guān)系。本發(fā)明用于分布式存儲系統(tǒng)擴容的過程中。
文檔編號G06F12/06GK103229151SQ201280002874
公開日2013年7月31日 申請日期2012年12月27日 優(yōu)先權(quán)日2012年12月27日
發(fā)明者張烽 申請人:華為技術(shù)有限公司