本發(fā)明涉及分布式系統(tǒng)技術領域,特別是涉及一種分布式系統(tǒng)數據重分配方法及其裝置。
背景技術:
分布式系統(tǒng)包括有多個對象存儲設備osd,每個對象存儲設備包括多個對象,當分布式系統(tǒng)進行動態(tài)擴容或縮容時,即分布式系統(tǒng)包含的osd個數發(fā)生變化時,需要將變化前的osd內的數據進行讀取,并重新分配寫入至變化后的osd內,其中,這些讀取請求和寫入請求均是由分布式系統(tǒng)中的主對象存儲設備控制發(fā)送的。
數據重分配的最小單元為對象,目前數據重分配采用固定進程數進行并發(fā)重分配操作,但是,這種情況下,當接收重分配請求的osd前端壓力較大時,數據重分配的進程會和正常業(yè)務搶占系統(tǒng)資源,造成前端正常業(yè)務變慢,甚至失敗的情況出現(xiàn);當接收重分配請求的osd前端壓力較小時,數據重分配的進程不能充分利用系統(tǒng)空閑資源,提高數據重分配的效率;可見,目前固定并發(fā)數的方式自適應效果差。
因此,如何提供一種自適應效果好的分布式系統(tǒng)數據重分配方法及其裝置是本領域技術人員目前需要解決的問題。
技術實現(xiàn)要素:
本發(fā)明的目的是提供一種分布式系統(tǒng)數據重分配方法及其裝置,能夠根據對象存儲設備的前端業(yè)務情況調整數據重分配的并發(fā)進程數,自適應調整的效果好。
為解決上述技術問題,本發(fā)明提供了一種分布式系統(tǒng)數據重分配方法,所述分布式系統(tǒng)包括多個對象存儲設備,每個所述對象存儲設備包括多個對象;所述方法包括:
每個所述對象存儲設備周期性收集自身的負載信息并傳遞給主對象存儲設備;
所述主對象存儲設備依據接收到的全部所述對象存儲設備的負載信息以及第一預設策略,動態(tài)調整進行數據重分配的并發(fā)進程數;
所述主對象存儲設備按照調整后得到的并發(fā)進程數發(fā)送數據重分配請求至相應的對象,進行數據重分配操作;所述數據重分配請求包括讀請求和寫請求。
優(yōu)選地,還包括:
接收到多個所述重分配請求的對象存儲設備,依據自身前端正常業(yè)務的工作延時以及第二預設策略控制調整各個所述重分配請求下發(fā)至自身磁盤的速度。
優(yōu)選地,所述主對象存儲設備按照調整后得到的并發(fā)對象個數發(fā)送數據重分配請求至相應的對象,進行數據重分配操作的過程具體為:
步驟s31:判斷當前觸發(fā)的并發(fā)進程的個數是否達到所述調整后得到的并發(fā)進程數;若未達到,進入步驟s32;若達到,進入步驟s33;
步驟s32:所述主對象存儲設備觸發(fā)一個并發(fā)進程;并返回步驟s31;在所述并發(fā)進程內,所述主對象存儲設備向相應的原始對象存儲設備發(fā)送讀請求,讀操作完成后,對讀取的數據進行計算處理后,向相應的新增對象存儲設備發(fā)送寫請求,進行寫入操作,寫入完成后,所述相應的新增對象存儲設備返回完成響應;
步驟s33:等待有新增對象存儲設備返回所述完成響應,當接收到所述完成響應后,令當前觸發(fā)的并發(fā)進程的個數減1;返回步驟s32。
優(yōu)選地,所述負載信息包括內存占用率、cpu占用率、磁盤util值、前端正常業(yè)務數量。
優(yōu)選地,所述對象存儲設備將自身的負載信息傳遞給主對象存儲設備的過程具體為:
所述主對象存儲設備周期性獲取自身負載信息以及除自身以外的其余對象存儲設備采集的負載信息;
或各個所述對象存儲設備與所述主對象存儲設備進行信息交互的過程中,攜帶傳遞自身采集的負載信息至所述主對象存儲設備。
為解決上述技術問題,本發(fā)明還提供了一種分布式系統(tǒng)數據重分配裝置,所述分布式系統(tǒng)包括多個對象存儲設備,每個所述對象存儲設備包括多個對象;所述裝置包括:
設置于所述對象存儲設備上的收集模塊,用于周期性收集自身的負載信息并傳遞給主對象存儲設備;
設置于所述主對象存儲設備上的第一分析模塊,用于依據接收到的全部所述對象存儲設備的負載信息以及第一預設策略,動態(tài)調整進行數據重分配的并發(fā)進程數;
設置于所述主對象存儲設備上的重分配控制模塊,用于按照調整后得到的并發(fā)進程數發(fā)送數據重分配請求至相應的對象,進行數據重分配操作;所述數據重分配請求包括讀請求和寫請求。
優(yōu)選地,還包括:
延時控制模塊,用于在自身所處的對象存儲設備接收到多個所述重分配請求時,依據自身前端正常業(yè)務的工作延時以及第二預設策略控制調整各個所述重分配請求下發(fā)至自身磁盤的速度。
優(yōu)選地,所述重分配控制模塊具體包括:
并發(fā)數判斷單元,用于判斷當前觸發(fā)的并發(fā)進程的個數是否達到所述調整后得到的并發(fā)進程數;若未達到,觸發(fā)進程并發(fā)單元;若達到,觸發(fā)等待單元;
所述進程并發(fā)單元,用于在自身所處的對象存儲設備為主對象存儲設備時且收到觸發(fā)時,觸發(fā)一個并發(fā)進程;并觸發(fā)所述并發(fā)數判斷單元;在所述并發(fā)進程內,所述主對象存儲設備向相應的原始對象存儲設備發(fā)送讀請求,讀操作完成后,對讀取的數據進行計算處理后,向相應的新增對象存儲設備發(fā)送寫請求,進行寫入操作,寫入完成后,所述相應的新增對象存儲設備返回完成響應;
所述等待單元,用于等待有新增對象存儲設備返回所述完成響應,當接收到所述完成響應后,令當前觸發(fā)的并發(fā)進程的個數減1;觸發(fā)所述進程并發(fā)單元。
優(yōu)選地,所述收集模塊具體包括:采集單元和信息交互單元或主動獲取單元;
所述采集單元,用于采集自身的負載信息;
所述信息交互單元,用于自身所處的對象存儲設備與所述主對象存儲設備進行信息交互的過程中,攜帶傳遞自身采集的負載信息至所述主對象存儲設備;
所述主動獲取單元,用于在自身所處的對象存儲設備為主對象存儲設備時,周期性獲取自身負載信息以及除自身以外的其余對象存儲設備采集的負載信息。
本發(fā)明提供了一種分布式系統(tǒng)數據重分配方法及其裝置,根據各個對象存儲設備的負載信息確定各個對象存儲設備的前端壓力,進而調整并發(fā)進程數,使得能夠對象存儲設備前端壓力較大時,減少并發(fā)進程數,避免數據重分配操作占用正常業(yè)務的資源,影響正常業(yè)務的進行;在對象存儲設備的前端壓力較小時,增大并發(fā)進程數,使得分布式系統(tǒng)的空閑資源能夠得到充分的利用,提高數據重分配操作的效率。通過上述操作,能夠提高分布式系統(tǒng)內進行數據重分配時的自適應程度,自適應效果好。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對現(xiàn)有技術和實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發(fā)明提供的一種分布式系統(tǒng)數據重分配方法的過程的流程圖;
圖2為本發(fā)明提供的一種確定并發(fā)進程數后的重分配過程的流程圖;
圖3為本發(fā)明提供的一種分布式系統(tǒng)數據重分配裝置的結構示意圖。
具體實施方式
本發(fā)明的核心是提供一種分布式系統(tǒng)數據重分配方法及其裝置,能夠根據對象存儲設備的前端業(yè)務情況調整數據重分配的并發(fā)進程數,自適應調整的效果好。
為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明提供了一種分布式系統(tǒng)數據重分配方法,分布式系統(tǒng)包括多個對象存儲設備,每個對象存儲設備包括多個對象;參見圖1所示,圖1為本發(fā)明提供的一種分布式系統(tǒng)數據重分配方法的過程的流程圖;該方法包括:
步驟s1:每個對象存儲設備周期性收集自身的負載信息并傳遞給主對象存儲設備;
步驟s2:主對象存儲設備依據接收到的全部對象存儲設備的負載信息以及第一預設策略,動態(tài)調整進行數據重分配的并發(fā)進程數;
步驟s3:主對象存儲設備按照調整后得到的并發(fā)進程數發(fā)送數據重分配請求至相應的對象,進行數據重分配操作;數據重分配請求包括讀請求和寫請求。
作為優(yōu)選地,該方法還包括:
接收到多個重分配請求的對象存儲設備,依據自身前端正常業(yè)務的工作延時以及第二預設策略控制調整各個重分配請求下發(fā)至自身磁盤的速度。
可以理解的是,對象存儲設備接收到重分配請求后,會依據重分配請求的內容讀取相應對象的內容或在相應對象內寫入相應的數據,這兩個過程中均需要訪問對象后方的磁盤,對象接收到讀請求或寫請求后,需要根據當前前端正常業(yè)務的延時來判讀自身是否需要減慢將讀請求或寫請求下發(fā)至磁盤的速度,因為,若按照正常情況下發(fā),可能會出現(xiàn)重分配請求搶占正常業(yè)務的磁盤資源的情況,因此,為保證正常業(yè)務的進行,需要調整重分配請求下發(fā)至磁盤的速度。
作為優(yōu)選地,參見圖2所示,圖2為本發(fā)明提供的一種確定并發(fā)進程數后的重分配過程的流程圖;步驟s3的過程具體為:
步驟s31:判斷當前觸發(fā)的并發(fā)進程的個數是否達到調整后得到的并發(fā)進程數;若未達到,進入步驟s32;若達到,進入步驟s33;
步驟s32:主對象存儲設備觸發(fā)一個并發(fā)進程;并返回步驟s31;在并發(fā)進程內,主對象存儲設備向相應的原始對象存儲設備發(fā)送讀請求,讀操作完成后,對讀取的數據進行計算處理后,向相應的新增對象存儲設備發(fā)送寫請求,進行寫入操作,寫入完成后,相應的新增對象存儲設備返回完成響應;
步驟s33:等待有新增對象存儲設備返回完成響應,當接收到完成響應后,令當前觸發(fā)的并發(fā)進程的個數減1;返回步驟s32。
其中,負載信息包括內存占用率、cpu占用率、磁盤util值、前端正常業(yè)務數量。當然,負載信息還可包含其他參數信息,本發(fā)明對此不作限定。
另外,需要注意的是,新增對象存儲設備針對的是分布式系統(tǒng)擴容的情況,當分布式系統(tǒng)縮容的時候,數據重分配的過程即是從系統(tǒng)中的部分對象存儲設備內讀取,然后寫入其他對象存儲設備內。
進一步可知,步驟s1中,對象存儲設備將自身的負載信息傳遞給主對象存儲設備的過程具體為:
主對象存儲設備周期性獲取自身負載信息以及除自身以外的其余對象存儲設備采集的負載信息;
或各個對象存儲設備與主對象存儲設備進行信息交互的過程中,攜帶傳遞自身采集的負載信息至主對象存儲設備。
即該負載信息可由主對象存儲設備主動獲取,或者由成員對象存儲設備主動發(fā)送給主對象存儲設備,或者是在各個對象存儲設備進行信息交互時,攜帶給其他的對象存儲設備,或者還可采用其他方式,具體采用哪種方式本發(fā)明不作限定。
本發(fā)明提供了一種分布式系統(tǒng)數據重分配方法,根據各個對象存儲設備的負載信息確定各個對象存儲設備的前端壓力,進而調整并發(fā)進程數,使得能夠對象存儲設備前端壓力較大時,減少并發(fā)進程數,避免數據重分配操作占用正常業(yè)務的資源,影響正常業(yè)務的進行;在對象存儲設備的前端壓力較小時,增大并發(fā)進程數,使得分布式系統(tǒng)的空閑資源能夠得到充分的利用,提高數據重分配操作的效率。通過上述操作,能夠提高分布式系統(tǒng)內進行數據重分配時的自適應程度,自適應效果好。
本發(fā)明還提供了一種分布式系統(tǒng)數據重分配裝置,分布式系統(tǒng)包括多個對象存儲設備,每個對象存儲設備包括多個對象;參見圖3所示,圖3為本發(fā)明提供的一種分布式系統(tǒng)數據重分配裝置的結構示意圖。該裝置包括:
設置于對象存儲設備上的收集模塊1,用于周期性收集自身的負載信息并傳遞給主對象存儲設備;
設置于主對象存儲設備上的第一分析模塊2,用于依據接收到的全部對象存儲設備的負載信息以及第一預設策略,動態(tài)調整進行數據重分配的并發(fā)進程數;
設置于主對象存儲設備上的重分配控制模塊3,用于按照調整后得到的并發(fā)進程數發(fā)送數據重分配請求至相應的對象,進行數據重分配操作;數據重分配請求包括讀請求和寫請求。
作為優(yōu)選地,該裝置還包括:
延時控制模塊4,用于在自身所處的對象存儲設備接收到多個重分配請求時,依據自身前端正常業(yè)務的工作延時以及第二預設策略控制調整各個重分配請求下發(fā)至自身磁盤的速度。
其中,延時控制模塊4需要根據收集模塊1收集的負載信息分析自身前端的業(yè)務情況,并根據接收到的重分配控制模塊3發(fā)送的重分配請求調整其下發(fā)速度。
其中,重分配控制模塊3具體包括:
并發(fā)數判斷單元,用于判斷當前觸發(fā)的并發(fā)進程的個數是否達到調整后得到的并發(fā)進程數;若未達到,觸發(fā)進程并發(fā)單元;若達到,觸發(fā)等待單元;
進程并發(fā)單元,用于在自身所處的對象存儲設備為主對象存儲設備時且收到觸發(fā)時,觸發(fā)一個并發(fā)進程;并觸發(fā)并發(fā)數判斷單元;在并發(fā)進程內,主對象存儲設備向相應的原始對象存儲設備發(fā)送讀請求,讀操作完成后,對讀取的數據進行計算處理后,向相應的新增對象存儲設備發(fā)送寫請求,進行寫入操作,寫入完成后,相應的新增對象存儲設備返回完成響應;
等待單元,用于等待有新增對象存儲設備返回完成響應,當接收到完成響應后,令當前觸發(fā)的并發(fā)進程的個數減1;觸發(fā)進程并發(fā)單元。
另外,收集模塊1具體包括:采集單元和信息交互單元或主動獲取單元;
采集單元,用于采集自身的負載信息;
信息交互單元,用于自身所處的對象存儲設備與主對象存儲設備進行信息交互的過程中,攜帶傳遞自身采集的負載信息至主對象存儲設備;
主動獲取單元,用于在自身所處的對象存儲設備為主對象存儲設備時,周期性獲取自身負載信息以及除自身以外的其余對象存儲設備采集的負載信息。
本發(fā)明提供了一種分布式系統(tǒng)數據重分配裝置,根據各個對象存儲設備的負載信息確定各個對象存儲設備的前端壓力,進而調整并發(fā)進程數,使得能夠對象存儲設備前端壓力較大時,減少并發(fā)進程數,避免數據重分配操作占用正常業(yè)務的資源,影響正常業(yè)務的進行;在對象存儲設備的前端壓力較小時,增大并發(fā)進程數,使得分布式系統(tǒng)的空閑資源能夠得到充分的利用,提高數據重分配操作的效率。通過上述操作,能夠提高分布式系統(tǒng)內進行數據重分配時的自適應程度,自適應效果好。
本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
還需要說明的是,在本說明書中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
對所公開的實施例的上述說明,使本領域專業(yè)技術人員能夠實現(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領域的專業(yè)技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其他實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。