本發(fā)明涉及云存儲(chǔ)技術(shù)領(lǐng)域,特別涉及一種云存儲(chǔ)系統(tǒng)調(diào)度方法和裝置。
背景技術(shù):
整個(gè)云存儲(chǔ)系統(tǒng)包含多個(gè)服務(wù)器,從功能上可以分為中心管理服務(wù)器、存儲(chǔ)管理服務(wù)器和存儲(chǔ)服務(wù)器等,這些服務(wù)器在工作時(shí)都是相互影響的。事實(shí)上,用戶在該云存儲(chǔ)系統(tǒng)中的所有操作(包括內(nèi)部操作和外部操作,內(nèi)部操作包含抽幀轉(zhuǎn)存、循環(huán)覆蓋、數(shù)據(jù)同步、數(shù)據(jù)回傳等,外部操作包含用戶對存儲(chǔ)數(shù)據(jù)的寫入操作、讀操作、下載等。)都消耗著云存儲(chǔ)系統(tǒng)的資源,影響著云存儲(chǔ)系統(tǒng)的性能,然而這些操作的對云存儲(chǔ)系統(tǒng)的性能的影響也各不相同。當(dāng)某個(gè)服務(wù)器的性能不穩(wěn)定或者發(fā)生異常損壞,都會(huì)導(dǎo)致整個(gè)云存儲(chǔ)系統(tǒng)發(fā)生問題。為了解決這樣的問題,很多技術(shù)被提出,其中包含ha/集群部署模式、raid/iraid技術(shù)、讀寫負(fù)載均衡技術(shù)、數(shù)據(jù)存儲(chǔ)切片技術(shù)等。
然而,這些技術(shù)的出發(fā)點(diǎn)都是從數(shù)據(jù)讀寫的安全性和魯棒性來解決問題,使得云存儲(chǔ)系統(tǒng)中的各服務(wù)器節(jié)點(diǎn)均攤云存儲(chǔ)的壓力和風(fēng)險(xiǎn),降低各服務(wù)器節(jié)點(diǎn)的負(fù)載壓力,提高云存儲(chǔ)系統(tǒng)的穩(wěn)定性。這些技術(shù)將所有對該云存儲(chǔ)系統(tǒng)的所有操作都放在了平等的位置上,忽視了在該對云存儲(chǔ)系統(tǒng)的操作中,根據(jù)操作的性質(zhì),這些操作具有等級(jí)之分,如對于該云存儲(chǔ)系統(tǒng)的內(nèi)部操作的實(shí)時(shí)性要求較低,而對外部操作如寫入操作的實(shí)時(shí)性要求就較高,對于實(shí)時(shí)性要求較高的操作,其處理的等級(jí)就會(huì)高一些。而現(xiàn)有技術(shù)就未能針對云存儲(chǔ)系統(tǒng)的操作的性質(zhì),對整個(gè)云存儲(chǔ)系統(tǒng)的資源配置進(jìn)行合理調(diào)度。
那么,如何針對云存儲(chǔ)系統(tǒng)的操作的性質(zhì),合理調(diào)度云存儲(chǔ)系統(tǒng)的資源配置,使得同等硬件配置下的云存儲(chǔ)系統(tǒng)的相對性能得到提升成為亟待解決的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例公開了一種云存儲(chǔ)系統(tǒng)調(diào)度方法和裝置,以實(shí)現(xiàn)針對云存儲(chǔ)系統(tǒng)的操作的性質(zhì),合理調(diào)度云存儲(chǔ)系統(tǒng)的資源配置,使得同等硬件配置下的云存儲(chǔ)系統(tǒng)的相對性能得到提升。具體方案如下:
一方面,本發(fā)明實(shí)施例提供了一種云存儲(chǔ)系統(tǒng)調(diào)度方法,應(yīng)用于存儲(chǔ)管理服務(wù)器,所述方法包括:
獲得所述云存儲(chǔ)系統(tǒng)中各存儲(chǔ)節(jié)點(diǎn)的磁盤io占用率、cpu占用率以及內(nèi)存mem占用率,并且,分別計(jì)算所述云存儲(chǔ)系統(tǒng)的平均磁盤io占用率、平均cpu占用率以及平均mem占用率;
利用所述平均磁盤io占用率、所述平均cpu占用率以及所述平均mem占用率,計(jì)算所述云存儲(chǔ)系統(tǒng)的云存儲(chǔ)壓力值;
根據(jù)所述云存儲(chǔ)壓力值,確定所述云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)狀態(tài);
根據(jù)所述云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)狀態(tài),向所述各存儲(chǔ)節(jié)點(diǎn)發(fā)送操作調(diào)度指令,以使所述各存儲(chǔ)節(jié)點(diǎn)根據(jù)所述操作調(diào)度指令,響應(yīng)所述存儲(chǔ)管理服務(wù)器的調(diào)度操作。
可選的,所述當(dāng)前系統(tǒng)狀態(tài)包括空閑狀態(tài)、正常狀態(tài)以及壓力狀態(tài);
所述根據(jù)所述云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)狀態(tài),向所述各存儲(chǔ)節(jié)點(diǎn)發(fā)送操作調(diào)度指令,以使所述各存儲(chǔ)節(jié)點(diǎn)根據(jù)所述操作調(diào)度指令,響應(yīng)所述存儲(chǔ)管理服務(wù)器的調(diào)度操作,包括:
當(dāng)所述云存儲(chǔ)系統(tǒng)處于所述正常狀態(tài)時(shí),向所述各存儲(chǔ)節(jié)點(diǎn)發(fā)送第一操作調(diào)度指令,以使所述各存儲(chǔ)節(jié)點(diǎn)在接收到所述第一操作調(diào)度指令后,根據(jù)當(dāng)前已設(shè)置內(nèi)容執(zhí)行所對應(yīng)的至少一個(gè)操作;
當(dāng)所述云存儲(chǔ)系統(tǒng)處于所述空閑狀態(tài)時(shí),向所述各存儲(chǔ)節(jié)點(diǎn)發(fā)送攜帶有預(yù)設(shè)空閑狀態(tài)處理規(guī)則的第二操作調(diào)度指令,以使所述各存儲(chǔ)節(jié)點(diǎn)在接收到所述第二操作調(diào)度指令后,根據(jù)所述第二操作調(diào)度指令所攜帶的所述預(yù)設(shè)空閑狀態(tài)處理規(guī)則進(jìn)行設(shè)置,并根據(jù)所設(shè)置內(nèi)容,執(zhí)行所對應(yīng)的至少一個(gè)操作;
當(dāng)所述云存儲(chǔ)系統(tǒng)處于所述壓力狀態(tài)時(shí),向所述各存儲(chǔ)節(jié)點(diǎn)發(fā)送攜帶有預(yù)設(shè)壓力狀態(tài)處理規(guī)則的第三操作調(diào)度指令,以使所述各存儲(chǔ)節(jié)點(diǎn)在接收到所述第三操作調(diào)度指令后,根據(jù)所述第三操作調(diào)度指令所攜帶的所述預(yù)設(shè)壓力狀態(tài) 處理規(guī)則進(jìn)行設(shè)置,并根據(jù)所設(shè)置內(nèi)容,執(zhí)行所對應(yīng)的至少一個(gè)操作。
可選的,所述分別計(jì)算所述云存儲(chǔ)系統(tǒng)的平均磁盤io占用率、平均cpu占用率以及平均mem占用率,包括:
利用預(yù)設(shè)公式分別計(jì)算平均磁盤io占用率、平均cpu占用率以及平均mem占用率;其中,所述預(yù)設(shè)公式分別為:
其中,
wai表示第i個(gè)存儲(chǔ)節(jié)點(diǎn)的磁盤io占用率,memi表示第i個(gè)存儲(chǔ)節(jié)點(diǎn)的mem占用率,cpui表示第i個(gè)存儲(chǔ)節(jié)點(diǎn)的cpu占用率,其中,i屬于1~n之間的任一整數(shù),wai、memi以及cpui均為百分制數(shù)值,取值范圍為[0,1]。
可選的,所述計(jì)算所述云存儲(chǔ)系統(tǒng)的云存儲(chǔ)壓力值所利用公式為:
其中,syspress表示所述云存儲(chǔ)壓力值,k1、k2和k3為權(quán)重系數(shù)。
可選的,所述根據(jù)所述云存儲(chǔ)壓力值,確定所述云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)狀態(tài),包括:
判斷所述云存儲(chǔ)壓力值是否超過第一預(yù)設(shè)閾值,若否,確定所述云存儲(chǔ)系統(tǒng)處于空閑狀態(tài);
若是,判斷所述云存儲(chǔ)壓力值是否超過第二預(yù)設(shè)閾值,若未超過,確定所述云存儲(chǔ)系統(tǒng)處于正常狀態(tài),若超過,確定所述云存儲(chǔ)系統(tǒng)處于壓力狀態(tài),其中,所述第一預(yù)設(shè)閾值小于所述第二預(yù)設(shè)閾值。
可選的,所述各存儲(chǔ)節(jié)點(diǎn)根據(jù)所述第二操作調(diào)度指令所攜帶的所述預(yù)設(shè)空閑狀態(tài)處理規(guī)則進(jìn)行設(shè)置,并根據(jù)所設(shè)置內(nèi)容,執(zhí)行所對應(yīng)的至少一個(gè)操作,包括:
所述各存儲(chǔ)節(jié)點(diǎn)判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在對讀操作的限速設(shè)置;
若否,所述各存儲(chǔ)節(jié)點(diǎn)判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在待進(jìn)行和/或正在進(jìn)行的內(nèi)部操作,若存在,處理所述內(nèi)部操作,若不存在,根據(jù)所設(shè)置內(nèi)容執(zhí)行所對應(yīng)的至少一個(gè)操作;
若是,關(guān)閉所述對讀操作的限速設(shè)置,繼續(xù)執(zhí)行所述各存儲(chǔ)節(jié)點(diǎn)判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在待進(jìn)行和/或正在進(jìn)行的內(nèi)部操作的步驟。
可選的,所述各存儲(chǔ)節(jié)點(diǎn)根據(jù)所述第三操作調(diào)度指令所攜帶的所述預(yù)設(shè)壓力狀態(tài)處理規(guī)則進(jìn)行設(shè)置,并根據(jù)所設(shè)置內(nèi)容,執(zhí)行所對應(yīng)的至少一個(gè)操作,包括:
所述各存儲(chǔ)節(jié)點(diǎn)判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在待進(jìn)行和/或正在進(jìn)行的內(nèi)部操作;
當(dāng)判斷結(jié)果為否時(shí),判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在對讀操作的限速設(shè)置,若否,開啟所述對讀操作的限速設(shè)置,若是,根據(jù)所設(shè)置內(nèi)容執(zhí)行所對應(yīng)的至少一個(gè)操作;
當(dāng)判斷結(jié)果為是時(shí),暫停對所述內(nèi)部操作的執(zhí)行,繼續(xù)執(zhí)行所述判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在對讀操作的限速設(shè)置的步驟。
可選的,本發(fā)明實(shí)施例所提供的一種云存儲(chǔ)系統(tǒng)調(diào)度方法還包括:
當(dāng)所述云存儲(chǔ)系統(tǒng)處于所述壓力狀態(tài)時(shí),并且所述各存儲(chǔ)節(jié)點(diǎn)的設(shè)置內(nèi)容中存在對所述讀操作的限速設(shè)置以及對內(nèi)部操作的暫停設(shè)置時(shí),通過運(yùn)維平臺(tái)輸出提示信息,以提示用戶所述云存儲(chǔ)系統(tǒng)當(dāng)前的壓力過大。
另一方面,本發(fā)明實(shí)施例還提供了一種云存儲(chǔ)系統(tǒng)調(diào)度裝置,應(yīng)用于存儲(chǔ)管理服務(wù)器,所述裝置包括:數(shù)據(jù)獲得計(jì)算模塊、云存儲(chǔ)壓力值計(jì)算模塊、當(dāng)前系統(tǒng)狀態(tài)確定模塊和指令發(fā)送模塊;
所述數(shù)據(jù)獲得計(jì)算模塊:用于獲得所述云存儲(chǔ)系統(tǒng)中各存儲(chǔ)節(jié)點(diǎn)的磁盤io占用率、cpu占用率以及內(nèi)存mem占用率,并且,分別計(jì)算所述云存儲(chǔ)系統(tǒng)的平均磁盤io占用率、平均cpu占用率以及平均mem占用率;
所述云存儲(chǔ)壓力值計(jì)算模塊:用于利用所述平均磁盤io占用率、所述平均cpu占用率以及所述平均mem占用率,計(jì)算所述云存儲(chǔ)系統(tǒng)的云存儲(chǔ)壓力值;
所述當(dāng)前系統(tǒng)狀態(tài)確定模塊:用于根據(jù)所述云存儲(chǔ)壓力值,確定所述云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)狀態(tài);
所述指令發(fā)送模塊:用于根據(jù)所述云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)狀態(tài),向所述各存儲(chǔ)節(jié)點(diǎn)發(fā)送操作調(diào)度指令,以使所述各存儲(chǔ)節(jié)點(diǎn)根據(jù)所述操作調(diào)度指令,響應(yīng)所述存儲(chǔ)管理服務(wù)器的調(diào)度操作。
可選的,所述當(dāng)前系統(tǒng)狀態(tài)包括空閑狀態(tài)、正常狀態(tài)以及壓力狀態(tài);
所述指令發(fā)送模塊包括第一指令發(fā)送單元、第二指令發(fā)送單元和第三指令發(fā)送單元;
所述第一指令發(fā)送單元:用于當(dāng)所述云存儲(chǔ)系統(tǒng)處于所述正常狀態(tài)時(shí),向所述各存儲(chǔ)節(jié)點(diǎn)發(fā)送第一操作調(diào)度指令,以使所述各存儲(chǔ)節(jié)點(diǎn)在接收到所述第一操作調(diào)度指令后,根據(jù)當(dāng)前已設(shè)置內(nèi)容執(zhí)行所對應(yīng)的至少一個(gè)操作;
所述第二指令發(fā)送單元:用于當(dāng)所述云存儲(chǔ)系統(tǒng)處于所述空閑狀態(tài)時(shí),向所述各存儲(chǔ)節(jié)點(diǎn)發(fā)送攜帶有預(yù)設(shè)空閑狀態(tài)處理規(guī)則的第二操作調(diào)度指令,以使所述各存儲(chǔ)節(jié)點(diǎn)在接收到所述第二操作調(diào)度指令后,根據(jù)所述第二操作調(diào)度指令所攜帶的所述預(yù)設(shè)空閑狀態(tài)處理規(guī)則進(jìn)行設(shè)置,并根據(jù)所設(shè)置內(nèi)容,執(zhí)行所對應(yīng)的至少一個(gè)操作;
所述第三指令發(fā)送單元:用于當(dāng)所述云存儲(chǔ)系統(tǒng)處于所述壓力狀態(tài)時(shí),向所述各存儲(chǔ)節(jié)點(diǎn)發(fā)送攜帶有預(yù)設(shè)壓力狀態(tài)處理規(guī)則的第三操作調(diào)度指令,以使所述各存儲(chǔ)節(jié)點(diǎn)在接收到所述第三操作調(diào)度指令后,根據(jù)所述第三操作調(diào)度指令所攜帶的所述預(yù)設(shè)壓力狀態(tài)處理規(guī)則進(jìn)行設(shè)置,并根據(jù)所設(shè)置內(nèi)容,執(zhí)行所 對應(yīng)的至少一個(gè)操作。
可選的,所述數(shù)據(jù)獲得計(jì)算模塊,具體用于:
利用預(yù)設(shè)公式分別計(jì)算平均磁盤io占用率、平均cpu占用率以及平均mem占用率;其中,所述預(yù)設(shè)公式分別為:
其中,
wai表示第i個(gè)存儲(chǔ)節(jié)點(diǎn)的磁盤io占用率,memi表示第i個(gè)存儲(chǔ)節(jié)點(diǎn)的mem占用率,cpui表示第i個(gè)存儲(chǔ)節(jié)點(diǎn)的cpu占用率,其中,i屬于1~n之間的任一整數(shù),wai、memi以及cpui均為百分制數(shù)值,取值范圍為[0,1]。
可選的,所述云存儲(chǔ)壓力值計(jì)算模塊所利用公式為:
其中,syspress表示所述云存儲(chǔ)壓力值,k1、k2和k3為權(quán)重系數(shù)。
可選的,所述當(dāng)前系統(tǒng)狀態(tài)確定模塊包括第一判斷單元、第二判斷單元、空閑狀態(tài)確定單元、正常狀態(tài)確定單元和壓力狀態(tài)確定單元;
所述第一判斷模塊:用于判斷所述云存儲(chǔ)壓力值是否超過第一預(yù)設(shè)閾值,若否,觸發(fā)所述空閑狀態(tài)確定單元,若是,觸發(fā)所述第二判斷單元;
所述空閑狀態(tài)確定單元:用于確定所述云存儲(chǔ)系統(tǒng)處于空閑狀態(tài);
所述第二判斷單元:用于判斷所述云存儲(chǔ)壓力值是否超過第二預(yù)設(shè)閾值,若未超過,觸發(fā)所述正常狀態(tài)確定單元,若超過,觸發(fā)所述壓力狀態(tài)確定單元;
所述正常狀態(tài)確定單元:用于確定所述云存儲(chǔ)系統(tǒng)處于正常狀態(tài);
所述壓力狀態(tài)確定單元:用于確定所述云存儲(chǔ)系統(tǒng)處于壓力狀態(tài);
其中,所述第一預(yù)設(shè)閾值小于所述第二預(yù)設(shè)閾值。
可選的,所述各存儲(chǔ)節(jié)點(diǎn)根據(jù)所述第二操作調(diào)度指令所攜帶的所述預(yù)設(shè)空閑狀態(tài)處理規(guī)則進(jìn)行設(shè)置,并根據(jù)所設(shè)置內(nèi)容,執(zhí)行所對應(yīng)的至少一個(gè)操作,包括:
所述各存儲(chǔ)節(jié)點(diǎn)判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在對讀操作的限速設(shè)置;
若否,所述各存儲(chǔ)節(jié)點(diǎn)判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在待進(jìn)行和/或正在進(jìn)行的內(nèi)部操作,若存在,處理所述內(nèi)部操作,若不存在,根據(jù)所設(shè)置內(nèi)容執(zhí)行所對應(yīng)的至少一個(gè)操作;
若是,關(guān)閉所述對讀操作的限速設(shè)置,繼續(xù)執(zhí)行所述各存儲(chǔ)節(jié)點(diǎn)判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在待進(jìn)行和/或正在進(jìn)行的內(nèi)部操作的步驟。
可選的,所述各存儲(chǔ)節(jié)點(diǎn)根據(jù)所述第三操作調(diào)度指令所攜帶的所述預(yù)設(shè)壓力狀態(tài)處理規(guī)則進(jìn)行設(shè)置,并根據(jù)所設(shè)置內(nèi)容,執(zhí)行所對應(yīng)的至少一個(gè)操作,包括:
所述各存儲(chǔ)節(jié)點(diǎn)判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在待進(jìn)行和/或正在進(jìn)行的內(nèi)部操作;
當(dāng)判斷結(jié)果為否時(shí),判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在對讀操作的限速設(shè)置,若否,開啟所述對讀操作的限速設(shè)置,若是,根據(jù)所設(shè)置內(nèi)容執(zhí)行所對應(yīng)的至少一個(gè)操作;
當(dāng)判斷結(jié)果為是時(shí),暫停對所述內(nèi)部操作的執(zhí)行,繼續(xù)執(zhí)行所述判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在對讀操作的限速設(shè)置的步驟。
可選的,本發(fā)明實(shí)施例所提供的一種云存儲(chǔ)系統(tǒng)調(diào)度裝置還包括提示信息輸出模塊;
所述提示信息輸出模塊:用于當(dāng)所述云存儲(chǔ)系統(tǒng)處于所述壓力狀態(tài)時(shí),并且所述各存儲(chǔ)節(jié)點(diǎn)的設(shè)置內(nèi)容中存在對所述讀操作的限速設(shè)置以及對內(nèi)部操作的暫停設(shè)置時(shí),通過運(yùn)維平臺(tái)輸出提示信息,以提示用戶所述云存儲(chǔ)系統(tǒng)當(dāng)前的壓力過大。
在本方案中,首先獲得云存儲(chǔ)系統(tǒng)中各存儲(chǔ)節(jié)點(diǎn)的磁盤io占用率、cpu占用率以及內(nèi)存mem占用率,并且,分別計(jì)算該云存儲(chǔ)系統(tǒng)的平均磁盤io占用率、平均cpu占用率以及平均mem占用率;利用該平均磁盤io占用率、該平均cpu占用率以及該平均mem占用率,計(jì)算該云存儲(chǔ)系統(tǒng)的云存儲(chǔ)壓力值;根據(jù)該云存儲(chǔ)壓力值,確定該云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)狀態(tài);根據(jù)該云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)狀態(tài),向該各存儲(chǔ)節(jié)點(diǎn)發(fā)送操作調(diào)度指令,以使該各存儲(chǔ)節(jié)點(diǎn)根據(jù)該操作調(diào)度指令,響應(yīng)該存儲(chǔ)管理服務(wù)器的調(diào)度操作。以實(shí)現(xiàn)針對云存儲(chǔ)系統(tǒng)的操作的性質(zhì),合理調(diào)度云存儲(chǔ)系統(tǒng)的資源配置,使得同等硬件配置下的云存儲(chǔ)系統(tǒng)的相對性能得到提升。當(dāng)然,實(shí)施本發(fā)明的任一產(chǎn)品或方法必不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種云存儲(chǔ)系統(tǒng)調(diào)度方法的流程示意圖;
圖2為本發(fā)明實(shí)施例提供的一種云存儲(chǔ)系統(tǒng)調(diào)度方法的另一流程示意圖;
圖3為本發(fā)明實(shí)施例提供的一種云存儲(chǔ)系統(tǒng)調(diào)度方法的另一流程示意圖;
圖4為本發(fā)明實(shí)施例提供的一種云存儲(chǔ)系統(tǒng)調(diào)度裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造 性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例提供了一種云存儲(chǔ)系統(tǒng)調(diào)度方法和裝置,可以實(shí)現(xiàn)針對云存儲(chǔ)系統(tǒng)的操作的性質(zhì),合理調(diào)度云存儲(chǔ)系統(tǒng)的資源配置,使得同等硬件配置下的云存儲(chǔ)系統(tǒng)的相對性能得到提升。
下面首先對本發(fā)明實(shí)施例所提供的一種云存儲(chǔ)系統(tǒng)調(diào)度方法進(jìn)行介紹。
需要說明的是,本發(fā)明實(shí)施例所提供的云存儲(chǔ)系統(tǒng)調(diào)度方法可以應(yīng)用于存儲(chǔ)管理服務(wù)器,當(dāng)該云存儲(chǔ)系統(tǒng)中僅存在一個(gè)存儲(chǔ)管理服務(wù)器時(shí),該存儲(chǔ)管理服務(wù)器可以管理該云存儲(chǔ)系統(tǒng)中的所有的用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)服務(wù)器(存儲(chǔ)節(jié)點(diǎn)),當(dāng)該云存儲(chǔ)系統(tǒng)中存在多個(gè)存儲(chǔ)管理服務(wù)器時(shí),該各存儲(chǔ)管理服務(wù)器中的信息可以相互交互,達(dá)到同步的效果,在理論上每個(gè)存儲(chǔ)管理服務(wù)器都可以獲得該云存儲(chǔ)系統(tǒng)中的所有的用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)服務(wù)器的相關(guān)信息,等等,這都是合理的。該云存儲(chǔ)系統(tǒng)是集群部署的云存儲(chǔ)系統(tǒng),并且通過負(fù)載均衡技術(shù)已經(jīng)使得各存儲(chǔ)服務(wù)器(存儲(chǔ)節(jié)點(diǎn))均攤整個(gè)云存儲(chǔ)系統(tǒng)的壓力。
如圖1所示,本發(fā)明實(shí)施例所提供的一種云存儲(chǔ)系統(tǒng)調(diào)度方法,可以包括步驟:
s101:獲得該云存儲(chǔ)系統(tǒng)中各存儲(chǔ)節(jié)點(diǎn)的磁盤io占用率、cpu占用率以及內(nèi)存mem占用率,并且,分別計(jì)算該云存儲(chǔ)系統(tǒng)的平均磁盤io占用率、平均cpu占用率以及平均mem占用率;
可以理解的是,為了便于管理該云存儲(chǔ)系統(tǒng)中的各存儲(chǔ)節(jié)點(diǎn),該存儲(chǔ)管理服務(wù)器可以實(shí)時(shí)的或者定期的獲得該云存儲(chǔ)系統(tǒng)中各存儲(chǔ)節(jié)點(diǎn)的磁盤io占用率、cpu占用率以及內(nèi)存mem占用率。對于該獲得的各存儲(chǔ)節(jié)點(diǎn)的磁盤io占用率、cpu占用率以及mem占用率都是實(shí)時(shí)變化的,需同時(shí)獲得該各存儲(chǔ)節(jié)點(diǎn)的磁盤io占用率、cpu占用率以及mem占用率。并根據(jù)上述信息,計(jì)算該云存儲(chǔ)系統(tǒng)的平均磁盤io占用率、平均cpu占用率以及平均mem占用率。
具體的,所述分別計(jì)算該云存儲(chǔ)系統(tǒng)的平均磁盤io占用率、平均cpu占用率以及平均mem占用率,可以包括:
利用預(yù)設(shè)公式分別計(jì)算平均磁盤io占用率、平均cpu占用率以及平均mem占用率;其中,該預(yù)設(shè)公式分別可以為:
其中,
wai表示第i個(gè)存儲(chǔ)節(jié)點(diǎn)的磁盤io占用率,memi表示第i個(gè)存儲(chǔ)節(jié)點(diǎn)的mem占用率,cpui表示第i個(gè)存儲(chǔ)節(jié)點(diǎn)的cpu占用率,其中,i屬于1~n之間的任一整數(shù),wai、memi以及cpui均為百分制數(shù)值,取值范圍為[0,1]。
需要說明的是,對于云存儲(chǔ)系統(tǒng)來說,評(píng)價(jià)該系統(tǒng)壓力的因子往往包括磁盤io占用率、cpu占用率以及mem占用率,根據(jù)該計(jì)算所得出的平均磁盤io占用率、平均cpu占用率以及平均mem占用率即可確定該云存儲(chǔ)系統(tǒng)的當(dāng)前所處的壓力值。
s102:利用該平均磁盤io占用率、該平均cpu占用率以及該平均mem占用率,計(jì)算該云存儲(chǔ)系統(tǒng)的云存儲(chǔ)壓力值;
可以理解的是,對于確定該云存儲(chǔ)系統(tǒng)的云存儲(chǔ)壓力值的實(shí)現(xiàn)方式可以有多種,其中,可以是直接將該所得的平均磁盤io占用率、平均cpu占用率以及平均mem占用率進(jìn)行相加,將該所得的結(jié)果確定為該云存儲(chǔ)壓力值;也可以是通過設(shè)定權(quán)重系數(shù),將該所得的平均磁盤io占用率、平均cpu占用率以及平均mem占用率與對應(yīng)的權(quán)重系數(shù)的乘積的和來確定該云存儲(chǔ)壓力值,本發(fā)明實(shí)施例提供了一種實(shí)現(xiàn)方式,具體的,所述計(jì)算該云存儲(chǔ)系統(tǒng)的云存儲(chǔ)壓力值所利用公式可以為:
其中,syspress表示該云存儲(chǔ)壓力值,k1、k2和k3為權(quán)重系數(shù)。
需要說明的是,對于k1、k2和k3的設(shè)置,可以根據(jù)該云存儲(chǔ)系統(tǒng)的各存儲(chǔ)節(jié)點(diǎn)當(dāng)前對應(yīng)的操作進(jìn)行設(shè)定,當(dāng)該云存儲(chǔ)系統(tǒng)中的各存儲(chǔ)節(jié)點(diǎn)當(dāng)前對應(yīng)的操作對云存儲(chǔ)系統(tǒng)的內(nèi)存mem的要求較高,則將該平均mem占用率對應(yīng)的權(quán)重系數(shù)k2設(shè)置較大些;當(dāng)該云存儲(chǔ)系統(tǒng)中的各存儲(chǔ)節(jié)點(diǎn)當(dāng)前對應(yīng)的操作對云存儲(chǔ)系統(tǒng)的cpu的要求較高,則將該平均cpu占用率對應(yīng)的權(quán)重系數(shù)k3設(shè)置較大些;同理,若對該云存儲(chǔ)系統(tǒng)的磁盤io的要求較高,則將該平均磁盤io占用率對應(yīng)的權(quán)重系數(shù)k1設(shè)置較大些,等等,這都是合理的。
s103:根據(jù)該云存儲(chǔ)壓力值,確定該云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)狀態(tài);
可以理解的是,根據(jù)該云存儲(chǔ)壓力值,可以直觀的確定該云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)所處的壓力,當(dāng)該云存儲(chǔ)壓力值相對較大時(shí),如超過某一預(yù)定閾值,可以表明該云存儲(chǔ)系統(tǒng)的當(dāng)前的處理數(shù)據(jù)的壓力相對較大,此時(shí),該存儲(chǔ)管理服務(wù)器就可以對該各存儲(chǔ)節(jié)點(diǎn)進(jìn)行調(diào)度,比如限制某些操作的進(jìn)行;當(dāng)該云存儲(chǔ)壓力值相對較小時(shí),如低于某一設(shè)定閾值,則可以表明該云存儲(chǔ)系統(tǒng)的當(dāng)前的處理數(shù)據(jù)的壓力相對較小,此時(shí),該存儲(chǔ)管理服務(wù)器就可以調(diào)度該各存儲(chǔ)節(jié)點(diǎn)的操作設(shè)置,如加快讀/寫操作的速度,等等??梢岳斫獾氖?,讀/寫操作的速度越快,該對云存儲(chǔ)系統(tǒng)造成的壓力越大。
具體的,所述根據(jù)該云存儲(chǔ)壓力值,確定該云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)狀態(tài)(s103),可以包括:
判斷該云存儲(chǔ)壓力值是否超過第一預(yù)設(shè)閾值,若否,確定該云存儲(chǔ)系統(tǒng)處于空閑狀態(tài),
若是,判斷該云存儲(chǔ)壓力值是否超過第二預(yù)設(shè)閾值,若未超過,確定該云存儲(chǔ)系統(tǒng)處于正常狀態(tài),若超過,確定該云存儲(chǔ)系統(tǒng)處于壓力狀態(tài),其中,該第一預(yù)設(shè)閾值小于該第二預(yù)設(shè)閾值。
需要說明的是,該第一預(yù)設(shè)閾值和該第二預(yù)設(shè)閾值,可以是管理人員根據(jù)經(jīng)驗(yàn)預(yù)先設(shè)置,也可以是該存儲(chǔ)管理服務(wù)器根據(jù)該云存儲(chǔ)系統(tǒng)中的各存儲(chǔ)節(jié)點(diǎn)的工作狀態(tài)進(jìn)行默認(rèn)設(shè)定,等等,這都是合理的。
s104:根據(jù)該云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)狀態(tài),向該各存儲(chǔ)節(jié)點(diǎn)發(fā)送操作調(diào)度 指令,以使該各存儲(chǔ)節(jié)點(diǎn)根據(jù)該操作調(diào)度指令,響應(yīng)該存儲(chǔ)管理服務(wù)器的調(diào)度操作。
其中,該操作調(diào)度指令中包含各種對該云存儲(chǔ)系統(tǒng)中的各存儲(chǔ)節(jié)點(diǎn)的對應(yīng)操作的設(shè)置內(nèi)容,該存儲(chǔ)管理服務(wù)器將該操作調(diào)度指令下發(fā)給該各存儲(chǔ)節(jié)點(diǎn)后,各存儲(chǔ)節(jié)點(diǎn)根據(jù)該操作調(diào)度指令,可以對該對應(yīng)操作進(jìn)行相應(yīng)的調(diào)度。
具體的,所述當(dāng)前系統(tǒng)狀態(tài)可以包括空閑狀態(tài)、正常狀態(tài)以及壓力狀態(tài);
所述根據(jù)該云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)狀態(tài),向該各存儲(chǔ)節(jié)點(diǎn)發(fā)送操作調(diào)度指令,以使該各存儲(chǔ)節(jié)點(diǎn)根據(jù)該操作調(diào)度指令,響應(yīng)該存儲(chǔ)管理服務(wù)器的調(diào)度操作(s104),可以包括:
s1041:當(dāng)該云存儲(chǔ)系統(tǒng)處于該正常狀態(tài)時(shí),向該各存儲(chǔ)節(jié)點(diǎn)發(fā)送第一操作調(diào)度指令,以使該各存儲(chǔ)節(jié)點(diǎn)在接收到該第一操作調(diào)度指令后,根據(jù)當(dāng)前已設(shè)置內(nèi)容執(zhí)行所對應(yīng)的至少一個(gè)操作;
s1042:當(dāng)該云存儲(chǔ)系統(tǒng)處于該空閑狀態(tài)時(shí),向該各存儲(chǔ)節(jié)點(diǎn)發(fā)送攜帶有預(yù)設(shè)空閑狀態(tài)處理規(guī)則的第二操作調(diào)度指令,以使該各存儲(chǔ)節(jié)點(diǎn)在接收到該第二操作調(diào)度指令后,根據(jù)該第二操作調(diào)度指令所攜帶的該預(yù)設(shè)空閑狀態(tài)處理規(guī)則進(jìn)行設(shè)置,并根據(jù)所設(shè)置內(nèi)容,執(zhí)行所對應(yīng)的至少一個(gè)操作;
s1043:當(dāng)該云存儲(chǔ)系統(tǒng)處于該壓力狀態(tài)時(shí),向該各存儲(chǔ)節(jié)點(diǎn)發(fā)送攜帶有預(yù)設(shè)壓力狀態(tài)處理規(guī)則的第三操作調(diào)度指令,以使該各存儲(chǔ)節(jié)點(diǎn)在接收到該第三操作調(diào)度指令后,根據(jù)該第三操作調(diào)度指令所攜帶的該預(yù)設(shè)壓力狀態(tài)處理規(guī)則進(jìn)行設(shè)置,并根據(jù)所設(shè)置內(nèi)容,執(zhí)行所對應(yīng)的至少一個(gè)操作。
在實(shí)際應(yīng)用中,該云存儲(chǔ)系統(tǒng)中存在的操作很多,從功能上可以包括內(nèi)部操作和外部操作,對于外部操作來說,主要的操作對象主要是平臺(tái)服務(wù)器、用戶以及前端相機(jī)等。而內(nèi)部操作則是云存儲(chǔ)系統(tǒng)的內(nèi)部進(jìn)行的,對外(用戶)不可見。同時(shí),對于該所有操作來說,每個(gè)操作都消耗著云存儲(chǔ)系統(tǒng)的資源,影響著云存儲(chǔ)系統(tǒng)的性能,但這些操作對云存儲(chǔ)系統(tǒng)來說,其影響程度以及資源消耗影響因素上是存在差異的,具體可以參考表1。
表1
對于云存儲(chǔ)系統(tǒng)中所存在的各種操作,均不是時(shí)刻均等進(jìn)行的,如對視頻數(shù)據(jù)或圖片數(shù)據(jù)的寫入(存儲(chǔ)),在上下班高峰期時(shí)對該云存儲(chǔ)系統(tǒng)造成的壓力就會(huì)較高,而夜晚時(shí)期該對視頻數(shù)據(jù)或圖片數(shù)據(jù)的寫入的壓力就會(huì)相對較小,該云存儲(chǔ)系統(tǒng)負(fù)擔(dān)的壓力是動(dòng)態(tài)變化的,而根據(jù)該負(fù)擔(dān)的壓力的動(dòng)態(tài)變化,該云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)狀態(tài)也是動(dòng)態(tài)變化的。
對于該云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)狀態(tài),可以根據(jù)當(dāng)前負(fù)載的壓力即云存儲(chǔ)壓力值,分為空閑狀態(tài)、正常狀態(tài)以及壓力狀態(tài),對于當(dāng)前系統(tǒng)狀態(tài)為正常狀態(tài)時(shí),可以表明當(dāng)前的云存儲(chǔ)系統(tǒng)中各存儲(chǔ)節(jié)點(diǎn)對應(yīng)的操作壓力處于平衡狀態(tài),可以向各存儲(chǔ)節(jié)點(diǎn)發(fā)送第一操作調(diào)度指令,以使該各存儲(chǔ)節(jié)點(diǎn)在接收到第一操作調(diào)度指令后,根據(jù)當(dāng)前已設(shè)置內(nèi)容執(zhí)行所對應(yīng)的至少一個(gè)操作;對于當(dāng)前系統(tǒng)狀態(tài)為空閑狀態(tài)時(shí),可以表明當(dāng)前的云存儲(chǔ)系統(tǒng)中各存儲(chǔ)節(jié)點(diǎn)對應(yīng)的操作壓力較小,此時(shí)就可以發(fā)送攜帶有預(yù)設(shè)空閑狀態(tài)處理規(guī)則的第二操作調(diào)度指令,以使各存儲(chǔ)節(jié)點(diǎn)接收到第二操作調(diào)度指令后,根據(jù)該攜帶的預(yù)設(shè)空閑狀態(tài)處理規(guī)則進(jìn)行設(shè)置,并根據(jù)該設(shè)置內(nèi)容,執(zhí)行所對應(yīng)的至少一個(gè)操作;對于當(dāng)前系統(tǒng)狀態(tài)為壓力狀態(tài)時(shí),可以表明當(dāng)前的云存儲(chǔ)系統(tǒng)中各存儲(chǔ)節(jié)點(diǎn)對應(yīng)的操作壓力過大,超過了該各存儲(chǔ)節(jié)點(diǎn)的負(fù)載能力,此時(shí),可以向各存儲(chǔ)節(jié)點(diǎn)發(fā)送攜帶有預(yù)設(shè)壓力狀態(tài)處理規(guī)則的第三操作調(diào)度指令,以使各存儲(chǔ)節(jié)點(diǎn)接收到該第三操作調(diào)度指令后,根據(jù)所攜帶的預(yù)設(shè)壓力狀態(tài)處理規(guī)則進(jìn)行設(shè)置,并根據(jù)該設(shè)置內(nèi)容,執(zhí)行所對應(yīng)的至少一個(gè)操作。
具體的,如圖2所示,所述各存儲(chǔ)節(jié)點(diǎn)根據(jù)該第二操作調(diào)度指令所攜帶的該預(yù)設(shè)空閑狀態(tài)處理規(guī)則進(jìn)行設(shè)置,并根據(jù)所設(shè)置內(nèi)容,執(zhí)行所對應(yīng)的至少一個(gè)操作,可以包括:
s201:該各存儲(chǔ)節(jié)點(diǎn)判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在對讀操作的限速 設(shè)置;若否,執(zhí)行步驟s202,若是,執(zhí)行步驟s203;
s202:該各存儲(chǔ)節(jié)點(diǎn)判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在待進(jìn)行和/或正在進(jìn)行的內(nèi)部操作,若存在,執(zhí)行步驟s204,若不存在,執(zhí)行步驟s205;
s203:關(guān)閉該對讀操作的限速設(shè)置,繼續(xù)步驟s202;
s204:處理該內(nèi)部操作,繼續(xù)執(zhí)行步驟s205;
s205:根據(jù)所設(shè)置內(nèi)容執(zhí)行所對應(yīng)的至少一個(gè)操作。
可以理解的是,對于云存儲(chǔ)系統(tǒng)來說,首先需要保證對于錄像/圖片/文件的寫入以及錄像預(yù)覽等實(shí)時(shí)性高的外部操作的執(zhí)行,其次才是對錄像回放和錄像/圖片/文件下載等實(shí)時(shí)性低的外部操作以及內(nèi)部操作的執(zhí)行,然而對于內(nèi)部操作而言,由于是對外(用戶)不可見的,因此可以在云存儲(chǔ)資源較充裕即云存儲(chǔ)系統(tǒng)處于空閑狀態(tài)下進(jìn)行。
當(dāng)該各存儲(chǔ)節(jié)點(diǎn)接收到該第二操作調(diào)度指令后,因?yàn)樵摳鞔鎯?chǔ)節(jié)點(diǎn)均處于空閑的狀態(tài),因此會(huì)根據(jù)該第二操作調(diào)度指令所攜帶的預(yù)設(shè)空閑狀態(tài)處理規(guī)則將存在的對讀操作的限速設(shè)置關(guān)閉,處理存在的待進(jìn)行和/或正在進(jìn)行的內(nèi)部操作,可以理解的是,對于讀操作的速度來說,當(dāng)讀操作的速度越快,其對該云存儲(chǔ)系統(tǒng)造成的壓力越大。
對于該云存儲(chǔ)系統(tǒng)處于壓力狀態(tài)時(shí),可以表明各存儲(chǔ)節(jié)點(diǎn)的當(dāng)前所承擔(dān)的負(fù)載壓力較大,超出了該各存儲(chǔ)節(jié)點(diǎn)的負(fù)載能力,此時(shí),該存儲(chǔ)管理服務(wù)器可以向該各存儲(chǔ)節(jié)點(diǎn)發(fā)送攜帶預(yù)設(shè)壓力狀態(tài)處理規(guī)則的第三操作調(diào)度指令,以使跟存儲(chǔ)節(jié)點(diǎn)作出相應(yīng)的處理,如圖3所示,具體的,所述各存儲(chǔ)節(jié)點(diǎn)根據(jù)該第三操作調(diào)度指令所攜帶的該預(yù)設(shè)壓力狀態(tài)處理規(guī)則進(jìn)行設(shè)置,并根據(jù)所設(shè)置內(nèi)容,執(zhí)行所對應(yīng)的至少一個(gè)操作,可以包括:
s301:該各存儲(chǔ)節(jié)點(diǎn)判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在待進(jìn)行和/或正在進(jìn)行的內(nèi)部操作,當(dāng)判斷結(jié)果為否時(shí),執(zhí)行步驟s302,當(dāng)判斷結(jié)果為是時(shí),執(zhí)行步驟s303;
s302:判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在對讀操作的限速設(shè)置,若否,執(zhí)行步驟s304,若是,執(zhí)行步驟s305;
s303:暫停對該內(nèi)部操作的執(zhí)行,繼續(xù)執(zhí)行步驟s302;
s304:開啟該對讀操作的限速設(shè)置,繼續(xù)執(zhí)行步驟s305;
s305:根據(jù)所設(shè)置內(nèi)容執(zhí)行所對應(yīng)的至少一個(gè)操作。
需要說明的是,當(dāng)云存儲(chǔ)系統(tǒng)處于壓力狀態(tài)時(shí),可以表明該各存儲(chǔ)節(jié)點(diǎn)當(dāng)前處理對應(yīng)的操作的負(fù)載壓力超過了該各存儲(chǔ)節(jié)點(diǎn)所能承擔(dān)的壓力。此時(shí),可以根據(jù)該預(yù)設(shè)壓力狀態(tài)處理規(guī)則對各存儲(chǔ)節(jié)點(diǎn)進(jìn)行設(shè)置,暫停該存在的待進(jìn)行和/或正在進(jìn)行的內(nèi)部操作,以及對讀操作進(jìn)行限速設(shè)置,以此來降低該各存儲(chǔ)節(jié)點(diǎn)的負(fù)載壓力。當(dāng)然,根據(jù)該預(yù)設(shè)壓力狀態(tài)處理規(guī)則進(jìn)行設(shè)置后,如果該云存儲(chǔ)系統(tǒng)的當(dāng)前狀態(tài)還是壓力狀態(tài),則可以確定該云存儲(chǔ)系統(tǒng)的硬件配置過差或者當(dāng)前云存儲(chǔ)系統(tǒng)的壓力過大。此時(shí),就需要該存儲(chǔ)管理服務(wù)器執(zhí)行其他相應(yīng)的對策,如輸出提示信息,提示用戶升級(jí)云存儲(chǔ)系統(tǒng)的硬件配置等。當(dāng)然,如果該云存儲(chǔ)系統(tǒng)處于壓力狀態(tài)下,并且在根據(jù)該預(yù)設(shè)壓力狀態(tài)處理規(guī)則進(jìn)行設(shè)置前,該云存儲(chǔ)系統(tǒng)中的各存儲(chǔ)節(jié)點(diǎn)均對該讀操作進(jìn)行了限速設(shè)置,且暫停了對待進(jìn)行和/或正在進(jìn)行的內(nèi)部操作的處理,也可以表明該云存儲(chǔ)系統(tǒng)的硬件配置過差或者當(dāng)前云存儲(chǔ)系統(tǒng)的壓力過大。具體的,針對這些情況,本發(fā)明實(shí)施例所提供的云存儲(chǔ)系統(tǒng)調(diào)度方法還可以包括:
當(dāng)所述云存儲(chǔ)系統(tǒng)處于該壓力狀態(tài)時(shí),并且該各存儲(chǔ)節(jié)點(diǎn)的設(shè)置內(nèi)容中存在對該讀操作的限速設(shè)置以及對內(nèi)部操作的暫停設(shè)置時(shí),通過運(yùn)維平臺(tái)輸出提示信息,以提示用戶該云存儲(chǔ)系統(tǒng)當(dāng)前的壓力過大。
可以理解的是,該提示信息可以是聲音提示、亮度提示或者文字提示,等等,本發(fā)明實(shí)施例并不對該提示信息類型進(jìn)行限定。
相應(yīng)于上述方法實(shí)施例,如圖4所示,本發(fā)明實(shí)施例還提供了一種云存儲(chǔ)系統(tǒng)調(diào)度裝置,可以應(yīng)用于存儲(chǔ)管理服務(wù)器,該裝置可以包括:數(shù)據(jù)獲得計(jì)算模塊401、云存儲(chǔ)壓力值計(jì)算模塊402、當(dāng)前系統(tǒng)狀態(tài)確定模塊403和指令發(fā)送模塊404;
所述數(shù)據(jù)獲得計(jì)算模塊401:用于獲得所述云存儲(chǔ)系統(tǒng)中各存儲(chǔ)節(jié)點(diǎn)的磁盤io占用率、cpu占用率以及內(nèi)存mem占用率,并且,分別計(jì)算所述云存儲(chǔ)系統(tǒng)的平均磁盤io占用率、平均cpu占用率以及平均mem占用率;
所述云存儲(chǔ)壓力值計(jì)算模塊402:用于利用所述平均磁盤io占用率、所述平均cpu占用率以及所述平均mem占用率,計(jì)算所述云存儲(chǔ)系統(tǒng)的云存儲(chǔ)壓力值;
所述當(dāng)前系統(tǒng)狀態(tài)確定模塊403:用于根據(jù)所述云存儲(chǔ)壓力值,確定所述云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)狀態(tài);
所述指令發(fā)送模塊404:用于根據(jù)所述云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)狀態(tài),向所述各存儲(chǔ)節(jié)點(diǎn)發(fā)送操作調(diào)度指令,以使所述各存儲(chǔ)節(jié)點(diǎn)根據(jù)所述操作調(diào)度指令,響應(yīng)所述存儲(chǔ)管理服務(wù)器的調(diào)度操作。
應(yīng)用本發(fā)明實(shí)施例,首先獲得云存儲(chǔ)系統(tǒng)中各存儲(chǔ)節(jié)點(diǎn)的磁盤io占用率、cpu占用率以及內(nèi)存mem占用率,并且,分別計(jì)算該云存儲(chǔ)系統(tǒng)的平均磁盤io占用率、平均cpu占用率以及平均mem占用率;利用該平均磁盤io占用率、該平均cpu占用率以及該平均mem占用率,計(jì)算該云存儲(chǔ)系統(tǒng)的云存儲(chǔ)壓力值;根據(jù)該云存儲(chǔ)壓力值,確定該云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)狀態(tài);根據(jù)該云存儲(chǔ)系統(tǒng)的當(dāng)前系統(tǒng)狀態(tài),向該各存儲(chǔ)節(jié)點(diǎn)發(fā)送操作調(diào)度指令,以使該各存儲(chǔ)節(jié)點(diǎn)根據(jù)該操作調(diào)度指令,響應(yīng)該存儲(chǔ)管理服務(wù)器的調(diào)度操作。以實(shí)現(xiàn)針對云存儲(chǔ)系統(tǒng)的操作的性質(zhì),合理調(diào)度云存儲(chǔ)系統(tǒng)的資源配置,使得同等硬件配置下的云存儲(chǔ)系統(tǒng)的相對性能得到提升。
具體的,所述當(dāng)前系統(tǒng)狀態(tài)包括空閑狀態(tài)、正常狀態(tài)以及壓力狀態(tài);
所述指令發(fā)送模塊404可以包括第一指令發(fā)送單元、第二指令發(fā)送單元和第三指令發(fā)送單元;
所述第一指令發(fā)送單元:用于當(dāng)所述云存儲(chǔ)系統(tǒng)處于所述正常狀態(tài)時(shí),向所述各存儲(chǔ)節(jié)點(diǎn)發(fā)送第一操作調(diào)度指令,以使所述各存儲(chǔ)節(jié)點(diǎn)在接收到所述第一操作調(diào)度指令后,根據(jù)當(dāng)前已設(shè)置內(nèi)容執(zhí)行所對應(yīng)的至少一個(gè)操作;
所述第二指令發(fā)送單元:用于當(dāng)所述云存儲(chǔ)系統(tǒng)處于所述空閑狀態(tài)時(shí),向所述各存儲(chǔ)節(jié)點(diǎn)發(fā)送攜帶有預(yù)設(shè)空閑狀態(tài)處理規(guī)則的第二操作調(diào)度指令,以使所述各存儲(chǔ)節(jié)點(diǎn)在接收到所述第二操作調(diào)度指令后,根據(jù)所述第二操作調(diào)度指令所攜帶的所述預(yù)設(shè)空閑狀態(tài)處理規(guī)則進(jìn)行設(shè)置,并根據(jù)所設(shè)置內(nèi)容,執(zhí)行所對應(yīng)的至少一個(gè)操作;
所述第三指令發(fā)送單元:用于當(dāng)所述云存儲(chǔ)系統(tǒng)處于所述壓力狀態(tài)時(shí),向所述各存儲(chǔ)節(jié)點(diǎn)發(fā)送攜帶有預(yù)設(shè)壓力狀態(tài)處理規(guī)則的第三操作調(diào)度指令,以使所述各存儲(chǔ)節(jié)點(diǎn)在接收到所述第三操作調(diào)度指令后,根據(jù)所述第三操作調(diào)度指令所攜帶的所述預(yù)設(shè)壓力狀態(tài)處理規(guī)則進(jìn)行設(shè)置,并根據(jù)所設(shè)置內(nèi)容,執(zhí)行所對應(yīng)的至少一個(gè)操作。
具體的,所述數(shù)據(jù)獲得計(jì)算模塊401,具體用于:
利用預(yù)設(shè)公式分別計(jì)算平均磁盤io占用率、平均cpu占用率以及平均mem占用率;其中,所述預(yù)設(shè)公式可以分別為:
其中,
wai表示第i個(gè)存儲(chǔ)節(jié)點(diǎn)的磁盤io占用率,memi表示第i個(gè)存儲(chǔ)節(jié)點(diǎn)的mem占用率,cpui表示第i個(gè)存儲(chǔ)節(jié)點(diǎn)的cpu占用率,其中,i屬于1~n之間的任一整數(shù),wai、memi以及cpui均為百分制數(shù)值,取值范圍為[0,1]。
具體的,所述云存儲(chǔ)壓力值計(jì)算模塊所利用公式可以為:
其中,syspress表示所述云存儲(chǔ)壓力值,k1、k2和k3為權(quán)重系數(shù)。
具體的,所述當(dāng)前系統(tǒng)狀態(tài)確定模塊403可以包括第一判斷單元、第二判斷單元、空閑狀態(tài)確定單元、正常狀態(tài)確定單元和壓力狀態(tài)確定單元;
所述第一判斷模塊:用于判斷所述云存儲(chǔ)壓力值是否超過第一預(yù)設(shè)閾值,若否,觸發(fā)所述空閑狀態(tài)確定單元,若是,觸發(fā)所述第二判斷單元;
所述空閑狀態(tài)確定單元:用于確定所述云存儲(chǔ)系統(tǒng)處于空閑狀態(tài);
所述第二判斷單元:用于判斷所述云存儲(chǔ)壓力值是否超過第二預(yù)設(shè)閾值,若未超過,觸發(fā)所述正常狀態(tài)確定單元,若超過,觸發(fā)所述壓力狀態(tài)確定單元;
所述正常狀態(tài)確定單元:用于確定所述云存儲(chǔ)系統(tǒng)處于正常狀態(tài);
所述壓力狀態(tài)確定單元:用于確定所述云存儲(chǔ)系統(tǒng)處于壓力狀態(tài);
其中,所述第一預(yù)設(shè)閾值小于所述第二預(yù)設(shè)閾值。
具體的,所述各存儲(chǔ)節(jié)點(diǎn)根據(jù)所述第二操作調(diào)度指令所攜帶的所述預(yù)設(shè)空閑狀態(tài)處理規(guī)則進(jìn)行設(shè)置,并根據(jù)所設(shè)置內(nèi)容,執(zhí)行所對應(yīng)的至少一個(gè)操作,包括:
所述各存儲(chǔ)節(jié)點(diǎn)判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在對讀操作的限速設(shè)置;
若否,所述各存儲(chǔ)節(jié)點(diǎn)判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在待進(jìn)行和/或正在進(jìn)行的內(nèi)部操作,若存在,處理所述內(nèi)部操作,若不存在,根據(jù)所設(shè)置內(nèi)容執(zhí)行所對應(yīng)的至少一個(gè)操作;
若是,關(guān)閉所述對讀操作的限速設(shè)置,繼續(xù)執(zhí)行所述各存儲(chǔ)節(jié)點(diǎn)判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在待進(jìn)行和/或正在進(jìn)行的內(nèi)部操作的步驟。
具體的,所述各存儲(chǔ)節(jié)點(diǎn)根據(jù)所述第三操作調(diào)度指令所攜帶的所述預(yù)設(shè)壓力狀態(tài)處理規(guī)則進(jìn)行設(shè)置,并根據(jù)所設(shè)置內(nèi)容,執(zhí)行所對應(yīng)的至少一個(gè)操作,包括:
所述各存儲(chǔ)節(jié)點(diǎn)判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在待進(jìn)行和/或正在進(jìn)行的內(nèi)部操作;
當(dāng)判斷結(jié)果為否時(shí),判斷各自對應(yīng)的設(shè)置內(nèi)容中是否存在對讀操作的限速設(shè)置,若否,開啟所述對讀操作的限速設(shè)置,若是,根據(jù)所設(shè)置內(nèi)容執(zhí)行所對應(yīng)的至少一個(gè)操作;
具體的,本發(fā)明實(shí)施例所提供的一種云存儲(chǔ)系統(tǒng)調(diào)度裝置,還可以包括提 示信息輸出模塊;
所述提示信息輸出模塊:用于當(dāng)所述云存儲(chǔ)系統(tǒng)處于所述壓力狀態(tài)時(shí),并且所述各存儲(chǔ)節(jié)點(diǎn)的設(shè)置內(nèi)容中存在對所述讀操作的限速設(shè)置以及對內(nèi)部操作的暫停設(shè)置時(shí),通過運(yùn)維平臺(tái)輸出提示信息,以提示用戶所述云存儲(chǔ)系統(tǒng)當(dāng)前的壓力過大。
對于系統(tǒng)/裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施方式中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲(chǔ)于計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,這里所稱得的存儲(chǔ)介質(zhì),如:rom/ram、磁碟、光盤等。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。