鏈路聚合中的寬限狀態(tài)和步調調整的制作方法
【專利摘要】在一個實施例中,一個或多個壓力標記被監(jiān)控?;谝粋€或多個壓力標記,確定壓力狀況存在。響應于壓力狀況,使得一個或多個鏈路聚合參與者和合作者進入寬限狀態(tài)達寬限期。當一個或多個鏈路參與者和合作者處于寬限狀態(tài)時,通過延遲在多個鏈路上形成一個或多個新的鏈路聚合群組直到保持被釋放為止,調整多個鏈路上鏈路聚合形成的步調。當寬限期到期時,退出寬限狀態(tài)。
【專利說明】鏈路聚合中的寬限狀態(tài)和步調調整
【技術領域】
[0001]本公開總體涉及計算機網絡,更具體地,涉及計算機網絡中的鏈路聚合。
【背景技術】
[0002]盡管一些網絡設備可以被要求來僅支持少量的鏈路聚合群組,但是其他網絡設備可以被要求來支持數百、數千或甚至數萬個鏈路聚合群組。這樣的配置可能尤其易受由于壓力狀況而導致的破壞的影響。例如,在這樣的配置中,系統(tǒng)重新加載或控制切換可能導致在短期內大量鏈路聚合群組被形成或被重新配置,從而導致極度壓力。類似地,在這樣的配置中,控制面(control plane)擁塞可能導致過量的協(xié)議數據單元(F1DU)被丟失,從而再次導致壓力。
[0003]當前的鏈路聚合技術通常不能解決壓力狀況。通常,結果是連續(xù)的鏈路聚合擺動(flapping),即,鏈路聚合群組被重復形成,然后失效,然后形成,然后失效,反復重復。當鏈路聚合擺動發(fā)生時,鏈路聚合擺動成為附加壓力源,從而構成潛在問題。有時,結果是形成鏈路聚合完全故障。
【專利附圖】
【附圖說明】
[0004]本文所描述的實施例可以通過參照附圖來更好地理解,在這些附圖中,相同的標號指示相同或功能類似的元件,其中:
[0005]圖1是可以與本文所公開的實施例一起使用的示例計算機網絡的示意框圖;
[0006]圖2是可以與本文所公開的實施例一起使用的示例網絡設備的示意框圖;
[0007]圖3是包括寬限(grace)狀態(tài)信息的示例PDU ;
[0008]圖4是由上面所討論的實施例中的某些實施例來實現的示例控制回路的圖解;以及
[0009]圖5是用于通過使用寬限狀態(tài)來減小鏈路聚合上的壓力狀況的影響的示例步驟順序的流程圖。
[0010]示例實施例
[0011]臟
[0012]根據本公開的實施例,鏈路聚合上的壓力狀況的影響可以通過使用寬限狀態(tài)來減小。一個或多個壓力標記被監(jiān)控,并且,基于該一個或多個壓力標記,確定壓力狀況存在。響應于壓力狀況,使得一個或多個鏈路聚合參與者(actor)和合作者進入寬限狀態(tài)達寬限期。當一個或多個鏈路聚合參與者和合作者處于寬限狀態(tài)時,通過延遲在多個鏈路上形成一個或多個新的鏈路聚合群組直到保持(hold)被釋放為止,調整這些多個鏈路上鏈路聚合形成的步調。當寬限期到期時,寬限狀態(tài)被退出。
【具體實施方式】
[0013]計算機網絡是用來在網絡設備(例如,交換機、路由器、計算機等)之間傳輸數據的物理鏈路(例如,以太網電纜、光纖連接等)的地理分布式集合。許多種計算機網絡是可用的,包括局域網(LAN)和廣域網(WAN)。計算機網絡的網絡設備一般通過根據預定協(xié)議來交換離散分組或消息進行通信。在該上下文中,協(xié)議由定義網絡設備如何相互交互和/或互操作的一組規(guī)則組成。
[0014]許多計算機網絡使用一些鏈路聚合形式來增加帶寬和/或可靠性。在鏈路聚合中,網絡設備之間的多個鏈路被分組(邏輯上被組合)來形成提供增加的帶寬和/或可靠性的邏輯鏈路??刂茀f(xié)議一般被運行來促進鏈路聚合。常見的鏈路聚合控制協(xié)議包括在電氣電子工程師(IEEE)802.1AX中被標準化的鏈路聚合控制協(xié)議(LACP)和思科系統(tǒng)公司(Cisco Systems, Inc.)開發(fā)的端口聚合協(xié)議(PAgP),然而,存在各種其他鏈路聚合控制協(xié)議。
[0015]鏈路聚合控制協(xié)議一般執(zhí)行多個任務來支持鏈路聚合。這些任務包括:檢查候選鏈路實際是否能被聚合;創(chuàng)建新的鏈路聚合群組;控制鏈路向現有鏈路聚合群組的添加;監(jiān)控聚合的鏈路的狀態(tài)來確保它們鏈路聚合群組中的成員資格仍為有效;如果它們的成員資格不再有效則從鏈路聚合群組中去除鏈路;以及如果鏈路聚合群組不具有保持成員鏈路的充足數目(例如,O)則去除鏈路聚合群組。
[0016]為了執(zhí)行這些任務和其他任務,鏈路聚合控制協(xié)議一般使得鏈路聚合的相對端的網絡設備交換諸如協(xié)議數據單元(rou)之類的消息。根據使用的鏈路聚合控制協(xié)議,這些PDU可以采用各種不同形式。例如,在802.1AX LACP中,這些PDU可以采用鏈路聚合控制PDU(LACPDU)的形式。類似地,在PAgP中,這些PDU可以采用PAgP PDU的形式。
[0017]而且,為了執(zhí)行這些任務和其他任務,鏈路聚合控制協(xié)議一般維護多個狀態(tài)機。根據使用的鏈路聚合控制協(xié)議,這些狀態(tài)機可以采用各種不同的形式。例如,在802.1AX LACP中,這些狀態(tài)機可以包括:接收機,該接收機維護從合作者接收到的rou中獲取的合作者信息;周期性發(fā)送機,該周期性發(fā)送機調節(jié)rou的周期性交換;多路復用機,該多路復用機將被耦合至鏈路的物理端口附連至聚合端口,從而實現鏈路聚合;以及多個其他狀態(tài)機。類似地,在PAgP中,使用多個不同的眾所周知的狀態(tài)機。
[0018]盡管一些網絡設備可以被要求來僅支持少量的鏈路聚合群組,但是其他網絡設備可以被要求來支持數百、數千或甚至數萬個鏈路聚合群組。例如,虛擬交換系統(tǒng)(VSS)和多機架(mult1-chassis)LACP(mLACP)服務器訪問配置通常包括多個物理機架,這些物理機架被安排有處理數百個鏈路聚合群組的任務,其中,這數百個鏈路聚合群組的成員鏈路被分布于這些機架間。而且,包括多個互連的物理機架的大規(guī)模數據中心交換機可以被安排有處理數千或數萬個鏈路聚合群組的任務,其中,這數千或數萬個鏈路聚合群組的成員鏈路再次被分布于這些機架間。
[0019]圖1是可以與本文所公開的實施例一起使用的示例計算機網絡100的示意框圖。計算機網絡100可以包括多個互連的網絡設備110、120、130,這些互連的網絡設備110、120、130通過鏈路被耦合,所述鏈路中的至少一些鏈路被聚合到鏈路聚合群組中。每個網絡設備可以是單機架網絡設備。然而,在一個實施例中,網絡設備110是集中多個物理交換機機架140、150的VSS、mLACP配置或數據中心交換機。諸如虛擬交換機鏈路(VSL)或包括鏈路聚合的其他互連之類的互連160可以耦合各個機架140、150。多機架網絡設備110可以通過多個鏈路(所述多個鏈路例如,從不同的機架140、150延伸)被耦合至其他網絡設備120、130。各鏈路聚合群組可以被形成以邏輯上組合這些鏈路中的一些鏈路。例如,第一鏈路集合172、174和176可以被放置于第一鏈路聚合群組170中來形成第一邏輯鏈路,而第二鏈路集合182、184可以被放置在第二鏈路聚合群組180中來形成第二邏輯鏈路。特定鏈路聚合群組的鏈路可以被分布在多機架網絡設備的各個機架之間。例如,第一鏈路聚合群組170可以包括來自一個機架140的一個或多個鏈路172、174以及來自另一機架150的一個或多個鏈路176。盡管圖1中僅描繪了少量鏈路和鏈路聚合群組,但應當理解,典型地,配置一般包括大量鏈路和鏈路聚合群組。
[0020]圖2是可以與本文所公開的實施例一起使用的示例網絡設備200的示意框圖。網絡設備200可以是圖1中所示的網絡設備110、120、130中任意網絡設備的示例。如果網絡設備200代表多機架網絡設備,則應當理解,網絡設備200的部件可以被分布在多個分開的物理機架之間,而不是位于單個機架中。在這樣的情形中,對圖2中的部件的分組應當被解釋為邏輯分組,而不是指示這些部件物理地位于一個機架內。
[0021]網絡設備200可以包括(除了其他部件外)多個線卡210、一個或多個處理器(例如,(一個或多個)CPU、微控制器等)220以及一個或多個存儲器230 (例如,隨機存取存儲器(RAM)、磁存儲設備等)。每個線卡210可以包含機械電路、電子電路以及信號電路,這些電路需要支持被耦合至鏈路的一個或多個物理端口。一個或多個存儲器230可以包括用于存儲軟件和數據結構(包括用于實現本文所公開的技術中至少一些技術的存儲有數據的數據結構和軟件)的多個存儲位置。一個或多個處理器220可以包括被配置為運行軟件并操縱來自數據結構的數據的邏輯。盡管圖2中未示出,但是軟件和數據中的至少一些可以結合其操作被臨時存儲在處理器220的寄存器中。
[0022]操作系統(tǒng)232功能上組織網絡設備200,操作系統(tǒng)232的各部分駐留在存儲器230中并且由處理器220運行。操作系統(tǒng)232可以是思科互聯網絡操作系統(tǒng)(1S)版本或是其他合適的操作系統(tǒng)。聚合協(xié)議引擎240可以與操作系統(tǒng)232進行交互以在網絡設備200上實現鏈路聚合控制功能。在鏈路聚合的一端,聚合協(xié)議引擎可以相對于該鏈路聚合作為參與者聚合協(xié)議引擎進行操作。在這樣的情形中,該聚合協(xié)議引擎可以被稱為“鏈路聚合參與者”。鏈路聚合參與者可以與在該鏈路聚合的相對端運行的合作者聚合協(xié)議引擎(或簡單地稱為“鏈路聚合合作者”)進行交互,例如,與其交換rou。當新的鏈路聚合群組被形成(即,聚合)時,PDU可以被用來使得該群組上線(online)。當鏈路聚合群組被形成(即,聚合)時,PDU可以被用來確認聚合的繼續(xù)操作和狀態(tài)。PDU可以周期性地被交換,由周期性定時器觸發(fā)這些I3DU的發(fā)送。可以期望在超時時間已到期之前周期性PDU被接收。
[0023]防止鏈路聚合群組及時形成或適當維護的多個情況可能出現。這樣的情況可能在聚合的數目被擴展到數百、數千或數萬個的配置中尤其有問題。例如,在這樣的配置中,控制面重新啟動(例如,硬件或軟件維護或升級)、控制面切換(例如,VSS或mLACP機架故障轉移)或聚合協(xié)議引擎重新啟動可能導致在短期內大量鏈路聚合群組被形成或被重配置,從而導致極度壓力。類似地,在這樣的配置中,處理器(例如,CPU)擁塞、控制路徑擁塞(例如,由于行為不好的對等方、拒絕服務(DoS)攻擊等)或其他情況可能導致過量PDU被丟失,從而再次導致壓力。
[0024]當前的鏈路聚合技術通常不能解決壓力狀況,如上所述。盡管存在壓力,但這樣的鏈路聚合技術可能繼續(xù)嘗試快速形成(或重新形成)鏈路聚合。通常,嘗試形成鏈路聚合群組會失敗。有時,在熟知的鏈路聚合擺動情況中,群組可以暫時被形成,但是之后很快失效。在鏈路聚合擺動中,鏈路聚合群組可以被重復形成,然后失效,然后形成,然后失效,反復重復。在嘗試形成鏈路聚合群組中被發(fā)送的消息通常為附加壓力源,從而構成潛在問題。
[0025]如下面所解釋的,系統(tǒng)狀態(tài)監(jiān)控器250與聚合寬限狀態(tài)協(xié)議引擎260協(xié)同工作,可以實現用于減小鏈路聚合上壓力狀況的影響的新技術。響應于來自系統(tǒng)狀態(tài)監(jiān)控器250的指示檢測到的壓力的控制信號,寬限狀態(tài)協(xié)議引擎260可以使得一個或多個鏈路聚合參與者和合作者進入新的寬限狀態(tài)。當在寬限狀態(tài)時,鏈路聚合群組形成可以由自適應聚合步調調整模塊270來調整步調,以使得鏈路聚合群組的形成被延遲直到在要形成聚合的鏈路上釋放保持為止。在步調調整主機(master)的指導下,在所選大小的鏈路子集(批(batch))上可以周期地釋放保持,以允許在這些鏈路上形成新的鏈路聚合。當只有有限資源時,調整步調可以增加成功聚合形成的機會,并且減小由群組形成方面的不成功的嘗試導致的壓力。而且,當鏈路聚合參與者和合作者處于寬限狀態(tài)時,現有的鏈路聚合群組可以由來自隱式聚合保活模塊280的隱式?;钚盘杹砭S護,隱式聚合保活模塊280支持鏈路聚合群組(代替接收周期性rou)。當滿足一個或多個測試條件時,可以生成隱式?;钚盘枴J褂秒[式?;顧C制可以防止在壓力出現時鏈路聚合群組失效,從而最小化重新形成失效的鏈路聚合的需要。
[0026]系統(tǒng)狀態(tài)監(jiān)控器250可以響應于多個不同的壓力標記來檢測壓力狀況。在一個實施例中,系統(tǒng)狀態(tài)監(jiān)控器250可以通過在網絡設備200處監(jiān)控處理器(例如,CPU)饑餓來檢測壓力狀況。處理器饑餓例如可以基于檢查鏈路聚合引擎隊列的長度、隊列的出列率、鏈路聚合引擎的處理器使用情況和/或其他信息而被檢測。在另一實施例中,系統(tǒng)狀態(tài)監(jiān)控器250可以通過在網絡設備200處監(jiān)控控制面重新啟動或切換來檢測壓力狀況??刂泼嬷匦聠踊蚯袚Q可以基于由在網絡設備200上運行的高可用性(HA)處理(未示出)提供的一個或多個信號而被檢測。在另一實施例中,系統(tǒng)狀態(tài)監(jiān)控器250可以通過對鏈路聚合引擎重新啟動或整個系統(tǒng)重新啟動進行監(jiān)控來檢測壓力狀況。某些重新啟動可以基于由在網絡設備200上運行的系統(tǒng)根進程(root process)(未示出)提供的重新啟動信號而被檢測。在另一實施例中,系統(tǒng)狀態(tài)監(jiān)控器250可以基于網絡設備200上控制路徑擁塞的指示來檢測壓力狀況??刂坡窂綋砣闹甘究梢允浅^閾值的帶內隊列長度或者是網絡設備處其他可檢測的變化。在其他實施例中,除了上面所討論的示例標記,或者結合上面所討論的示例標記,或代替上面所討論的示例標記,其他系統(tǒng)狀態(tài)信息可以被用作壓力的標記。
[0027]響應于一個或多個壓力標記,系統(tǒng)狀態(tài)監(jiān)控器250可以向寬限狀態(tài)協(xié)議引擎260提供指示壓力已被檢測到的控制信號。對于鏈路聚合參與者,寬限狀態(tài)協(xié)議引擎260可以使得其直接進入寬限狀態(tài)。而且,寬限狀態(tài)協(xié)議引擎260可以觸發(fā)鏈路聚合引擎240將具有寬限狀態(tài)信息的PDU發(fā)送至鏈路聚合合作者,從而使得該鏈路聚合合作者也進入寬限狀態(tài)。具有寬限狀態(tài)信息的PDU可以通過高優(yōu)先級通道(例如,IEEE 802.1Qbb基于優(yōu)先級的流控制通道)來發(fā)送,其中,高優(yōu)先級通道不大可能被壓力狀況嚴重影響。
[0028]寬限狀態(tài)可以與寬限期(例如,預定的秒數)相關聯。寬限期可以基于估計壓力狀況將持續(xù)的時間量。在寬限期到期之前,例如,如果壓力狀況未按照預期的減輕,則可以請求附加的寬限期。類似地,如果壓力狀況減輕早于預期,則可以在寬限期到期之前退出寬限狀態(tài)。
[0029]圖3是包括寬限狀態(tài)信息的示例rou 300。PDU可以被從鏈路聚合群組的任意活動(active)成員鏈路中傳播出去。盡管在該示例中,I3DU 300是由802.1AX LACP使用的LACPDU,但應當理解,PDU的其他格式可以由其他鏈路聚合控制協(xié)議(例如,PAgP)使用。PDU 300包括多個字段,包括目的地地址字段305、源地址字段310、長度/類型字段315、子類型字段320以及版本號字段325,這些字段的功能是眾所周知的。版本號字段中的值可以被更新為新的版本號。I3DU 300還可以包括一個或多個(例如,3個)新的類型長度值元素(TLV),這些元素向鏈路聚合合作者發(fā)送信號以通知鏈路聚合參與者已進入寬限狀態(tài)、正被使用的寬限期、壓力狀況的性質和/或嚴重度以及指示PDU可應用的限度的寬限范圍。
[0030]在一個實現方式中,寬限期TLV 330可以包括:類型字段335,該類型字段335指示寬限期類型(例如,由值0x03標識);長度字段340,該長度字段340指示寬限期TLV 330的長度(例如,2個八位字節(jié));以及值字段345,該值字段345指示寬限期的值(例如,幾秒)。寬限期的預定值(例如,O秒)可以表示退出寬限狀態(tài)的請求。另外,寬限條件TLV350可以包括:類型字段355,該類型字段355指示寬限條件類型(例如,由值0x04標識);長度字段360,該長度字段360指示寬限條件TLV 350的長度(例如,2個八位字節(jié));以及值字段365,該值字段365提供對壓力狀況的性質和/或嚴重度的指示。例如,第一代碼可以指示壓力狀況是由于處理器饑餓、鏈路聚合引擎重新啟動、控制面重新啟動、控制面切換、系統(tǒng)重新啟動等。第二代碼可以指示壓力狀況的嚴重度等級(例如,等級I至等級256)。另外,寬限范圍TLV 370可以包括:類型字段375,該類型字段375指示寬限范圍類型(例如,由值0x05標識);長度字段380,該長度字段380指示寬限范圍TLV 370的長度(例如,I個八位字節(jié));以及值字段385,該值字段385提供對PDU可應用的限度的指示。例如,代碼可以指示單獨鏈路、鏈路聚合群組或所有鏈路聚合群組(即,全局范圍)的寬限范圍。根據所指示的寬限范圍,接收鏈路聚合合作者可以采取不同的動作。例如,如果寬限范圍是鏈路聚合群組,則鏈路聚合合作者可以使得鏈路的鏈路聚合群組受制于寬限狀態(tài),其中,PDU300在該鏈路上被接收。類似地,如果寬限范圍是所有的鏈路聚合群組,則鏈路聚合合作者可以使得所有的鏈路聚合群組受制于寬限狀態(tài)。rou 300還可以包括諸如終止符TLV 390以及其他字段之類的一個或多個其他TLV。
[0031]當寬限狀態(tài)被使用時,自適應聚合步調調整模塊270可以調整新的鏈路聚合形成的步調。這樣的步調調整可以通過選擇步調調整主機來在鏈路聚合的相對端處的網絡設備之間進行協(xié)調。如果只有一個網絡設備檢測壓力狀況,則該設備將被選為步調調整主機。如果多個網絡設備檢測壓力狀況,則可以例如基于系統(tǒng)標識符(ID)的比較使用平局破壞(tie breaking)機制,具有較低系統(tǒng)ID的網絡設備被選為步調調整主機。應當理解,各種其他算法可以被代替地使用來選擇步調調整主機。
[0032]步調調整主機的自適應聚合步調調整模塊270可以使得周期性釋放所選大小的鏈路子集(即,批),從而允許在這些鏈路上形成新的鏈路聚合。例如,自適應聚合步調調整模塊270可以使得鏈路聚合引擎240在鏈路子集上發(fā)送具有鏈路寬限范圍(例如,包括具有類型字段385的寬限范圍TLV 370,該類型字段385包括用于鏈路范圍的代碼)的I3DU300,以指示涉及這些鏈路的新的鏈路聚合應被允許形成。批的大小可以依賴于壓力狀況(例如,如寬限條件TLV 350的值字段365的第一代碼中所指示的)和其嚴重度(例如,如寬限條件TLV 350的值字段365的第二代碼中所指示的)。一般地,當壓力狀況是嚴重的時,批大小可以很小。當壓力狀況減輕時,批大小可以被增加。根據具體的實現方式,確切的批大小可以通過各種算法中的任意算法來確定。類似地,根據具體的實現方式,每個批的確切成員資格可以通過各種算法中的任意算法來確定,這些各種算法依賴于各種標準(例如,端口優(yōu)先級或其他標準)。
[0033]如果在寬限期到期之前壓力狀況充分減輕,則寬限狀態(tài)可以被提早退出。這可以部分地通過發(fā)送具有全局寬限范圍(例如,包括具有類型字段385的寬限范圍TLV 370,該類型字段385包括所有鏈路聚合群組的代碼)并且指示寬限狀態(tài)應被退出(例如,包括具有指示值為O秒的值字段345的寬限期TLV 330)的TOU 300來執(zhí)行。
[0034]除了調整新的鏈路聚合形成的步調,在一些實現方式中,盡管寬限狀態(tài)有效,但現有鏈路聚合群組可以由來自隱式聚合?;钅K280的隱式保活信號維護。使用隱式保活機制可以防止在壓力出現時鏈路聚合群組失效,從而最小化重新形成失效的鏈路聚合的需要。在壓力狀況期間,網絡設備的控制面可能被影響。在這樣的情形中,周期性PDU的適當發(fā)送可以被延遲或者周期性PDU的適當接收可能被阻止。然而,數據面仍正常操作。因此,如果滿足一個或多個測試條件(該測試條件指示可能周期性PDU的延遲或丟失是由于控制面問題(而不是數據面問題)),則鏈路聚合群組可以被隱式維護。
[0035]在一個實施例中,測試條件可以是接收控制面問題的顯式指示。例如,測試條件可以是從鏈路聚合合作者接收指示控制面重新啟動或控制面切換的rou。在這樣的情形中,可以假設鏈路聚合合作者周期地發(fā)送rou的任何故障均由于控制面問題,而數據面可能仍正常操作。
[0036]在另一實施例中,測試條件可以是在鏈路上接收一個或多個消息(例如,其他PDU,比如,思科發(fā)現協(xié)議(CPD) PDU),對于該鏈路,沒有從鏈路聚合合作者接收周期性rou。在這樣的情形中,可以假設鏈路聚合合作者周期地發(fā)送rou的故障是由于該合作者的鏈路聚合引擎的問題,但數據面可能仍正常操作。例如,鏈路聚合引擎可能正經歷處理器饑餓、或者被一個或多個相關的部件減慢,從而不能在所要求的周期性間隔發(fā)送或接收rou。然而,數據面仍可能正常操作。
[0037]在另一實施例中,測試條件可以是出現系統(tǒng)帶內接收隊列或鏈路聚合引擎的接收隊列溢出。在這樣的情形中,可以假設接收周期性rou的問題是在于他們由于溢出狀況而被丟棄,而不是數據面問題。
[0038]當滿足一個或多個測試條件時,聚合保活模塊280可以向聚合協(xié)議引擎240提供隱式?;钚盘?,所述隱式保活信號使得盡管沒有接收周期性PDU但聚合協(xié)議引擎240仍維護鏈路聚合。盡管周期性PDU仍被發(fā)送和/或接收,但當隱式?;钚盘柍霈F時,沒有接收周期性rou的超時周期到期將不會觸發(fā)鏈路聚合故障。在寬限期期間可以生成隱式保活信號。
[0039]上面所討論的技術可以與現有鏈路聚合協(xié)議后向兼容。各種檢查可以被執(zhí)行以提供后向兼容性。在一個實施例中,網絡設備可以檢查接收到的rou中的版本號(例如,在版本號字段320中)來確定發(fā)送設備是否支持上面所討論的技術??商娲兀梢詧?zhí)行檢查接收到的rou的內容,以便例如搜索上面所討論的一個或多個TLV(例如,寬限期TLV 330、寬限條件TLV 350、寬限范圍TLV 370) O當上面所討論的技術在鏈路聚合的一端被支持時,鏈路聚合的相對端可以放棄使用這些技術,即使該相對端可能能夠支持這些技術。
[0040]上面所討論的最小化鏈路聚合上壓力狀況的影響的操作可以被設想為響應控制回路。圖4是由上面所討論的實施例中的某些實施例來實現的示例控制回路的圖解400。聚合協(xié)議引擎240的操作、用在鏈路聚合中的硬件編程410以及其他系統(tǒng)任務和協(xié)議420可以導致系統(tǒng)狀態(tài)430的變化,系統(tǒng)狀態(tài)430由系統(tǒng)狀態(tài)監(jiān)控器250來檢測。響應于來自系統(tǒng)狀態(tài)監(jiān)控器250的指示檢測到的壓力的控制信號,寬限狀態(tài)協(xié)議引擎260可以使得一個或多個鏈路聚合參與者和合作者進入寬限狀態(tài)。這可以觸發(fā)自適應聚合步調調整模塊270延遲形成某些鏈路聚合群組直到在要形成聚合的鏈路上釋放保持為止,并且這可以觸發(fā)隱式聚合保活模塊280利用隱式?;钚盘杹碇С宙溌肪酆先航M(代替接收周期性rou)。這轉而影響聚合協(xié)議引擎240的操作、硬件編程410以及最后系統(tǒng)狀態(tài)430,從而形成控制回路。
[0041]上面所討論的操作還可以通過流程圖來表示。圖5是用于通過使用寬限狀態(tài)來減小鏈路聚合上的壓力狀況的影響的示例步驟順序500的流程圖。首先,在步驟510處,系統(tǒng)狀態(tài)監(jiān)控器250可以針對一個或多個壓力標記進行監(jiān)控。在步驟520處,系統(tǒng)狀態(tài)監(jiān)控器250確定是否存在壓力狀況。如果不存在,則運行可以退回至步驟510。如果存在,則運行可以前進至步驟530,在步驟530處,寬限狀態(tài)協(xié)議引擎260使得一個或多個鏈路聚合參與者和合作者進入寬限狀態(tài)。在步驟540處,步調調整主機被選出。在步驟550處,自適應聚合步調調整模塊270在步調調整主機的指導下可以延遲形成新的鏈路聚合群組直到在要形成聚合的鏈路上釋放保持為止。如上面所討論的,該保持可以以所選大小的批的形式被釋放。另外,在并行的步驟560處,當滿足一個或多個測試條件時,隱式聚合?;钅K280可以生成隱式保活信號。如上面所討論的,隱式?;钚盘柨梢灾С宙溌肪酆先航M(代替接收周期性H)U)。在步驟570處,系統(tǒng)狀態(tài)監(jiān)控器250確定寬限期是否到期。如果寬限期已到期,則運行前進至步驟580,在步驟580處,所有的鏈路聚合被從寬限狀態(tài)中移除,然后退回至步驟510,在步驟510處,壓力的標記再次被監(jiān)控。如果寬限期尚未到期,則運行前進至步驟590,在步驟590處,寬限期和/或批大小可以被更新。例如,如果壓力狀況尚未按預期那樣快地減輕,則寬限期可以通過附加的寬限期來延長,或者如果壓力狀況比預期更快地減輕,則寬限期可以被縮短(例如,至零)。同樣,當壓力狀況變得不嚴重時,可以增加批大小,并且當壓力狀況的嚴重度增加時,可以增加批大小。這樣的變化可以基于對壓力標記的進一步監(jiān)控(未示出)。運行然后可以退回至并行的步驟550和560。
[0042]上述實施例通過使用寬限狀態(tài)來減小鏈路聚合上壓力狀況的影響。應當理解,可以在這些實施例的精神和范圍內做出各種適應和修改。例如,上述實施例可以以軟件、硬件或其組合實現。軟件實現方式可以包括被存儲在一個或多個非暫態(tài)計算機可讀介質(例如,易失性存儲器或持久存儲器、硬盤、光盤(CD)或其他介質)中的處理器可執(zhí)行指令。硬件實現方式可以包括被配置的處理器、邏輯電路、專用集成電路和/或其他類型的硬件部件。而且,組合的軟件/硬件實現方式可以包括被存儲在非暫態(tài)計算機可讀介質中的處理器可執(zhí)行指令和一個或多個硬件部件(例如,處理器、存儲器等)二者。因此,應當理解,上面的描述旨在僅以示例的方式進行。所附權利要求的目標是覆蓋進入本文實施例的精神和范圍內的所有這樣的變化和修改。
【權利要求】
1.一種方法,包括: 由網絡設備對一個或多個壓力標記進行監(jiān)控; 基于所述一個或多個壓力標記,確定壓力狀況存在; 響應于所述壓力狀況,使得一個或多個鏈路聚合參與者和合作者進入寬限狀態(tài)達寬限期; 當所述一個或多個鏈路聚合參與者和合作者處于所述寬限狀態(tài)時,通過延遲在多個鏈路上形成一個或多個新的鏈路聚合群組直到保持被釋放為止,來調整所述多個鏈路上鏈路聚合形成的步調; 當所述寬限期到期時,退出所述寬限狀態(tài)。
2.如權利要求1所述的方法,還包括: 在選定大小的鏈路子集上周期地釋放所述保持。
3.如權利要求2所述的方法,其中,所述選定大小響應于所述壓力狀況的嚴重度方面的變化而被增加或被減小。
4.如權利要求1所述的方法,還包括: 當所述一個或多個鏈路聚合參與者和合作者處于寬限狀態(tài)時,利用隱式?;钚盘杹砭S護一個或多個現有鏈路聚合群組,其中,所述隱式保活信號代替接收周期性協(xié)議數據單元(PDU)而支持所述一個或多個現有鏈路聚合群組。
5.如權利要求4所述的方法,還包括: 檢查指示控制面問題的一個或多個測試條件,并且 其中,所述利用隱式?;钚盘杹砭S護所述一個或多個現有鏈路聚合群組響應于所述一個或多個測試條件得到滿足。
6.如權利要求5所述的方法,其中,所述一個或多個測試條件包括接收控制面重新啟動或切換的指示。
7.如權利要求5所述的方法,其中,所述一個或多個測試條件包括在鏈路上接收一個或多個消息,對于所述鏈路,周期性協(xié)議數據單元(rou)沒有被接收。
8.如權利要求5所述的方法,其中,所述一個或多個測試條件包括接收隊列溢出。
9.如權利要求1所述的方法,還包括: 選擇所述網絡設備或所述多個鏈路的相對端處的另一網絡設備作為步調調整主機;以及 由所述步調調整主機通過在釋放所述保持的鏈路的子集上發(fā)送一個或多個協(xié)議數據單元(rou)來協(xié)調步調調整。
10.如權利要求1所述的方法,還包括: 確定所述壓力狀況已減輕;以及 更改所述寬限期的值以提早退出所述寬限狀態(tài)。
11.如權利要求1所述的方法,還包括: 確定所述壓力狀況尚未減輕;以及 通過附加的寬限期來延長所述寬限期。
12.如權利要求1所述的方法,其中,所述一個或多個壓力標記包括:所述網絡設備處處理器饑餓的指示、所述網絡設備處控制面重新啟動或切換的指示、或所述網絡設備處鏈路聚合重新啟動的指示。
13.如權利要求1所述的方法,其中,所述使得還包括: 將包括寬限狀態(tài)信息的協(xié)議數據單元(rou)從鏈路聚合參與者發(fā)送至鏈路聚合合作者,所述寬限狀態(tài)信息被存儲于一個或多個類型長度值元素中。
14.如權利要求1所述的方法,其中,所述網絡設備是包括一個或多個線卡和處理器的交換機。
15.一種裝置,包括: 一個或多個線卡,所述一個或多個線卡支持被耦合至鏈路的多個端口 ; 處理器,所述處理器被耦合至所述一個或多個線卡并被配置為運行軟件進程; 鏈路聚合引擎,所述鏈路聚合引擎被配置為形成鏈路聚合群組,所述鏈路聚合群組每個均包括所述鏈路中的兩個或多個鏈路; 系統(tǒng)狀態(tài)監(jiān)控器,所述系統(tǒng)狀態(tài)監(jiān)控器被配置為:在所述裝置處針對一個或多個壓力標記進行監(jiān)控、確定壓力存在以及生成控制信號; 聚合寬限狀態(tài)協(xié)議引擎,所述聚合寬限狀態(tài)協(xié)議引擎被配置為:接收所述控制信號,并且作為響應,觸發(fā)寬限狀態(tài);以及 自適應聚合步調調整模塊,所述自適應聚合步調調整模塊被配置為:在所述寬限狀態(tài)已被觸發(fā)之后,通過延遲在多個鏈路上形成一個或多個新的鏈路聚合群組直到保持被釋放為止來調整所述多個鏈路上鏈路聚合形成的步調。
16.如權利要求15所述的裝置,其中,所述自適應聚合步調調整模塊還被配置為在選定大小的鏈路子集上周期地釋放所述保持。
17.如權利要求16所述的裝置,其中,所述選定大小依賴于所述壓力狀況在嚴重度方面的變化。
18.如權利要求15所述的裝置,還包括: 自適應聚合步調調整模塊,所述自適應聚合步調調整模塊被配置為:利用隱式?;钚盘杹砭S護一個或多個現有鏈路聚合群組,其中,所述隱式?;钚盘柎娼邮罩芷谛詤f(xié)議數據單元(rou)而支持所述一個或多個現有鏈路聚合群組。
19.如權利要求18所述的裝置,其中,所述自適應聚合步調調整模塊還被配置為:檢查指示控制面問題的一個或多個測試條件,并且響應于所述一個或多個測試條件得到滿足,利用隱式保活信號來維護所述一個或多個現有鏈路聚合群組。
20.一種被編碼在一個或多個非暫態(tài)計算機可讀介質上的軟件,并且當所述軟件被運行時可操作以: 對一個或多個壓力標記進行監(jiān)控; 基于所述一個或多個壓力標記,確定壓力狀況存在; 響應于所述壓力狀況,使得一個或多個鏈路聚合參與者和合作者進入寬限狀態(tài)達寬限期; 當所述一個或多個鏈路聚合參與者和合作者處于所述寬限狀態(tài)時,通過延遲在多個鏈路上形成一個或多個新的鏈路聚合群組直到保持被釋放為止,來調整所述多個鏈路上鏈路聚合形成的步調; 當所述寬限期到期時,退出所述寬限狀態(tài)。
【文檔編號】H04L29/06GK104471915SQ201380036343
【公開日】2015年3月25日 申請日期:2013年4月29日 優(yōu)先權日:2012年5月8日
【發(fā)明者】蔡嘉仁, 周宇晨, 拉賈戈帕蘭·賈納吉拉曼, 楊一斌 申請人:思科技術公司