一種復制過程調整方法及裝置制造方法
【專利摘要】本發明提供一種復制過程調整方法及裝置,其中,該方法包括:步驟A、復制源設備啟動一次復制并轉步驟B;步驟B、啟動具有預設定時時長的定時器,并統計當前定時時長內復制源設備的數據發送參數Psent以及復制容量參數Psucc;步驟C、在所述定時器啟動后使用復制源設備內部保存的復制發送窗口繼續向復制目標設備發送復制命令;步驟D、在所述定時器超時后判斷Psent/Psucc的比值是否達到第一預設閾值,如果沒有達到則增大復制源設備內部保存的復制發送窗口;然后轉步驟B。本發明既可以有效避免復制帶寬惡化時持續發送大量數據導致發生嚴重擁塞和丟包的情況,也可以有效避免復制帶寬狀況良好時不能充分利用復制帶寬的情況。
【專利說明】一種復制過程調整方法及裝置
【技術領域】
[0001]本發明涉及存儲【技術領域】,尤其涉及一種復制過程調整方法及裝置。
【背景技術】
[0002]遠程復制可以將生產中心的數據通過遠程鏈路(比如IP或者FC)傳輸到災難備份中心,這樣可以保證當生產中心發生故障時,可以通過災難備份中心的數據進行恢復。
[0003]在常見的數據中心數據保護方案中,遠程復制是一種典型的技術方案。通過遠程復制,管理者可以將生產中心的數據通過遠程鏈路(比如IP或者Fe)傳輸到災難備份中心(災備中心),這樣可以保證當生產中心發生故障時,可以通過災備中心的數據進行恢復。圖1是一個典型的遠程復制解決方案,在該方案中,生產中心的存儲設備用于日常業務運行,災備中心的存儲設備作為備份,二者之間通過網絡連接,通過復制功能傳輸數據。同時,應用服務器通過網絡連接到兩個數據中心,一旦生產中心發生災難,應用立即可以切換到災備中心去。
[0004]存儲設備制造商通常會通過私有的復制協議來實現生產中心到災備中心的數據傳輸,這個過程被稱為復制過程。在復制過程中,其中一個比較關鍵的參數是復制并發命令數(也稱為復制發送窗口)。假設該參數取值為64,則復制源設備可以同時發送64個命令。但是只有任意一個命令被復制目標設備處理完成并返回后,復制源設備才可以發送下一個命令,也就是說當前并發處理的命令數不能超過64。
[0005]在很多情況下,存儲設備會采用默認的復制并發命令數,即采用默認復制發送窗口進行復制。然而有時候默認復制發送窗口的大小未必能滿足實際業務需要,而管理員可以結合網絡實際情況通過存儲設備提供的配置接口手工修改該復制發送窗口。由管理員來設置合理的復制發送窗口,對管理員要求較高;如果參數設置不合理,將影響復制的性能和功能,比如復制心跳報文無法及時發送等。
【發明內容】
[0006]有鑒于此,本發明提供一種復制過程調整裝置,應用于作為復制源設備的存儲設備上,以控制該復制源設備向復制目標設備發送復制命令的過程,該裝置包括復制執行單元、業務統計單元、壓力分析單元以及復制調整單元,其中:
[0007]復制執行單元,用于在啟動一次復制時觸發所述業務統計單元啟動定時器,并在定時器啟動后根據業務統計單元的通知使用復制源設備內部保存的復制發送窗口繼續向復制目標設備發送復制命令;
[0008]業務統計單元,用于啟動具有預設定時時長的定時器,在所述定時器啟動后通知復制執行單元繼續復制,并統計當前定時時長內復制源設備的數據發送參數Psent以及復制容量參數Psucc ;
[0009]壓力分析單元,用于在所述定時器超時后判斷Psent/Psucc的比值是否達到第一預設閾值,如果沒有達到,則通知復制調整單元進行正向調整;[0010]復制調整單元,用于根據壓力分析單元的通知對所述復制發送窗口進行調整,并在調整完成后轉業務統計單元處理,其中當壓力分析單元的通知為正向調整通知時,所述調整為增大復制源設備內部保存的復制發送窗口。
[0011]本發明還提供一種復制過程調整方法,應用于作為復制源設備的存儲設備上,以控制該復制源設備向復制目標設備發送復制命令的過程,該方法包括:
[0012]步驟A、復制源設備啟動一次復制并轉步驟B ;
[0013]步驟B、啟動具有預設定時時長的定時器,并統計當前定時時長內復制源設備的數據發送參數Psent以及復制容量參數Psucc ;
[0014]步驟C、在所述定時器啟動后使用復制源設備內部保存的復制發送窗口繼續向復制目標設備發送復制命令;
[0015]步驟D、在所述定時器超時后判斷Psent/Psucc的比值是否達到第一預設閾值,如果沒有達到則增大復制源設備內部保存的復制發送窗口 ;然后轉步驟B。
[0016]無論是廣域網鏈路帶寬發生變化,還是復制目標設備發生任何變化而導致復制帶寬變化,本發明均可以讓復制源設備很快地適應這種變化,既可以有效避免復制帶寬惡化時持續發送大量數據導致發生嚴重擁塞和丟包的情況,也可以有效避免復制帶寬狀況良好時不能充分利用復制帶寬的情況。
【專利附圖】
【附圖說明】
[0017]圖1是一種典型的數據復制過程示意圖。
[0018]圖2是本發明一種實施方式中復制過程調整裝置的邏輯結構圖。
[0019]圖3是本發明一種實施方式中復制過程調整方法的流程圖。
【具體實施方式】
[0020]請參考圖1,生產中心與災備中心通常會通過廣域網相連,而廣域網的特點是環境復雜多變。當廣域網的網絡環境發生變化時,比如說當廣域網鏈路發生擁塞、或者網絡中某個交換機/路由器故障是,其可能導致原來相對高速的鏈路突然變為低速鏈路。這種情況需要管理員來調低復制發送窗口,否則只會導致加劇鏈路擁塞。一種可以考慮改進方案是定期檢測廣域網鏈路的情況,根據廣域網鏈路的狀況來動態調整參數。然而這種方式效果依然不理想,首先對廣域網鏈路的探測需要在已有的通信協議上進行再次開發,其次探測結果存在一定的不可靠性。舉例來說,廣域網沿途海量網絡設備或者防火墻等設備上部署的安全策略可能會把復制源設備發送的探測報文丟棄掉,但同時允許攜帶復制命令的業務報文通過。這就會導致探測的結果是鏈路帶寬下降,但實際上對于復制業務來說,鏈路帶寬未有變化。這是一種典型的探測結果不可信的情況,最后,為了更為實時地了解廣域網鏈路的狀況,無疑需要采用更高頻率的探測機制,但這種高頻率的鏈路探測無疑也是在占用廣域網寶貴的帶寬資源。
[0021]本發明并不是從網絡的維度來解決復制發送窗口調整的問題,而是從復制業務本身著手。在一種優選的實施方式中,本發明提供一種復制過程調整裝置,該裝置應用于作為復制源設備的存儲設備上;該裝置包括:復制執行單元、業務統計單元、壓力分析單元以及復制調整單元。在優選的方案中,該裝置可以通過計算機軟件實現,其運行在存儲設備上時執行如下的處理流程。
[0022]步驟101,復制執行單元在啟動一次復制時觸發所述業務統計單元執行步驟102 ;
[0023]步驟102,業務統計單元啟動具有預設定時時長的定時器,通知復制執行單元執行步驟103,并轉步驟104繼續處理;
[0024]步驟103,復制執行單元使用復制源設備內部保存的復制發送窗口向復制目標設備發送復制命令,并在本次復制結束時通知業務統計單元轉入步驟107處理;
[0025]步驟104,業務統計單元統計該定時時長內復制源設備的數據發送參數Psent以及當前定時時長內的復制容量參數Psucc;并在當前定時時長結束時通知復制執行單元將復制過程暫停,轉步驟105處理;
[0026]步驟105,壓力分析單元在所述定時器超時后判斷Psent與Psucc的比值是否達到第一預定閾值,如果沒有達到,則通知復制調整單元進行正向調整;如果達到則轉步驟106 ;
[0027]步驟106,壓力分析單元進一步判斷Psent與Psucc的比值是否達到第二預定閾值,如果達到,則通知復制調整單元進行反向調整,如果沒有達到,則返回步驟102。
[0028]步驟107,業務統計單元在收到復制執行單元的復制結束通知時,清除定時器并結束當前處理流程。
[0029]事實上在復制過程中,鏈路帶寬是一個重要參考,但不是全部。假設災備中心的復制目標設備處理性能低下,那么即便鏈路帶寬再好,復制過程依然很緩慢。其次,即便復制目標設備處理性能強勁,但如果其承擔了很多其他業務,導致其無法分配更多資源給復制過程,這同樣會造成成功復制過程緩慢。最后,即便復制目標設備一切正常,從整個網絡來看,如果承載復制的廣域網鏈路上任何一個節點性能下降同樣會引發復制過程緩慢。為規避這些復雜的因素,本發明引入復制容量參數Psucc這一新的概念,Psucc并不像鏈路帶寬或者設備性能等固定參數那樣,其是一個動態的參數。這一動態參數可能被很多前述因素所影響,但對于本發明而言,影響Psucc的那些參數不再重要,本發明著重關注Psucc本身。
[0030]第一次啟動復制時,本發明也可以使用一個默認的復制發送窗口作為第一個統計周期內的復制發送窗口。當然此時無法得知這個復制發送窗口是否是為最佳的復制發送窗口。復制開始的時候,可以啟動一個統計定時器,其定時時長可以理解為一個統計周期的長度,大小可以根據經驗預設,在優選的方式中推薦使用秒這樣的時間量級,比如5秒或者10秒。接下來復制源設備會根據當前保存的復制發送窗口大小開始發送復制命令(數據寫入命令)。在定時器開啟的同時,業務統計單元會實時統計更新本定時時長內的Psent以及Psucc這兩個參數。假設復制過程中每個復制命令的大小是固定的,Psent可以是本統計周期內復制發送命令計數;如果復制過程中復制命令大小不是固定的,則業務執行單元需要統計本統計周期內每個復制命令大小,并累加得到Psent。同樣的道理,對于Psucc,如果復制命令大小固定,則Psucc可以是本統計周期內復制目標設備返回的復制處理成功的命令計數,如果復制命令大小不固定,則業務執行單元需要統計本統計周期內每個復制目標設備返回的復制處理成功的命令大小,然后累加得到Psucc。
[0031]在定時器超時的時候,業務統計單元可以通知復制執行單元暫停發送復制命令。此時壓力分析單元將判斷Psent與Psucc的比值是否達到第一預定閾值,在優選的方式中,為了最大限度的利用復制帶寬,第一預定閾值通常大于等于I。所謂復制帶寬是一個業務層面的概念,也就是單位時間內可以成功完成復制的數據量。假設第一預設閾值為1.2,當Psent/Psucc小于1.2時,說明全部或者大部分的復制命令都可以被復制目標設備及時成功處理,復制帶寬有相當大的可能性進一步被擴大。此時可以通知復制調整單元進行正向調整,復制執行單元可以按照一個預設百分比的步長值或者固定值的步長值增大設備內部當前保存的復制發送窗口,比如按照8為步長將復制發送窗口的大小從64增大到72等。這個修改后的復制的發送窗口將在后續復制數據過程作為新的復制發送窗口被使用,相當于持續壓榨出可能剩余的復制帶寬。
[0032]當Psent/Psucc大于等于1.2時,說明復制帶寬已經被充分利用。在Psent/Psucc沒有達到第二預設閾值(比如1.5)時,可以保持當前的復制發送窗口,如此一來既可以保證復制帶寬可以被充分利用,也不會造成對復制帶寬的過度壓榨。如前所述,鏈路帶寬以及復制目標設備性能等很多因素會影響到復制的成功率(也就是影響復制帶寬)。比如剛剛過去的定時時長內(假設是5秒)發生鏈路質量下降事件,或者復制目標設備CPU負載過重等意外情況都可能嚴重影響這個定時時長內的復制帶寬大小,可能會導致復制帶寬有較大幅度的下降。此時壓力分析單元可能會發現Psent/Psucc的數值已經達到了第二預設閾值(t匕如1.5),而且Psent/Psucc很可能會遠大于1.5,比如3。在這種狀況下如果按照一個預設步長去做反向調整,顯然需要經過多個統計周期才能將Psent/Psucc調整到一個正常值,無法及時響應復制帶寬的突發變化。因此,在優選的實施方式中,本發明反向調整的步長是一個動態步長,該動態步長與當前定時時長中統計到的Psucc/Psent這一比值相關聯,其中該比值越小,則所述動態步長越大;即根據最近一個定時時長的復制命令的完成比例來動態調整復制發送窗口。Psucc/Psent越小則說明復制帶寬惡化越嚴重,此時應當使用更大的動態步長將復制發送窗口迅速調低。一種優選的計算方法為:新的復制發送窗口的計算放法為:前復制發送窗口乘以Psucc/Psent,然后對該乘積取整;而動態步長則等于原復制發送窗口減去新的復制發送窗口。
[0033]在本發明中復制發送窗口通常是一步一步按照預定步長調整上來的,達到第一預設閾值之后,比如Psent/Psucc達到1.2之后,如果沒有發生異常情況,則復制發送窗口可以在相當長的一段時間內保持相對穩定的狀態,至少其大小的抖動的幅度會很小。Psent/Psucc這個比值在相當長的時間內也會保持比較穩定的狀態,不會有太大的波動。如果合理設置第二預設閾值,Psent/Psucc的正常波動不會突然達到第二預設閾值的。反過來說,一旦Psent/Psucc突然跳變第二預設閾值,則說明有一些因素發生了較大的變化導致復制帶寬有突發的惡化,此時本發明可以用一個動態步長的反向調整方式及時去響應這種突發變化,避免了持續發送大量數據導致鏈路或者復制目標設備處理的擁塞。進一步來說,復制帶寬也可能會正向的突發變化,比如用戶如果對廣域網帶寬進行擴容,比如租用了更高速率的接入線路,或者對復制目標設備進行升級,比如增加了更多的內存或者業務緩存等。此時Psent/Psucc可能會突然間變小,在下一個統計周期中,本發明均可以自動適應這種變化,完全無需人工干預。
[0034]需要補充說明的是,業務統計單元通知復制執行單元暫停復制并不是必須的,其實復制執行單元未必一定要暫停復制。從本質上說,這個通知只是要求復制執行單元使用更新后的復制發送窗口即可。上述實施方式只是一種優選的方式,在軟件設計中,使用新的復制發送窗口這樣的參數,最好是先將復制任務短暫地暫停一下,避免可能發生任何錯誤,有利于簡化軟件設計而已。另外,上述優選的方式中,每次調整復制發送窗口之后都會立刻再重新啟動定時器,但是這并不是必須的,定時器的啟動時機是可以靈活設定。比如說每一次復制過程僅僅啟用一次定時器,或者啟用少數幾次,這同樣可以實現本發明的目的,因為經過幾次復制之后,復制發送窗口就會調整到一個比較好的狀況,只是實時性比上述實施方式略差。從以上的描述可以知道,無論是廣域網鏈路帶寬發生變化,還是復制目標設備發生任何變化而導致復制帶寬變化,本發明均可以讓復制源設備很快地適應這種變化,既可以有效避免復制帶寬惡化時持續發送大量數據導致發生嚴重擁塞和丟包的情況,也可以有效避免復制帶寬狀況良好時不能充分利用復制帶寬的情況。
[0035]以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的范圍之內。
【權利要求】
1.一種復制過程調整裝置,應用于作為復制源設備的存儲設備上,以控制該復制源設備向復制目標設備發送復制命令的過程,該裝置包括復制執行單元、業務統計單元、壓力分析單元以及復制調整單元,其特征在于: 復制執行單元,用于在啟動一次復制時觸發所述業務統計單元啟動定時器,并在定時器啟動后根據業務統計單元的通知使用復制源設備內部保存的復制發送窗口繼續向復制目標設備發送復制命令; 業務統計單元,用于啟動具有預設定時時長的定時器,在所述定時器啟動后通知復制執行單元繼續復制,并統計當前定時時長內復制源設備的數據發送參數Psent以及復制容量參數Psucc ; 壓力分析單元,用于在所述定時器超時后判斷Psent/Psucc的比值是否達到第一預設閾值,如果沒有達到,則通知復制調整單元進行正向調整; 復制調整單元,用于根據壓力分析單元的通知對所述復制發送窗口進行調整,并在調整完成后轉業務統計單元處理,其中當壓力分析單元的通知為正向調整通知時,所述調整為增大復制源設備內部保存的復制發送窗口。
2.如權利要求1所述的裝置,其特征在于,所述壓力分析單元進一步用于在Psent/Psucc的比值達到第一預設閾值時進一步判斷該比值是否達到第二預設閾值,如果有則通知復制調整單元進行反向調整; 所述復制調整單元進一步用于根據壓力分析單元的反向調整通知,減小復制源設備內部保存的復制發送窗口。
3.如權利要求1所述的裝置,其特征在于,其中所述復制調整單元進一步用于在進行正向調整時按照預設的步長增大所述復制發送窗口。
4.如權利要求2所述的裝置,其特征在于,其中所述復制調整單元進一步用于在進行反向調整時,按照動態步長減小所述復制發送窗口,其中該動態步長與當前定時時長中統計到的Psucc/Psent相關聯,其中該Psucc/Psent越小,貝U所述動態步長越大。
5.如權利要求1所述的裝置,其特征在于,所述業務統計單元進一步用于在定時器超時的時候通知復制執行單元暫停發送復制命令。
6.一種復制過程調整方法,應用于作為復制源設備的存儲設備上,以控制該復制源設備向復制目標設備發送復制命令的過程,其特征在于,該方法包括: 步驟A、復制源設備啟動一次復制并轉步驟B ; 步驟B、啟動具有預設定時時長的定時器,并統計當前定時時長內復制源設備的數據發送參數Psent以及復制容量參數Psucc ; 步驟C、在所述定時器啟動后使用復制源設備內部保存的復制發送窗口繼續向復制目標設備發送復制命令; 步驟D、在所述定時器超時后判斷Psent/Psucc的比值是否達到第一預設閾值,如果沒有達到則增大復制源設備內部保存的復制發送窗口 ;然后轉步驟B。
7.如權利要求6所述的方法,其特征在于,所述步驟D進一步包括: 在Psent/Psucc的比值達到第一預設閾值時進一步判斷該比值是否達到第二預設閾值,如果達到則減小復制源設備內部保存的復制發送窗口。
8.如權利要求6所述的方法,其特征在于,其中所述增大復制源設備內部保存的復制發送窗口具體為: 按照預設的步長增大所述復制發送窗口。
9.如權利要求7所述的方法,其特征在于,其中所述減小復制源設備內部保存的復制發送窗口具體為: 按照動態步長減小所述復制發送窗口;其中該動態步長與當前定時時長中統計到的Psucc/Psent相關聯,其中該Psucc/Psent越小,則所述動態步長越大。
10.如權利要求6所述的方法,其特征在于,所述步驟B進一步包括: 在定時器超時的時候通知復制執行單元暫停發送復制命令。
【文檔編號】G06F11/14GK103970622SQ201310040761
【公開日】2014年8月6日 申請日期:2013年1月30日 優先權日:2013年1月30日
【發明者】龔飛, 上官應蘭 申請人:杭州宏杉科技有限公司