一種流量監(jiān)控的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種流量監(jiān)控的方法和系統(tǒng),其中所述方法包括以下步驟:S1,對(duì)各功能模塊的資源使用情況進(jìn)行監(jiān)控,判斷至少一功能模塊的資源使用情況是否超過預(yù)設(shè)值,是則執(zhí)行步驟S2;S2,為涉及的功能模塊重新動(dòng)態(tài)分配資源。本發(fā)明通過調(diào)配系統(tǒng)資源,避免系統(tǒng)局部負(fù)載過大,同時(shí),在負(fù)載過大以及系統(tǒng)異常的情況下提供流控手段,保證系統(tǒng)穩(wěn)定運(yùn)行,提供SAN存儲(chǔ)系統(tǒng)在大壓力I/O請(qǐng)求下的穩(wěn)定性以及魯棒性。有效地整合系統(tǒng)資源,在一個(gè)或多個(gè)模塊發(fā)生過載時(shí),能夠繼續(xù)進(jìn)行流控;當(dāng)系統(tǒng)出現(xiàn)異常時(shí),能動(dòng)態(tài)調(diào)整流控策略,避免大量I/O請(qǐng)求加重異常錯(cuò)誤的影響,從系統(tǒng)的角度解決了流控問題,使得存儲(chǔ)系統(tǒng)更加穩(wěn)定。
【專利說明】一種流量監(jiān)控的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及存儲(chǔ)系統(tǒng)的流量監(jiān)控,尤其涉及的是,一種流量監(jiān)控的方法和系統(tǒng)。
【背景技術(shù)】
[0002]現(xiàn)有的SAN (Storage Area Network,存儲(chǔ)區(qū)域網(wǎng)絡(luò))存儲(chǔ)系統(tǒng),包括IP (iSCSI,internet SCSI,互聯(lián)網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口)-SAN,F(xiàn)C (Fibre Channel,光纖通道)-SAN,大多沒有設(shè)計(jì)流量監(jiān)控(簡(jiǎn)稱流控)系統(tǒng),或者只根據(jù)獨(dú)立的模塊設(shè)計(jì)簡(jiǎn)單的流控系統(tǒng),不能很好的整合系統(tǒng)資源,在系統(tǒng)出現(xiàn)異常的時(shí)候容易引起數(shù)據(jù)擁塞,從而導(dǎo)致系統(tǒng)不穩(wěn)定,影響業(yè)務(wù)訪問,嚴(yán)重時(shí)導(dǎo)致系統(tǒng)崩潰。
[0003]例如,無流控系統(tǒng)的SAN存儲(chǔ)系統(tǒng),當(dāng)I/O請(qǐng)求超過系統(tǒng)某一個(gè)模塊的負(fù)載時(shí),SAN存儲(chǔ)系統(tǒng)無流量響應(yīng)控制,I/o請(qǐng)求被掛起,直到系統(tǒng)模塊負(fù)載回復(fù)正常,導(dǎo)致I/O請(qǐng)求端大量請(qǐng)求得不到響應(yīng),無法判斷存儲(chǔ)端狀態(tài)。
[0004]對(duì)于具有簡(jiǎn)單流控系統(tǒng)的SAN存儲(chǔ)系統(tǒng),對(duì)系統(tǒng)某一個(gè)模塊,或者某一個(gè)系統(tǒng)資源的使用情況進(jìn)行監(jiān)控,如果資源達(dá)到瓶頸,則發(fā)出流量控制反饋。其存在三類問題:(1)不能很好地整合系統(tǒng)資源,例如,某一個(gè)模塊負(fù)載達(dá)到瓶頸時(shí),無法通過調(diào)配資源來降低局部負(fù)載;(2)其他模塊發(fā)生過載時(shí),依舊不能進(jìn)行流控;(3)未考慮到異常錯(cuò)誤的流控需求,即,當(dāng)系統(tǒng)出現(xiàn)異常時(shí),需要?jiǎng)討B(tài)的調(diào)整流控策略,避免大量I/O請(qǐng)求加重異常錯(cuò)誤的影響。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所要解決的技術(shù)問題是提供一種新的流量監(jiān)控的方法和系統(tǒng)。
[0006]本發(fā)明的技術(shù)方案如下:一種流量監(jiān)控的方法,其包括以下步驟:S1,對(duì)各功能模塊的資源使用情況進(jìn)行監(jiān)控,判斷至少一功能模塊的資源使用情況是否超過預(yù)設(shè)值,是則執(zhí)行步驟S2 ;S2,為涉及的功能模塊重新動(dòng)態(tài)分配資源。
[0007]優(yōu)選的,所述方法中,步驟S1之前還執(zhí)行以下步驟S0:在資源分配時(shí),除正常資源之外,還預(yù)留其中一部分用于動(dòng)態(tài)分配的后備資源;并且,步驟S2中,所述重新動(dòng)態(tài)分配資源,是分配所述后備資源。
[0008]優(yōu)選的,所述方法中,步驟S2之后還執(zhí)行以下步驟S3:選擇符合預(yù)設(shè)置條件的功能模塊,對(duì)經(jīng)由所述功能模塊的讀寫請(qǐng)求進(jìn)行流量控制;其中,所述預(yù)設(shè)置條件包括:重新動(dòng)態(tài)分配資源后,涉及的功能模塊的資源使用情況仍然超過預(yù)設(shè)值,和/或,至少一模塊出現(xiàn)需要后臺(tái)恢復(fù)的異常情況;所述流量控制包括以下步驟:在預(yù)設(shè)時(shí)間內(nèi),將資源使用情況最多的功能模塊標(biāo)識(shí)為流控模塊,對(duì)于所有的讀寫請(qǐng)求,分別判斷是否途經(jīng)所述流控模塊,是則直接返回對(duì)應(yīng)的讀寫請(qǐng)求。
[0009]優(yōu)選的,所述方法中,步驟S3之前,還執(zhí)行以下步驟S30:判斷涉及的所述功能模塊是否出現(xiàn)異常情況,是則鎖定所述功能模塊所使用的資源,設(shè)置所述功能模塊的資源使用率為100%,進(jìn)行異常情況處理,并執(zhí)行步驟S3 ;否則不再執(zhí)行步驟S3。[0010]優(yōu)選的,所述方法中,步驟S30之前,還執(zhí)行以下步驟S300:定期檢測(cè)各功能模塊的資源使用情況。
[0011]優(yōu)選的,所述方法中,步驟S3之后,還執(zhí)行以下步驟S31:判斷所述功能模塊的所述異常情況是否解除,是則終止對(duì)經(jīng)由所述功能模塊的所述流量控制。
[0012]優(yōu)選的,所述方法中,步驟SO中,保留30%作為所述后備資源;并且,步驟SI中,所述預(yù)設(shè)值為所述正常資源的70%。
[0013]優(yōu)選的,所述方法中,步驟S2之前,還執(zhí)行以下步驟S20:判斷后備資源的當(dāng)前值是否低于后備資源的總值的50%,是則從空閑的各功能模塊中臨時(shí)回收資源。
[0014]優(yōu)選的,所述方法中,步驟S20之后,還執(zhí)行以下步驟S21:判斷后備資源的當(dāng)前值是否低于后備資源的總值的20%,是則對(duì)涉及的所述功能模塊進(jìn)行流量控制。
[0015]本發(fā)明的又一技術(shù)方案如下:一種流量監(jiān)控的系統(tǒng),包括若干功能模塊,其還包括分別與各所述功能模塊連接的資源均衡模塊,用于對(duì)各功能模塊的資源使用情況進(jìn)行監(jiān)控,在至少一功能模塊的資源使用情況超過預(yù)設(shè)值時(shí),為涉及的功能模塊重新動(dòng)態(tài)分配資源。
[0016]優(yōu)選的,所述系統(tǒng)還包括分別與各所述功能模塊連接的流控調(diào)度模塊;所述流控調(diào)度模塊還與所述資源均衡模塊連接,用于選擇符合預(yù)設(shè)置條件的功能模塊,對(duì)經(jīng)由所述功能模塊的讀寫請(qǐng)求進(jìn)行流量控制;其中,所述預(yù)設(shè)置條件包括:重新動(dòng)態(tài)分配資源后,涉及的功能模塊的資源使用情況仍然超過預(yù)設(shè)值,和/或,至少一模塊出現(xiàn)需要后臺(tái)恢復(fù)的異常情況;所述流量控制包括:在預(yù)設(shè)時(shí)間內(nèi),將資源使用情況最多的功能模塊標(biāo)識(shí)為流控模塊,對(duì)于所有的讀寫請(qǐng)求,分別判斷是否途經(jīng)所述流控模塊,是則直接返回對(duì)應(yīng)的讀寫請(qǐng)求。
[0017]優(yōu)選的,所述系統(tǒng)還包括分別與各所述功能模塊連接的異常檢測(cè)模塊;所述異常檢測(cè)模塊與所述流控調(diào)度模塊連接,用于在各所述功能模塊出現(xiàn)異常情況時(shí),鎖定對(duì)應(yīng)功能模塊所使用的資源,設(shè)置所述功能模塊的資源使用率為100%,進(jìn)行異常情況處理,并通知所述流控調(diào)度模塊。
[0018]采用上述方案,本發(fā)明及時(shí)有效監(jiān)控各功能模塊的資源使用情況,在一個(gè)或多個(gè)功能模塊的資源使用情況超過閾值時(shí),為相關(guān)功能模塊重新動(dòng)態(tài)分配資源,具有很高的實(shí)際應(yīng)用價(jià)值。
【專利附圖】
【附圖說明】
[0019]圖1為本發(fā)明的一個(gè)實(shí)施例的流程示意圖;
[0020]圖2為本發(fā)明的一個(gè)實(shí)施例的資源均衡流程示意圖;
[0021]圖3為本發(fā)明的一個(gè)實(shí)施例的異常檢測(cè)流程示意圖;
[0022]圖4為本發(fā)明的一個(gè)實(shí)施例的流控調(diào)度流程示意圖。
【具體實(shí)施方式】
[0023]為了便于理解本發(fā)明,下面結(jié)合附圖和具體實(shí)施例,對(duì)本發(fā)明進(jìn)行更詳細(xì)的說明。附圖中給出了本發(fā)明的較佳的實(shí)施例。但是,本發(fā)明可以以許多不同的形式來實(shí)現(xiàn),并不限于本說明書所描述的實(shí)施例。相反地,提供這些實(shí)施例的目的是使對(duì)本發(fā)明的公開內(nèi)容的理解更加透徹全面。
[0024]需要說明的是,當(dāng)元件被稱為“固定于”另一個(gè)元件,它可以直接在另一個(gè)元件上或者也可以存在居中的元件。當(dāng)一個(gè)元件被認(rèn)為是“連接”另一個(gè)元件,它可以是直接連接到另一個(gè)元件或者可能同時(shí)存在居中元件。本說明書所使用的術(shù)語(yǔ)“垂直的”、“水平的”、“左”、“右”以及類似的表述只是為了說明的目的。
[0025]除非另有定義,本說明書所使用的所有的技術(shù)和科學(xué)術(shù)語(yǔ)與屬于本發(fā)明的【技術(shù)領(lǐng)域】的技術(shù)人員通常理解的含義相同。本說明書中在本發(fā)明的說明書中所使用的術(shù)語(yǔ)只是為了描述具體的實(shí)施例的目的,不是用于限制本發(fā)明。本說明書所使用的術(shù)語(yǔ)“和/或”包括一個(gè)或多個(gè)相關(guān)的所列項(xiàng)目的任意的和所有的組合。
[0026]本發(fā)明的一個(gè)實(shí)施例是,一種流量監(jiān)控的方法,其包括以下步驟:S1,對(duì)各功能模塊的資源使用情況進(jìn)行監(jiān)控,判斷至少一功能模塊的資源使用情況是否超過預(yù)設(shè)值,是則執(zhí)行步驟S2 ;S2,為涉及的功能模塊重新動(dòng)態(tài)分配資源。例如,SAN存儲(chǔ)系統(tǒng)按照I/O請(qǐng)求路徑的順序,包括以下功能模塊:前端接口模塊(Front End,F(xiàn)C/iSCSI/FCoE,F(xiàn)E )、邏輯虛擬卷模塊(Logic volume, LV)、Cache緩存模塊(Cache)、Raid模塊(RAID)、后端磁盤接口模塊(Back End, SATA/SAS磁盤接口,BE);上述功能模塊可能存在瓶徑的系統(tǒng)資源包括:內(nèi)存、CPU、10 resource(讀寫資源)、異常處理資源等,例如,在步驟S1中,對(duì)上述各功能模塊的資源使用情況進(jìn)行監(jiān)控;例如,類似參考windows系統(tǒng)的任務(wù)管理器(ctrl+alt+del組合鍵),類似于“進(jìn)程”和/或“性能”,可以看到內(nèi)存、CPU等使用情況,例如,某一進(jìn)程占用內(nèi)存若干,使用CPU某一百分比等。
[0027]優(yōu)選的,所述方法中,步驟S1之前還執(zhí)行以下步驟S0:在資源分配時(shí),除正常資源之外,還預(yù)留其中一部分用于動(dòng)態(tài)分配的后備資源;并且,步驟S2中,所述重新動(dòng)態(tài)分配資源,是分配所述后備資源。例如,在資源分配時(shí),可用內(nèi)存100%,預(yù)留60%-80%的內(nèi)存空間作為正常資源,剩余40%-20%作為用于動(dòng)態(tài)分配的后備資源;以此類推。優(yōu)選的,步驟S0中,保留30%作為所述后備資源;并且,步驟S1中,所述預(yù)設(shè)值為所述正常資源的70%。例如,保留30%的CPU空閑率作為所述后備資源,并且,步驟S1中,所述預(yù)設(shè)值為所述正常資源的70%;以此類推。優(yōu)選的,步驟S2之前,還執(zhí)行以下步驟S20:判斷后備資源的當(dāng)前值是否低于后備資源的總值的50%,是則從空閑的各功能模塊中臨時(shí)回收資源。優(yōu)選的,步驟S20之后,步驟S2之前,還執(zhí)行以下步驟S21:判斷后備資源的當(dāng)前值是否低于后備資源的總值的20%,是則對(duì)涉及的所述功能模塊進(jìn)行流量控制。
[0028]例如,如圖2所示,設(shè)置資源水位,例如,按經(jīng)驗(yàn)值設(shè)置為系統(tǒng)整體資源的70%,并將此資源分配給所有功能模塊,剩下30%的資源稱之為后備資源,初始化后備資源。然后定期或?qū)崟r(shí)或被動(dòng)檢查各個(gè)功能模塊的資源使用情況,當(dāng)某一個(gè)或多個(gè)功能模塊的資源使用率達(dá)到70%時(shí),則發(fā)出均衡資源的請(qǐng)求,此時(shí)可將后備資源臨時(shí)分配給所需模塊。
[0029]當(dāng)后備資源下降到50%時(shí),觸發(fā)資源回收機(jī)制,從空閑的功能模塊中臨時(shí)回收資源。如果后備資源下降到20%,則認(rèn)為所有模塊均處于高壓力之下,對(duì)涉及的所述功能模塊進(jìn)行流量控制,例如,將信息發(fā)給流控調(diào)度模塊,并觸發(fā)其進(jìn)行工作。并且,還周期性將數(shù)據(jù)發(fā)給流控調(diào)度模塊,當(dāng)后備資源上升至50%時(shí),解除流量控制工作(簡(jiǎn)稱“流控”)。
[0030]優(yōu)選的,所述方法中,步驟S2之后還執(zhí)行以下步驟S3:選擇符合預(yù)設(shè)置條件的功能模塊,對(duì)經(jīng)由所述功能模塊的讀寫請(qǐng)求進(jìn)行流量控制;其中,所述預(yù)設(shè)置條件包括:重新動(dòng)態(tài)分配資源后,涉及的功能模塊的資源使用情況仍然超過預(yù)設(shè)值,和/或,至少一模塊出現(xiàn)需要后臺(tái)恢復(fù)的異常情況;所述流量控制包括以下步驟:在預(yù)設(shè)時(shí)間內(nèi),將資源使用情況最多的功能模塊標(biāo)識(shí)為流控模塊,對(duì)于所有的讀寫請(qǐng)求,分別判斷是否途經(jīng)所述流控模塊,是則直接返回對(duì)應(yīng)的讀寫請(qǐng)求。
[0031]例如,如圖4所示,分別接收數(shù)據(jù),檢查是否使能流控調(diào)度,例如,判斷是否觸發(fā)動(dòng)作,如果有觸發(fā)動(dòng)作,則進(jìn)行下一步,否則返回;選擇資源使用率最高的模塊,即選擇最大使用率的功能模塊,將其標(biāo)識(shí)為流控模塊;對(duì)于所有I/o請(qǐng)求,判斷途經(jīng)的模塊是否有標(biāo)識(shí)為流控模塊,如果存在流控模塊標(biāo)識(shí),則直接返回;流控的時(shí)間根據(jù)流控模塊或者其他功能模塊的資源使用情況調(diào)整,即根據(jù)收到信息設(shè)置流控周期,直到系統(tǒng)解除流量控制。
[0032]優(yōu)選的,所述方法中,步驟S3之前,還執(zhí)行以下步驟S30:判斷涉及的所述功能模塊是否出現(xiàn)異常情況,是則鎖定所述功能模塊所使用的資源,設(shè)置所述功能模塊的資源使用率為100%,進(jìn)行異常情況處理,并執(zhí)行步驟S3 ;否則不再執(zhí)行步驟S3。例如,所述異常情況處理,包括上報(bào)管理員,上報(bào)上級(jí),發(fā)出報(bào)警信號(hào),調(diào)整電源輸入或輸出,和/或,進(jìn)入休眠狀態(tài)等。又如,設(shè)置所述功能模塊的資源使用率為100%,則默認(rèn)不再接收對(duì)該功能模塊的讀寫操作。例如,如圖3所示,檢測(cè)各功能模塊是否出現(xiàn)異常;如果出現(xiàn)異常,則鎖定本模塊的資源,并設(shè)置資源使用率100%,并觸發(fā)異常處理機(jī)制,同時(shí),將數(shù)據(jù)發(fā)送給流控調(diào)度模塊,并觸發(fā)其進(jìn)行工作;周期性地將數(shù)據(jù)發(fā)給流量調(diào)度模塊,當(dāng)異常處理完成時(shí),解除流控。
[0033]優(yōu)選的,所述方法中,步驟S30之前,還執(zhí)行以下步驟S300:定期檢測(cè)各功能模塊的資源使用情況。例如,每間隔200毫秒、I秒、5秒、50秒或者其他預(yù)定時(shí)間,檢測(cè)各功能模塊的資源使用情況。
[0034]優(yōu)選的,所述方法中,步驟S3之后,還執(zhí)行以下步驟S31:判斷所述功能模塊的所述異常情況是否解除,是則終止對(duì)經(jīng)由所述功能模塊的所述流量控制。例如,當(dāng)某一功能模塊發(fā)生異常狀況時(shí),對(duì)經(jīng)由所述功能模塊的所述流量控制;之后,發(fā)現(xiàn)該功能模塊的所述異常情況解除時(shí)或者解除后,終止對(duì)經(jīng)由所述功能模塊的所述流量控制。
[0035]例如,一實(shí)施例包括以下步驟:
[0036]步驟S300,定期檢測(cè)各功能模塊的資源使用情況。
[0037]步驟S30,判斷涉及的所述功能模塊是否出現(xiàn)異常情況,是則鎖定所述功能模塊所使用的資源,設(shè)置所述功能模塊的資源使用率為100%,進(jìn)行異常情況處理,并執(zhí)行步驟S3 ;否則不再執(zhí)行步驟S3。
[0038]步驟S3,選擇符合預(yù)設(shè)置條件的功能模塊,對(duì)經(jīng)由所述功能模塊的讀寫請(qǐng)求進(jìn)行流量控制。
[0039]步驟S31,判斷所述功能模塊的所述異常情況是否解除,是則終止對(duì)經(jīng)由所述功能模塊的所述流量控制。
[0040]又一實(shí)施例包括以下步驟:
[0041]步驟S0,在資源分配時(shí),除正常資源之外,還預(yù)留其中一部分用于動(dòng)態(tài)分配的后備資源。
[0042]步驟SI,對(duì)各功能模塊的資源使用情況進(jìn)行監(jiān)控,判斷至少一功能模塊的資源使用情況是否超過預(yù)設(shè)值,是則執(zhí)行步驟S20。
[0043]步驟S20,判斷后備資源的當(dāng)前值是否低于后備資源的總值的50%,是則從空閑的各功能模塊中臨時(shí)回收資源。
[0044]步驟S21,判斷后備資源的當(dāng)前值是否低于后備資源的總值的20%,是則對(duì)涉及的所述功能模塊進(jìn)行流量控制。
[0045]步驟S2,為涉及的功能模塊重新動(dòng)態(tài)分配資源。
[0046]步驟S3,選擇符合預(yù)設(shè)置條件的功能模塊,對(duì)經(jīng)由所述功能模塊的讀寫請(qǐng)求進(jìn)行流量控制。
[0047]步驟S31,判斷所述功能模塊的所述異常情況是否解除,是則終止對(duì)經(jīng)由所述功能模塊的所述流量控制。
[0048]本發(fā)明的又一實(shí)施例如下:一種流量監(jiān)控的系統(tǒng),包括若干功能模塊,其還包括分別與各所述功能模塊連接的資源均衡模塊,用于對(duì)各功能模塊的資源使用情況進(jìn)行監(jiān)控,在至少一功能模塊的資源使用情況超過預(yù)設(shè)值時(shí),為涉及的功能模塊重新動(dòng)態(tài)分配資源。通過設(shè)置資源均衡模塊,用于調(diào)配各個(gè)功能模塊的資源;例如,資源均衡模塊,根據(jù)各個(gè)功能模塊的資源使用情況分析出是否有需要進(jìn)行流量控制的模塊;其中,功能模塊包括但不限于FE、LV、CACHE、RAID、BE。例如,資源均衡模塊的處理流程如圖2所示,資源均衡模塊設(shè)置資源水位,例如,按經(jīng)驗(yàn)值設(shè)置為系統(tǒng)整體資源的70%,并將此資源分配給所有功能模塊,剩下30%的資源稱之為后備資源,初始化后備資源。然后定期或?qū)崟r(shí)或被動(dòng)檢查各個(gè)功能模塊的資源使用情況,當(dāng)某一個(gè)或多個(gè)功能模塊的資源使用率達(dá)到70%時(shí),則均衡資源,例如發(fā)出均衡資源的請(qǐng)求,此時(shí)可將后備資源臨時(shí)分配給所需模塊。當(dāng)后備資源下降到50%或者小于50%時(shí),進(jìn)行回收資源,例如,觸發(fā)資源回收機(jī)制,從空閑的功能模塊中臨時(shí)回收資源,作為后備資源使用。如果后備資源下降到20%或者小于20%時(shí),則觸發(fā)流控調(diào)度模塊;例如,認(rèn)為所有模塊均處于高壓力之下,對(duì)涉及的所述功能模塊進(jìn)行流量控制,例如,將信息發(fā)給流控調(diào)度模塊,并觸發(fā)其進(jìn)行工作。并且,還周期性將數(shù)據(jù)發(fā)給流控調(diào)度模塊,當(dāng)后備資源上升至50%時(shí),解除流量控制工作(簡(jiǎn)稱“流控”)。
[0049]優(yōu)選的,所述系統(tǒng)還包括分別與各所述功能模塊連接的流控調(diào)度模塊;所述流控調(diào)度模塊還與所述資源均衡模塊連接,用于選擇符合預(yù)設(shè)置條件的功能模塊,對(duì)經(jīng)由所述功能模塊的讀寫請(qǐng)求進(jìn)行流量控制;其中,所述預(yù)設(shè)置條件包括:重新動(dòng)態(tài)分配資源后,涉及的功能模塊的資源使用情況仍然超過預(yù)設(shè)值,和/或,至少一模塊出現(xiàn)需要后臺(tái)恢復(fù)的異常情況;所述流量控制包括:在預(yù)設(shè)時(shí)間內(nèi),將資源使用情況最多的功能模塊標(biāo)識(shí)為流控模塊,對(duì)于所有的讀寫請(qǐng)求,分別判斷是否途經(jīng)所述流控模塊,是則直接返回對(duì)應(yīng)的讀寫請(qǐng)求。通過設(shè)置流控模塊,用于選擇出需要進(jìn)行流控的模塊,使能流控機(jī)制。例如,可能需要調(diào)度的數(shù)據(jù)輸入到流控調(diào)度模塊,由流控調(diào)度模塊決定是否需要調(diào)度,以及按照何種方式進(jìn)行調(diào)度。這樣,所有的I/o請(qǐng)求根據(jù)流量調(diào)度模塊的結(jié)論進(jìn)行I/O流量控制,使得系統(tǒng)在大壓力下表現(xiàn)出很強(qiáng)的魯棒性(Robustness,也稱健壯性)。
[0050]優(yōu)選的,所述系統(tǒng)還包括分別與各所述功能模塊連接的異常檢測(cè)模塊;所述異常檢測(cè)模塊與所述流控調(diào)度模塊連接,用于在各所述功能模塊出現(xiàn)異常情況時(shí),鎖定對(duì)應(yīng)功能模塊所使用的資源,設(shè)置所述功能模塊的資源使用率為100%,進(jìn)行異常情況處理,并通知所述流控調(diào)度模塊。通過設(shè)置異常檢測(cè)模塊,用于監(jiān)控各個(gè)模塊的健康狀態(tài)。例如,異常檢測(cè)模塊,對(duì)各個(gè)模塊的異常情況進(jìn)行檢測(cè),分析異常處理所需要的資源使用情況,并得出需要進(jìn)行流量控制的模塊。例如,異常檢測(cè)模塊的處理流程如圖3所示,異常檢測(cè)模塊檢測(cè)各功能模塊是否出現(xiàn)異常;如果出現(xiàn)異常,則鎖定本模塊的資源,并設(shè)置資源使用率100%,并觸發(fā)異常處理機(jī)制,同時(shí),將數(shù)據(jù)發(fā)送給流控調(diào)度模塊,并觸發(fā)其進(jìn)行工作;周期性地將數(shù)據(jù)發(fā)給流量調(diào)度模塊,當(dāng)異常處理完成時(shí),解除流控。
[0051]本發(fā)明上述各流量監(jiān)控的系統(tǒng),其針對(duì)SAN存儲(chǔ)響應(yīng)I/O請(qǐng)求,當(dāng)系統(tǒng)整體資源不能滿足過量I/o請(qǐng)求時(shí),對(duì)請(qǐng)求發(fā)起端做出流量控制響應(yīng)。
[0052]本發(fā)明通過對(duì)上述功能模塊所使用的資源進(jìn)行監(jiān)控,當(dāng)某一個(gè)或多個(gè)模塊的資源由于負(fù)載過大出現(xiàn)瓶頸時(shí),動(dòng)態(tài)的重新分配資源。并在必要的情況下選擇出需要流控的模塊,對(duì)經(jīng)由此模塊的I/o請(qǐng)求進(jìn)行流量控制。例如,必要的情況包括:重新分配資源后仍然出現(xiàn)瓶頸;和/或,模塊出現(xiàn)異常,需要后臺(tái)恢復(fù)異常,此時(shí)必須降低I/o請(qǐng)求壓力。
[0053]又一實(shí)施例是,所述系統(tǒng)包括各功能模塊,以及分別與各功能模塊連接的資源均衡模塊、異常檢測(cè)模塊、流控調(diào)度模塊,例如,資源均衡模塊、異常檢測(cè)模塊以及流控調(diào)度模塊均作為后臺(tái)管理模塊,獨(dú)立于功能模塊運(yùn)行,系統(tǒng)的整體流量控制由該三個(gè)后臺(tái)管理模塊協(xié)同工作得以實(shí)現(xiàn)。
[0054]流控調(diào)度模塊的處理流程如圖4所示,分別接收來自資源均衡模塊、異常檢測(cè)模塊的數(shù)據(jù),檢查是否使能流控調(diào)度,例如,判斷是否觸發(fā)動(dòng)作,如果有觸發(fā)動(dòng)作,則進(jìn)行下一步,否則返回;選擇資源使用率最高的模塊,即選擇最大使用率的功能模塊,將其標(biāo)識(shí)為流控模塊;對(duì)于所有I/o請(qǐng)求,判斷途經(jīng)的模塊是否有標(biāo)識(shí)為流控模塊,如果存在流控模塊標(biāo)識(shí),則直接返回;流控的時(shí)間根據(jù)流控模塊或者其他功能模塊的資源使用情況調(diào)整,即根據(jù)收到信息設(shè)置流控周期,直到系統(tǒng)解除流量控制。
[0055]又一實(shí)施例如圖1所示,對(duì)于IO請(qǐng)求(也稱“I/O請(qǐng)求”),進(jìn)行流控判定,判斷其涉及流控模塊,需要進(jìn)行流量控制,則反饋流量控制命令,結(jié)束對(duì)應(yīng)的IO請(qǐng)求;如果不需要進(jìn)行流量控制,則發(fā)送到FE、LV、CACHE、RAID、BE等功能模塊,調(diào)用內(nèi)存、CPU、IO讀寫操作等資源完成相應(yīng)的功能,此過程中,由資源均衡模塊實(shí)現(xiàn)資源均衡處理,數(shù)據(jù)發(fā)送到流控調(diào)度模塊;如果存在異常,則對(duì)于異常處理所需的內(nèi)存、CPU、IO讀寫操作等資源,通過異常檢測(cè)模塊實(shí)現(xiàn)異常檢測(cè)處理,數(shù)據(jù)發(fā)送到流控調(diào)度模塊;由流控調(diào)度模塊確定是否對(duì)相關(guān)功能模塊標(biāo)記為用于流控判定的流控模塊以及是否解除該流控模塊的標(biāo)記。
[0056]進(jìn)一步地,本發(fā)明的實(shí)施例還包括,上述各實(shí)施例的各技術(shù)特征,相互組合形成的流量監(jiān)控的方法和系統(tǒng),本發(fā)明在資源分配時(shí)預(yù)留一部分資源作為動(dòng)態(tài)調(diào)撥用途,在SAN存儲(chǔ)系統(tǒng)中某個(gè)模塊出現(xiàn)瓶頸時(shí),先對(duì)整體系統(tǒng)資源做均衡處理,如果均衡處理之后仍舊出現(xiàn)瓶頸,再針對(duì)訪問相關(guān)模塊的I/O請(qǐng)求作出流量控制;當(dāng)系統(tǒng)出現(xiàn)異常時(shí),通過對(duì)異常處理所需資源的分析,對(duì)系統(tǒng)作出流量控制,防止過大壓力導(dǎo)致異常模塊崩潰;并將異常處理資源與正常使用資源同步量化,同時(shí)納入流控系統(tǒng)。
[0057]本發(fā)明的上述各實(shí)施例所述系統(tǒng),作為流量監(jiān)測(cè)及控制系統(tǒng),通過調(diào)配系統(tǒng)資源,避免系統(tǒng)局部負(fù)載過大,同時(shí),在負(fù)載過大以及系統(tǒng)異常的情況下提供流控手段,保證系統(tǒng)穩(wěn)定運(yùn)行,提供SAN存儲(chǔ)系統(tǒng)在大壓力I/O請(qǐng)求下的穩(wěn)定性以及魯棒性。有效地整合系統(tǒng)資源,在一個(gè)或多個(gè)模塊發(fā)生過載時(shí),能夠繼續(xù)進(jìn)行流控;當(dāng)系統(tǒng)出現(xiàn)異常時(shí),能動(dòng)態(tài)調(diào)整流控策略,避免大量I/O請(qǐng)求加重異常錯(cuò)誤的影響,從系統(tǒng)的角度解決了流控問題,使得存儲(chǔ)系統(tǒng)更加穩(wěn)定。
[0058]綜上所述,本發(fā)明是一種改進(jìn)計(jì)算系統(tǒng)流量監(jiān)控的方法和系統(tǒng),解決的是如何提升計(jì)算機(jī)系統(tǒng)尤其是存儲(chǔ)系統(tǒng)的流量監(jiān)控的技術(shù)問題,該方法通過執(zhí)行計(jì)算機(jī)程序?qū)崿F(xiàn)對(duì)計(jì)算機(jī)系統(tǒng)內(nèi)部運(yùn)行性能以及計(jì)算機(jī)系統(tǒng)整體運(yùn)行性能的改進(jìn),反映的是利用資源均衡和異常檢測(cè)共同實(shí)現(xiàn)流量監(jiān)控,利用的是遵循自然規(guī)律的技術(shù)手段,獲得計(jì)算機(jī)系統(tǒng)對(duì)資源使用的效率提高的技術(shù)效果。因此,本發(fā)明專利申請(qǐng)是一種通過執(zhí)行計(jì)算機(jī)程序?qū)崿F(xiàn)計(jì)算機(jī)系統(tǒng)內(nèi)部性能改進(jìn)的解決方案,屬于專利法第二條第二款規(guī)定的技術(shù)方案,屬于專利保護(hù)的客體。
[0059]需要說明的是,上述各技術(shù)特征繼續(xù)相互組合,形成未在上面列舉的各種實(shí)施例,均視為本發(fā)明說明書記載的范圍;并且,對(duì)本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進(jìn)或變換,而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。
【權(quán)利要求】
1.一種流量監(jiān)控的方法,其特征在于,包括以下步驟:S1,對(duì)各功能模塊的資源使用情況進(jìn)行監(jiān)控,判斷至少一功能模塊的資源使用情況是否超過預(yù)設(shè)值,是則執(zhí)行步驟S2 ;S2,為涉及的功能模塊重新動(dòng)態(tài)分配資源。
2.根據(jù)權(quán)利要求1所述方法,其特征在于,步驟S1之前還執(zhí)行以下步驟SO:在資源分配時(shí),除正常資源之外,還預(yù)留其中一部分用于動(dòng)態(tài)分配的后備資源;并且,步驟S2中,所述重新動(dòng)態(tài)分配資源,是分配所述后備資源。
3.根據(jù)權(quán)利要求2所述方法,其特征在于,步驟S2之后還執(zhí)行以下步驟S3:選擇符合預(yù)設(shè)置條件的功能模塊,對(duì)經(jīng)由所述功能模塊的讀寫請(qǐng)求進(jìn)行流量控制;其中,所述預(yù)設(shè)置條件包括:重新動(dòng)態(tài)分配資源后,涉及的功能模塊的資源使用情況仍然超過預(yù)設(shè)值,和/或 ,至少一模塊出現(xiàn)需要后臺(tái)恢復(fù)的異常情況;所述流量控制包括以下步驟:在預(yù)設(shè)時(shí)間內(nèi),將資源使用情況最多的功能模塊標(biāo)識(shí)為流控模塊,對(duì)于所有的讀寫請(qǐng)求,分別判斷是否途經(jīng)所述流控模塊,是則直接返回對(duì)應(yīng)的讀寫請(qǐng)求。
4.根據(jù)權(quán)利要求3所述方法,其特征在于,步驟S3之前,還執(zhí)行以下步驟S30:判斷涉及的所述功能模塊是否出現(xiàn)異常情況,是則鎖定所述功能模塊所使用的資源,設(shè)置所述功能模塊的資源使用率為100%,進(jìn)行異常情況處理,并執(zhí)行步驟S3 ;否則不再執(zhí)行步驟S3。
5.根據(jù)權(quán)利要求4所述方法,其特征在于,步驟S30之前,還執(zhí)行以下步驟S300:定期檢測(cè)各功能模塊的資源使用情況。
6.根據(jù)權(quán)利要求5所述方法,其特征在于,步驟S3之后,還執(zhí)行以下步驟S31:判斷所述功能模塊的所述異常情況是否解除,是則終止對(duì)經(jīng)由所述功能模塊的所述流量控制。
7.根據(jù)權(quán)利要求3至6任一所述方法,其特征在于,步驟S0中,保留30%作為所述后備資源;并且,步驟S1中,所述預(yù)設(shè)值為所述正常資源的70% ;優(yōu)選的,步驟S2之前,還執(zhí)行以下步驟S20:判斷后備資源的當(dāng)前值是否低于后備資源的總值的50%,是則從空閑的各功能模塊中臨時(shí)回收資源;優(yōu)選的,步驟S20之后,還執(zhí)行以下步驟S21:判斷后備資源的當(dāng)前值是否低于后備資源的總值的20%,是則對(duì)涉及的所述功能模塊進(jìn)行流量控制。
8.一種流量監(jiān)控的系統(tǒng),包括若干功能模塊,其特征在于,還包括分別與各所述功能模塊連接的資源均衡模塊,用于對(duì)各功能模塊的資源使用情況進(jìn)行監(jiān)控,在至少一功能模塊的資源使用情況超過預(yù)設(shè)值時(shí),為涉及的功能模塊重新動(dòng)態(tài)分配資源。
9.根據(jù)權(quán)利要求8所述系統(tǒng),其特征在于,還包括分別與各所述功能模塊連接的流控調(diào)度模塊;所述流控調(diào)度模塊還與所述資源均衡模塊連接,用于選擇符合預(yù)設(shè)置條件的功能模塊,對(duì)經(jīng)由所述功能模塊的讀寫請(qǐng)求進(jìn)行流量控制;其中,所述預(yù)設(shè)置條件包括:重新動(dòng)態(tài)分配資源后,涉及的功能模塊的資源使用情況仍然超過預(yù)設(shè)值,和/或,至少一模塊出現(xiàn)需要后臺(tái)恢復(fù)的異常情況;所述流量控制包括:在預(yù)設(shè)時(shí)間內(nèi),將資源使用情況最多的功能模塊標(biāo)識(shí)為流控模塊,對(duì)于所有的讀寫請(qǐng)求,分別判斷是否途經(jīng)所述流控模塊,是則直接返回對(duì)應(yīng)的讀寫請(qǐng)求。
10.根據(jù)權(quán)利要求9所述系統(tǒng),其特征在于,還包括分別與各所述功能模塊連接的異常檢測(cè)模塊; 所述異常檢測(cè)模塊與所述流控調(diào)度模塊連接,用于在各所述功能模塊出現(xiàn)異常情況時(shí),鎖定對(duì)應(yīng)功能模塊所使用的資源,設(shè)置所述功能模塊的資源使用率為100%,進(jìn)行異常情況處理, 并通知所述流控調(diào)度模塊。
【文檔編號(hào)】H04L12/917GK103647723SQ201310733563
【公開日】2014年3月19日 申請(qǐng)日期:2013年12月26日 優(yōu)先權(quán)日:2013年12月26日
【發(fā)明者】張旭明 申請(qǐng)人:深圳市迪菲特科技股份有限公司