亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種實例彈性伸縮方法、實例管理模塊以及計算設(shè)備與流程

文檔序號:12887000閱讀:264來源:國知局
一種實例彈性伸縮方法、實例管理模塊以及計算設(shè)備與流程
本發(fā)明涉及虛擬化領(lǐng)域,尤其涉及一種實例彈性伸縮方法、實例管理模塊以及計算設(shè)備。
背景技術(shù)
:虛擬化(英文:virtualization)是一種資源管理技術(shù),通過將計算機的各種實體資源,如計算資源、存儲資源、網(wǎng)絡(luò)資源或其它物理資源予以抽象、轉(zhuǎn)換后進行呈現(xiàn),以打破實體結(jié)構(gòu)間的不可切割的障礙,使用戶可以用比原本的組態(tài)更好的方式來應(yīng)用這些資源。虛擬化實例(為了便于描述,本發(fā)明以下簡稱“實例”)指的是將實體資源經(jīng)過虛擬化后形成的獨立的、可執(zhí)行計算存儲或網(wǎng)絡(luò)通訊功能的虛擬個體,具體可以表現(xiàn)為虛擬機、容器、或其它形式。其中,虛擬化系統(tǒng)(為了便于描述,本發(fā)明以下簡稱“系統(tǒng)”)為實例分配中央處理器(英文:centralprocessingunit,縮寫:cpu)、內(nèi)存、帶寬等資源,使得實例能夠獨立的應(yīng)對實際業(yè)務(wù)。現(xiàn)階段在虛擬化實例的基礎(chǔ)上提出了一種彈性伸縮(英文:autoscaling)技術(shù),該技術(shù)將多個執(zhí)行同樣應(yīng)用、具有同樣功能的實例組成一個伸縮組(英文:scalinggroup)。伸縮組中的實例的個數(shù)是可以彈性伸縮的,例如,若伸縮組中的實例的負載過大,則可以增加伸縮組中實例的個數(shù)(即伸縮組“伸長”),以分擔(dān)伸縮組中每個實例的負載;若伸縮組中的實例的負載較低,則可以刪除部分實例(即伸縮組“縮短”),以節(jié)約系統(tǒng)的資源。現(xiàn)階段的技術(shù)中,為了保證系統(tǒng)的穩(wěn)定性,系統(tǒng)一般會控制伸縮組緩慢的伸長或縮短。但是在很多實際的應(yīng)用場景中,系統(tǒng)的業(yè)務(wù)量有可能在短時間內(nèi)發(fā)生巨變。在這種場景下,伸縮組若仍然緩慢的伸縮,則顯然無法應(yīng)對猛增的業(yè)務(wù)量,不能滿足實際應(yīng)用需求。而若加快實例變化的速度,又無法保證系統(tǒng)的穩(wěn)定性。技術(shù)實現(xiàn)要素:本發(fā)明提供了一種實例彈性伸縮方法,用于保證虛擬化系統(tǒng)的穩(wěn)定性,提升虛擬化系統(tǒng)應(yīng)對業(yè)務(wù)突發(fā)等極端場景的能力。本發(fā)明第一方面提供了一種實例彈性伸縮方法,適用于虛擬化系統(tǒng)。其中,虛擬化系統(tǒng)中包括一個或多個實例組成的伸縮組。虛擬化系統(tǒng)判斷該伸縮組中的實例的負載狀態(tài)是否超過第一上限值,若超過則創(chuàng)建單調(diào)遞增時間窗。單調(diào)遞增時間窗是預(yù)設(shè)的一段時間段,在單調(diào)遞增時間窗內(nèi),伸縮組中的實例的個數(shù)可以增加也可以不變,但是不能減少。在單調(diào)遞增時間窗內(nèi),系統(tǒng)判斷伸縮組中實例當前的負載狀態(tài)是否超過第二上限值,若判斷結(jié)果為是,則在伸縮組中新增n個實例。其中,衡量伸縮組中實例的負載狀態(tài)的參數(shù)有很多,具體可以為cpu使用率、或內(nèi)存占用率、或磁盤的每秒的輸入輸出(英文:input/outputpersecond,縮寫:iops)、或網(wǎng)絡(luò)帶寬、或磁盤占用率中的一個或幾個,也可以為其它參數(shù)。由于在單調(diào)遞增時間窗內(nèi)伸縮組中實例的個數(shù)只能單向變化,故在該單調(diào)遞增時間窗內(nèi)系統(tǒng)只需要考慮分配資源即可,不會出現(xiàn)分配后又立刻回收資源的情況,這樣就避免了系統(tǒng)的震蕩,能夠在一定的程度上保證系統(tǒng)的穩(wěn)定性。在系統(tǒng)穩(wěn)定性得到保障的基礎(chǔ)上,系統(tǒng)的實例個數(shù)就可以快速增加。這樣就能夠兼顧系統(tǒng)穩(wěn)定性與伸縮組的伸縮速率,能夠應(yīng)對業(yè)務(wù)出現(xiàn)猛增的應(yīng)用場景。可選的,若在單調(diào)遞增時間窗內(nèi)系統(tǒng)確定伸縮組中實例的負載狀態(tài)沒有超過第二上限值,則可以保持伸縮組中實例的個數(shù)不變,也可以執(zhí)行其它操作,但不會減少伸縮組中實例的個數(shù)??蛇x的,系統(tǒng)可以在確定伸縮組中實例的負載狀態(tài)超過第一上限值后,批量拷貝m個實例的鏡像文件,以部署m個實例,其中m為不小于n的整數(shù)。這樣在單調(diào)遞增時間窗內(nèi),若系統(tǒng)確定伸縮組中實例的負載狀態(tài)超過第二上限值,只需要在已部署的m個實例中啟動n個即可。由于在啟動實例之前已經(jīng)批量的完成了實例的部署,因此啟動實例花費的時間很短,能夠快速的增加實例的個數(shù)。可選的,在單調(diào)遞增時間窗內(nèi),系統(tǒng)可以每隔預(yù)置周期,執(zhí)行判斷伸縮組中實例的負載狀態(tài)是否超過第二上限值,若判斷結(jié)果為是則在伸縮組中新 增n個實例的步驟,這樣在一個單調(diào)遞增時間窗內(nèi),系統(tǒng)可以多次增加n個實例??蛇x的,在單調(diào)遞增時間窗結(jié)束時,已部署的m個實例中可能只啟動了m-p個,還有p個實例未啟動,其中p為小于m的整數(shù)。若此時伸縮組中實例的負載不超過第一上限值,則系統(tǒng)回收該p個未啟動的實例。若伸縮組中實例的負載仍然超過第一上限值,則系統(tǒng)再次創(chuàng)建單調(diào)遞增時間窗,但是僅需要再部署m-p個實例,使得未啟動的實例個數(shù)為m即可。可選的,若已部署的m個實例已經(jīng)全部啟動,但是單調(diào)遞增時間窗還未結(jié)束,且伸縮組中實例的負載仍然超過第二上限值,則說明當前的伸縮組仍然超載。此時系統(tǒng)再次批量部署新的實例,具體部署的個數(shù)可以為m個,也可以為其它數(shù)值??蛇x的,虛擬化系統(tǒng)還可以判斷該伸縮組中的實例的負載狀態(tài)是否低于第一下限值,若低于則創(chuàng)建單調(diào)遞減時間窗。單調(diào)遞減時間窗是預(yù)設(shè)的一段時間段,在單調(diào)遞減時間窗內(nèi),伸縮組中的實例的個數(shù)可以減少也可以不變,但是不能增加。在單調(diào)遞減時間窗內(nèi),系統(tǒng)判斷伸縮組中實例當前的負載狀態(tài)是否低于第二下限值,若判斷結(jié)果為是,則在伸縮組中刪除j個實例。由于在單調(diào)遞減時間窗內(nèi)伸縮組中實例的個數(shù)只能單向變化,故在該單調(diào)遞減時間窗內(nèi)系統(tǒng)只需要考慮回收資源即可,不會出現(xiàn)回收后又立刻分配資源的情況,這樣就避免了系統(tǒng)的震蕩,能夠在一定的程度上保證系統(tǒng)的穩(wěn)定性。在系統(tǒng)穩(wěn)定性得到保障的基礎(chǔ)上,系統(tǒng)的實例個數(shù)就可以快速減少??蛇x的,若在單調(diào)遞減時間窗內(nèi)系統(tǒng)確定伸縮組中實例的負載狀態(tài)沒有低于第二下限值,則可以保持伸縮組中實例的個數(shù)不變,也可以執(zhí)行其它操作,但不會增加伸縮組中實例的個數(shù)??蛇x的,系統(tǒng)可以在確定伸縮組中實例的負載狀態(tài)低于第一下限值后,批量停止i個實例,其中i為不小于j的整數(shù)。這樣在單調(diào)遞減時間窗內(nèi),若系統(tǒng)確定伸縮組中實例的負載狀態(tài)低于第二下限值,只需要在已停止的實例中刪除j個實例,即刪除j個實例的鏡像文件即可。假設(shè)在單調(diào)遞減時間窗結(jié)束時還有q個實例的鏡像文件未被刪除,且接下來的時間窗為單調(diào)遞增時間窗,則實例管理模塊只需要部署m-q個實例即可。這樣就節(jié)約了部署實例的 任務(wù)量和時間,有利于提升系統(tǒng)的效率。其中q為小于i的整數(shù)??蛇x的,在單調(diào)遞減時間窗內(nèi),系統(tǒng)每隔預(yù)設(shè)周期,執(zhí)行判斷伸縮組中實例的負載狀態(tài)是否低于第二下限值的步驟,其中,預(yù)設(shè)周期的長度小于所述單調(diào)遞減時間窗的長度;可選的,當單調(diào)遞減時間窗結(jié)束時,若已停止的i個實例中還有q個實例的鏡像文件未刪除,且伸縮組中實例的負載狀態(tài)仍然低于第一下限值,則系統(tǒng)再次創(chuàng)建單調(diào)遞減時間窗,并在伸縮組中停止i-q個實例,其中q為小于i的整數(shù)。本發(fā)明第二方面提供了一種實例管理模塊,適用于虛擬化系統(tǒng)。該實例管理模塊具體包括:負載判斷單元,用于判斷伸縮組中實例的負載狀態(tài)是否超過第一上限值。負載判斷單元,用于判斷伸縮組中實例的負載狀態(tài)是否超過第一上限值。時間管理單元,用于在負載判斷單元確定伸縮組中實例的負載狀態(tài)超過第一上限值時,創(chuàng)建單調(diào)遞增時間窗。其中,伸縮組中實例的個數(shù)在該單調(diào)遞增時間窗內(nèi)不減少。負載判斷單元還用于:在單調(diào)遞增時間窗內(nèi),判斷伸縮組中虛擬化實例的負載狀態(tài)是否超過第二上限值。實例伸縮單元還用于在負載判斷單元確定伸縮組中化實例的負載狀態(tài)超過第二上限值時,在伸縮組中新增n個虛擬化實例,其中n為不小于1的整數(shù)??蛇x的,實例伸縮單元還用于在負載判斷單元確定伸縮組中實例的負載狀態(tài)超過第一上限值時,在系統(tǒng)中拷貝m個實例的鏡像文件,以實現(xiàn)m個實例的部署。其中m為不小于n的整數(shù)。這樣在負載判斷單元確定伸縮組實例的負載超過第二上限值時,實例伸縮單元只需要在已部署的m個實例中,啟動n個實例即可。可選的,負載判斷單元在單調(diào)遞增時間窗內(nèi),可以每隔預(yù)置周期,執(zhí)行判斷伸縮組中實例的負載狀態(tài)是否超過第二上限值的步驟,其中預(yù)置周期的長度小于單調(diào)遞增時間窗的長度。當單調(diào)遞增時間窗結(jié)束時,若已部署的m個實例中還有p個未啟動,且伸縮組中實例的負載狀態(tài)仍然超過第一上限值,則時間管理單元再次執(zhí)行創(chuàng)建單調(diào)遞增時間窗的步驟,且實例伸縮單元在系統(tǒng)中再次部署m-p個實例。其中p為小于m的整數(shù)。可選的,在單調(diào)遞增時間窗內(nèi),若已部署的m個實例已經(jīng)全部啟動,且 伸縮組中實例的狀態(tài)仍然超過第二上限值,則實例伸縮單元在系統(tǒng)中再次部署新的實例??蛇x的,負載判斷單元還用于:判斷伸縮組中實例的負載狀態(tài)是否低于第一下限值。時間管理單元還用于在負載判斷單元確定實例的負載狀態(tài)低于第一下限值時,設(shè)置單調(diào)遞減時間窗。其中,伸縮組中實例的個數(shù)在單調(diào)遞減時間窗內(nèi)不增加。負載判斷單元還用于在單調(diào)遞減時間窗內(nèi),判斷伸縮組中實例的負載狀態(tài)是否低于第二下限值。實例伸縮單元還用于在負載判斷單元確定伸縮組中實例的負載狀態(tài)低于第二下限值時,在伸縮組中刪除j個實例。其中j為不小于1的整數(shù)??蛇x的,實例伸縮單元還用于在負載判斷單元確定伸縮組中實例的負載狀態(tài)低于第一下限值時,在伸縮組中停止i個實例,其中i為不小于j的整數(shù)。實例伸縮單元還用于在負載判斷單元確定伸縮組中實例的負載狀態(tài)低于第二下限值時,在已停止的i個實例中,刪除j個實例的鏡像文件。本發(fā)明的第三方面提供了一種計算設(shè)備,包括處理器、存儲器、通信接口以及總線。其中,處理器、存儲器和通信接口可以通過總線實現(xiàn)彼此之間的通信連接,也可以通過無線傳輸?shù)绕渌侄螌崿F(xiàn)通信。計算設(shè)備在運行時,處理器用于執(zhí)行本發(fā)明第一方面提供的實例彈性伸縮方法。附圖說明圖1(a)為本發(fā)明提供的虛擬化系統(tǒng)的一個軟件架構(gòu)圖;圖1(b)為本發(fā)明提供的實例彈性伸縮方法一個實施例流程圖;圖2為本發(fā)明提供的實例管理模塊一個實施例結(jié)構(gòu)圖;圖3為本發(fā)明提供的計算設(shè)備一個實施例結(jié)構(gòu)圖。具體實施方式本發(fā)明提供了一種實例彈性伸縮方法,用于保證虛擬化系統(tǒng)的穩(wěn)定性,提升虛擬化系統(tǒng)應(yīng)對業(yè)務(wù)突發(fā)等極端場景的能力。本發(fā)明還提供了相關(guān)的實例管理模塊以及計算設(shè)備,以下將分配進行描述。彈性伸縮是虛擬化系統(tǒng)中的重要技術(shù)。表1給出了現(xiàn)階段的彈性伸縮技 術(shù)的一組經(jīng)典的參數(shù)配置。其中,系統(tǒng)在每個指標采集周期300s內(nèi),采集該指標采集周期內(nèi)伸縮組中實例的平均cpu使用率。若平均cpu使用率超過上限80%,則觸發(fā)在伸縮組內(nèi)增加一個實例。若平均cpu使用率低于下限40%,則觸發(fā)在伸縮組內(nèi)減少一個實例。其中,伸縮組的實例個數(shù)保持在在[1,10]個之內(nèi)。參數(shù)值最小實例數(shù)1最大實例數(shù)10伸縮冷卻時間360秒觸發(fā)指標平均cpu使用率指標采集周期300秒持續(xù)時間3個指標采集周期上限80%上限觸發(fā)動作+1實例下限40%下限觸發(fā)動作-1實例表1在此特地強調(diào)表1中的“伸縮冷卻時間”和“持續(xù)時間”這兩個參數(shù)。虛擬化實例在創(chuàng)建時,需要系統(tǒng)額外分配計算、存儲以及網(wǎng)絡(luò)等資源。因此每增加或減少一個實例,都會對系統(tǒng)造成一定的沖擊。若實例頻繁的增減,則系統(tǒng)需要不斷的分配、回收資源,導(dǎo)致系統(tǒng)反復(fù)震蕩,穩(wěn)定性得不到保障。為了維護系統(tǒng)的穩(wěn)定性,就需要控制伸縮組中的實例個數(shù)緩慢變化?!吧炜s冷卻時間”和“持續(xù)時間”正是為了保證實例個數(shù)緩慢變化而設(shè)置的參數(shù)。具體的,只有在持續(xù)時間(即3個指標采集周期)內(nèi),伸縮組中實例的平均cpu使用率均達到上限才會觸發(fā)+1實例的動作,或只有在持續(xù)時間內(nèi)伸縮組中實例的平均cpu使用率均低于下限才會觸發(fā)-1實例的動作,且在伸縮組進行一次伸縮后,經(jīng)過伸縮冷卻時間360秒才能再進行下一次伸縮。這樣就能夠避免伸縮組內(nèi)的實例頻繁的增減。此外,上限和下限觸發(fā)的實例個數(shù)的變化僅 為1個,也是出于系統(tǒng)的穩(wěn)定性的考慮。但是現(xiàn)階段的技術(shù)為了保證系統(tǒng)的穩(wěn)定性,大大縮減了伸縮組的伸縮速度。而在很多實際的應(yīng)用場景中,業(yè)務(wù)量有可能在短時間內(nèi)發(fā)生巨變。例如,由于上班族上班時刻的一致性,網(wǎng)絡(luò)的數(shù)據(jù)流量在上午9點后會發(fā)生猛增;由于雙11活動的特殊性,阿里的服務(wù)器在11月11日零點后業(yè)務(wù)量會發(fā)生猛增。在這種場景下,伸縮組若仍然緩慢的伸縮,則顯然無法應(yīng)對猛增的業(yè)務(wù)量,不能滿足實際應(yīng)用需求。而若為了加快實例變化的速度,將伸縮冷卻時間、持續(xù)時間等參數(shù)設(shè)置的較小,又無法保證系統(tǒng)的穩(wěn)定性。為了解決上述問題,本發(fā)明對現(xiàn)有的彈性伸縮技術(shù)進行了改進。首先,本發(fā)明中虛擬化系統(tǒng)的軟件架構(gòu)請參閱圖1(a),其中,監(jiān)控告警模塊用于獲取系統(tǒng)中各實例的性能數(shù)據(jù)。資源分配模塊用于為實例分配cpu、內(nèi)存、帶寬等資源,將多個實例組成伸縮組,并管理伸縮組中實例的生命周期。實例的增、刪、改、查的功能也由資源分配模塊實現(xiàn)。而本發(fā)明提供的彈性伸縮技術(shù)則由實例管理模塊來實現(xiàn)。實例管理模塊具體用于根據(jù)監(jiān)控告警模塊的信息確定實例的增刪,并向資源分配模塊發(fā)送對應(yīng)的實例增刪請求。在圖1(a)所示的軟件架構(gòu)的基礎(chǔ)上,本發(fā)明提供了一種實例彈性伸縮方法,適用于虛擬化系統(tǒng)中的實例管理模塊,其基本流程請參閱圖1(b),包括:101、判斷伸縮組中實例的負載狀態(tài)是否超過第一上限值。實例管理模塊判斷伸縮組中實例的負載狀態(tài)是否超過第一上限值,其中,衡量伸縮組中實例的負載狀態(tài)的參數(shù)有很多,具體可以為cpu使用率、或內(nèi)存占用率、或磁盤的iops、或網(wǎng)絡(luò)帶寬、或磁盤占用率中的一個或幾個,也可以為其它參數(shù),此處不做限定。伸縮組中實例的負載具體可以為伸縮組中實例的平均負載狀態(tài),也可以為伸縮組中某個或某幾個特定的實例的負載狀態(tài),也可以通過其它方式衡量伸縮組中實例的負載狀態(tài),此處不做限定。以cpu使用率為例:第一上限值可以設(shè)置為“cpu使用率80%”,若伸縮組中實例的平均cpu使用率超過80%,則認為伸縮組中實例的負載狀態(tài)超過第一上限值。第一上限值可以由人為設(shè)定,也可以由實例管理模塊自行設(shè)定,也可以通過其它方法確定,此處不做限制。實例管理模塊可以從系統(tǒng)的日志信息、告警信息或其它地方獲取實例的負載狀態(tài)信息,并與第一上限值比較,得到實例的負載狀態(tài)是否超過第一上限值的判斷結(jié)果。若確定伸縮組中實例當前的負載狀態(tài)超過第一上限值,則執(zhí)行步驟102。102、創(chuàng)建單調(diào)遞增時間窗。若伸縮組中實例的負載狀態(tài)超過第一上限值,則可以認為伸縮組中各實例當前處于超載狀態(tài),實例管理模塊創(chuàng)建單調(diào)遞增時間窗。單調(diào)遞增時間窗是實例管理模塊預(yù)設(shè)的一段時間段。“單調(diào)遞增”顧名思義,指的是在單調(diào)遞增時間窗內(nèi),伸縮組中的實例的個數(shù)可以增加也可以不變,但是不能減少。單調(diào)遞增時間窗可以是從當前時刻起始,也可以是從其它的時刻起始,此處不做限定。單調(diào)遞增時間窗的持續(xù)時長可以人為設(shè)定,也可以由實例管理模塊自行設(shè)定,此處不做限定。設(shè)置好了單調(diào)遞增時間窗后,實例管理模塊在單調(diào)遞增時間窗內(nèi),執(zhí)行步驟103和104。103、判斷伸縮組中實例的負載狀態(tài)是否超過第二上限值。實例管理模塊判斷伸縮組中實例當前的負載狀態(tài)是否超過第二上限值。與第一上限值類似的,第二上限值也可以為cpu使用率、或內(nèi)存占用率、或磁盤的iops、或網(wǎng)絡(luò)帶寬、或磁盤占用率中的一個或幾個參數(shù),也可以為其它參數(shù)。實例管理模塊可以將伸縮組中實例當前的負載狀態(tài)信息與第二上限值比較,得到系統(tǒng)當前的負載狀態(tài)是否超過第二上限值的判斷結(jié)果。其中,本發(fā)明中采用的“第一”“第二”等術(shù)語來描述上限值等技術(shù)特征,但這些術(shù)語僅用于將不同的上限值等特征彼此區(qū)分開,并不應(yīng)造成額外的限定。例如,本發(fā)明中第一上限值也可以被稱為第二上限值,同樣的,第二上限值也可以被稱為第一上限值。第一上限值與第二上限值可以相同也可以不同。此外,步驟101與步驟103中衡量伸縮組中實例的負載狀態(tài)可以使用相同的參數(shù)也可以使用不同的參數(shù),例如步驟101提到的伸縮組中實例的負載狀態(tài)可以是伸縮組各實例的平均cpu使用率,步驟103提到的伸縮組中實例的負載狀態(tài)可以是伸縮組各實例的平均內(nèi)存占用率。若確定伸縮組中實例當前的負載狀態(tài)超過第二上限值,則執(zhí)行步驟104。104、新增n個實例。若伸縮組中實例當前的負載狀態(tài)超過第二上限值,則認為伸縮組中各個實例當前處于超載狀態(tài),需要通過增加實例的個數(shù)來分擔(dān)各實例的負載。于是實例管理模塊在伸縮組中新增n個實例。其中n值可以為1,但也可以為2或更大的整數(shù),以快速增加伸縮組的實例的個數(shù)??蛇x的,在單調(diào)遞增時間窗內(nèi),實例管理模塊可以周期性的執(zhí)行步驟103和104,以多次實現(xiàn)伸縮組實例的增加??蛇x的,第二上限值可以設(shè)置的較第一上限值更小,使得實例管理模塊在單調(diào)遞增時間窗內(nèi)能夠更快的增加實例個數(shù)。以cpu使用率為例:第一上限值可以設(shè)置為“cpu使用率80%”,使得只有在實例的平均cpu使用率超過80%的情況下才創(chuàng)建單調(diào)遞增時間窗,以保證系統(tǒng)的穩(wěn)定性;而第二上限值可以設(shè)置為“cpu使用率70%”,使得進入單調(diào)遞增時間窗后,只需實例的平均cpu使用率高于70%就增加實例,這樣就使得系統(tǒng)能夠快速的增加實例個數(shù)。步驟101至104提供了一種實例彈性伸縮方法,其中,實例管理模塊在伸縮組中實例當前的負載狀態(tài)超過第一上限值時,創(chuàng)建單調(diào)遞增時間窗,并在單調(diào)遞增時間窗內(nèi)判斷伸縮組中實例的負載狀態(tài)是否超過第二上限值,若超過則在伸縮組中增加n個實例。且在單調(diào)遞增時間窗內(nèi),伸縮組中的實例的個數(shù)不會減少,只會增多或保持不變。由于在單調(diào)遞增時間窗內(nèi)伸縮組中實例的個數(shù)只能單向變化,故在該單調(diào)遞增時間窗內(nèi)系統(tǒng)只需要考慮分配資源即可,不會出現(xiàn)分配后又立刻回收資源的情況,這樣就避免了系統(tǒng)的震蕩,能夠在一定的程度上保證系統(tǒng)的穩(wěn)定性。在系統(tǒng)穩(wěn)定性得到保障的基礎(chǔ)上,系統(tǒng)的實例個數(shù)就可以快速增加。這樣就能夠兼顧系統(tǒng)穩(wěn)定性與伸縮組的伸縮速率,能夠應(yīng)對業(yè)務(wù)出現(xiàn)猛增的應(yīng)用場景。步驟101至104中實例管理模塊通過創(chuàng)建單調(diào)遞增時間窗,使得伸縮組只能單向伸長,進而保證了系統(tǒng)的穩(wěn)定性。同理的,實例管理模塊也可以創(chuàng)建單調(diào)遞減時間窗,使得伸縮組只能單向縮短。具體的方法如下:105、判斷伸縮組中實例的負載狀態(tài)是否低于第一下限值。實例管理模塊判斷伸縮組中實例的負載狀態(tài)是否低于第一下限值。與第一上限值類似的,第一下限值可以為cpu使用率、或內(nèi)存占用率、或磁盤iops、或網(wǎng)絡(luò)帶寬、或磁盤占用率中的一個或幾個參數(shù),也可以為其它參數(shù),此處不做限定。以cpu使用率為例:第一下限值可以設(shè)置為“cpu使用率40%”,若伸縮組中實例的平均cpu使用率低于40%,則認為伸縮組中實例當前的負載狀態(tài)低于第一下限值。若確定伸縮組中實例當前的負載狀態(tài)滿足第一下限值,則執(zhí)行步驟106。106、創(chuàng)建單調(diào)遞減時間窗。若伸縮組中實例當前的負載狀態(tài)低于第一下限值,則可以認為伸縮組中各個實例當前為業(yè)務(wù)提供的資源過剩,實例管理模塊創(chuàng)建單調(diào)遞減時間窗。單調(diào)遞減時間窗是實例管理模塊預(yù)設(shè)的一段時間段?!皢握{(diào)遞減”顧名思義,指的是在單調(diào)遞減時間窗內(nèi),伸縮組中的實例的個數(shù)可以減少也可以不變,但是不能增加。單調(diào)遞減時間窗可以是從當前時刻起始,也可以是從其它的時刻起始,此處不做限定。單調(diào)遞減時間窗的持續(xù)時長可以人為設(shè)定,也可以由實例管理模塊自行設(shè)定,此處不做限定。設(shè)置好了單調(diào)遞減時間窗后,實例管理模塊在單調(diào)遞減時間窗內(nèi),執(zhí)行步驟107和108。107、判斷伸縮組中實例的負載狀態(tài)是否低于第二下限值。實例管理模塊判斷伸縮組中實例當前的負載狀態(tài)是否低于第二下限值。與第一下限值類似的,第二下限值也可以為cpu使用率、或內(nèi)存占用率、或磁盤的iops、或網(wǎng)絡(luò)帶寬、或磁盤占用率中的一個或幾個參數(shù),也可以為其它參數(shù)。若確定伸縮組中實例當前的負載狀態(tài)低于第二下限值,則執(zhí)行步驟108。108、刪除j個實例。若伸縮組中實例當前的負載狀態(tài)低于第二下限值,則認為伸縮組中各個實例當前為業(yè)務(wù)提供的資源過剩,需要通過減少實例的個數(shù)來降低釋放資源以避免浪費。于是實例管理模塊在伸縮組中刪除j個實例。其中j值可以為1,但也可以為2或更大的整數(shù),以快速減少伸縮組的實例的個數(shù)??蛇x的,在單調(diào)遞減時間窗內(nèi),實例管理模塊可以周期性的執(zhí)行步驟107和108,以多次實現(xiàn)伸縮組實例的減少??蛇x的,第二下限值可以設(shè)置的較第一上限值更高,使得實例管理模塊在單調(diào)遞減時間窗內(nèi)能夠更快的較少實例個數(shù)。以cpu使用率為例:第一下限值可以設(shè)置為“cpu使用率30%”,使得只有在伸縮組中實例的平均cpu使用率低于30%的情況下才創(chuàng)建單調(diào)遞減時間窗,以保證系統(tǒng)的穩(wěn)定性;而第二下限值可以設(shè)置為“cpu使用率40%”,使得進入單調(diào)遞減時間窗后,只需伸縮組中實例的平均cpu使用率低于40%就減少實例,這樣就使得系統(tǒng)能夠快速的減少實例的個數(shù)。步驟105至108對本發(fā)明提供的實例彈性伸縮方法進行了補充,其中,實例管理模塊在伸縮組中實例的負載狀態(tài)低于第一下限值時,創(chuàng)建單調(diào)遞減時間窗,并在單調(diào)遞減時間窗內(nèi)判斷伸縮組中實例的負載狀態(tài)是否低于第二下限值,若低于則在伸縮組中減少j個實例。且在單調(diào)遞減時間窗內(nèi),伸縮組中的實例的個數(shù)不會增加,只會減少或保持不變。由于在單調(diào)遞減時間窗內(nèi)伸縮組中實例的個數(shù)只能單向變化,故在該單調(diào)遞減時間窗內(nèi)系統(tǒng)只需要考慮回收資源即可,不會出現(xiàn)回收后又立刻分配資源的情況,這樣就避免了系統(tǒng)的震蕩,能夠在一定的程度上保證系統(tǒng)的穩(wěn)定性。在系統(tǒng)穩(wěn)定性得到保障的基礎(chǔ)上,系統(tǒng)的實例個數(shù)就可以快速減少,這樣就能夠兼顧系統(tǒng)穩(wěn)定性與伸縮組的伸縮速率,能夠應(yīng)對業(yè)務(wù)出現(xiàn)猛增的應(yīng)用場景??梢岳斫獾模捎诘谝簧舷拗蹬c第二上限值用于判斷實例是否超載,第一下限值與第二下限值用于判斷實例提供的資源是否過剩,因此可選的,第一上限值與第二上限值,均應(yīng)大于第一下限值與第二下限值??梢岳斫獾?,步驟101至104,與步驟105至108僅為實例彈性伸縮方法的不同分支,在執(zhí)行上沒有特定的先后順序,實例管理模塊可以根據(jù)當前伸縮組中實例的負載狀態(tài),選擇執(zhí)行步驟101至104,或步驟105至108??蛇x的,考慮到在實際應(yīng)用中系統(tǒng)能夠承受一定程度上的資源過剩,但是對超載的承受度較小,故單調(diào)遞增時間窗的長度可以設(shè)置的比單調(diào)遞減時間窗的長度長一些,使得系統(tǒng)能夠更好的應(yīng)對業(yè)務(wù)猛增的應(yīng)用場景。步驟104中,實例管理模塊在伸縮組中新增n個實例。在伸縮組中增加 實例一般通過如下方法實現(xiàn):拷貝待增加的實例的鏡像文件以完成實例的部署工作,并待鏡像文件拷貝完成后啟動該實例。其中,虛擬機等實例在部署的時候需要拷貝的鏡像文件較大,因此每增加一個實例都需要花費較長的時間,導(dǎo)致實例的增加速度出現(xiàn)瓶頸。這顯然不能滿足業(yè)務(wù)對快速增加實例的需求。為了加快實例的增加速度,本發(fā)明中實例管理模塊可以在步驟104之前,預(yù)先在伸縮組中完成m個實例的部署,然后步驟104中只需要在已部署的實例中啟動n個即可實現(xiàn)實例的新增。由于在啟動實例之前已經(jīng)批量的完成了實例的部署,因此啟動實例花費的時間很短,能夠快速的增加實例的個數(shù)。其中,實例管理模塊可以在步驟101確定伸縮組中實例的負載狀態(tài)超過第一上限值后執(zhí)行批量部署m個實例的動作,其中,m為不小于n的整數(shù)。若實例管理模塊采用批量部署m個實例,每次啟動n個的實例新增方式,則有可能出現(xiàn)如下場景:(1)在單調(diào)遞增時間窗結(jié)束時,該m個實例中只啟動了m-p個,還有p個實例未啟動,其中p為小于m的整數(shù)。(2)m個實例已經(jīng)全部啟動,但是單調(diào)遞增時間窗還未結(jié)束。對于場景(1),若在單調(diào)遞增時間窗結(jié)束后伸縮組中實例的負載不超過第一上限值,則實例管理模塊回收該p個未啟動的實例。若伸縮組中實例的負載仍然超過第一上限值,則實例管理模塊再次創(chuàng)建單調(diào)遞增時間窗,但是僅需要再部署m-p個實例,使得未啟動的實例個數(shù)為m即可。對于場景(2),若在m個實例全部啟動后伸縮組中實例的負載仍然超過第二上限值,則實例管理模塊再次批量部署新的實例,具體部署的個數(shù)可以為m個,也可以為其它數(shù)值。上面對單調(diào)遞增時間窗內(nèi)的實例管理進行論述。下面將介紹單調(diào)遞減時間窗內(nèi)的實例管理。在步驟108中,實例管理模塊刪除j個實例。一般的,刪除實例指的是將實例停止并刪除該實例相關(guān)的鏡像文件。但是,單調(diào)遞減時間窗之后可能會迎來單調(diào)遞增時間窗,若將實例的鏡像文件全部刪除,則意味著實例管理模塊要為單調(diào)遞增時間窗重新部署實例,這無疑會增加系統(tǒng)的任務(wù)量,浪費系統(tǒng)的計算資源和時間資源。因此,實例管理模塊在步驟105確定當前系統(tǒng)的負載低于第一下限值后,可以直接停止i個實例,其中i為不小于j的整數(shù)。其中停止實例指的是停止實例的運作以降低對業(yè)務(wù)的資源供給,但不刪除實例的鏡像文件。然后步驟108只需要在已停止的實例中刪除j 個實例,即刪除j個實例的鏡像文件即可。假設(shè)在單調(diào)遞減時間窗結(jié)束時還有q個實例的鏡像文件未被刪除,且接下來的時間窗為單調(diào)遞增時間窗,則實例管理模塊只需要部署m-q個實例即可。這樣就節(jié)約了部署實例的任務(wù)量和時間,有利于提升系統(tǒng)的效率??蛇x的,若在單調(diào)遞減時間窗結(jié)束時還有q個實例的鏡像文件未被刪除,且伸縮組中實例的負載狀態(tài)仍然低于第一下限值,則實例管理模塊再次創(chuàng)建單調(diào)遞減時間窗,但僅需要停止i-q個實例,使得停止的實例的個數(shù)為i即可,其中q為小于i的整數(shù)??蛇x的,若在i個實例的鏡像文件已經(jīng)全部刪除,但是單調(diào)遞減時間窗還未結(jié)束,且當前伸縮組中實例的負載狀態(tài)仍然低于第二下限值,則實例管理模塊再次批量停止實例,具體停止的個數(shù)可以是i個也可以是其它數(shù)值。下面將在上述實施例的基礎(chǔ)上,對本發(fā)明提供的實例彈性伸縮方法所涉及的參數(shù)進行總結(jié),具體請參閱表2和表3。其中,表2給出的是時間窗的參數(shù)配置的一個示例,表3給出的是管理伸縮組的相關(guān)參數(shù)配置的一個實例:表2參數(shù)值觸發(fā)指標cpu使用率指標采集周期60秒上限70%上限觸發(fā)動作+1實例下限40%下限觸發(fā)動作-1實例表3通過將表2、表3與表1對比可以發(fā)現(xiàn),本發(fā)明提供的實例彈性伸縮方法不涉及“持續(xù)時間”和“伸縮冷卻時間”,這是因為本發(fā)明通過創(chuàng)建單向的時間窗,保證了系統(tǒng)在時間窗內(nèi)不會發(fā)生震蕩,因而無需通過“持續(xù)時間”和“伸縮冷卻時間”保證系統(tǒng)的穩(wěn)定,能夠加快伸縮組中實例個數(shù)的變化速率。優(yōu)選的,實例管理模塊可以將參數(shù)值的范圍設(shè)置為:第一上限值>第二上限值>第二下限值>第一下限值。其中若伸縮組中實例的負載超過第一上限值,則執(zhí)行步驟101至104,若伸縮組中實例的負載低于第一下限值,則執(zhí)行步驟105至108。此外,若伸縮組中實例的負載在第一上限值與第一下限值之間,則可以按照現(xiàn)有的彈性伸縮技術(shù)來緩慢調(diào)整伸縮組中實例的個數(shù)。圖1(b)所示的實施例介紹了本發(fā)明提供的實例彈性伸縮方法,下面將介紹用于實現(xiàn)該方法的實例管理模塊,請參閱圖2。實例管理模塊的基本結(jié)構(gòu)包括:負載判斷單元201,用于判斷伸縮組中實例的負載狀態(tài)是否超過第一上限值。時間管理單元202,用于在負載判斷單元201確定伸縮組中實例的負載狀態(tài)超過第一上限值時,創(chuàng)建單調(diào)遞增時間窗。其中,伸縮組中實例的個數(shù)在該單調(diào)遞增時間窗內(nèi)不減少。負載判斷單元201還用于:在單調(diào)遞增時間窗內(nèi),判斷伸縮組中虛擬化實例的負載狀態(tài)是否超過第二上限值。實例伸縮單元203,還用于在負載判斷單元201確定伸縮組中化實例的負載狀態(tài)超過第二上限值時,在伸縮組中新增n個虛擬化實例,其中n為不小 于1的整數(shù)。實例管理模塊中的各單元的具體運行流程可以參閱圖1(b)所示的實施例的相關(guān)描述,此處不做贅述??蛇x的,實例伸縮單元203還用于在負載判斷單元201確定伸縮組中實例的負載狀態(tài)超過第一上限值時,在系統(tǒng)中拷貝m個實例的鏡像文件,以實現(xiàn)m個實例的部署。其中m為不小于n的整數(shù)。這樣在負載判斷單元201確定伸縮組實例的負載超過第二上限值時,實例伸縮單元203只需要在已部署的m個實例中,啟動n個實例即可??蛇x的,負載判斷單元201在單調(diào)遞增時間窗內(nèi),可以每隔預(yù)置周期,執(zhí)行判斷伸縮組中實例的負載狀態(tài)是否超過第二上限值的步驟,其中預(yù)置周期的長度小于單調(diào)遞增時間窗的長度。當單調(diào)遞增時間窗結(jié)束時,若已部署的m個實例中還有p個未啟動,且伸縮組中實例的負載狀態(tài)仍然超過第一上限值,則時間管理單元202再次執(zhí)行創(chuàng)建單調(diào)遞增時間窗的步驟,且實例伸縮單元203在系統(tǒng)中再次部署m-p個實例。其中p為小于m的整數(shù)??蛇x的,在單調(diào)遞增時間窗內(nèi),若已部署的m個實例已經(jīng)全部啟動,且伸縮組中實例的狀態(tài)仍然超過第二上限值,則實例伸縮單元203在系統(tǒng)中再次部署新的實例??蛇x的,負載判斷單元201還用于:判斷伸縮組中實例的負載狀態(tài)是否低于第一下限值。時間管理單元202還用于在負載判斷單元201確定實例的負載狀態(tài)低于第一下限值時,設(shè)置單調(diào)遞減時間窗。其中,伸縮組中實例的個數(shù)在單調(diào)遞減時間窗內(nèi)不增加。負載判斷單元201還用于在單調(diào)遞減時間窗內(nèi),判斷伸縮組中實例的負載狀態(tài)是否低于第二下限值。實例伸縮單元203還用于在負載判斷單元201確定伸縮組中實例的負載狀態(tài)低于第二下限值時,在伸縮組中刪除j個實例。其中j為不小于1的整數(shù)??蛇x的,實例伸縮單元203還用于在負載判斷單元201確定伸縮組中實例的負載狀態(tài)低于第一下限值時,在伸縮組中停止i個實例,其中i為不小于j的整數(shù)。實例伸縮單元203還用于在負載判斷單元201確定伸縮組中實例的負載狀態(tài)低于第二下限值時,在已停止的i個實例中,刪除j個實例的鏡像文件。上面從功能化單元的角度介紹了本發(fā)明提供的實例管理模塊。其中,圖1(a)以及圖2中的實例管理模塊均可以由計算設(shè)備300實現(xiàn)。該計算設(shè)備300的具體結(jié)構(gòu)請參閱圖3,包括:處理器301、存儲器302、通信接口303以及總線304。其中,處理器301、存儲器302和通信接口303可以通過總線304實現(xiàn)彼此之間的通信連接,也可以通過無線傳輸?shù)绕渌侄螌崿F(xiàn)通信。存儲器302存儲器可以包括易失性存儲器(英文:volatilememory),例如隨機存取存儲器(英文:random-accessmemory,縮寫:ram);存儲器也可以包括非易失性存儲器(英文:non-volatilememory),例如只讀存儲器(英文:read-onlymemory,縮寫:rom),快閃存儲器(英文:flashmemory),硬盤(英文:harddiskdrive,縮寫:hdd)或固態(tài)硬盤(英文:solid-statedrive,縮寫:ssd);存儲器302還可以包括上述種類的存儲器的組合。在通過軟件來實現(xiàn)本發(fā)明提供的技術(shù)方案時,用于實現(xiàn)本發(fā)明提供的實例彈性伸縮方法的程序代碼可以保存在存儲器302中,并由處理器301來執(zhí)行。處理器301可以為cpu、圖形處理器(英文:graphicsprocessingunit,縮寫:gpu)、數(shù)字信號處理(英文:digitalsignalprocessing,縮寫:dsp)、現(xiàn)場可編程門陣列(英文:field-programmablegatearray,縮寫:fpga)、硬件芯片等具有處理功能的硬件單元中的任意一種或幾種的組合。在計算設(shè)備300運行時,處理器301主要用于執(zhí)行本發(fā)明提供的實例彈性伸縮方法,具體可以參考圖1(b)所示的實施例中的相關(guān)描述,此處不做贅述。所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、rom、ram、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。以上所述,以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。當前第1頁12
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1