一種云存儲系統(tǒng)的可用性保障方法
【專利摘要】本發(fā)明公開一種云存儲系統(tǒng)的可用性保障方法,包含:1、判斷系統(tǒng)處于是否正常情況;2、根據(jù)動態(tài)負載均衡措施方法為合法的、突如其來的訪問I/O流提供合理的存儲資源分配服務(wù);3、根據(jù)I/O請求排隊與流量控制方法,化解高峰時段針對云存儲系統(tǒng)的分布式的拒絕服務(wù)攻擊,并結(jié)合動態(tài)負載均衡措施保證正常I/O請求的服務(wù)質(zhì)量。本發(fā)明可以保證云存儲系統(tǒng)在高峰時段對合法用戶的可用性,一方面通過優(yōu)先級排隊和流量控制以及動態(tài)負載均衡,過濾掉或抑制各種異常I/O請求和攻擊流,化解高峰時段針對云存儲系統(tǒng)的DDoS攻擊,保證正常I/O請求的服務(wù)質(zhì)量;另一方面,系統(tǒng)沒有DDoS攻擊時,通過動態(tài)負載均衡,保證高峰時段正常的I/O請求的服務(wù)質(zhì)量。
【專利說明】—種云存儲系統(tǒng)的可用性保障方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,具體涉及一種云存儲系統(tǒng)的可用性保障方法。
【背景技術(shù)】
[0002]目前,云存儲系統(tǒng),尤其是公有云存儲系統(tǒng)具有以下特點:
1、典型的云存儲平臺包括云控制器、集群控制器和存儲結(jié)點。云控制器直接面對用戶,為用戶提供身份認證、資源分配、負載均衡等,是黑客最直接攻擊的目標。由于云控制器通常采用大型專用的計算機服務(wù)器系統(tǒng)。這種專用系統(tǒng)本身具有很高的安全和可靠性,對于許多已知的協(xié)議和操作系統(tǒng)的漏洞,以及網(wǎng)絡(luò)層和運輸層的攻擊,都有相應(yīng)的安全措施加以避免(IPSec、防火墻和各種入侵檢測,數(shù)據(jù)抗災(zāi)備份等)。所以,對云控制器最直接有效的攻擊將是在訪問流量高峰時段應(yīng)用層的DDoS (distributed denial of service分布式拒絕服務(wù))的洪水式(flooding)攻擊,造成正常I/O (Input/Output)請求流不能到達目的地。不僅如此,與以往DDoS攻擊相比,基于云的應(yīng)用層攻擊更容易組織,破壞性更大。而一旦攻擊的對象是大型云服務(wù)提供商,勢必影響大批用戶,所造成的損失就更加難以估量。有時,雖然沒有攻擊行為,高峰時段正常I/O請求的服務(wù)質(zhì)量嚴重下降。
[0003]2、業(yè)務(wù)量(workload,即1/0量)大有時具有突發(fā)性的特點(如大型活動網(wǎng)站的云存儲系統(tǒng),以及承辦重大活動的云服務(wù)商的云存儲系統(tǒng)),相比于一般的計算機存儲系統(tǒng),不能用簡單的平穩(wěn)的隨機過程來描述。通常的為一般基于主機的存儲系統(tǒng)建立的抵御入侵的統(tǒng)計異常檢測(statistical anomaly detection)方法,將有可能把合法的、突如其來的訪問1/0請求流誤判為攻擊流,因而變得不適用。
[0004]3、目前針對云存儲系統(tǒng)的DDoS攻擊越來越多地發(fā)生在應(yīng)用層。由于大部分應(yīng)用層攻擊在網(wǎng)絡(luò)層和傳輸層的表現(xiàn)與正常數(shù)據(jù)流沒有顯著區(qū)別,因而現(xiàn)有的從網(wǎng)絡(luò)層和傳輸層的角度來檢測和防御網(wǎng)絡(luò)攻擊的異常檢測方法和網(wǎng)絡(luò)防御技術(shù)不能有效檢測和防御這一類攻擊。現(xiàn)有的應(yīng)用層異常檢測方法主要針對某種特定應(yīng)用和發(fā)生在其上的特定攻擊。能夠識別出多類應(yīng)用層攻擊的異常檢測方法比較少,并且現(xiàn)有的防御技術(shù)也沒有考慮應(yīng)用層協(xié)議應(yīng)用過程中用戶行為動態(tài)變化過程,因此存在一定的局限性。
[0005]所以,如何保證云存儲系統(tǒng)在高峰時段或異常情況下對用戶的可用性具有十分重要的意義。它包括兩方面的內(nèi)容:一是正常情況下高峰時段云存儲系統(tǒng)的可用性,即如何為合法的、突如其來的訪問1/0請求提供合理的存儲資源分配服務(wù);二是異常情況下高峰時段云存儲系統(tǒng)的可用性,即找出化解針對云存儲系統(tǒng)的DDoS攻擊以及保證正常1/0請求服務(wù)質(zhì)量的方法。
【發(fā)明內(nèi)容】
[0006]本發(fā)明提供一種云存儲系統(tǒng)的可用性保障方法,可以保證云存儲系統(tǒng)在高峰時段對合法用戶的可用性,一方面通過優(yōu)先級排隊和流量控制以及動態(tài)負載均衡,過濾掉或抑制各種異常1/0請求和攻擊流,化解高峰時段針對云存儲系統(tǒng)的DDoS攻擊,保證正常I/O請求的服務(wù)質(zhì)量;另一方面,通過動態(tài)負載均衡,保證高峰時段正常的I/O請求的服務(wù)質(zhì)量。
[0007]為實現(xiàn)上述目的,本發(fā)明提供一種云存儲系統(tǒng)的可用性保障方法,該方法包含以下步驟:
步驟1、系統(tǒng)判斷處于是否正常情況,若是,處于正常情況,則跳轉(zhuǎn)到步驟2,若否,處于異常情況,則跳轉(zhuǎn)到步驟3;
步驟2、根據(jù)動態(tài)負載均衡措施方法為合法的、突如其來的訪問I/O流提供合理的存儲資源分配服務(wù),完成后跳轉(zhuǎn)回步驟I ;
步驟3、根據(jù)I/O請求排隊與流量控制方法,化解高峰時段針對云存儲系統(tǒng)的分布式的拒絕服務(wù)攻擊,并結(jié)合動態(tài)負載均衡措施保證正常I/O請求的服務(wù)質(zhì)量,完成后跳轉(zhuǎn)到步驟I。
[0008]上述動態(tài)負載均衡措施方法包含:應(yīng)用服務(wù)器的負載均衡方法,以及存儲設(shè)備的負載均衡方法;
上述應(yīng)用服務(wù)器的負載均衡方法包含以下步驟:
a)系統(tǒng)判斷當前應(yīng)用服務(wù)器是否空閑,若是,則跳轉(zhuǎn)到b),若否,則跳轉(zhuǎn)到c);
b)根據(jù)到達應(yīng)用服務(wù)器的I/O量大小,在其剩余處理能力允許的條件下建立多個虛擬機,以提聞處理能力;
c)將負載較大的虛擬機的執(zhí)行任務(wù)轉(zhuǎn)移一部分至其它相對空閑的虛擬機處理,以維持所有虛擬機的負載均衡;
上述存儲設(shè)備的負載均衡方法包含以下步驟:
d)通過監(jiān)控存儲網(wǎng)絡(luò)中各種存儲設(shè)備的狀態(tài)和屬性,評估其I/O能力;
e)將新的請求引導(dǎo)至I/O能力相對較強的存儲設(shè)備。
[0009]上述服務(wù)器、虛擬機和存儲設(shè)備負載能力評估,主要依據(jù)是云存儲系統(tǒng)服務(wù)器、虛擬機和存儲設(shè)備的I/o量、I/O響應(yīng)時間和I/O帶寬占用情況;這些參數(shù)一部分通過現(xiàn)有的云環(huán)境的網(wǎng)絡(luò)監(jiān)控軟件獲取,一部分通過匯聚流的統(tǒng)計行為HSMM的或然概率值計算進行評估。
[0010]上述I/O請求排隊與流量控制方法包含以下步驟:
f )計算用戶行為HSMM和匯聚流的統(tǒng)計行為HSMM的或然概率;
g)將用戶行為HSMM的或然概率對應(yīng)為恰當?shù)膬?yōu)先級,根據(jù)匯聚流的統(tǒng)計行為的或然概率評估服務(wù)器等的負載情況;
h)根據(jù)用戶I/O請求優(yōu)先級把不同來源的I/O請求流導(dǎo)入不同的隊列;
i)按照赤字循環(huán)調(diào)度方法進行隊列調(diào)度;
j)采用令牌桶方法對輸出流量進行速率限制。
[0011]上述用戶行為HSMM的或然概率處理方法包含以下步驟:
k)在云存儲系統(tǒng)外的路由器、網(wǎng)關(guān)處或云控制器處,采集正常用戶在使用各種應(yīng)用層協(xié)議訪問云存儲系統(tǒng)時產(chǎn)生的大量觀測序列作為模型訓(xùn)練的數(shù)據(jù)集;
I)用采集的數(shù)據(jù)集訓(xùn)練描述使用各種應(yīng)用層協(xié)議用戶動態(tài)行為特征的HSMM,對于使用同一種應(yīng)用層協(xié)議的用戶,將把具有相同cookie的用戶I/O請求序列對于正常I/O行為HSMM計算其或然概率,根據(jù)或然概率值分配恰當?shù)膬?yōu)先級;上述匯聚流的統(tǒng)計行為HSMM的或然概率處理方法包含以下步驟:η)在云存儲系統(tǒng)外的路由器、網(wǎng)關(guān)或云控制器處,采集正常情況下產(chǎn)生的大量匯聚I/O流觀測序列作為訓(xùn)練的數(shù)據(jù)集;
m)用采集的匯聚流數(shù)據(jù)集訓(xùn)練描述網(wǎng)絡(luò)動態(tài)行為特征的HSMM和設(shè)計描述網(wǎng)絡(luò)動態(tài)行為的HSMM在線算法,計算相同源I/O流HSMM的或然概率值,根據(jù)該或然概率值估計云控制器、應(yīng)用服務(wù)器或云存儲設(shè)備的負載情況。
[0012]上述匯聚流的或然概率與應(yīng)用服務(wù)器負載的對應(yīng)關(guān)系如下:
當服務(wù)器負載正常時,訪問服務(wù)器匯聚流的或然概率都集中a值附近,a為服務(wù)器達到總負載(0%,70%)時訪問服務(wù)器的各種匯聚流或然概率出現(xiàn)的最大頻率值;
當匯聚流的或然概率偏離正常值,說明服務(wù)器負載較大,偏離越遠,系統(tǒng)負載越大;當負載達到服務(wù)器總負載的90%時,匯聚流或然概率小于a的1/8,要啟動負載均衡系統(tǒng),降低服務(wù)器或虛擬機的負載,保證I/O請求的服務(wù)質(zhì)量。
[0013]上述用戶行為的或然概率與優(yōu)先級的對應(yīng)關(guān)系如下:
當用戶正常行為的或然概率都集中在b附近,其中b為用戶正常I/O行為的或然概率出現(xiàn)的最大頻率值,若用戶行為的或然概率靠近b則其正常程度較高,賦予其I/O數(shù)據(jù)高優(yōu)先級;若用戶行為的或然概率遠離b則其正常程度較低,賦予I/O數(shù)據(jù)低優(yōu)先級;
當用戶I/o行為的或然概率遠離b到小于b值的1/8,說明該用戶的I/O流是攻擊流,則對該用戶的數(shù)據(jù)直接作過濾處理;
上述用戶行為的或然概率與隊列的對應(yīng)關(guān)系如下:
設(shè)正常用戶I/o行為的或然概率出現(xiàn)的最大頻率設(shè)為FRQ ;
當用戶行為的或然概率的出現(xiàn)頻率在(1/2FRQ,F(xiàn)RQ]之間,則該用戶I/O數(shù)據(jù)包放高優(yōu)先級隊列;
當用戶行為的或然概率的出現(xiàn)頻率在(1/4FRQ,1/2FRQ]之間,則該用戶I/O數(shù)據(jù)包放中優(yōu)先級隊列;
當用戶行為的或然概率的出現(xiàn)頻率在(1/8FRQ,1/4FRQ]之間,則該用戶I/O數(shù)據(jù)包放低優(yōu)先級隊列;
當用戶行為的或然概率的出現(xiàn)頻率在(0.L1/8FRQ]之間,則該用戶I/O行為偏離正常過遠,對該用戶I/O數(shù)據(jù)包進行過濾。
[0014]上述赤字循環(huán)調(diào)度方法包含:
依次按照高優(yōu)先級隊列、中優(yōu)先級隊列、低優(yōu)先級隊列輪詢的方式為每個隊列提供調(diào)度服務(wù);
每一次循環(huán)調(diào)度后,用AVe來決定在下一次循環(huán)調(diào)度時各隊列所占帶寬的比例5 ;其
中爲為隊列仏的滑動平均用戶數(shù),Pe為隊列$的正常度P值;
上述赤字循環(huán)參數(shù)設(shè)置方法包含以下步驟:
ο)隊列 (i= 1Z3)的正常度Pi 比例為 Pl:P2:P3=1:1/2:1/4:1 ;P)隊列仏(i=lZ3)在下一次循環(huán)調(diào)度時獲得的帶寬為η = #?Λ/(Σ|=Α乃),其中Nlt = UNii it-Ujnit ;其中a為一個比例常數(shù),表明t-Ι時刻的用戶數(shù)對t時刻的作用,一般取0.8 ;nit為t時刻隊列仏.中的用戶數(shù);
q)若下一次循環(huán)調(diào)度允許傳送的數(shù)據(jù)包數(shù)為M,則隊列& (i= 1,2,3)應(yīng)分配的定額為
quantum, = Μ* ,即在下次循環(huán)中隊列仏的赤字計數(shù)器的值能加上Μ* η。
[0015]上述令牌桶的參數(shù)動態(tài)調(diào)整方法包含以下步驟:
r)用匯聚I/O流HSMM計算到達應(yīng)用服務(wù)器的總的和新的負載的或然概率和當前的負載水平,得出它們的自相似性/長相關(guān)性,并判斷統(tǒng)計結(jié)果是否出現(xiàn)異常情況,若否,則跳轉(zhuǎn)到s),若是,則跳轉(zhuǎn)到t);
s)若統(tǒng)計結(jié)果未出現(xiàn)異常情況,即正常高峰時段,則根據(jù)服務(wù)器當前的剩余處理能力確定令牌桶的深度和每秒加入的令牌數(shù);
t)若統(tǒng)計結(jié)果出現(xiàn)異常情況,即存在分布式拒絕服務(wù)攻擊流,則過濾掉低優(yōu)先級隊列的流量。
[0016]本發(fā)明一種云存儲系統(tǒng)的可用性保障方法和現(xiàn)有技術(shù)相比,其優(yōu)點在于,本發(fā)明用于保證云存儲系統(tǒng)在異常情況時,例如遇分布式的拒絕服務(wù)(DDoS)攻擊和遇突發(fā)的正常高峰I/O請求時段等,對合法用戶的可用性和存儲服務(wù)質(zhì)量,該方法通過HSMM和HSMM在線算法精確描述各種用戶的動態(tài)行為特征和系統(tǒng)的各種匯聚I/O流的動態(tài)變化情況,根據(jù)用戶的動態(tài)行為特征計算對應(yīng)的或然概率值,并以此區(qū)分正常用戶和異常用戶,根據(jù)各種匯聚匯I/O流的動態(tài)變化情況計算對應(yīng)的或然概率值,并以此評估云控制器和應(yīng)用服務(wù)器等負載情況;通過優(yōu)先級排隊和流量控制以及動態(tài)負載均衡技術(shù)阻止異常用戶對系統(tǒng)的訪問,化解針對系統(tǒng)的DDoS攻擊,保證系統(tǒng)對正常合法用戶的可用性和存儲服務(wù)質(zhì)量。
【專利附圖】
【附圖說明】
[0017]圖1為本發(fā)明一種云存儲系統(tǒng)的可用性保障方法的總體流程圖;
圖2為本發(fā)明一種云存儲系統(tǒng)的可用性保障方法所適用的總體系統(tǒng)結(jié)構(gòu)圖;` 圖3為本發(fā)明一種云存儲系統(tǒng)的可用性保障方法中應(yīng)用服務(wù)器的負載均衡方法的流程圖;
圖4為本發(fā)明一種云存儲系統(tǒng)的可用性保障方法中I/O請求排隊與流量控制方法的流程圖;
圖5為本發(fā)明一種云存儲系統(tǒng)的可用性保障方法數(shù)據(jù)包入隊的處理流程圖;
圖6為本發(fā)明一種云存儲系統(tǒng)的可用性保障方法數(shù)據(jù)包出隊的處理流程圖;
圖7為本發(fā)明一種云存儲系統(tǒng)的可用性保障方法數(shù)據(jù)包的令牌桶示意圖。
【具體實施方式】[0018]以下結(jié)合附圖,進一步說明本發(fā)明的具體實施例。
[0019]如圖1所示,為本發(fā)明的總體流程圖,為了保證高峰時段云存儲系統(tǒng)的可用性,一方面需要根據(jù)用戶I/o請求序列精確區(qū)分正常用戶和異常用戶,保證正常用戶的I/O服務(wù)質(zhì)量;另一方面需要精確區(qū)分到達應(yīng)用服務(wù)器的正常情況和異常情況的各種匯聚I/o流,并找出化解針對云存儲系統(tǒng)的DDoS攻擊的方法。本發(fā)明借鑒:隱半馬爾科夫模型(HSMM,Hidden sem1-Markov modeling)描述存儲系統(tǒng)各種匯聚I/O流的動態(tài)特性和用戶行為特征,并引用與或然概率大小相對應(yīng)的優(yōu)先級,對I/O請求分組進行排隊服務(wù)和流量控制以及動態(tài)負載均衡,從而找出化解針對云存儲系統(tǒng)的DDoS攻擊的方法,并保證系統(tǒng)的可用性和正常的存儲服務(wù)質(zhì)量。
[0020]如圖2所示,為本發(fā)明的總體系統(tǒng)結(jié)構(gòu)圖,根據(jù)本發(fā)明所設(shè)計的攻防系統(tǒng)位于云控制器上,這樣可以充分利用云存儲系統(tǒng)服務(wù)器強大的計算能力,不斷在應(yīng)用中對HSMM更新完善。同時,也能保證異常檢測和處理的速度。
[0021]本發(fā)明公開了一種云存儲系統(tǒng)的可用性保障方法的實施例,該方法包含以下步驟:
步驟1、系統(tǒng)判斷處于是否正常情況,若是,處于正常情況,則跳轉(zhuǎn)到步驟2,若否,處于異常情況,則跳轉(zhuǎn)到步驟3。
[0022]步驟2、根據(jù)動態(tài)負載均衡措施方法為合法的、突如其來的訪問I/O流提供合理的存儲資源分配服務(wù),完成后跳轉(zhuǎn)回步驟I。
[0023]步驟3、根據(jù)I/O請求排隊與流量控制方法,化解高峰時段針對云存儲系統(tǒng)的分布式的拒絕服務(wù)攻擊,并結(jié)合動態(tài)負載均衡措施保證正常I/o請求的服務(wù)質(zhì)量,完成后跳轉(zhuǎn)回步驟I。
[0024]動態(tài)負載均衡措施方法包含:應(yīng)用服務(wù)器的負載均衡方法,以及存儲設(shè)備的負載均衡方法。
[0025]如圖3所示,應(yīng)用服務(wù)器的負載均衡方法包含以下步驟:
a)系統(tǒng)判斷當前應(yīng)用服務(wù)器是否空閑,若是,則跳轉(zhuǎn)到b),若否,則跳轉(zhuǎn)到C)。
[0026]b)根據(jù)到達應(yīng)用服務(wù)器的I/O量大小,在其剩余處理能力允許的條件下建立多個虛擬機,以提高處理能力。
[0027]c)將負載較大的虛擬機的執(zhí)行任務(wù)轉(zhuǎn)移一部分至其它相對空閑的虛擬機處理,以維持所有虛擬機的負載均衡。
[0028]存儲設(shè)備的負載均衡方法包含以下步驟:
d)通過監(jiān)控存儲網(wǎng)絡(luò)中各種存儲設(shè)備的狀態(tài)和屬性,評估其I/O能力。
[0029]e)將新的請求引導(dǎo)至I/O能力相對較強的存儲設(shè)備。
[0030]上述服務(wù)器、虛擬機和存儲設(shè)備負載能力評估,主要依據(jù)是云存儲系統(tǒng)服務(wù)器、虛擬機和存儲設(shè)備的I/o量、I/O響應(yīng)時間和I/O帶寬占用情況;這些參數(shù)一部分通過現(xiàn)有的云環(huán)境的網(wǎng)絡(luò)監(jiān)控軟件獲取,一部分通過匯聚流的統(tǒng)計行為HSMM的或然概率值計算進行評估。
[0031]如圖4所示,上述步驟3中,I/O請求排隊與流量控制方法包含以下步驟: f )計算用戶行為HSMM和匯聚流的統(tǒng)計行為HSMM的或然概率。
[0032]g)將用戶行為HSMM的或然概率對應(yīng)為恰當?shù)膬?yōu)先級,根據(jù)匯聚流的統(tǒng)計行為的或然概率評估服務(wù)器等的負載情況。
[0033]h)根據(jù)用戶I/O請求優(yōu)先級把不同來源的I/O請求流導(dǎo)入不同的隊列。
[0034]i)按照赤字循環(huán)(DRR, Deficit Round Robin)調(diào)度方法進行隊列調(diào)度。
[0035]j)采用令牌桶(Token Bucket)方法對輸出流量進行速率限制。
[0036]步驟f)中,用戶行為HSMM的或然概率處理方法包含以下步驟:
k)在云存儲系統(tǒng)外的路由器、網(wǎng)關(guān)處或云控制器處,采集正常用戶在使用各種應(yīng)用層協(xié)議訪問云存儲系統(tǒng)時產(chǎn)生的大量觀測序列作為模型訓(xùn)練的數(shù)據(jù)集。
[0037]I)用采集的數(shù)據(jù)集訓(xùn)練描述使用各種應(yīng)用層協(xié)議用戶動態(tài)行為特征的HSMM,對于使用同一種應(yīng)用層協(xié)議的用戶,將把具有相同cookie的用戶1/0請求序列對于正常1/0行為HSMM計算其或然概率,根據(jù)或然概率值分配恰當?shù)膬?yōu)先級。
[0038]匯聚流的統(tǒng)計行為HSMM的或然概率處理方法包含以下步驟:
η)在云存儲系統(tǒng)外的路由器、網(wǎng)關(guān)或云控制器處,采集正常情況下產(chǎn)生的大量匯聚1/0流觀測序列作為訓(xùn)練的數(shù)據(jù)集。
[0039]m)用采集的匯聚1/0流數(shù)據(jù)集訓(xùn)練描述網(wǎng)絡(luò)動態(tài)行為特征的HSMM和設(shè)計能精確描述網(wǎng)絡(luò)動態(tài)行為的HSMM在線算法,計算各種匯聚1/0流的或然概率值,根據(jù)該或然概率值估計云控制器、應(yīng)用服務(wù)器或云存儲設(shè)備的負載情況。
[0040]匯聚流的或然概率與應(yīng)用服務(wù)器負載的對應(yīng)關(guān)系如下:
當服務(wù)器負載正常時,訪問服務(wù)器匯聚流的或然概率都集中在a值附近,其中a為服務(wù)器達到總負載的(0%,70%)時訪問服務(wù)器的各種匯聚流或然概率出現(xiàn)的最大頻率值;
當服務(wù)器匯聚流的或然概率偏離正常值,說明服務(wù)負載較大,偏離越遠,系統(tǒng)負載越
大;
當負載達到服務(wù)器總負載的90% (匯聚流或然概率小于a的1/8)時,要啟動負載均衡系統(tǒng),降低服務(wù)器或虛擬機的負載,保證1/0請求的服務(wù)質(zhì)量。
[0041]用戶1/0行為的或然概率與優(yōu)先級的對應(yīng)關(guān)系如下:
研究表明:用戶正常I/o流的或然概率出現(xiàn)的頻率類似于正態(tài)分布。
[0042]當正常用戶1/0行為的或然概率都集中在b附近,b為正常用戶1/0行為的或然概率出現(xiàn)的最大頻率值,若用戶行為的或然概率靠近b則其正常程度較高,賦予其1/0數(shù)據(jù)高優(yōu)先級。若用戶行為的或然概率遠離b則其正常程度較低,賦予1/0數(shù)據(jù)低優(yōu)先級;
當用戶I/o行為的或然概率遠離b到一定程度,S卩小于正常用戶1/0行為的或然概率出現(xiàn)的最大頻率b的1/8,說明該用戶的1/0流是攻擊流,對該用戶的1/0數(shù)據(jù)直接作過濾處理。
[0043]進一步地,根據(jù)優(yōu)先級把不同來源的用戶1/0流數(shù)據(jù)導(dǎo)入不同的隊列,高優(yōu)先級用戶的I/o流數(shù)據(jù)導(dǎo)入高優(yōu)先級隊列,低優(yōu)先級用戶的1/0流數(shù)據(jù)導(dǎo)入低優(yōu)先級隊列。
[0044]具體來說,或然概率與隊列的對應(yīng)關(guān)系如下:
設(shè)正常用戶1/0行為的或然概率出現(xiàn)的最大頻率設(shè)為FRQ ;
當用戶行為的或然概率的出現(xiàn)頻率在(1/2FRQ,F(xiàn)RQ]之間,則該用戶1/0數(shù)據(jù)包放高優(yōu)先級隊列。
[0045]當用戶行為的或然概率的出現(xiàn)頻率在(1/4FRQ,1/2FRQ]之間,則該用戶1/0數(shù)據(jù)包放中優(yōu)先級隊列。[0046]當用戶行為的或然概率的出現(xiàn)頻率在(1/8FRQ,1/4FRQ]之間,則該用戶I/O數(shù)據(jù)包放低優(yōu)先級隊列。
[0047]當用戶行為的或然概率的出現(xiàn)頻率在(0.1,1/8FRQ]之間,則該用戶I/O行為偏離正常過遠,對該用戶I/o數(shù)據(jù)包進行過濾。
[0048]這樣的分類機制克服了以前入侵防御控制系統(tǒng)只區(qū)分正常用戶和非正常用戶的缺點,不用確定一個區(qū)分正常和攻擊的門限,而是提供具有多個優(yōu)先級的隊列。即使某些正常的但行為較為特殊的用戶被給予了遠離a的或然概率,只要不低于最小的門限(該門限可以很低,也可以不設(shè)),都可以獲得一定的服務(wù)。這樣就消除了唯一一個區(qū)分門限對攻擊防御效果的影響,具有較大的靈活性。
[0049]為了保證正常用戶的存儲服務(wù)質(zhì)量,需要對不同優(yōu)先級的流區(qū)別服務(wù),且同一優(yōu)先級隊列的用戶體現(xiàn)公平。在對現(xiàn)有常用隊列調(diào)度策略考察的基礎(chǔ)上,本發(fā)明步驟i)中選擇采用DRR (Deficit Round Robin,赤字循環(huán))調(diào)度策略進行隊列調(diào)度。
[0050]赤字循環(huán)(DRR,Deficit Round Robin)是一種公平隊列調(diào)度策略,其工作流程如下:
(O各隊列的赤字計數(shù)器(DeficitCounter)初始值置為0,各隊列分配不同的定額(quantum),該定額決定隊列所占的帶寬;
(2)調(diào)度器輪詢每個非空的隊列:當訪問到某個隊列時,先將赤字計數(shù)器的值加上該隊列的定額,得到一個新的值。若該隊列首分組的大小大于赤字計數(shù)器的值,則調(diào)度下一非空隊列;否則,對其提供服務(wù),同時將計數(shù)器的值減去首分組的大??;如此對該隊列進行服務(wù),直至列隊為空或隊首分組的大小大于計數(shù)器的值為止。DRR克服了 FQ(Fair Queuing,公平隊列)、WFQ (Weighted Fair Queuing,加權(quán)公平隊列)和 WRR (Weighted Round Robin,加權(quán)循環(huán))的缺點,算法簡單且計算復(fù)雜度低,可在硬件設(shè)備上實現(xiàn)。調(diào)度時考慮到分組的大小問題,各個隊列可以真正得到與權(quán)重相當?shù)膸挕RR具有算法簡單、提供良好的公平性、各隊列間互不影響、可按需為各隊列提供不同的帶寬等優(yōu)點,得到了廣泛的應(yīng)用,其改進調(diào)度策略MDDR (Modified Deficit Round Robin)在Cisco 12000系列的路由器中被采用。
[0051]DRR通過分配給不同隊列不同的定額來體現(xiàn)隊列的優(yōu)先級,分配定額的同時也達到了分配帶寬的目的,具體操作時考慮兩點:
1.優(yōu)先級較高的隊列,分配的定額相應(yīng)較多。優(yōu)先級較高的隊列,其中的用戶數(shù)據(jù)為正常用戶的可能性高,應(yīng)該給予較多的帶寬使其獲得更多的服務(wù),因此分配的定額應(yīng)該相應(yīng)的多。所以考慮將正常度P值作為分配定額的一個權(quán)值因子;
2.一個隊列在用戶數(shù)多時得到的服務(wù)相應(yīng)增多?;贒DoS攻擊的特點,攻擊者一般都是使用高速率的流進行攻擊,因此不能用用戶數(shù)據(jù)的速率作為分配帶寬的權(quán)值因子。如果攻擊者想要攻擊流獲得更多的服務(wù),則需要仿冒正常用戶的數(shù)據(jù)(這樣其或然概率才會落在正常流或然概率出現(xiàn)的范圍內(nèi),其正常度P值才會較大)。而用戶數(shù)據(jù)的正常度P值、用戶的數(shù)量、用戶的數(shù)據(jù)流量呈現(xiàn)相互制約的關(guān)系,如果攻擊者既要仿冒正常的用戶數(shù)據(jù),又要仿冒許多個不同的正常用戶,難度就大大的增加了,這樣的攻擊流速率就不可能很高,因此將隊列中用戶數(shù)也作為分配定額的一個權(quán)值因子,和正常度P值一起決定帶寬的分配。值得注意的是這里的用戶數(shù)應(yīng)是滑動平均的用戶數(shù),這樣可以反映隊列用戶數(shù)的一個較為長期的狀況。
[0052]基于上述考慮,本發(fā)明采用的DRR調(diào)度方法包含:
依次按照高優(yōu)先級隊列、中優(yōu)先級隊列、低優(yōu)先級隊列輪詢的方式為每個隊列提供調(diào)度服務(wù)。
[0053]每一次循環(huán)調(diào)度后,用AriPi來決定在下一次循環(huán)調(diào)度時各隊列所占帶寬的比例η ;
其中萬為隊列仏的滑動平均用戶數(shù),Pi為隊列&的正常度P值。
[0054]赤字循環(huán)參數(shù)設(shè)置方法包含以下步驟:
ο)隊列仏 Ci= 1,2,3)的正常度!3,比例為 Pl:P2:P3=1:1/2:1/4:1 ;
P)隊列(i = t2,3)在下一次循環(huán)調(diào)度時獲得的帶寬為其中Nit = aNlt_2+Cl-Ujnit ;其中a為一個比例常數(shù),表明t-Ι時刻的用戶數(shù)對t時刻的作用,一般取0.8 為t時刻隊列Qi中的用戶數(shù);
q)若下一次循環(huán)調(diào)度允許傳送的數(shù)據(jù)包數(shù)為M,則隊列(1=1,2.,3)應(yīng)分配的定額
(quantum) Squantiimi = M* Ti,即在下次循環(huán)中隊列Qi的赤字計數(shù)器的值能加上M* Ti。
[0055]如圖5并結(jié)合圖6所示,為數(shù)據(jù)包入隊、出隊的處理流程。
[0056]入隊的處理流程:若有數(shù)據(jù)包到達,首先檢測該數(shù)據(jù)包所包含的用戶信息,將包放`入其或然概率對應(yīng)的隊列? (〗=12.3)中(若無對應(yīng)的隊列,則丟棄該包,回到等待數(shù)據(jù)包到
達的狀態(tài)),隊列〖的長度加I。調(diào)整隊列?的用戶數(shù)和滑動平均用戶數(shù),回到等待數(shù)據(jù)包到達的狀態(tài)。
[0057]出隊處理的流程分為調(diào)度流程和發(fā)送流程:
調(diào)度流程:設(shè)當前被調(diào)度的隊列為I,首先檢查其定額quantum值。若其quantum值
小于1,則調(diào)度下一個隊列(如果i=3,則根據(jù)當前令牌桶中的令牌數(shù)重新分配三個隊列的quantum值,并將quantum值存入Store數(shù)組中備用),調(diào)度的信號就是將下一隊列對應(yīng)的Store賦值給quantum。回到第一步檢測quantum值,直到當前被調(diào)度的隊列quantum值大于或等于1,則進入發(fā)送的流程。
[0058]發(fā)送流程:若此時隊列為空,則將該隊列的quantum值存儲到對應(yīng)的Store中,并將quantum值置0,結(jié)束此次調(diào)用;若隊列不為空,則發(fā)送隊首數(shù)據(jù)包,將quantum值、隊長和令牌數(shù)各減1,并調(diào)整隊列中的用戶數(shù)和滑動平均用戶數(shù),結(jié)束此次調(diào)用。[0059]因為當前調(diào)度隊列的quantum值小于I是調(diào)度下一個隊列的信號,所以在該隊列為空的情況下將quantum值置0,以通知系統(tǒng)對下一個隊列進行調(diào)度。Store數(shù)組用來存儲三個隊列在上一次調(diào)度中沒用完的quantum。
[0060]本發(fā)明采用的流量控制技術(shù)采用令牌桶(Token Bucket)方法。
[0061]令牌桶是一種常見的速率控制方法,具有限制流的突發(fā)量和平均速率的特點,既可以用于流量控制,又可用于流量整形。其調(diào)節(jié)器(regulator)可以是一個流量控制器(traffic policer),也可以是一個流量整形器(traffic shaper)。需要指出的是,令牌桶僅僅對令牌進行管理,其本身沒有丟棄或隊列緩存的策略,而將這些任務(wù)留給數(shù)據(jù)流本身去完成。
[0062]如圖7所示,為令牌桶示意圖。算法描述如下:令牌桶有一個最大容限,稱為令牌桶的深度,用c表示。每隔一個時間間隔就有一定數(shù)量的令牌加入到令牌桶中(設(shè)每秒產(chǎn)生的令牌數(shù)為r),當桶中積累的令牌達到了深度c時,新產(chǎn)生的令牌被丟棄。每個令牌允許發(fā)送一定數(shù)量的分組,流入的分組只有在調(diào)節(jié)器中拿到了與該分組相當?shù)牧钆撇拍茼樌鞒?。當令牌桶中的令牌?shù)不足以滿足分組的要求時,分組將被丟棄或等待新的令牌加入到
桶中。設(shè)分組到達的速率為Sin <r時,新的分組到達則可申請到“許可證”,順利通過令牌桶,令牌桶中的令牌出現(xiàn)節(jié)余;當《? =r時,新的分組到達也可以很快申請到“許可證”,
順利通過令牌桶,令牌桶中的令牌數(shù)量維持不變?,當Rm >r時,如果令牌桶中尚有節(jié)余,分組
能不丟失的被發(fā)送,但如果令牌桶中沒有節(jié)余,又有新的分組申請“許可證”時,這個分組就有可能丟失。由于令牌桶滿時,新產(chǎn)生的令牌將溢出,不會再對數(shù)據(jù)流的輸出做任何貢獻,所以輸出的突發(fā)流量近似比例于令牌桶的深度。通過令牌桶的控制,流出數(shù)據(jù)的速率可被
限制在一個范圍以內(nèi)CRin <.=R,R是保證I/O請求服務(wù)質(zhì)量的到達分組速度的上限),以達到
速率限制和流量整形的目的。
[0063]本發(fā)明采用令牌桶來平滑送往服務(wù)器的數(shù)據(jù)的速率和流量,使到達服務(wù)器的數(shù)據(jù)流速率不超過服務(wù)器的處理能力,并且流量也不至于抖動太大。因而令牌桶的深度c和每秒加入的令牌數(shù)r需要根據(jù)服務(wù)器的處理能力來設(shè)定,并且可以根據(jù)服務(wù)器當前的狀態(tài)動
態(tài)地調(diào)整。動態(tài)調(diào)整需要與服務(wù)器進行交互,及時取得服務(wù)器當前的狀態(tài)信息。因此在Λ
時間內(nèi),允許的最大突發(fā)流量可用公式表示為:(b+At*r)/At =(500+80* At ) / At。即在I
秒內(nèi)允許的最大突發(fā)流量為(500+80*1) /I (580數(shù)據(jù)包/秒);2秒內(nèi)允許的最大突發(fā)流量為(500+80*2)/2 (330數(shù)據(jù)包/秒);3秒內(nèi)允許的最大突發(fā)流量為(500+80*3)/3 (246數(shù)據(jù)包/秒)。依次類推。
[0064]令牌桶的參數(shù)根據(jù)應(yīng)用服務(wù)器的當前狀態(tài)進行動態(tài)調(diào)整。本發(fā)明中令牌桶(TokenBucket)的參數(shù)動態(tài)調(diào)整方法包含以下步驟:
r)用匯聚1/0流HSMM計算到達應(yīng)用服務(wù)器的總的和新的負載的或然概率和當前的負載水平,得出它們的自相似性/長相關(guān)性(即Hurst parameter),并判斷統(tǒng)計結(jié)果是否出現(xiàn)異常情況,若否,則跳轉(zhuǎn)到S),若是,則跳轉(zhuǎn)到t)。
[0065]s)若統(tǒng)計結(jié)果未出現(xiàn)異常情況,即正常高峰時段,則根據(jù)服務(wù)器當前的剩余處理能力確定令牌桶的深度和每秒加入的令牌數(shù)。
[0066]t)若統(tǒng)計結(jié)果出現(xiàn)異常情況,即存在分布式拒絕服務(wù)攻擊流,則過濾掉低優(yōu)先級隊列的流量。
[0067]通過上述隊列調(diào)度和流量控制方法,可以及時地過濾掉高峰時段針對海量存儲系統(tǒng)的攻擊流,即化解DDoS攻擊??紤]到高峰時段的I/O量大且具有突發(fā)性的特點,為了保證系統(tǒng)的可用性和存儲服務(wù)質(zhì)量,本發(fā)明采用動態(tài)負載均衡措施來提高應(yīng)用服務(wù)器的處理能力和存儲設(shè)備(或存儲節(jié)點)的響應(yīng)能力。
[0068]盡管本發(fā)明的內(nèi)容已經(jīng)通過上述優(yōu)選實施例作了詳細介紹,但應(yīng)當認識到上述的描述不應(yīng)被認為是對本發(fā)明的限制。在本領(lǐng)域技術(shù)人員閱讀了上述內(nèi)容后,對于本發(fā)明的多種修改和替代都將是顯而易見的。因此,本發(fā)明的保護范圍應(yīng)由所附的權(quán)利要求來限定。
【權(quán)利要求】
1.一種云存儲系統(tǒng)的可用性保障方法,其特征在于,該方法包含以下步驟: 步驟1、系統(tǒng)判斷處于是否正常情況,若是,處于正常情況,則跳轉(zhuǎn)到步驟2,若否,處于異常情況,則跳轉(zhuǎn)到步驟3; 步驟2、根據(jù)動態(tài)負載均衡措施方法為合法的、突如其來的訪問I/O流提供合理的存儲資源分配服務(wù),完成后跳轉(zhuǎn)回步驟I ; 步驟3、根據(jù)I/O請求排隊與流量控制方法,化解高峰時段針對云存儲系統(tǒng)的分布式的拒絕服務(wù)攻擊,并結(jié)合動態(tài)負載均衡措施保證正常I/O請求的服務(wù)質(zhì)量,完成后跳轉(zhuǎn)回步驟I。
2.如權(quán)利要求1所述的云存儲系統(tǒng)的可用性保障方法,其特征在于,所述動態(tài)負載均衡措施方法包含:應(yīng)用服務(wù)器的負載均衡方法,以及存儲設(shè)備的負載均衡方法; 所述應(yīng)用服務(wù)器的負載均衡方法包含以下步驟: a)系統(tǒng)判斷當前應(yīng)用服務(wù)器是否空閑,若是,則跳轉(zhuǎn)到b),若否,則跳轉(zhuǎn)到c); b)根據(jù)到達應(yīng)用服務(wù)器的I/O量大小,在其剩余處理能力允許的條件下建立多個虛擬機,以提聞處理能力; c)將負載較大的虛擬機的執(zhí)行任務(wù)轉(zhuǎn)移一部分至其它相對空閑的虛擬機處理,以維持所有虛擬機的負載均衡; 所述存儲設(shè)備的負載均衡方法包含以下步驟: d)通過監(jiān)控存儲網(wǎng) 絡(luò)中各種存儲設(shè)備的狀態(tài)和屬性,評估其I/O能力; e)將新的請求引導(dǎo)至I/O能力相對較強的存儲設(shè)備。
3.如權(quán)利要求1或2所述的云存儲系統(tǒng)的可用性保障方法,其特征在于,所述服務(wù)器、虛擬機和存儲設(shè)備負載能力評估,主要依據(jù)是云存儲系統(tǒng)服務(wù)器、虛擬機和存儲設(shè)備的I/o量、I/O響應(yīng)時間和I/O帶寬占用情況;以上參數(shù)一部分通過現(xiàn)有的云環(huán)境的網(wǎng)絡(luò)監(jiān)控軟件獲取,一部分通過匯聚流的統(tǒng)計行為HSMM的或然概率值計算進行評估。
4.如權(quán)利要求1所述的云存儲系統(tǒng)的可用性保障方法,其特征在于,所述I/O請求排隊與流量控制方法包含以下步驟: f )計算用戶行為HSMM和匯聚流的統(tǒng)計行為HSMM的或然概率; g)將用戶行為HSMM的或然概率對應(yīng)為恰當?shù)膬?yōu)先級,根據(jù)匯聚流的統(tǒng)計行為的或然概率評估服務(wù)器等的負載情況; h)根據(jù)用戶I/O請求優(yōu)先級把不同來源的I/O請求流導(dǎo)入不同的隊列; i)按照赤字循環(huán)調(diào)度方法進行隊列調(diào)度; j)采用令牌桶方法對輸出流量進行速率限制。
5.如權(quán)利要求4所述的云存儲系統(tǒng)的可用性保障方法,其特征在于,所述用戶行為HSMM的或然概率處理方法包含以下步驟: k)云存儲系統(tǒng)外的路由器、網(wǎng)關(guān)處或云控制器處,采集正常用戶在使用各種應(yīng)用層協(xié)議訪問云存儲系統(tǒng)時產(chǎn)生的大量觀測序列作為模型訓(xùn)練的數(shù)據(jù)集; I)用采集的數(shù)據(jù)集訓(xùn)練描述使用各種應(yīng)用層協(xié)議用戶動態(tài)行為特征的HSMM,對于使用同一種應(yīng)用層協(xié)議的用戶,將把具有相同cookie的用戶I/O請求序列對于正常I/O行為HSMM計算其或然概率,根據(jù)或然概率值分配恰當?shù)膬?yōu)先級; 所述匯聚流的統(tǒng)計行為HSMM的或然概率處理方法包含以下步驟:η)在云存儲系統(tǒng)外的路由器、網(wǎng)關(guān)或云控制器處,采集正常情況下產(chǎn)生的大量匯聚流觀測序列作為訓(xùn)練的數(shù)據(jù)集; m)用采集的各種匯聚流數(shù)據(jù)集訓(xùn)練描述網(wǎng)絡(luò)動態(tài)行為特征的HSMM和設(shè)計描述網(wǎng)絡(luò)動態(tài)行為的HSMM在線算法,計算相同源I/O流HSMM的或然概率值,根據(jù)或然概率值估計云控制器、應(yīng)用服務(wù)器或云存儲設(shè)備的負載情況。
6.如權(quán)利要求4所述的云存儲系統(tǒng)的可用性保障方法,其特征在于,所述匯聚流的或然概率與應(yīng)用服務(wù)器負載的對應(yīng)關(guān)系如下: 當服務(wù)器負載正常時,訪問服務(wù)器匯聚流的或然概率都集中a值附近,a為服務(wù)器達到總負載的(0%,70%)時服務(wù)器各種匯聚流的或然概率出現(xiàn)的最大頻率值; 當匯聚流的或然概率偏離正常值,說明服務(wù)器負載較大,偏離越遠,系統(tǒng)負載越大;當服務(wù)器負載達到服務(wù)器總負載的90%時,匯聚流或然概率小于a的1/8,要啟動負載均衡系統(tǒng),降低服務(wù)器或虛擬機的負載,保證I/O請求的服務(wù)質(zhì)量。
7.如權(quán)利要求6所述的云存儲系統(tǒng)的可用性保障方法,其特征在于,所述或然概率與優(yōu)先級的對應(yīng)關(guān)系如下: 當正常用戶行為的或然概率都集中在b附近,其中b為正常用戶I/O行為的或然概率出現(xiàn)的最大頻率值,若用戶行為的或然概率靠近b則其正常程度較高,賦予其I/O數(shù)據(jù)高優(yōu)先級;若用戶行為的或然概率遠離b則其正常程度較低,賦予I/O數(shù)據(jù)低優(yōu)先級; 當用戶行為的或然概率遠離b到或然概率值小于b的1/8,則說明其I/O數(shù)據(jù)流是攻擊流,對該用戶的I/O數(shù) 據(jù)直接作過濾處理。
8.如權(quán)利要求7所述的云存儲系統(tǒng)的可用性保障方法,其特征在于,所述或然概率與隊列的對應(yīng)關(guān)系如下: 設(shè)正常用戶I/o行為的或然概率出現(xiàn)的最大頻率設(shè)為FRQ ; 當用戶行為的或然概率的出現(xiàn)在(1/2FRQ,F(xiàn)RQ]之間,則該用戶I/O數(shù)據(jù)包放高優(yōu)先級隊列; 當用戶行為的或然概率的出現(xiàn)在(1/4FRQ,1/2FRQ]之間,則該用戶I/O數(shù)據(jù)包放中優(yōu)先級隊列; 當用戶行為的或然概率的出現(xiàn)在(1/8FRQ,1/4FRQ]之間,則該用戶I/O數(shù)據(jù)包放低優(yōu)先級隊列; 當用戶行為的或然概率的出現(xiàn)在(0.L1/8FRQ]之間,則該用戶I/O行為偏離正常過遠,該用戶的I/O數(shù)據(jù)包要過濾掉。
9.如權(quán)利要求4所述的云存儲系統(tǒng)的可用性保障方法,其特征在于,所述赤字循環(huán)調(diào)度方法包含: 依次按照高優(yōu)先級隊列、中優(yōu)先級隊列、低優(yōu)先級隊列輪詢的方式為每個隊列提供調(diào)度服務(wù); 每一次循環(huán)調(diào)度后,用馬Pi來決定在下一次循環(huán)調(diào)度時各隊列所占帶寬的比例?I ;其中馬為隊列&的滑動平均用戶數(shù),Ρ?為隊列Qi的正常度P值; 所述赤字循環(huán)參數(shù)設(shè)置方法包含以下步驟:O)隊列(i= 1,2,3)的正常度1 比例為 P1:P2 =P3=1:1/2:1/4:1 ; P)隊列& (?=1.2,3)在下一次循環(huán)調(diào)度時獲得的帶寬為
10.如權(quán)利要求4所述的云存儲系統(tǒng)的可用性保障方法,其特征在于,所述令牌桶的參數(shù)動態(tài)調(diào)整方法包含以下步驟: r)用匯聚I/O流HSMM計算到達應(yīng)用服務(wù)器的總的和新的負載的或然概率和當前的負載水平,得出它們的自相似性/長相關(guān)性,并判斷統(tǒng)計結(jié)果是否出現(xiàn)異常情況,若否,則跳轉(zhuǎn)到s),若是,則跳轉(zhuǎn)到t); s)若統(tǒng)計結(jié)果未出現(xiàn)異常情況,即正常高峰時段,則根據(jù)服務(wù)器當前的剩余處理能力確定令牌桶的深度和每秒加入的令牌數(shù); t)若統(tǒng)計結(jié)果出現(xiàn)異常情況,即存在分布式拒絕服務(wù)攻擊流,則過濾掉低優(yōu)先級隊列的流量。
【文檔編號】H04L29/08GK103442076SQ201310396735
【公開日】2013年12月11日 申請日期:2013年9月4日 優(yōu)先權(quán)日:2013年9月4日
【發(fā)明者】韓德志, 聶雄丁, 畢坤 申請人:上海海事大學(xué)