專利名稱:一種集群存儲自動負載均衡的系統(tǒng)及方法
技術領域:
本發(fā)明涉及集群存儲管理技術領域,尤其涉及一種集群存儲自動負載均衡的系統(tǒng)及方法。
背景技術:
隨著計算規(guī)模的擴大和新興應用模式(如云計算、物聯(lián)網)的出現(xiàn),大數(shù)據(jù)應用與日俱增。集群存儲是一種橫向擴展(Scale-out)的存儲架構,具有容量和性能線性擴展的優(yōu)勢。負載均衡是集群存儲提供高性能的關鍵技術之一,能夠保證集群高性能的穩(wěn)定性和高的QoS服務質量,并使得集群系統(tǒng)具備良好的彈性以適應集群的動態(tài)擴展。
集群存儲是一種開放式的存儲架構,采用分布式的文件系統(tǒng),將多臺物理存儲設備中的存儲空間聚合成一個能夠給應用服務器提供統(tǒng)一訪問接口和管理界面的存儲池(也叫統(tǒng)一命名空間),通過該訪問接口非常容易地管理存儲池后端物理存儲設備上所有的磁盤,充分發(fā)揮存儲設備的性能和磁盤利用率。數(shù)據(jù)將按照一定的負載均衡策略從多臺存儲設備上存儲和讀取,以獲得更高的存儲性能。集群存儲通過分布式文件系統(tǒng)的作用,會在前端訪問和后端存儲都實現(xiàn)負載均衡。前端訪問集群存儲的操作,通過負載均衡策略將訪問分散到集群存儲的各個存儲節(jié)點上,大大減輕了每個節(jié)點的負載;后端存儲的負載均衡,通過開放式的架構和后端網絡,數(shù)據(jù)會分布在所有節(jié)點上進行存放和讀取。本文中負載均衡專指后端存儲的負載均衡,每個讀寫操作都由更多的節(jié)點參與,大大提高讀寫操作的性能。分布式存儲可以通過軟件技術整合利用眾多低廉的存儲設備來支撐海量的存儲。由于服務器之間的資源利用率經常不同、以及集群中經常動態(tài)的增刪服務器,導致服務器的數(shù)據(jù)分布不均衡。而數(shù)據(jù)的均衡分布是提供高效服務的關鍵之一,分布式文件系統(tǒng)作為分布式存儲的核心,其數(shù)據(jù)的再均衡處理(Data-Rebalance)顯得至關重要。高端商業(yè)集群存儲都有自己Data-Rebalance功能,這已然成為了商業(yè)集群存儲系統(tǒng)不可或缺的標準功能之一,諸如IsiloruInfortrend等。其中Isilon的核心文件系統(tǒng)OneFS的AutoBalance功能模塊,實現(xiàn)了自動數(shù)據(jù)負載均衡。系統(tǒng)后臺根據(jù)忙閑程度,自動的發(fā)起Data Rebalance操作,占用很少系統(tǒng)資源,不影響上層客戶端的訪問應用,不需要任何人工干預,也不要需要客戶端多任何操作。開源分布式文件系統(tǒng)中也大多有簡易的Data-Rebalance功能,例如Glusterfs、MooseFS>Lustre>Hadoop/HDFS 等。GlusterFS 是 Scale-Out 存儲解決方案 Gluster 的核心,它是一個開源的分布式文件系統(tǒng),具有強大的橫向擴展能力,通過擴展能夠支持數(shù)PB存儲容量和處理數(shù)千客戶端。GlusterFS借助TCP/IP或InfiniBand RDMA網絡將物理分布的存儲資源聚集在一起,使用單一全局命名空間來管理數(shù)據(jù)。GlusterFS基于可堆疊的用戶空間設計,可為各種不同的數(shù)據(jù)負載提供優(yōu)異的性能。ESVA是一個塊級的集群存儲系統(tǒng),通過Scale-out架構來實現(xiàn)集群存儲容量與性能線性增長,并實現(xiàn)負載均衡。ESVA充分使用容量,同時可以確保用戶最好地利用存儲處理能力。在ESVA的scale-out架構中,無需任何手動操作就可以輕松實現(xiàn)性能優(yōu)化。當主機端向存儲池發(fā)出一個寫請求,其組成數(shù)據(jù)塊將以一種平衡的方式分派給各成員存儲系統(tǒng)。圖I為現(xiàn)有技術中集群存儲負載均衡的示意圖。如圖I所示,一個寫請求由6個數(shù)據(jù)塊組成,數(shù)據(jù)塊均勻分布在2個成員存儲系統(tǒng)中,每個成員系統(tǒng)有3個數(shù)據(jù)塊;當一個新成員存儲系統(tǒng)被加入,數(shù)據(jù)塊將被遷移確保所有成員平均負載,每個成員負載2個數(shù)據(jù)塊。用戶添加或刪除磁盤陣列系統(tǒng)使配置發(fā)生了變化,現(xiàn)有的數(shù)據(jù)將被遷移以確保負載平衡,優(yōu)化的狀態(tài)仍將保持,自動的、連續(xù)的負載平衡能夠充分利用性能,提高生產力。上述主流的集群存儲系統(tǒng)基本都支持負載均衡功能,以保持集群各節(jié)點的數(shù)據(jù)分布和容量基本均衡,但現(xiàn)有的負載均衡技術在某些方面也存在不足1)手動執(zhí)行,需要由管理員擇機進行操作,無法實現(xiàn)自動執(zhí)行;2)離線執(zhí)行,進行負載均衡時需要集群系統(tǒng)暫停服務,造成業(yè)務中斷;3)·影響前端性能,執(zhí)行時未考慮各節(jié)點工作負載,容易導致系統(tǒng)過載,影響正常業(yè)務訪問;4)單節(jié)點執(zhí)行,由某個節(jié)點負責執(zhí)行負載均衡,無法做到并發(fā)執(zhí)行,性能低下并且耗時較長。由于集群存儲系統(tǒng)設計復雜性和需求的不同,商業(yè)和開源解決方案在負載均衡功能實現(xiàn)上均有所取舍,亟需一種能夠實現(xiàn)自動化、智能化、在線和并發(fā)執(zhí)行的集群存儲負載均衡處理策略。
發(fā)明內容
本發(fā)明所要解決的技術問題在于提供一種集群存儲自動負載均衡的系統(tǒng)及方法,以實現(xiàn)完全自動化、智能化、在線和并發(fā)性的集群存儲負載均衡處理策略。為達到上述目的,本發(fā)明是通過以下技術方案來實現(xiàn)的一種集群存儲自動負載均衡的系統(tǒng),所述系統(tǒng)包括監(jiān)控模塊、觸發(fā)動作模塊、信息同步模塊、事件觸發(fā)模塊、負載信息計算模塊、調度模塊、數(shù)據(jù)布局修復模塊和數(shù)據(jù)遷移模塊,所述監(jiān)控模塊與負載信息計算模塊連接,所述事件觸發(fā)模塊分別與觸發(fā)動作模塊和信息同步模塊連接,所述負載信息計算模塊分別與事件觸發(fā)模塊和調度模塊連接,所述事件觸發(fā)模塊與調度模塊連接,所述調度模塊分別與數(shù)據(jù)布局修復模塊和數(shù)據(jù)遷移模塊連接,其中,所述監(jiān)控模塊用于監(jiān)控各存儲節(jié)點的負載狀態(tài);所述觸發(fā)動作模塊用于改變邏輯卷的狀態(tài),以觸發(fā)自動負載均衡動作;所述信息同步模塊用于同步集群系統(tǒng)中負載均衡信息;所述負載信息計算模塊用于根據(jù)監(jiān)控模塊獲取的各存儲節(jié)點的負載狀態(tài)計算系統(tǒng)負載;所述事件觸發(fā)模塊用于根據(jù)邏輯卷的狀態(tài)變化判斷是否啟動指定卷的負載均衡操作,并在啟動指定卷的負載均衡操作時自動觸發(fā)相應的負載不均衡事件;所述調度模塊用于根據(jù)觸發(fā)的負載不均衡事件在線執(zhí)行負載均衡調度;所述數(shù)據(jù)布局修復模塊用于根據(jù)調度模塊的調度指令實現(xiàn)各存儲節(jié)點數(shù)據(jù)的重新布局;所述數(shù)據(jù)遷移模塊用于根據(jù)調度模塊的調度指令并行遷移數(shù)據(jù)。進一步地,所述事件觸發(fā)模塊根據(jù)邏輯卷的狀態(tài)變化判斷是否啟動特定卷的負載均衡操作包括,當監(jiān)控模塊監(jiān)控到集群存儲系統(tǒng)增加或者刪除存儲節(jié)點,或者邏輯卷負載不均衡超過預設的閾值時,事件觸發(fā)模塊啟動指定卷的負載均衡操作,并自動觸發(fā)邏輯卷負載不均衡事件。進一步地,在指定卷啟動負載均衡操作時,所述調度模塊還根據(jù)所述邏輯卷的系統(tǒng)負載情況控制負載均衡調度的啟動停止及負載均衡快慢狀態(tài)間的切換。進一步地,所述邏輯卷的系統(tǒng)負載信息情況根據(jù)監(jiān)控模塊采集的CPU、內存、磁盤吞吐量和網絡帶寬占用量計算得到。進一步地,所述數(shù)據(jù)遷移模塊根據(jù)調度模塊的調度指令并行遷移數(shù)據(jù)包括,同時在多臺服務器上并行遷移數(shù)據(jù),及每個服務器上同時遷移多個文件并根據(jù)遷移服務器的負載情況調整并行遷移文件的個數(shù)。相應地,本發(fā)明還公開一種集群存儲自動負載均衡的方法,包括,監(jiān)控各存儲節(jié)點的負載狀態(tài),并根據(jù)獲取的負載狀態(tài)計算系統(tǒng)負載信息; 根據(jù)邏輯卷的狀態(tài)變化判斷是否啟動指定卷的負載均衡操作,并在啟動指定卷的負載均衡操作時自動觸發(fā)相應的負載不均衡事件;根據(jù)觸發(fā)的負載不均衡事件在線執(zhí)行負載均衡調度。進一步地,所述根據(jù)邏輯卷的狀態(tài)變化判斷是否啟動特定卷的負載均衡操作包括,當監(jiān)控到集群存儲系統(tǒng)增加或者刪除存儲節(jié)點,或者邏輯卷負載不均衡超過預設的閾值時,啟動指定卷的負載均衡操作,并自動觸發(fā)邏輯卷負載不均衡事件。進一步地,在指定卷啟動負載均衡操作時,將該卷加入到負載不均衡的卷隊列中,根據(jù)觸發(fā)的負載不均衡事件在線執(zhí)行負載均衡調度,包括,步驟I :判斷負載不均衡卷隊列是否為空,如是,則執(zhí)行步驟2 ;如否,則執(zhí)行步驟3 ;步驟2 :等待觸發(fā)事件,若事件到達,則執(zhí)行步驟3 ;若事件未到達,則阻塞等待;步驟3 :獲取負載不均衡卷隊列的隊首卷,執(zhí)行該卷的負載均衡;步驟4 :判斷該卷負載均衡是否成功,如是,則執(zhí)行步驟5 ;如否,則執(zhí)行步驟6 ;步驟5 :將該卷從負載不均衡卷隊列中刪除,執(zhí)行步驟2 ;步驟6 :將該卷移到負載不均衡卷隊列的尾部,執(zhí)行步驟2。進一步地,所述根據(jù)觸發(fā)的負載不均衡事件在線執(zhí)行負載均衡調度的步驟包括,根據(jù)調度指令實現(xiàn)各存儲節(jié)點數(shù)據(jù)的重新布局及同時在多臺服務器上并行遷移數(shù)據(jù)。進一步地,所述根據(jù)觸發(fā)的負載不均衡事件在線執(zhí)行負載均衡調度還包括,根據(jù)指定卷的系統(tǒng)負載情況控制負載均衡調度的啟動停止及負載均衡快慢狀態(tài)間的切換,所述邏輯卷的系統(tǒng)負載信息情況根據(jù)監(jiān)控模塊采集的CPU、內存、磁盤吞吐量和網絡帶寬占用量計算得到。本發(fā)明的技術方案,基于事件驅動機制實現(xiàn)集群存儲數(shù)據(jù)分布和容量負載均衡,具有完全自動化、智能化、在線執(zhí)行和并發(fā)執(zhí)行的特點。自動化使得集群存儲系統(tǒng)及時地執(zhí)行負載均衡,保證系統(tǒng)更多時間內處于相對均衡狀態(tài),從而使得前端數(shù)據(jù)訪問負載可以均衡地分散到后端各個節(jié)點上,極大減少人工干預并降低系統(tǒng)管理復雜性,提高集群存儲系統(tǒng)的性能、吞吐量和QoS服務質量,滿足集群存儲系統(tǒng)動態(tài)擴展的彈性需求;智能化使得前端業(yè)務頻繁訪問集群存儲邏輯卷數(shù)據(jù)時,系統(tǒng)能自動調慢或者暫停該卷上的負載均衡操作,從而不影響前端業(yè)務的數(shù)據(jù)訪問;而在前端業(yè)務訪問較輕時,又能重新啟動并加快邏輯卷上的數(shù)據(jù)遷移工作使之能盡快達到平衡狀態(tài);在線執(zhí)行使得集群存儲系統(tǒng)不需要暫停服務進行負載均衡,保持業(yè)務連續(xù)性;并行執(zhí)行,最大化利用集群的系統(tǒng)資源,實現(xiàn)高性能的負載均衡,有效縮短執(zhí)行時間。該方法使得集群存儲的負載均衡更加簡單、高效、透明,保證了集群存儲系統(tǒng)的高性能、高的Qos服務質量和彈性擴展。
圖I為現(xiàn)有技術中集群存儲負載均衡系統(tǒng)示意圖;圖2為本發(fā)明實施例的集群存儲自動負載均衡的系統(tǒng)結構框圖;圖3為本發(fā)明實施例的事件觸發(fā)模塊執(zhí)行過程的流程圖;圖4為本發(fā)明實施例的調度模塊執(zhí)行過程的流程圖;
圖5為本發(fā)明實施例的數(shù)據(jù)遷移模塊執(zhí)行過程的流程圖;圖6為本發(fā)明實施例的集群存儲自動負載均衡的方法流程圖。
具體實施例方式下面結合附圖和實施例對本發(fā)明作進一步說明。圖2為本發(fā)明實施例的集群存儲自動負載均衡的系統(tǒng)結構框圖。如圖2所示,整個系統(tǒng)包括監(jiān)控模塊201、觸發(fā)動作模塊202、信息同步模塊203、事件觸發(fā)模塊204、負載信息計算模塊205、調度模塊206、數(shù)據(jù)布局修復模塊207和數(shù)據(jù)遷移模塊208,所述事件觸發(fā)模塊204、負載信息計算模塊205、調度模塊206、數(shù)據(jù)布局修復模塊207和數(shù)據(jù)遷移模塊208構成整個系統(tǒng)的核心。所述監(jiān)控模塊201與負載信息計算模塊205連接,所述事件觸發(fā)模塊204分別與觸發(fā)動作模塊202和信息同步模塊203連接,所述負載信息計算模塊205分別與事件觸發(fā)模塊204和調度模塊206連接,所述事件觸發(fā)模塊204與調度模塊206連接,所述調度模塊206分別與數(shù)據(jù)布局修復模塊207和數(shù)據(jù)遷移模塊208連接。其中,監(jiān)控模塊201用于監(jiān)控各存儲節(jié)點的負載狀態(tài),如整個系統(tǒng)中所有邏輯卷的使用情況,所有服務器的CPU、內存、磁盤吞吐量和網絡帶寬占用量等系統(tǒng)負載,為負載信息計算模塊計算系統(tǒng)負載提供原始數(shù)據(jù);觸發(fā)動作模塊202是觸發(fā)自動負載均衡操作的入口之一,通過改變邏輯卷的狀態(tài)觸發(fā)自動負載均衡動作,如向集群存儲系統(tǒng)中增加/刪除節(jié)點等;信息同步模塊203用于實現(xiàn)整個集群系統(tǒng)中自動負載均衡相關信息的通信與同步,包括整個系統(tǒng)中服務器的狀態(tài)、負載等信息同步,使事件觸發(fā)模塊204根據(jù)不同的信息狀況觸發(fā)相應的負載均衡操作;事件觸發(fā)模塊204用于根據(jù)邏輯卷的狀態(tài)變化判斷是否啟動指定卷的負載均衡操作,并在啟動指定卷的負載均衡操作時自動觸發(fā)相應的負載不均衡事件,包括根據(jù)系統(tǒng)中卷狀態(tài),服務器狀態(tài)以及負載文件變化觸發(fā)相應的負載不均衡事務件;負載信息計算模塊205用于根據(jù)監(jiān)控模塊獲取的各存儲節(jié)點的負載狀態(tài)計算系統(tǒng)負載信息,判斷邏輯卷的負載狀況;調度模塊206用于根據(jù)觸發(fā)的負載不均衡事件在線執(zhí)行負載均衡調度,調度模塊是實現(xiàn)數(shù)據(jù)再均衡(卷的狀態(tài)變化引起)以及負載均衡執(zhí)行的調度器,依據(jù)卷的狀態(tài)和系統(tǒng)負載判定該卷負載均衡操作的啟動停止以及負載均衡快慢狀態(tài)間的相互切換;數(shù)據(jù)布局修復模塊207用于根據(jù)調度模塊的調度指令對集群存儲中各節(jié)點數(shù)據(jù)重新布局,為后期的數(shù)據(jù)遷移模塊的數(shù)據(jù)遷移做好準備;數(shù)據(jù)遷移模塊208根據(jù)調度模塊的調度指令并行遷移數(shù)據(jù)。
其中,系統(tǒng)根據(jù)邏輯卷的狀態(tài)變化自動判斷是否啟動特定卷的負載均衡操作。自動負載均衡主要是指在集群存儲系統(tǒng)邏輯卷增加/刪除存儲節(jié)點(bricks)成功后,或者卷內存儲節(jié)點(bricks)容量超過預設的不均衡閾值時,系統(tǒng)能自動地啟動數(shù)據(jù)負載均衡操作。本發(fā)明實施例中,系統(tǒng)的監(jiān)控模塊能監(jiān)控到使用中的邏輯卷中各個存儲節(jié)點(brick)的磁盤剩余量變化。當磁盤剩余量不平衡時,系統(tǒng)自動啟動數(shù)據(jù)負載均衡Data-Rebalance操作,經過數(shù)據(jù)重新布局修復及數(shù)據(jù)遷移,使得邏輯卷中各個存儲節(jié)點(brick)的磁盤剩余量變得均衡。當在使用中的邏輯卷增加存儲節(jié)點(bricks)時,新增加的存儲節(jié)點(bricks)沒有任何數(shù)據(jù),即沒有任何負載導致資源浪費,而原有的存儲節(jié)點(bricks)則因為數(shù)據(jù)太多而負載過重,集群存儲系統(tǒng)能監(jiān)控到系統(tǒng)增加了存儲節(jié)點后bricks,能自動啟動Data-Rebalance操作進行數(shù)據(jù)遷移,使得整個邏輯卷中所有存儲節(jié)點bricks上的數(shù)據(jù)分布均衡。同理,當邏輯卷刪除存儲節(jié)點時,被刪除存儲節(jié)點上的負載通過自動負載均衡操作進行數(shù)據(jù)遷移,使整個邏輯卷中所有存儲節(jié)點上的數(shù)據(jù)分布均衡。其中,邏輯卷負載不均衡閾值可根據(jù)實際情況進行設置,如設超過卷容量的75%,即自動觸發(fā)負載 均衡操作。該系統(tǒng)負載均衡能夠實現(xiàn)智能化,集群存儲系統(tǒng)收集每個節(jié)點的狀態(tài),計算CPU、內存、磁盤吞吐量和網絡帶寬占用量等系統(tǒng)負載,并根據(jù)服務器狀態(tài)和負載智能的選擇合適的服務器,動態(tài)的調整Data-Rebalance操作的快慢和啟停。其中,監(jiān)控模塊能夠監(jiān)控到整個系統(tǒng)中所有邏輯卷的使用情況,包括每個邏輯卷是否增加/刪除了存儲節(jié)點bricks,以及卷中bricks磁盤剩余量的均衡,從而判斷是否需要啟動該卷的Data-Rebalance操作。在邏輯卷啟動了 Data-Rebalance操作后,系統(tǒng)能根據(jù)監(jiān)控到的所有服務器的CPU、內存、磁盤吞吐量和網絡帶寬占用量等系統(tǒng)負載,判斷出邏輯卷的負載狀況,并根據(jù)邏輯卷的負載調整該卷數(shù)據(jù)遷移的啟停和快慢。比如在上層頻繁訪問該邏輯卷中數(shù)據(jù)時,系統(tǒng)能自動調慢或者暫停該卷上的Data-Rebalance操作,從而不影響上層的數(shù)據(jù)訪問;而在上層訪問較輕時,又能重新啟動并加快該卷上的數(shù)據(jù)遷移工作使之能盡快達到平衡狀態(tài)。本實施例能夠實現(xiàn)在線負載均衡功能,即集群存儲系統(tǒng)可以在對外提供正常數(shù)據(jù)訪問服務的同時,進行節(jié)點之間的數(shù)據(jù)遷移使得容量達到均衡狀態(tài)。在線執(zhí)行使得集群存儲系統(tǒng)不需要暫停服務進行負載均衡,保持業(yè)務連續(xù)性。在線執(zhí)行要求在進行數(shù)據(jù)遷移時監(jiān)控文件的訪問情況,如果文件已經打開進行讀寫操作,則需要推遲該文件的遷移,等到下次負載均衡時并且處于未打開狀態(tài)時執(zhí)行。并發(fā)執(zhí)行功能,集群存儲系統(tǒng)能同時在多臺服務器上并行的進行數(shù)據(jù)的遷移工作。本集群存儲系統(tǒng)上所有邏輯卷上的數(shù)據(jù)遷移工作都是由整個邏輯卷中所有服務器同時進行的,每個服務器負責一部分數(shù)據(jù)的遷移工作,較其他文件系統(tǒng)中僅單機進行數(shù)據(jù)遷移迅速。此外,每個服務器上可以同時遷移多個文件而不沖突,且在遷移過程中會自動根據(jù)系統(tǒng)中遷移服務器的負載而調整并行遷移的文件個數(shù),從而能充分應用系統(tǒng)資源又不影響上層的數(shù)據(jù)訪問。本發(fā)明采用的集群存儲自動負載均衡的系統(tǒng)是一種適用于非結構化數(shù)據(jù)應用環(huán)境的高性能海量集群NAS系統(tǒng)。通過分布式的Scale-out的集群體系架構,能夠實現(xiàn)32PB的系統(tǒng)規(guī)模、高達100GB/S帶寬,1000K并發(fā)0PS,并能夠實現(xiàn)動態(tài)的容量及性能擴展、卓越的系統(tǒng)高可用性。該系統(tǒng)借助虛擬化和并行化的卷組、文件系統(tǒng)資源管理,構建大規(guī)模、高性能、動態(tài)可擴展的共享存儲架構;同時支持豐富的高級數(shù)據(jù)管理功能,可擴展實現(xiàn)存儲、備份、歸檔及容災的復合數(shù)據(jù)管理需求。作為面向云存儲和大數(shù)據(jù)的高性能集群存儲系統(tǒng),該系統(tǒng)能夠滿足云計算/云存儲系統(tǒng)必備的彈性擴展特征,能夠實現(xiàn)自動負載均衡功能。圖3為本發(fā)明實施例的事件觸發(fā)模塊執(zhí)行過程的流程圖。事件觸發(fā)模塊是整個負載均衡過程的總調度者,負責負載均衡的事件觸發(fā)和自動執(zhí)行調度。它是一個常駐守護進程(Daemon),基于事件驅動機制實現(xiàn),集群存儲系統(tǒng)所有節(jié)點啟動時自動啟動該守護進程。事件觸發(fā)模塊維護一個負載處于不均衡的卷隊列(rbqueue),當使用集群存儲管理工具增加或刪除節(jié)點,或者探測到卷容量超過預先設置的不均衡閾值時,則把該卷加入到該負載不均衡卷隊列rbqueue中,并觸發(fā)調度事件。負載不均衡事件觸發(fā)后,事件觸發(fā)模塊將啟動調度(scheduler)模塊,從負載不均衡卷隊列rbqueue中取得隊首卷執(zhí)行自動負載均衡。如圖3所示,事件觸發(fā)模塊執(zhí)行過程如下
步驟301 :事件觸發(fā)模塊啟動,判斷負載不均衡卷隊列是否為空,如是,則執(zhí)行步驟302 ;如否,則執(zhí)行步驟303 ;步驟302 :等待觸發(fā)事件,若事件到達,則執(zhí)行步驟303 ;若事件未到達,則阻塞等待;步驟303 :獲取不均衡卷隊列隊首卷,啟動調度模塊,執(zhí)行該卷的負載均衡;步驟304 :判斷負載均衡是否成功,如是,則執(zhí)行步驟305 ;如否,則執(zhí)行步驟306 ;步驟305 :將該卷從不均衡卷隊列中刪除,執(zhí)行步驟302 ;步驟306 :將該卷移到不均衡卷隊列的尾部,執(zhí)行步驟302。圖4為本發(fā)明實施例的調度模塊執(zhí)行過程的流程圖。調度模塊是指定卷執(zhí)行自動負載均衡的調度器,負責負載均衡過程中的數(shù)據(jù)重新布局和數(shù)據(jù)遷移任務的調度工作,并根據(jù)各個集群節(jié)點的活動狀態(tài)和負載狀態(tài)不斷調整負載均衡的啟停和快慢,保證整個集群存儲系統(tǒng)中所有卷負載均衡的自動化和公平性,并盡量減少對前端業(yè)務正常訪問的影響。如圖4所示,當系統(tǒng)中某個邏輯卷需要執(zhí)行Data-Rebalance操作時,調度模塊執(zhí)行過程如下步驟401 :邏輯卷中所有存儲節(jié)點(bricks)涉及到的服務器的調度程序(scheduler)依據(jù)競爭機制,共同選舉出該邏輯卷的Master服務器,其余服務器則作為Slave服務器;步驟402 =Master服務器的scheduler依據(jù)整個系統(tǒng)的負載狀況判斷數(shù)據(jù)負載均衡Data-Rebalance操作是否能執(zhí)行,如是,則執(zhí)行步驟403,;如否,則執(zhí)行步驟409 ;其中,Master服務器的scheduler將該邏輯卷的遷移任務劃分為數(shù)據(jù)布局修復Fix-Iayout和數(shù)據(jù)遷移Migrate-data兩個步驟進行。步驟403 :該邏輯卷執(zhí)行數(shù)據(jù)負載均衡,在系統(tǒng)負載處于預先設定的閾值范圍內的情況下,Master服務器的scheduler根據(jù)各個服務器的負載情況分配數(shù)據(jù)重布局任務(Fix-Iayout) tl 到所有 Slave 節(jié)點;步驟404 =Slave服務器的scheduler根據(jù)分配到的數(shù)據(jù)重布局任務tl,進行并發(fā)執(zhí)行;步驟405 :判斷數(shù)據(jù)重布局任務tl是否完成,如是,則執(zhí)行步驟406,如否,則執(zhí)行步驟409 ;步驟406 =Master服務器的scheduler根據(jù)各個服務器的負載情況分配分配數(shù)據(jù)遷移任務t2到所有Slave節(jié)點;步驟407 =Slave服務器的scheduler根據(jù)分配到的數(shù)據(jù)遷移任務t2,進行并發(fā)執(zhí)行;步驟408 :判斷數(shù)據(jù)遷移任務t2是否完成,如是,則執(zhí)行步驟409,如否,則執(zhí)行步驟 409 ;步驟409:Master服務器的scheduler與事件觸發(fā)模塊通信,通過事件機制觸發(fā)下一個邏輯卷的Data-Rebalance操作。其中,數(shù)據(jù)重布局(Fix-Layout)的任務相對簡單快速,在數(shù)據(jù)重新布局修復的操作中,scheduler不進行任何控制。數(shù)據(jù)遷移的任務涉及到大量數(shù)據(jù)的讀寫操作,為避免對上層訪問產生影響,scheduler將依據(jù)負載信息計算模塊(calculator)計算的服務器的負載信息來判斷本機并行數(shù)據(jù)遷移量。集群存儲系統(tǒng)負載信息計算模塊收集每個節(jié)點的狀態(tài),計算CPU、內存、磁盤吞吐量和網絡帶寬占用量等系統(tǒng)負載,并根據(jù)服務器狀態(tài)和負載智能的選擇合適的服務器,智能動態(tài)的調整負載均衡的快慢和啟停。圖5為本發(fā)明實施例的數(shù)據(jù)遷移模塊執(zhí)行過程的流程圖。如圖5所示,數(shù)據(jù)遷移模塊的執(zhí)行流程如下
步驟501 :根據(jù)各個服務器的負載情況判斷是否分配數(shù)據(jù)遷移任務,如是,執(zhí)行步驟502;如否,則結束該進程;步驟502 :監(jiān)控文件的訪問情況,判斷是否進行負載均衡操作,如是,則執(zhí)行步驟503 ;如否,則執(zhí)行步驟506 ;步驟503 :判斷待遷移數(shù)據(jù)是否正在被前端業(yè)務打開訪問,如是,則執(zhí)行步驟504 ;如否,則執(zhí)行步驟505;步驟504 :推遲當前文件的遷移,等到下次負載均衡時并且文件處于未打開狀態(tài)時執(zhí)行數(shù)據(jù)遷移;步驟505:并行遷移數(shù)據(jù);步驟506 :調整并發(fā)量,等待下一個數(shù)據(jù)遷移任務,執(zhí)行步驟501。圖6為本發(fā)明實施例的集群存儲自動負載均衡的方法流程圖。如圖6所示,該方法包括監(jiān)控各存儲節(jié)點的負載狀態(tài),并根據(jù)獲取的負載狀態(tài)計算系統(tǒng)負載信息;根據(jù)邏輯卷的狀態(tài)變化判斷是否啟動指定卷的負載均衡操作,并在啟動指定卷的負載均衡操作時自動觸發(fā)相應的負載不均衡事件;根據(jù)觸發(fā)的負載不均衡事件在線執(zhí)行負載均衡調度。所述根據(jù)邏輯卷的狀態(tài)變化判斷是否啟動特定卷的負載均衡操作包括,當監(jiān)控到集群存儲系統(tǒng)增加或者刪除存儲節(jié)點,或者邏輯卷負載不均衡超過預設的閾值時,啟動指定卷的負載均衡操作,并自動觸發(fā)邏輯卷負載不均衡事件。所述根據(jù)觸發(fā)的負載不均衡事件在線執(zhí)行負載均衡調度的步驟包括,根據(jù)調度指令實現(xiàn)各存儲節(jié)點數(shù)據(jù)的重新布局及同時在多臺服務器上并行遷移數(shù)據(jù)。
所述根據(jù)觸發(fā)的負載不均衡事件在線執(zhí)行負載均衡調度還包括,根據(jù)指定卷的系統(tǒng)負載情況控制負載均衡調度的啟動停止及負載均衡快慢狀態(tài)間的切換,所述邏輯卷的系統(tǒng)負載信息情況根據(jù)監(jiān)控模塊采集的CPU、內存、磁盤吞吐量和網絡帶寬占用量計算得到。本發(fā)明的技術方案,基于事件驅動機制實現(xiàn)集群存儲負載均衡,具有完全自動化、智能化、在線執(zhí)行和并發(fā)執(zhí)行的特點。自動化使得集群存儲系統(tǒng)及時地執(zhí)行負載均衡,保證系統(tǒng)更多時間內處于相對均衡狀態(tài),從而使得前端數(shù)據(jù)訪問負載可以均衡地分散到后端各個節(jié)點上,提高集群存儲系統(tǒng)的性能、吞吐量和QoS服務質量。負載均衡自動化,可以極大減少人工干預并降低系統(tǒng)管理復雜性,滿足集群存儲系統(tǒng)動態(tài)擴展的彈性需求。智能化使得前端業(yè)務頻繁訪問集群存儲邏輯卷數(shù)據(jù)時,系統(tǒng)能自動調慢或者暫停該卷上的負載均衡操作,從而不影響前端業(yè)務的數(shù)據(jù)訪問;而在前端業(yè)務訪問較輕時,又能重新啟動并加快邏輯卷上的數(shù)據(jù)遷移工作使之能盡快達到平衡狀態(tài)。在線執(zhí)行使得集群存儲系統(tǒng)不需要暫停服務進行負載均衡,保持業(yè)務連續(xù)性。并行執(zhí)行,最大化利用集群的系統(tǒng)資源,實現(xiàn)高性能 的負載均衡,有效縮短執(zhí)行時間。以上實施例提供的技術方案中的全部或部分內容可以通過程序來指令相關的硬件來完成,所述的程序可以存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,包括如下步驟(上述方法的步驟),所述的存儲介質,如R0M/RAM、磁碟、光盤等。上述僅為本發(fā)明的較佳實施例及所運用技術原理,任何熟悉本技術領域的技術人員在本發(fā)明披露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍內。
權利要求
1.一種集群存儲自動負載均衡的系統(tǒng),其特征在于,所述系統(tǒng)包括監(jiān)控模塊、觸發(fā)動作模塊、信息同步模塊、事件觸發(fā)模塊、負載信息計算模塊、調度模塊、數(shù)據(jù)布局修復模塊和數(shù)據(jù)遷移模塊,所述監(jiān)控模塊與負載信息計算模塊連接,所述事件觸發(fā)模塊分別與觸發(fā)動作模塊和信息同步模塊連接,所述負載信息計算模塊分別與事件觸發(fā)模塊和調度模塊連接,所述事件觸發(fā)模塊與調度模塊連接,所述調度模塊分別與數(shù)據(jù)布局修復模塊和數(shù)據(jù)遷移模塊連接,其中, 所述監(jiān)控模塊用于監(jiān)控各存儲節(jié)點的負載狀態(tài); 所述觸發(fā)動作模塊用于改變邏輯卷的狀態(tài),以觸發(fā)自動負載均衡動作; 所述信息同步模塊用于同步集群系統(tǒng)中負載均衡信息; 所述負載信息計算模塊用于根據(jù)監(jiān)控模塊獲取的各存儲節(jié)點的負載狀態(tài)計算系統(tǒng)負載; 所述事件觸發(fā)模塊用于根據(jù)邏輯卷的狀態(tài)變化判斷是否啟動指定卷的負載均衡操作,并在啟動指定卷的負載均衡操作時自動觸發(fā)相應的負載不均衡事件; 所述調度模塊用于根據(jù)觸發(fā)的負載不均衡事件在線執(zhí)行負載均衡調度; 所述數(shù)據(jù)布局修復模塊用于根據(jù)調度模塊的調度指令實現(xiàn)各存儲節(jié)點數(shù)據(jù)的重新布局; 所述數(shù)據(jù)遷移模塊用于根據(jù)調度模塊的調度指令并行遷移數(shù)據(jù)。
2.根據(jù)權利要求I所述的集群存儲自動負載均衡的系統(tǒng),其特征在于,所述事件觸發(fā)模塊根據(jù)邏輯卷的狀態(tài)變化自動判斷是否啟動特定卷的負載均衡操作包括,當監(jiān)控模塊監(jiān)控到集群存儲系統(tǒng)增加或者刪除存儲節(jié)點,或者邏輯卷負載不均衡超過預設的閾值時,事件觸發(fā)模塊啟動指定卷的負載均衡操作,并自動觸發(fā)邏輯卷負載不均衡事件。
3.根據(jù)權利要求I所述的集群存儲自動負載均衡的系統(tǒng),其特征在于,在指定卷啟動負載均衡操作時,所述調度模塊還根據(jù)所述邏輯卷的系統(tǒng)負載情況控制負載均衡調度的啟動停止及負載均衡快慢狀態(tài)間的切換。
4.根據(jù)權利要求5所述的集群存儲自動負載均衡的系統(tǒng),其特征在于,所述邏輯卷的系統(tǒng)負載情況根據(jù)監(jiān)控模塊采集的CPU、內存、磁盤呑吐量和網絡帶寬占用量計算得到。
5.根據(jù)權利要求I所述的集群存儲自動負載均衡的系統(tǒng),其特征在于,所述數(shù)據(jù)遷移模塊根據(jù)調度模塊的調度指令并行遷移數(shù)據(jù)包括,同時在多臺服務器上并行遷移數(shù)據(jù),及每個服務器上同時遷移多個文件井根據(jù)遷移服務器的負載情況調整并行遷移文件的個數(shù)。
6.一種集群存儲自動負載均衡的方法,其特征在于,包括, 監(jiān)控各存儲節(jié)點的負載狀態(tài),井根據(jù)獲取的負載狀態(tài)計算系統(tǒng)負載信息; 根據(jù)邏輯卷的狀態(tài)變化判斷是否啟動指定卷的負載均衡操作,并在啟動指定卷的負載均衡操作時自動觸發(fā)相應的負載不均衡事件; 根據(jù)觸發(fā)的負載不均衡事件在線執(zhí)行負載均衡調度。
7.根據(jù)權利要求6所述的集群存儲自動負載均衡的方法,其特征在于,所述根據(jù)邏輯卷的狀態(tài)變化判斷是否啟動特定卷的負載均衡操作包括,當監(jiān)控到集群存儲系統(tǒng)增加或者刪除存儲節(jié)點,或者邏輯卷負載不均衡超過預設的閾值時,啟動指定卷的負載均衡操作,并自動觸發(fā)邏輯卷負載不均衡事件。
8.根據(jù)權利要求6所述的集群存儲自動負載均衡的方法,其特征在于,在指定卷啟動負載均衡操作吋,將該卷加入到負載不均衡的卷隊列中,根據(jù)觸發(fā)的負載不均衡事件在線執(zhí)行負載均衡調度,包括, 步驟I :判斷負載不均衡卷隊列是否為空,如是,則執(zhí)行步驟2 ;如否,則執(zhí)行步驟3 ; 步驟2 :等待觸發(fā)事件,若事件到達,則執(zhí)行步驟3 ;若事件未到達,則阻塞等待; 步驟3 :獲取負載不均衡卷隊列的隊首卷,執(zhí)行該卷的負載均衡; 步驟4 :判斷該卷負載均衡是否成功,如是,則執(zhí)行步驟5 ;如否,則執(zhí)行步驟6 ; 步驟5 :將該卷從負載不均衡卷隊列中刪除,執(zhí)行步驟2 ; 步驟6 :將該卷移到負載不均衡卷隊列的尾部,執(zhí)行步驟2。
9.根據(jù)權利要求6所述的集群存儲自動負載均衡的方法,其特征在于,所述根據(jù)觸發(fā) 的負載不均衡事件在線執(zhí)行負載均衡調度的步驟包括,根據(jù)調度指令實現(xiàn)各存儲節(jié)點數(shù)據(jù)的重新布局及同時在多臺服務器上并行遷移數(shù)據(jù)。
10.根據(jù)權利要求6所述的集群存儲自動負載均衡的方法,其特征在于,所述根據(jù)觸發(fā)的負載不均衡事件在線執(zhí)行負載均衡調度還包括,根據(jù)指定卷的系統(tǒng)負載情況控制負載均衡調度的啟動停止及負載均衡快慢狀態(tài)間的切換,所述邏輯卷的系統(tǒng)負載信息情況根據(jù)監(jiān)控模塊采集的CPU、內存、磁盤呑吐量和網絡帶寬占用量計算得到。
全文摘要
本發(fā)明公開了一種集群存儲自動負載均衡的系統(tǒng)及方法,該方法基于事件驅動機制實現(xiàn)集群存儲數(shù)據(jù)分布和容量負載均衡,具有完全自動化、智能化、在線執(zhí)行和并發(fā)執(zhí)行的特點,負載均衡自動化極大減少人工干預并降低系統(tǒng)管理復雜性,滿足集群存儲系統(tǒng)動態(tài)擴展的彈性需求;在線執(zhí)行使得集群存儲系統(tǒng)能夠保持業(yè)務連續(xù)性;智能化充分考慮系統(tǒng)當前工作負載,并據(jù)此對負載均衡執(zhí)行過程進行調度,最大減少負載均衡操作對前端正常業(yè)務造成的影響;并發(fā)性能夠最大化利用集群的系統(tǒng)資源,實現(xiàn)高性能的負載均衡,有效縮短執(zhí)行時間。該方法使得集群存儲的負載均衡更加簡單、高效、透明,保證了集群存儲系統(tǒng)的高性能、高的Qos服務質量和彈性擴展。
文檔編號H04L29/08GK102857577SQ201210359628
公開日2013年1月2日 申請日期2012年9月24日 優(yōu)先權日2012年9月24日
發(fā)明者劉愛貴 申請人:北京聯(lián)創(chuàng)信安科技有限公司