一種分布式存儲系統(tǒng)中的主從平衡方法和裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及分布式存儲技術領域,特別是涉及一種分布式存儲系統(tǒng)中的主從平衡方法和裝置。
【背景技術】
[0002]在分布式存儲系統(tǒng)中,數據分片可以將整體數據分攤在多臺機器上,假設將某整體數據劃分為1024分片,待分攤的機器數量為N,則每臺機器存儲的數據量為1024/N分片,以此滿足上述分布式存儲系統(tǒng)的性能需求。
[0003]進一步,為了防止某臺機器出現操作失誤或者機器故障而導致數據丟失,還可以針對分片配置多個副本,假設分片對應副本的數量為M,則I個為主副本,M-1個為從副本,其中,主副本對應機器可用于提供對于分片的讀寫服務,而在主副本所在機器宕機時可通過主從切換將其中I個從副本切換為主副本。
[0004]在上述分布式存儲系統(tǒng)提供對于分片的讀寫服務的過程中,會存在如下問題:某臺機器上存儲的副本全部為主副本,而其它機器上存儲的副本全部為從副本,這樣,容易出現該臺機器負載高宕機而其它機器閑置的情況,無法做到多臺機器的負載均衡。
[0005]為了實現多臺機器的負載均衡,傳統(tǒng)方案會在主從不均時人工進行分片的主從調整,這無疑增加了分布式環(huán)境中人工運維的成本;并且,上述主從調整主要包括:針對所有機器中所有分片在多臺機器之間進行迀移操作,該迀移操作期間所有機器需要暫停服務,這樣,如果主從調整方案不合理則容易出現冗余的迀移操作,所述冗余的迀移操作具體可以包括:在主從調整過程中對某個分片頻繁地執(zhí)行的迀移操作等等,這些冗余的迀移操作無疑會增加服務暫停的時間,從而影響分布式存儲系統(tǒng)的吞吐量等性能。
【發(fā)明內容】
[0006]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種分布式存儲系統(tǒng)中的主從平衡方法和裝置。
[0007]依據本發(fā)明的一個方面,提供了一種分布式存儲系統(tǒng)中的主從平衡方法,包括:
[0008]生成從存放分片的所有機器中取出M臺機器的組合;其中,M等于分片對應副本的數量;
[0009]針對每一種所述組合,統(tǒng)計其對應M臺機器中相同分片的主從分布信息,其中,所述相同分片為所述M臺機器中皆存有其主副本/從副本的分片;以及
[0010]在所述相同分片的主從分布信息符合預置切換條件時,對所述相同分片的副本進行主從調整。
[0011]可選地,所述相同分片的主從分布信息包括:所述M臺機器中任一臺中所述相同分片的最大主副本數以及所述相同分片的最小主副本數;
[0012]則所述相同分片的主從分布信息符合預置切換條件包括:所述相同分片的最大主副本數與所述相同分片的最小主副本數的差值大于閾值。
[0013]可選地,所述在所述相同分片的主從分布信息符合預置切換條件時,對所述相同分片的副本進行主從調整的步驟,包括:
[0014]確定所述M臺機器對應的最優(yōu)主從分布序列;
[0015]依據所述最優(yōu)主從分布序列,針對所述相同分片的副本在所述M臺機器之間進行迀移操作。
[0016]可選地,所述最優(yōu)主從分布序列包括:最優(yōu)主副本分布序列和最優(yōu)從副本分布序列;
[0017]則所述依據所述最優(yōu)主從分布序列,針對所述相同分片的副本在所述M臺機器之間進行迀移操作的步驟,包括:依據所述最優(yōu)主副本分布序列,針對相同分片的主副本進行的迀移操作,以及,依據所述最優(yōu)從副本分布序列,針對相同分片的從副本進行迀移操作;
[0018]其中,所述依據所述最優(yōu)主副本分布序列,針對相同分片的主副本進行的迀移操作過程包括:依據所述最優(yōu)主副本分布序列,將所述相同分片的主副本從主副本數多的機器迀移到主副本數少的機器。
[0019]可選地,所述針對每一種所述組合,統(tǒng)計其對應M臺機器中相同分片的主從分布信息的步驟,包括:
[0020]從各機器所維護的元數據信息中獲取所有分片的主從分布信息;
[0021]依據所有分片的主從分布信息,統(tǒng)計每一種所述組合對應M臺機器中相同分片的主從分布信息。
[0022]可選地,所述方法還包括:各機器維護元數據信息的步驟;
[0023]其中,所述各機器維護元數據信息的步驟包括:
[0024]機器在自身狀態(tài)發(fā)生變化時,依據自身狀態(tài)的變化更新所述元數據信息;
[0025]向所有機器廣播所述元數據信息的更新。
[0026]依據本發(fā)明的另一方面,提供了一種分布式存儲系統(tǒng)中的主從平衡裝置,包括:
[0027]組合生成模塊,用于生成從存放分片的所有機器中取出M臺機器的組合;其中,M等于分片對應副本的數量;
[0028]分布統(tǒng)計模塊,用于針對每一種所述組合,統(tǒng)計其對應M臺機器中相同分片的主從分布信息,其中,所述相同分片為所述M臺機器中皆存有其主副本/從副本的分片;以及
[0029]主從調整模塊,用于在所述相同分片的主從分布信息符合預置切換條件時,對所述相同分片的副本進行主從調整。
[0030]可選地,所述相同分片的主從分布信息包括:所述M臺機器中任一臺中所述相同分片的最大主副本數以及所述相同分片的最小主副本數;
[0031]則所述相同分片的主從分布信息符合預置切換條件包括:所述相同分片的最大主副本數與所述相同分片的最小主副本數的差值大于閾值。
[0032]可選地,所述主從調整模塊,包括:
[0033]確定子模塊,用于確定所述M臺機器對應的最優(yōu)主從分布序列;及
[0034]迀移子模塊,用于依據所述最優(yōu)主從分布序列,針對所述相同分片的副本在所述M臺機器之間進行迀移操作。
[0035]可選地,所述最優(yōu)主從分布序列包括:最優(yōu)主副本分布序列和最優(yōu)從副本分布序列;
[0036]則所述迀移子模塊,包括:
[0037]第一迀移單元,用于依據所述最優(yōu)主副本分布序列,針對相同分片的主副本進行的迀移操作?’及
[0038]第二迀移單元,用于依據所述最優(yōu)從副本分布序列,針對相同分片的從副本進行迀移操作;
[0039]其中,所述第一迀移單元,具體用于依據所述最優(yōu)主副本分布序列,將所述相同分片的主副本從主副本數多的機器迀移到主副本數少的機器。
[0040]根據本發(fā)明實施例的一種分布式存儲系統(tǒng)中的主從平衡方法和裝置,根可以在每一種組合中統(tǒng)計M臺機器中相同分片的主從分布信息,并在所述主從分布信息符合預置切換條件時,對所述相同分片的副本進行主從調整;
[0041]首先,由于本發(fā)明實施例的主從平衡方案為自動執(zhí)行,這相對于傳統(tǒng)方案人工執(zhí)行主從調整,大大降低了分布式環(huán)境中人工運維的成本;
[0042]另外,由于本發(fā)明實施例的組合為從存放分片的所有機器中取出M臺機器的組合,M等于分片對應副本的數量,這樣,M臺機器中特定的相同分片(如分片I)僅僅會在唯一的一種組合中出現,而不會在其它組合中出現,因此,本發(fā)明實施例能夠保證僅僅在一種組合中對分片I進行主從調整,從而最終實現無冗余的主從調整,這相對于傳統(tǒng)方案在主從調整過程中對某個分片頻繁地執(zhí)行的冗余迀移操作,大大減少了因冗迀移操作而導致服務暫停的那部分時間,從而提高了分布式存儲系統(tǒng)的吞吐量等性能。
[0043]上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【附圖說明】
[0044]通過閱讀下文可選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出可選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0045]圖1示出了示出了根據本發(fā)明一個實施例的一種分布式存儲系統(tǒng)中的主從平衡方法的步驟流程示意圖;
[0046]圖2示出了根據本發(fā)明一個示例的一種分布式存儲系統(tǒng)中分片的存儲結構示意圖;
[0047]圖3示出了示出了根據本發(fā)明一個實施例的一種分布式存儲系統(tǒng)中的主從平衡方法的步驟流程示意圖;
[0048]圖4示出了示出了根據本發(fā)明一個實施例的一種分布式存儲系統(tǒng)中的主從平衡方法的步驟流程示意圖;
[0049]圖5示出了示出了根據本發(fā)明一個實施例的一種分布式存儲系統(tǒng)中的主從平衡方法的步驟流程