一種流量控制方法及裝置的制造方法
【專利摘要】本發(fā)明提供一種流量控制方法及裝置,所述方法包括:主Throttle節(jié)點獲取各服務器的存儲塊的實際負載;當所述主Throttle節(jié)點確定需要進行流量控制時,所述主Throttle節(jié)點根據各服務器的存儲塊的實際負載以及存儲塊的每秒進行讀寫操作的次數IOPS閾值對存儲塊進行流量控制。應用本發(fā)明實施例可以優(yōu)化流量控制效果。
【專利說明】
一種流量控制方法及裝置
技術領域
[0001 ]本發(fā)明涉及網絡存儲技術領域,尤其涉及一種流量控制方法及裝置。
【背景技術】
[0002]超融合架構(Hyper-Converged Infrastructure)是指將多臺具備獨立計算、網絡和存儲的通用服務器組成集群,以虛擬機為單位向用戶提供可以橫向擴展的計算和存儲服務。集群對外提供虛擬機的同時,將各臺服務器的存儲資源虛擬化成一個存儲池,為虛擬機提供存儲塊。也就是說,由服務器組成的存儲集群的直接使用者是集群自身。該架構中用戶的業(yè)務運行在虛擬機,虛擬機使用存儲集群的存儲塊。對給定的集群,它的總體性能(包括吞吐量、10PS( Input/output Operat1ns Per Second,即每秒進行讀寫(I/O)操作的次數))是固定的。
【發(fā)明內容】
[0003]本發(fā)明提供一種流量控制方法及裝置,以解決現有流量控制方案中流量控制效果較差的問題。
[0004]根據本發(fā)明實施例的第一方面,提供一種流量控制方法,應用于超融合架構,所述超融合架構中各服務器中包括限流節(jié)點Throttle節(jié)點,所述超融合構架中各服務器中的ThrottIe節(jié)點中包括一個主ThrottIe節(jié)點,所述方法包括:
[0005]主Throttle節(jié)點獲取各服務器的存儲塊的實際負載;
[000?]當所述主Throttle節(jié)點確定需要進行流量控制時,所述主Throttle節(jié)點根據各服務器的存儲塊的實際負載以及存儲塊的每秒進行讀寫操作的次數1PS閾值對存儲塊進行流量控制。
[0007]根據本發(fā)明實施例的第二方面,提供一種限流控制裝置,應用于超融合架構的服務器中的限流節(jié)點ThrottIe節(jié)點中,其中,所述超融合構架中各服務器中的Throttle節(jié)點中包括一個主Thro tt I e節(jié)點,所述裝置包括:
[0008]獲取單元,用于當所述Throttle節(jié)點為主Throttle節(jié)點時,獲取各服務器的存儲塊的實際負載;
[0009]控制單元,用于當所述Throttle節(jié)點為主Throttle節(jié)點,且確定需要進行流量控制時,根據各服務器的存儲塊的實際負載以及存儲塊的每秒進行讀寫操作的次數1PS閾值對存儲塊進行流量控制。
[0010]應用本發(fā)明實施例,通過在超融合架構中的各服務器中的Throttle節(jié)點中選擇一個主Throttle節(jié)點,該主ThrottIe節(jié)點可以獲取各服務器中的存儲塊的實際負載,并當確定需要進行流量控制時,主Throttle節(jié)點可以根據各服務器的存儲塊的實際負載以及存儲塊的1PS閾值對存儲塊進行流量控制,與現有技術中各服務器的Throttle節(jié)點只根據自身所在服務器的存儲塊的實際負載和1PS閾值進行流量控制的方案相比,主Throttle節(jié)點進行流量控制時,可以參考存儲塊的整體負載情況,充分考慮各服務器的存儲塊之間的性能影響,可以優(yōu)化流量控制的效果。
【附圖說明】
[0011]圖1是本發(fā)明實施例提供的一種流量控制方法的流程示意圖;
[0012]圖2A是本發(fā)明實施例提供的一種獨立存儲塊應用場景的結構示意圖;
[0013]圖2B是本發(fā)明實施例提供的一種共享存儲塊應用場景的結構示意圖;
[0014]圖3是本發(fā)明實施例提供的一種流量控制裝置的結構示意圖;
[0015]圖4是本發(fā)明實施例提供的另一種流量控制裝置的結構示意圖;
[0016]圖5是本發(fā)明實施例提供的另一種流量控制裝置的結構示意圖;
[0017]圖6是本發(fā)明實施例提供的另一種流量控制裝置的結構示意圖。
【具體實施方式】
[0018]超融合架構中各服務器中同時運行Hypervisor(—種在虛擬環(huán)境中的“元”操作系統(tǒng))和Storage(存儲)服務。其中,Hypervisor也叫做虛擬機監(jiān)視器(VMM,Virtual MachineMonitor),可以協(xié)調訪問服務器上的所有物理設備和虛擬機。通常,這些Hypervisor內部都帶有ThrottIe節(jié)點(限流節(jié)點),用于限制給定虛擬機存儲塊的流量。當為用戶的虛擬機提供一個存儲塊時,在Hypervisor中設置該存儲塊1PS的上限值。如果用戶流量超過這個閾值,Hypervisor將通過一系列措施,例如減少CPU(Center Process Unit,中央處理單元)時間,來限制對該存儲塊的操作,以避免該存儲塊的1PS影響到其它存儲塊的1PS,從而影響業(yè)務。
[0019]然而實踐發(fā)現,上述流量控制方案中,每臺服務器僅根據本服務器中存儲塊的實際負載以及1PS閾值進行流量控制,流量控制效果較差。
[0020]為了使本技術領域的人員更好地理解本發(fā)明實施例中的技術方案,并使本發(fā)明實施例的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖對本發(fā)明實施例中技術方案作進一步詳細的說明。
[0021]請參見圖1,圖1為本發(fā)明實施例提供的一種流量控制方法的流程示意圖,該方法可以應用于超融合架構,該超融合架構中各服務器中包括Throttle節(jié)點,其中,該超融合架構中各服務器中的Throttle節(jié)點中包括一個主Throttle節(jié)點,如圖1所示,該方法可以包括以下步驟:
[0022]值得說明的是,在本發(fā)明實施例中,Throttle節(jié)點可以部署于各服務器中的Hypervisor中,也可以獨立于Hypervisor部署。為便于說明,以下以Throttle節(jié)點獨立于Hypervisor部署為例進行描述。
[0023]步驟101、主Throttle節(jié)點獲取各服務器的存儲塊的實際負載。
[0024]本發(fā)明實施例中,考慮到現有流量控制方案中,各服務器的Throttle節(jié)點只能限制該服務器中的存儲塊的10PS,而沒有考慮該服務器的存儲塊的1PS對其它服務器的存儲塊的1PS的影響,導致流量控制效果較差,為了提高流量控制效果,可以從超融合架構中各服務器中的Throttle節(jié)點中選擇出一個主Throttle節(jié)點,該主Throttle節(jié)點可以動態(tài)調整超融合架構各服務器中的存儲塊的1PS實際閾值。
[0025]其中,主Throttle節(jié)點可以由用戶(如管理員)手動指定或通過Paxos(—種基于消息傳遞的一致性算法)等算法從各服務器的Thr o 111 e節(jié)點中選出。
[0026]本發(fā)明實施例中,為了實現流量控制,主ThrottIe節(jié)點可以獲取各服務器的存儲塊的實際負載。
[0027]優(yōu)選地,主Throttle節(jié)點可以周期性地獲取各服務器的存儲塊的實際負載。其中,主Throttle節(jié)點獲取各服務器的存儲塊的實際負載的周期(本文中稱為第一周期)可以根據實際應用場景設定,如半個小時、I個小時等。
[0028]作為一種可選的實施方式,在本發(fā)明實施例中,主Throttle節(jié)點獲取各服務器的存儲塊的實際負載,可以包括:
[0029]主Throttle節(jié)點獲取自身所在服務器的存儲塊的實際負載,并接收各從Throttle節(jié)點發(fā)送的各從Throttle節(jié)點所在服務器的存儲塊的實際負載。
[0030]在該實施方式中,超融合架構中各服務器中的Throttle節(jié)點可以獲取自身所在服務器的存儲塊的實際負載,該實際負載可以包括但不限于10隊列使用情況、實時1PS等信息。
[0031 ] 在該實施方式中,從Throttle節(jié)點(除主Throttle節(jié)點之外的Throttle節(jié)點均可以稱為從Throttle節(jié)點)獲取到自身所在服務器的存儲塊的實際負載之后,可以將其發(fā)送給主Thrott Ie節(jié)點。
[0032]步驟102、當主Throttle節(jié)點確定需要進行流量控制時,主Throttle節(jié)點根據各服務器的存儲塊的實際負載以及存儲塊的1PS閾值對存儲塊進行流量控制。
[0033]本發(fā)明實施例中,主Throttle節(jié)點獲取到各服務器的存儲塊的實際負載之后,可以根據各服務器的存儲塊的實際負載確定是否需要進行流量控制。當主Throttle節(jié)點確定需要進行流量控制時,主Throttle節(jié)點可以根據各服務器的存儲塊的實際負載以及存儲塊的1PS閾值對存儲塊進行流量控制。
[0034]作為一種可選的實施方式,在本發(fā)明實施例中,當各服務器的存儲塊為獨立存儲塊時,
[OO35 ] 主Thr ο 111 e節(jié)點確定需要進行流量控制可以包括:
[0036]當運行關鍵業(yè)務的第一存儲塊的實際1PS低于第一存儲塊的1PS上限,且第一存儲塊的隊列處于滿的狀態(tài),以及運行普通業(yè)務的第二存儲塊的實際1PS高于第二存儲塊的1PS下限時,主Throttle確定需要進行流量控制。
[0037]在該實施方式中,當各服務器的存儲塊為獨立存儲塊時,主Throttle節(jié)點獲取到各服務器的存儲塊的實際負載之后,可以根據各存儲塊的實際負載確定運行關鍵業(yè)務的存儲塊的性能是否已經受到了運行普通業(yè)務的存儲塊的影響;其中,存儲塊中運行的業(yè)務為關鍵業(yè)務或普通業(yè)務是相對而言的,存儲塊為運行關鍵業(yè)務的存儲塊或運行普通業(yè)務的存儲塊可以由根據用戶為存儲塊設置的1PS閾值確定,用戶為存儲塊設置的1PS下限越高,表明該存儲塊中運行的業(yè)務越重要;或者也可以在存儲塊中運行的業(yè)務中攜帶用于標識該業(yè)務為普通業(yè)務或關鍵業(yè)務的業(yè)務標識,進而可以根據存儲塊中運行的業(yè)務中攜帶的業(yè)務標識來確定業(yè)務為關鍵業(yè)務或普通業(yè)務。
[0038]在該實施方式中,當主Throttle節(jié)點根據獲取到的存儲塊的實際負載發(fā)現運行關鍵業(yè)務的存儲塊(本文中稱為第一存儲塊)的隊列長度滿足預設條件,以及運行普通業(yè)務的存儲塊(本文中稱為第二存儲塊)實際1PS高于第二存儲塊的1PS下限時,主Throttle節(jié)點可以認為運行關鍵業(yè)務的存儲塊的性能是否已經受到了運行普通業(yè)務的存儲塊的影響,從而,主Throttle可以確定需要進行流量控制。其中,第一存儲塊的隊列長度滿足預設條件可以包括但不限于第一存儲塊的隊列長度超過預設長度閾值(可以根據具體場景預先設定,如隊列最大長度的80%、90%等)或第一存儲塊的隊列長度超過第二存儲塊的隊列長度。
[0039]值得說明的是,在本發(fā)明實施例中,主Throttle節(jié)點僅在第二存儲塊的實際1PS高于第二存儲塊的1PS下限的情況下,對第二存儲塊進行1PS限制以提升第一存儲塊的實際10PS;然而在實際場景中,當第一存儲塊的隊列滿足預設條件時,第二存儲塊的實際1PS也可能會低于第二存儲塊的1PS下限,在該情況下,主Throttle節(jié)點可以不進行流量控制處理,或者按照其它策略進行相應處理,本發(fā)明實施例對此不做限定。
[0040]相應地,在該實施方式中,主Throttle節(jié)點根據各服務器的存儲塊的實際負載以及存儲塊的1PS閾值對存儲塊進行流量控制,可以包括以下步驟:
[0041 ] 11)、主Throttle節(jié)點根據第二存儲塊的實際1PS以及第二存儲塊的1PS下限,確定第二存儲塊的1PS實際閾值,其中,第二存儲塊的1PS實際閾值低于第二存儲塊的上述實際1PS,高于第二存儲塊的1PS下限;
[0042]12)、主Throttle節(jié)點根據第二存儲塊的1PS實際閾值對第二存儲塊的1PS進行控制,以使控制后的第二存儲塊的1PS不超過該第二存儲塊的1PS實際閾值。
[0043]在該實施方式中,當主Throttle節(jié)點確定需要進行流量控制,S卩第一存儲塊的性能受到了第二存儲塊的影響時,主Throttle節(jié)點可以確定需要降低第二存儲塊的1PS,以提高第一存儲塊的1PS。
[0044]具體的,主Throttle可以為第二存儲塊設置一個新的1PS閾值(本文中稱為1PS實際閾值),其中,第二存儲塊的1PS實際閾值應該低于第二存儲塊的上述實際1PS,且高于第二存儲塊的1PS下限。
[0045]例如,主Throttle節(jié)點可以通過以下公式確定第二存儲塊的1PS實際閾值Tr:
[0046]Tr = L+a* (C-L)
[0047]其中,L為第二存儲塊的1PS下限,C為第二存儲塊的實際10PS,a為常數,且0<a<I,如8 = 0.95、& = 0.9等。
[0048]在該實施方式中,主Throttle節(jié)點確定第二存儲塊的1PS實際閾值后,可以根據第二存儲塊的1PS實際閾值對第二存儲塊進行流量控制,以降低第二存儲塊的實際10PS,從而提高第一存儲塊的實際10PS。
[0049]在該實施方式中,主Throttle節(jié)點根據第二存儲塊的1PS實際閾值對第二存儲塊進行流量控制,可以包括:
[°05°]若第二存儲塊為主Throttle節(jié)點所在服務器中的存儲塊,則主Throttle節(jié)點可以直接根據該第二存儲塊的1PS實際閾值對第二存儲塊的1PS進行控制,以使控制后的第二存儲塊的1PS不超過該第二存儲塊的實際閾值;
[0051 ]若第二存儲塊為從Throttle節(jié)點所在服務器中的存儲塊,則主Throttle節(jié)點可以向該從Throttle節(jié)點發(fā)送攜帶有該第二存儲塊的1PS實際閾值的流量控制指令,由從Throttle節(jié)點根據該第二存儲塊的1PS實際閾值對第二存儲塊的1PS進行控制,以使控制后的第二存儲塊的1PS不超過該第二存儲塊的實際閾值。
[0052]值得說明的是,在本發(fā)明實施例中,當主Throttle節(jié)點根據第二存儲塊的實際1PS對第二存儲塊進行流量控制之后,主Throttle節(jié)點可以周期性地檢測第一存儲塊的隊列長度以及第二存儲塊的實際10PS,若流量控制后第一存儲塊的隊列長度仍滿足預設條件,且第二存儲塊的實際1PS仍高于第二存儲塊的1PS下限,則主Throttle節(jié)點可以再次對第二存儲塊進行流量控制,直至第一存儲塊的隊列長度不滿足預設條件,或者第二存儲塊的實際1PS低于等于第二存儲塊的1PS下限。其中,主Throttle節(jié)點對第二存儲塊進行流量控制之后,檢測第一存儲塊的隊列長度以及第二存儲塊的實際1PS的周期(本文中稱為第二周期)可以根據實際應用場景設定,且第二周期可以與第一周期相同,也可以與第一周期不同。
[0053]作為另一種可選的實施方式,在本發(fā)明實施例中,當各服務器的存儲塊為共享存儲塊時,
[0054 ] 主Thr ο 111 e節(jié)點確定需要進行流量控制可以包括:
[0055]當各服務器的存儲塊的實際1PS之和超過存儲塊的1PS上限時,主Throttle確定需要進行流量控制。
[0056]在該實施方式中,當各服務器的存儲塊為共享存儲塊時,主Throttle節(jié)點獲取到各服務器的存儲塊的實際負載之后,可以根據各存儲塊的實際負載確定各服務器的存儲塊的實際1PS之和是否超過存儲塊的1PS上限,若各服務器的存儲塊的實際1PS之和超過了存儲塊的1PS上限,則主Throttle節(jié)點可以確定需要進行流量控制。
[0057]相應地,在該實施方式中,主Throttle節(jié)點根據各服務器的存儲塊的實際負載以及存儲塊的1PS閾值對存儲塊進行流量控制,可以包括以下步驟:
[0058]21)、主Throttle節(jié)點根據各服務器的存儲塊的實際1PS以及該存儲塊的1PS上限,確定各服務器的存儲塊的1PS實際閾值,其中,各服務器的存儲塊的1PS實際閾值之和低于等于存儲塊的1PS上限,且高于等于存儲塊的1PS下限;
[0059]22)、主Throttle節(jié)點根據各服務器的存儲塊的1PS實際閾值對各服務器的存儲塊的1PS進行控制,以使控制后的各服務器的存儲塊的1PS不超過各服務器的存儲塊的1PS實際閾值。
[0000]在該實施方式中,當主Throttle節(jié)點確定需要進行流量控制,S卩各服務器的存儲塊的1PS之和超過了存儲塊的1PS上限時,主Throttle節(jié)點可以確定需要降低各服務器的存儲塊的1PS。
[0061]具體的,主Throttle可以為各服務器設置一個新的存儲塊的1PS閾值(本文中稱為1PS實際閾值),其中,各服務器的存儲塊的1PS實際閾值之和應該低于等于存儲塊的1PS上限,且高于等于存儲塊的1PS下限,既可以保證各服務器的存儲塊的實際1PS之和不會超過存儲塊的1PS上限,又可以保證充分利用存儲塊的性能。
[0062]優(yōu)選地,各服務器的存儲塊的1PS實際閾值之和等于存儲塊的1PS上限,
[0063]例如,以超融合架構中包括3個服務器(Server A、Server B和Server C)為例,主Throttle節(jié)點可以通過以下公式確定各服務器的存儲塊的1PS實際閾值:
[0064]T(i) = (I(i)/(I(A)+I(B)+I(C)))*TH
[0065]其中,i為3臺服務器中的任一臺,T(i)為服務器i的存儲塊的1PS實際閾值,I (i)為服務器i的存儲塊的實際10PS,I(A)、I(B)和I(C)分別為Server A,Server B和Server C的存儲塊的實際1PS,Th為存儲塊的1PS上限。
[0066]通過上述公式確定各服務器的存儲塊的1PS實際閾值,即可以限制存儲塊的流量,又考慮到了各服務器的存儲塊的不同負載,提高了流量控制效果。
[0067]在該實施方式中,主Throttle節(jié)點確定各服務器的存儲塊的1PS實際閾值后,可以根據該各服務器的存儲塊的1PS實際閾值對各服務器的存儲塊的1PS進行控制,以使控制后的各服務器的存儲塊的1PS不超過各服務器的存儲塊的1PS實際閾值。
[0068]在該實施方式中,主Throttle節(jié)點根據各服務器的存儲塊的1PS實際閾值對各服務器的存儲塊的1PS進行控制,可以包括:
[0069]對于主Throttle節(jié)點所在服務器,主Throttle節(jié)點可以直接根據對應的存儲塊的1PS實際閾值對該服務器的存儲塊的1PS進行控制,以使控制后的主Throttle節(jié)點所在服務器的存儲塊的1PS不超過對應的存儲塊的1PS實際閾值;
[°07°] 對于從Thrott Ie節(jié)點所在服務器,主Throttle節(jié)點可以向從Throttle節(jié)點發(fā)送攜帶對應的存儲塊1PS實際閾值的流量控制指令,由從Throttle節(jié)點根據該存儲塊的1PS實際閾值對該從Throttle節(jié)點所在服務器的存儲塊的1PS進行控制,以使控制后的該從Throttle節(jié)點所在服務器的存儲塊的1PS不超過對應的存儲塊的1PS實際閾值。
[0071]可見,在圖1所示的方法流程中,通過在超融合架構中的各服務器中的Throttle節(jié)點中選擇一個主Throttle節(jié)點,該主Throttle節(jié)點可以獲取各服務器中的存儲塊的實際負載,并當確定需要進行流量控制時,主Throttle節(jié)點可以根據各服務器的存儲塊的實際負載以及存儲塊的1PS閾值對存儲塊進行流量控制,與現有技術中各服務器的Throttle節(jié)點只根據自身所在服務器的存儲塊的實際負載和1PS閾值進行流量控制的方案相比,主Throttle節(jié)點進行流量控制時,可以參考存儲塊的整體負載情況,充分考慮各服務器的存儲塊之間的性能影響,可以優(yōu)化流量控制的效果。
[0072]為了使本領域技術人員更好地理解本發(fā)明實施例提供的技術方案,下面結合具體的應用場景對本發(fā)明實施例提供的技術方案進行描述。
[0073]請參見圖2A,為本發(fā)明實施例提供的一種獨立存儲塊的應用場景的結構示意圖,如圖2A所示,該應用場景中包括3個服務器(Server A、Server B和Server C),各服務器中可以包括VM(Virtual Machine,虛擬機)、Hypervisor、ThrottIe節(jié)點以及Storage Node(存儲節(jié)點,以下稱為存儲塊),各服務器使用獨立存儲塊。其中:
[0074]假設存儲塊A的1PS閾值為5K?10K(即1PS上限為10K,1PS下限為5K,下同),存儲塊C的1PS閾值為3K?7K(在該實施例中,以根據存儲塊的1PS下限確定存儲塊中運行的為關鍵業(yè)務或普通業(yè)務為例,即存儲塊A中運行的為關鍵業(yè)務,存儲塊C中運行的為普通業(yè)務),Throttle節(jié)點B為主Throttle節(jié)點。
[0075]在該實施例中,Throttle節(jié)點A和Throttle節(jié)點C周期性地向Throttle節(jié)點B發(fā)送存儲塊A和存儲塊C的實際負載,該實際負載包括10隊列使用情況、實際1PS等。假設某時間亥IJ,存儲塊A和存儲塊C的實際1PS均為6K,并且存儲塊A的隊列處于滿的狀態(tài),即存儲塊A的性能已經受到了存儲塊C的影響。
[0076]若按照現有流量控制方案,各Throttle節(jié)點僅對自身所在服務器的存儲塊進行流量控制,則由于存儲塊A和存儲塊C的實際IPOS均未超過存儲塊的1PS上限,因此,不會進行流量控制,從而,存儲塊A的性能會持續(xù)被存儲塊C影響,關鍵業(yè)務的運行不能得到保證。
[0077]而使用本發(fā)明實施例提供的流量控制方案,Throttle節(jié)點B接收到Throttle節(jié)點A和Throttle節(jié)點C發(fā)送的存儲塊A和存儲塊C的實際負載之后,可以發(fā)現運行關鍵業(yè)務的存儲塊A的性能受到了運行普通業(yè)務的存儲塊C的影響,從而可以確定需要對存儲塊C進行流量控制。
[0078]在該實施例中,ThrottIe節(jié)點B可以按照以下公式確定存儲塊C的1PS實際閾值Tr:
[0079]Tr = L+0.95* (C-L)
[0080]其中,L為存儲塊C的1PS下限(S卩3K),C為存儲塊C的實際10PS(S卩6K),從而存儲塊(:的10?5實際閾值1^為3+0.95*(6-3)=5.851(。
[0081 ] 在該實施例中,T h r ο 111 e節(jié)點B確定了存儲塊C的1 P S實際閾值后,可以向Thr ο 111 e節(jié)點C發(fā)送攜帶該1P S實際閾值的流量控制指令;Thr ο 111 e節(jié)點C接收到該流量控制指令之后,可以根據該1PS實際閾值對存儲塊C的1PS進行控制,即降低存儲塊C的1PS,以提高存儲塊A的性能,使存儲塊A的隊列盡快消費掉。
[0082]Throttle節(jié)點B對存儲塊C進行流量控制之后,還可以周期性檢測存儲塊A的隊列長度以及存儲塊C的實際10PS,若存儲塊A的隊列仍然處于滿的狀態(tài),且存儲塊C的實際1PS高于存儲塊C的1PS下限,則Throttle節(jié)點B可以繼續(xù)對存儲塊C進行流量控制,直至存儲塊A的隊列不為滿的狀態(tài),或存儲塊C的實際1PS低于等于存儲塊C的1PS下限。
[0083]可見,對于獨立存儲塊模式,本發(fā)明實施例提供的流量控制方案可以有效地保證運行關鍵業(yè)務的存儲塊的性能,降低運行普通業(yè)務的存儲塊對運行關鍵業(yè)務的存儲塊的性能的影響。
[0084]請參見圖2B,為本發(fā)明實施例提供的一種共享存儲塊的應用場景的結構示意圖,如圖213所示,該應用場景中包括3個服務器(Server A、Server B和Server C,圖中僅示出Throttle節(jié)點),各服務器為共享存儲塊模式。其中:假設Throttle節(jié)點B為主Throttle節(jié)點,存儲塊的1PS閾值為3K?9K。
[0085]若按照現有流量控制方案,則需要在各服務器上分別設置存儲塊1PS閾值,存儲塊的1PS閾值為3臺服務器的存儲塊1PS閾值之和(例如各服務器的存儲塊1PS閾值可以分別設置為IK?3K),在3臺服務器的業(yè)務流量穩(wěn)定的情況下,按照現有流量控制方案也可以穩(wěn)定運行,但實際情況中,服務器的業(yè)務流量是動態(tài)變化的,例如,Server A和Server B的業(yè)務流量很低(假設實際1PS均為2K),但是Server C的業(yè)務流量很大(假設實際1PS為6K),此時,按照現有流量控制方案,Server C需要對存儲塊進行限流,將1PS降低為3K,此時存儲塊的1PS(2+2+3)并未達到上限,導致存儲塊未得到充分利用。
[0086]而使用本發(fā)明實施例提供的流量控制方案,不需要分別為各服務器設置存儲塊閾值,即各服務器的存儲塊閾值均可以為3K?9K,Throttle節(jié)點B周期性地獲取自身所在服務器的存儲塊的實際負載,此外,Throttle節(jié)點A和Throttle節(jié)點C周期性地向Throttle節(jié)點B發(fā)送存儲塊的實際負載。假設某時間刻,Server A,Server B和Server C的存儲塊實際1PS分別為2K、5K和3K,此時各服務器的存儲塊的實際IPOS之和(2+5+3= 10K)超過了存儲塊的1PS上限(9Κ),因此,Throttle節(jié)點B確定需要進行流量控制。
[0087]在該實施例中,Throttle節(jié)點B可以通過以下公式確定各服務器的存儲塊的1PS實際閾值:
[0088]T(i) = (I(i)/(I(A)+I(B)+I(C)))*TH
[0089]其中,對于ServerA,T(A) = (2/2+5+3)*9 = I.8K;
[0090]對于ServerB,T(B) = (5/2+5+3)*9 = 4.5K;
[0091]對于ServerC,T(C) = (3/2+5+3)*9 = 2.7K。
[0092]通過該公式確定各服務器的存儲塊的1PS實際閾值,即可以限制存儲塊的流量,又考慮到了各服務器的存儲塊的不同負載,而且可以保證存儲塊性能的充分利用。
[0093]在該實施例中,Throttle節(jié)點B確定了各服務器的存儲塊的1PS實際閾值后,一方面,可以根據自身所在服務器的存儲塊的1PS實際閾值(4.5K)對自身所在服務器(Server
B)的存儲塊的1PS進行控制;另一方面,可以向Throttle節(jié)點A和Throttle節(jié)點C發(fā)送攜帶有對應的1PS實際閾值的流量控制指令,以使Thro 111 e節(jié)點A和Thro 111 e節(jié)點C分別根據對應的1PS實際閾值(Throttle節(jié)點A為 1.8K,Throttle節(jié)點C為2.7K)對Server A和Server C的存儲塊的1PS進行控制。
[0094]可見,對于共享存儲塊模式,本發(fā)明實施例提供的流量控制方案可以充分考慮各服務器的存儲塊的實際負載,從而在實現存儲塊限流的同時,保證存儲塊的性能得到充分利用。
[0095]通過以上描述可以看出,在本發(fā)明實施例提供的技術方案中,通過在超融合架構中的各服務器中的Throttle節(jié)點中選擇一個主Throttle節(jié)點,該主Throttle節(jié)點可以獲取各服務器中的存儲塊的實際負載,并當確定需要進行流量控制時,主Throttle節(jié)點可以根據各服務器的存儲塊的實際負載以及存儲塊的1PS閾值對存儲塊進行流量控制,與現有技術中各服務器的Throttle節(jié)點只根據自身所在服務器的存儲塊的實際負載和1PS閾值進行流量控制的方案相比,主ThrottIe節(jié)點進行流量控制時,可以參考存儲塊的整體負載情況,充分考慮各服務器的存儲塊之間的性能影響,可以優(yōu)化流量控制的效果。
[0096]請參見圖3,為本發(fā)明實施例提供的一種流量控制裝置的結構示意圖,其中,該流量控制裝置可以應用于超融合架構中的服務器中的Throttle節(jié)點,其中,超融合架構中各服務器中的Throttle節(jié)點中包括一個主Throttle節(jié)點,如圖3所示,該流量控制裝置可以包括:
[0097]獲取單元310,用于當所述Throttle節(jié)點為主Throttle節(jié)點時,獲取各服務器的存儲塊的實際負載;
[0098]控制單元320,用于當所述Throttle節(jié)點為主Throttle節(jié)點,且確定需要進行流量控制時,根據各服務器的存儲塊的實際負載以及存儲塊的每秒進行讀寫操作的次數1PS閾值對存儲塊進行流量控制。
[0099]在可選實施例中,所述獲取單元310,可以具體用于周期性地獲取各服務器的存儲塊的實際負載。
[0100]請一并參閱圖4,圖4為本發(fā)明實施例提供的另一種流量控制裝置的結構示意圖,在圖3所示的實施例的基礎上,圖4所示的流量控制裝置中,獲取單元310可以包括:
[0?0?]獲取子單元311,用于當所述Throttle節(jié)點為主Throttle節(jié)點時,獲取自身所在服務器的存儲塊的實際負載;
[0?02] 接收子單元312,用于當所述Throttle節(jié)點為主Throttle節(jié)點時,接收各從Throttle節(jié)點發(fā)送的各從Throttle節(jié)點所在服務器的存儲塊的實際負載。
[0103]請一并參閱圖5,圖5為本發(fā)明實施例提供的另一種流量控制裝置的結構示意圖,在圖3所示的實施例的基礎上,圖5所示的流量控制裝置中,當各服務器的存儲塊為獨立存儲塊時,所述控制單元320包括:
[0104]第一確定子單元321,用于當運行關鍵業(yè)務的第一存儲塊的隊列長度滿足預設條件,以及運行普通業(yè)務的第二存儲塊的實際1PS高于第二存儲塊的1PS下限時,確定需要進行流量控制;
[0105]第二確定子單元322,用于根據第二存儲塊的實際1PS以及第二存儲塊的1PS下限,確定第二存儲塊的1PS實際閾值;其中,第二存儲塊的1PS實際閾值低于第二存儲塊的所述實際1PS,高于第二存儲塊的1PS下限;
[0106]第一控制子單元323,用于根據所述第二存儲塊的1PS實際閾值對第二存儲塊的1PS進行控制,以使控制后的第二存儲塊的1PS不超過該第二存儲塊的1PS實際閾值。
[0107]請一并參閱圖6,圖6為本發(fā)明實施例提供的另一種流量控制裝置的結構示意圖,在圖3所示的實施例的基礎上,圖6所示的流量控制裝置中,當各服務器的存儲塊為共享存儲塊時,所述控制單元320包括:
[0108]第三確定子單元324,用于當各服務器的存儲塊的實際1PS之和超過存儲塊的1PS上限時,確定需要進行流量控制;
[0109]第四確定子單元325,用于根據各服務器的存儲塊的實際1PS以及該存儲塊的1PS上限,確定各服務器的存儲塊的1PS實際閾值;其中,各服務器的存儲塊的1PS實際閾值之和低于等于存儲塊的1PS上限,且高于等于存儲塊的1PS下限;
[0110]第二控制子單元326,用于根據各服務器的存儲塊的1PS實際閾值對各服務器的存儲塊的1PS進行控制,以使控制后的各服務器的存儲塊的1PS不超過各服務器的存儲塊的1PS實際閾值。
[0111]上述裝置中各個單元的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。
[0112]對于裝置實施例而言,由于其基本對應于方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上??梢愿鶕嶋H的需要選擇其中的部分或者全部模塊來實現本發(fā)明方案的目的。本領域普通技術人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
[0113]由上述實施例可見,通過在超融合架構中的各服務器中的Throttie節(jié)點中選擇一個主Throttle節(jié)點,該主ThrottIe節(jié)點可以獲取各服務器中的存儲塊的實際負載,并當確定需要進行流量控制時,主Throttle節(jié)點可以根據各服務器的存儲塊的實際負載以及存儲塊的1PS閾值對存儲塊進行流量控制,與現有技術中各服務器的Throttle節(jié)點只根據自身所在服務器的存儲塊的實際負載和1PS閾值進行流量控制的方案相比,主Throttle節(jié)點進行流量控制時,可以參考存儲塊的整體負載情況,充分考慮各服務器的存儲塊之間的性能影響,可以優(yōu)化流量控制的效果。
[0114]本領域技術人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實施方案。本申請旨在涵蓋本發(fā)明的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本發(fā)明的一般性原理并包括本發(fā)明未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權利要求指出。
[0115]應當理解的是,本發(fā)明并不局限于上面已經描述并在附圖中示出的精確結構,并且可以在不脫離其范圍進行各種修改和改變。本發(fā)明的范圍僅由所附的權利要求來限制。
【主權項】
1.一種流量控制方法,應用于超融合架構,所述超融合架構中各服務器中包括限流節(jié)點Throttle節(jié)點,其特征在于,所述超融合構架中各服務器中的Throttle節(jié)點中包括一個主ThrottIe節(jié)點,所述方法包括: 主Throttle節(jié)點獲取各服務器的存儲塊的實際負載; 當所述主Thrott Ie節(jié)點確定需要進行流量控制時,所述主Thrott Ie節(jié)點根據各服務器的存儲塊的實際負載以及存儲塊的每秒進行讀寫操作的次數1PS閾值對存儲塊進行流量控制。2.根據權利要求1所述的方法,其特征在于,所述主Throttle節(jié)點獲取各服務器的存儲塊的實際負載,包括: 所述主Throttle節(jié)點周期性地獲取各服務器的存儲塊的實際負載。3.根據權利要求1或2所述的方法,其特征在于,所述主Throttle節(jié)點獲取服務器的存儲塊的實際負載,包括: 所述主Throttle節(jié)點獲取自身所在服務器的存儲塊的實際負載,并接收各從Throttle節(jié)點發(fā)送的各從Throttle節(jié)點所在服務器的存儲塊的實際負載。4.根據權利要求1所述的方法,其特征在于,當各服務器的存儲塊為獨立存儲塊時, 所述主Thro tt I e節(jié)點確定需要進行流量控制包括: 當運行關鍵業(yè)務的第一存儲塊的隊列長度滿足預設條件,以及運行普通業(yè)務的第二存儲塊的實際1PS高于第二存儲塊的1PS下限時,所述主Throttle確定需要進行流量控制;所述主Thro tt I e節(jié)點根據各服務器的存儲塊的實際負載以及存儲塊的1PS閾值對存儲塊進行流量控制,包括: 所述主Throttle節(jié)點根據第二存儲塊的實際1PS以及第二存儲塊的1PS下限,確定第二存儲塊的1PS實際閾值;其中,第二存儲塊的1PS實際閾值低于第二存儲塊的所述實際1PS,高于第二存儲塊的1PS下限; 所述主Throttle節(jié)點根據所述第二存儲塊的1PS實際閾值對第二存儲塊的1PS進行控制,以使控制后的第二存儲塊的1PS不超過該第二存儲塊的1PS實際閾值。5.根據權利要求1所述的方法,其特征在于,當各服務器的存儲塊為共享存儲塊時, 所述主Thro tt I e節(jié)點確定需要進行流量控制包括: 當各服務器的存儲塊的實際1PS之和超過存儲塊的1PS上限時,所述主Throttle確定需要進行流量控制; 所述主Thro tt I e節(jié)點根據各服務器的存儲塊的實際負載以及存儲塊的1PS閾值對存儲塊進行流量控制,包括: 所述主Throttle節(jié)點根據各服務器的存儲塊的實際1PS以及該存儲塊的1PS上限,確定各服務器的存儲塊的1PS實際閾值;其中,各服務器的存儲塊的1PS實際閾值之和低于等于存儲塊的1PS上限,且高于等于存儲塊的1PS下限; 所述主Throttle節(jié)點根據各服務器的存儲塊的1PS實際閾值對各服務器的存儲塊的1PS進行控制,以使控制后的各服務器的存儲塊的1PS不超過各服務器的存儲塊的1PS實際閾值。6.—種限流控制裝置,應用于超融合架構的服務器中的限流節(jié)點Throttle節(jié)點中,其特征在于,所述超融合構架中各服務器中的ThrottIe節(jié)點中包括一個主ThrottIe節(jié)點,所述裝置包括: 獲取單元,用于當所述Throttle節(jié)點為主Throttle節(jié)點時,獲取各服務器的存儲塊的實際負載; 控制單元,用于當所述Throttle節(jié)點為主Throttle節(jié)點,且確定需要進行流量控制時,根據各服務器的存儲塊的實際負載以及存儲塊的每秒進行讀寫操作的次數1PS閾值對存儲塊進行流量控制。7.根據權利要求6所述的裝置,其特征在于, 所述獲取單元,具體用于周期性地獲取各服務器的存儲塊的實際負載。8.根據權利要求6或7所述的裝置,其特征在于,所述獲取單元包括: 獲取子單元,用于當所述Throttle節(jié)點為主Throttle節(jié)點時,獲取自身所在服務器的存儲塊的實際負載; 接收子單元,用于當所述Throttle節(jié)點為主Throttle節(jié)點時,接收各從Throttle節(jié)點發(fā)送的各從Throttle節(jié)點所在服務器的存儲塊的實際負載。9.根據權利要求6所述的裝置,其特征在于,當各服務器的存儲塊為獨立存儲塊時, 所述控制單元包括: 第一確定子單元,用于當運行關鍵業(yè)務的第一存儲塊的隊列長度滿足預設條件,以及運行普通業(yè)務的第二存儲塊的實際1PS高于第二存儲塊的1PS下限時,確定需要進行流量控制; 第二確定子單元,用于根據第二存儲塊的實際1PS以及第二存儲塊的1PS下限,確定第二存儲塊的1PS實際閾值;其中,第二存儲塊的1PS實際閾值低于第二存儲塊的所述實際1PS,高于第二存儲塊的1PS下限; 第一控制子單元,用于根據所述第二存儲塊的1PS實際閾值對第二存儲塊的1PS進行控制,以使控制后的第二存儲塊的1PS不超過該第二存儲塊的1PS實際閾值。10.根據權利要求6所述的裝置,其特征在于,當各服務器的存儲塊為共享存儲塊時, 所述控制單元包括: 第三確定子單元,用于當各服務器的存儲塊的實際1PS之和超過存儲塊的1PS上限時,確定需要進行流量控制; 第四確定子單元,用于根據各服務器的存儲塊的實際1PS以及該存儲塊的1PS上限,確定各服務器的存儲塊的1PS實際閾值;其中,各服務器的存儲塊的1PS實際閾值之和低于等于存儲塊的1PS上限,且高于等于存儲塊的1PS下限; 第二控制子單元,用于根據各服務器的存儲塊的1PS實際閾值對各服務器的存儲塊的1PS進行控制,以使控制后的各服務器的存儲塊的1PS不超過各服務器的存儲塊的1PS實際閾值。
【文檔編號】H04L12/801GK106059940SQ201610357657
【公開日】2016年10月26日
【申請日】2016年5月25日
【發(fā)明人】吳香偉
【申請人】杭州昆海信息技術有限公司