本發(fā)明涉及存儲技術(shù)領(lǐng)域,尤其涉及一種存儲陣列操作方法和裝置。
背景技術(shù):
隨著存儲技術(shù)的發(fā)展,存儲陣列內(nèi)往往會支持多種功能,例如:支持網(wǎng)絡(luò)附屬存儲(Network Attached Storage,NAS)和存儲區(qū)域網(wǎng)絡(luò)(Storage Area NetWorking,SAN)的融合存儲,或者同時支持本地訪問和異構(gòu)邏輯單元號(Logical Unit Number,Lun)的存儲,或者存儲陣列內(nèi)部往往會有多種不同的業(yè)務(wù),如客戶有可能同時配置自動精簡配置(thin)Lun、普通(thick)Lun、快照業(yè)務(wù)以及基于寫時重定向(Redirect On Write,ROW)技術(shù)實現(xiàn)的Lun。且現(xiàn)有的存儲陣列往往都會提供緩存(Cache)功能以加速讀寫效率。然而,存儲陣列的Cache資源可能會由很多業(yè)務(wù)對象共享,且不同的業(yè)務(wù)對象之間性能相差很大,例如:慢的業(yè)務(wù)對象會占用大量的Cache資源來不及釋放,使得快的業(yè)務(wù)對象可使用的Cache資源不足,從而快的業(yè)務(wù)對象的性能急劇惡化。例如:NAS和SAN融合存儲時,NAS和SAN都跑寫業(yè)務(wù)情況下,NAS占用Cache資源耗盡,導(dǎo)致SAN性能惡化,影響SAN業(yè)務(wù)的服務(wù)體驗。例如:機械盤和固態(tài)硬盤(Solid State Drives,SSD)的混合存儲陣列,由于機械盤的性能遠遠低于SSD盤,這樣機械盤占用Cache資源,導(dǎo)致SSD盤資源得不到分配,導(dǎo)致SSD盤性能惡化。由此可見,目前融合存儲的性能惡化問題是當(dāng)前迫切需要解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種存儲陣列操作方法和裝置,可以解決融合存儲的性能惡化問題。
第一方面,本發(fā)明實施例提供一種存儲陣列操作方法,包括:
接收目標(biāo)業(yè)務(wù)對象下發(fā)的針對存儲陣列的緩存的操作指令,其中,所述存儲陣列所支持的業(yè)務(wù)對象被劃分為至少一個性能組,且預(yù)先為每個所述性能組 計算有允許操作流量;
從所述至少一個性能組中選擇所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能組,并判斷所述目標(biāo)性能組的允許操作流量是否還存在剩余流量;
若所述目標(biāo)性能組的允許操作流量還存在剩余流量時,響應(yīng)所述操作指令;
若所述目標(biāo)性能組的允許操作流量不存在剩余流量時,拒絕所述操作指令。
在第一方面的第一種可能的實現(xiàn)方式中,所述存儲陣列包括至少一個硬盤域,且所述至少一個硬盤域被劃分為至少一個性能池,且預(yù)先為每個所述性能池計算有允許操作流量,每個所述性能池包括至少一個所述性能組;
所述若所述目標(biāo)性能組的允許操作流量還存在剩余流量時,響應(yīng)所述操作指令,包括:
若所述目標(biāo)性能組的允許操作流量還存在剩余流量時,從所述至少一個性能池中選擇所述目標(biāo)性能組所屬的目標(biāo)性能池,并判斷所述目標(biāo)性能池的允許操作流量是否還存在剩余流量,若是,則響應(yīng)所述操作指令;
所述方法還包括:
若所述目標(biāo)性能池的允許操作流量不存在剩余流量時,拒絕所述操作指令。
結(jié)合第一方面或者第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,每個所述性能組包括至少一個性能子組,且預(yù)先為每個所述性能子組計算有允許操作流量;
所述從所述至少一個性能組中選擇所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能組,并判斷所述目標(biāo)性能組的允許操作流量是否還存在剩余流量,包括:
從所述至少一個性能組包括的性能子組中選擇所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能子組,并判斷所述目標(biāo)性能子組的允許操作流量是否還存在剩余流量,若是,則將所述目標(biāo)性能子組所屬的性能組作為所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能組,并判斷所述目標(biāo)性能組的允許操作流量是否還存在剩余流量。
結(jié)合第一方面或者第一方面的第一種可能的實現(xiàn)方式或者第一方面的第二種可能的實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,所述方法還包括:
獲取所述存儲列陣所支持的業(yè)務(wù)對象,并創(chuàng)建所述至少一個性能組,其中,每個所述性能組至少包括一個所述業(yè)務(wù)對象;
計算每個所述性能組的允許操作流量,其中,所述允許操作流量包括寫操作次數(shù)、寫操作帶寬和讀操作次數(shù)和讀操作帶寬中的至少一項。
結(jié)合第一方面的第三種可能的實現(xiàn)方式,在第一方面的第四種可能的實現(xiàn)方式中,所述方法還包括:
設(shè)置所述至少一個性能組的優(yōu)先級別;
根據(jù)每個性能組的優(yōu)先級別對該性能組的允許操作流量進行調(diào)整,其中,每個所述性能組進行所述調(diào)整后的允許操作流量與該性能組的優(yōu)先級別對應(yīng)。
結(jié)合第一方面的第一種可能的實現(xiàn)方式或者第一方面的第二種可能的實現(xiàn)方式,在第一方面的第五種可能的實現(xiàn)方式中,所述方法還包括:
根據(jù)所述存儲陣列包括的至少一個硬盤域,創(chuàng)建至少一個性能池,其中,每個所述性能池至少包括一個所述硬盤域;
計算每個所述性能池的允許操作流量,其中,所述允許操作流量包括寫操作次數(shù)、寫操作帶寬和讀操作次數(shù)和讀操作帶寬中的至少一項;
關(guān)聯(lián)所述至少一個性能組與所述至少一個性能池的父子關(guān)系,其中,每個所述性能池至少包括一個所述性能組。
結(jié)合第一方面的第二種可能的實現(xiàn)方式,在第一方面的第六種可能的實現(xiàn)方式中,在所述響應(yīng)所述操作指令之后,所述方法還包括:
查詢所述目標(biāo)性能組的當(dāng)前允許操作流量,并根據(jù)所述操作指令所產(chǎn)生的當(dāng)前流量對所述目標(biāo)性能組的當(dāng)前允許操作流量進行調(diào)整;
查詢所述目標(biāo)性能池的當(dāng)前允許操作流量,并根據(jù)所述操作指令所產(chǎn)生的當(dāng)前流量對所述目標(biāo)性能池的當(dāng)前允許操作流量進行調(diào)整;
查詢所述目標(biāo)性能子組的當(dāng)前允許操作流量,并根據(jù)所述操作指令所產(chǎn)生的當(dāng)前流量對所述目標(biāo)性能子組的當(dāng)前允許操作流量進行調(diào)整。
第二方面,本發(fā)明實施例提供一種存儲陣列操作裝置,包括:接收單元、判斷單元、響應(yīng)單元和第一拒絕單元,其中:
所述接收單元,用于接收目標(biāo)業(yè)務(wù)對象下發(fā)的針對存儲陣列的緩存的操作指令,其中,所述存儲陣列所支持的業(yè)務(wù)對象被劃分為至少一個性能組,且預(yù)先為每個所述性能組計算有允許操作流量;
所述判斷單元,用于從所述至少一個性能組中選擇所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能組,并判斷所述目標(biāo)性能組的允許操作流量是否還存在剩余流量;
所述響應(yīng)單元,用于若所述目標(biāo)性能組的允許操作流量還存在剩余流量時,響應(yīng)所述操作指令;
所述第一拒絕單元,用于若所述目標(biāo)性能組的允許操作流量不存在剩余流量時,拒絕所述操作指令。
在第二方面的第一種可能的實現(xiàn)方式中,所述存儲陣列包括至少一個硬盤域,且所述至少一個硬盤域被劃分為至少一個性能池,且預(yù)先為每個所述性能池計算有允許操作流量,每個所述性能池包括至少一個所述性能組;
所述響應(yīng)單元用于若所述目標(biāo)性能組的允許操作流量還存在剩余流量時,從所述至少一個性能池中選擇所述目標(biāo)性能組所屬的目標(biāo)性能池,并判斷所述目標(biāo)性能池的允許操作流量是否還存在剩余流量,若是,則響應(yīng)所述操作指令;
所述裝置還包括:
第二拒絕單元,用于若所述目標(biāo)性能池的允許操作流量不存在剩余流量時,拒絕所述操作指令。
結(jié)合第二方面或者第二方面的第一種可能的實現(xiàn)方式,在第二方面的第二種可能的實現(xiàn)方式中,每個所述性能組包括至少一個性能子組,且預(yù)先為每個所述性能子組計算有允許操作流量;
所述判斷單元用于從所述至少一個性能組包括的性能子組中選擇所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能子組,并判斷所述目標(biāo)性能子組的允許操作流量是否還存在剩余流量,若是,則將所述目標(biāo)性能子組所屬的性能組作為所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能組,并判斷所述目標(biāo)性能組的允許操作流量是否還存在剩余流量。
結(jié)合第二方面或者第二方面的第一種可能的實現(xiàn)方式或者第二方面的第二種可能的實現(xiàn)方式,在第二方面的第三種可能的實現(xiàn)方式中,所述裝置還包括:
第一創(chuàng)建單元,用于獲取所述存儲列陣所支持的業(yè)務(wù)對象,并創(chuàng)建所述至少一個性能組,其中,每個所述性能組至少包括一個所述業(yè)務(wù)對象;
第一計算單元,用于計算每個所述性能組的允許操作流量,其中,所述允許操作流量包括寫操作次數(shù)、寫操作帶寬和讀操作次數(shù)和讀操作帶寬中的至少一項。
結(jié)合第二方面的第三種可能的實現(xiàn)方式,在第二方面的第四種可能的實現(xiàn)方式中,所述裝置還包括:
設(shè)置單元,用于設(shè)置所述至少一個性能組的優(yōu)先級別;
第一調(diào)整單元,用于根據(jù)每個性能組的優(yōu)先級別對該性能組的允許操作流 量進行調(diào)整,其中,每個所述性能組進行所述調(diào)整后的允許操作流量與該性能組的優(yōu)先級別對應(yīng)。
結(jié)合第二方面的第一種可能的實現(xiàn)方式或者第二方面的第二種可能的實現(xiàn)方式,在第二方面的第五種可能的實現(xiàn)方式中,所述裝置還包括:
第二創(chuàng)建單元,用于根據(jù)所述存儲陣列包括的至少一個硬盤域,創(chuàng)建至少一個性能池,其中,每個所述性能池至少包括一個所述硬盤域;
第二計算單元,用于計算每個所述性能池的允許操作流量,其中,所述允許操作流量包括寫操作次數(shù)、寫操作帶寬和讀操作次數(shù)和讀操作帶寬中的至少一項;
關(guān)聯(lián)單元,用于關(guān)聯(lián)所述至少一個性能組與所述至少一個性能池的父子關(guān)系,其中,每個所述性能池至少包括一個所述性能組。
結(jié)合第二方面的第二種可能的實現(xiàn)方式,在第二方面的第六種可能的實現(xiàn)方式中,所述裝置還包括:
第二調(diào)整單元,用于查詢所述目標(biāo)性能組的當(dāng)前允許操作流量,并根據(jù)所述操作指令所產(chǎn)生的當(dāng)前流量對所述目標(biāo)性能組的當(dāng)前允許操作流量進行調(diào)整;
第三調(diào)整單元,用于查詢所述目標(biāo)性能池的當(dāng)前允許操作流量,并根據(jù)所述操作指令所產(chǎn)生的當(dāng)前流量對所述目標(biāo)性能池的當(dāng)前允許操作流量進行調(diào)整;
第四調(diào)整單元,用于查詢所述目標(biāo)性能子組的當(dāng)前允許操作流量,并根據(jù)所述操作指令所產(chǎn)生的當(dāng)前流量對所述目標(biāo)性能子組的當(dāng)前允許操作流量進行調(diào)整。
上述技術(shù)方案中,接收目標(biāo)業(yè)務(wù)對象下發(fā)的針對存儲陣列的緩存的操作指令,其中,所述存儲陣列所支持的業(yè)務(wù)對象被劃分為至少一個性能組,且預(yù)先為每個所述性能組計算有允許操作流量;從所述至少一個性能組中選擇所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能組,并判斷所述目標(biāo)性能組的允許操作流量是否還存在剩余流量;若所述目標(biāo)性能組的允許操作流量還存在剩余流量時,響應(yīng)所述操作指令;若所述目標(biāo)性能組的允許操作流量不存在剩余流量時,拒絕所述操作指令。這樣可以限制業(yè)務(wù)對象的操作流量,這樣可以避免因某一業(yè)務(wù)對象過分占用緩存而造成其他業(yè)務(wù)對象的性能惡化,從而本發(fā)明實施例可以解決融 合存儲的性能惡化問題。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例提供的一種存儲陣列操作方法的流程示意圖;
圖2是本發(fā)明實施例提供的存儲陣列操作方法可應(yīng)用的系統(tǒng)架構(gòu)圖;
圖3是本發(fā)明實施例提供的另一種存儲陣列操作方法的流程示意圖;
圖4是本發(fā)明實施例提供的一種可選的性能組和性能池的創(chuàng)建流程示意圖;
圖5是本發(fā)明實施例提供的一種可選的存儲陣列結(jié)構(gòu)示意圖;
圖6是本發(fā)明實施例提供的另一種可選的存儲陣列結(jié)構(gòu)示意圖;
圖7是本發(fā)明實施例提供的一種可選的性能子組、性能組和性能池的創(chuàng)建流程示意圖;
圖8是本發(fā)明實施例提供的一種可選的訪問時序和性能調(diào)整示意圖;
圖9是本發(fā)明實施例提供的另一種可選的訪問時序和性能調(diào)整示意圖;
圖10是本發(fā)明實施例提供的一種存儲陣列操作裝置的結(jié)構(gòu)示意圖;
圖11是本發(fā)明實施例提供的另一種存儲陣列操作裝置的結(jié)構(gòu)示意圖;
圖12是本發(fā)明實施例提供的另一種存儲陣列操作裝置的結(jié)構(gòu)示意圖;
圖13是本發(fā)明實施例提供的另一種存儲陣列操作裝置的結(jié)構(gòu)示意圖;
圖14是本發(fā)明實施例提供的另一種存儲陣列操作裝置的結(jié)構(gòu)示意圖;
圖15是本發(fā)明實施例提供的另一種存儲陣列操作裝置的結(jié)構(gòu)示意圖;
圖16是本發(fā)明實施例提供的另一種存儲陣列操作裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請參閱圖1,圖1是本發(fā)明實施例提供的一種存儲陣列操作方法的流程示意圖,如圖1所示,包括以下步驟:
101、接收目標(biāo)業(yè)務(wù)對象下發(fā)的針對存儲陣列的緩存的操作指令,其中,所述存儲陣列所支持的業(yè)務(wù)對象被劃分為至少一個性能組,且預(yù)先為每個所述性能組計算有允許操作流量。
本實施例中,上述存儲陣列為融合存儲陣列,該存儲陣列可以支持多種業(yè)務(wù)對象,例如:支持本地訪問和Lun存儲,或者支持自動精簡配置(thin)Lun、普通(thick)Lun、快照業(yè)務(wù)以及基于ROM技術(shù)實現(xiàn)的Lun,或者還可以支持文件系統(tǒng)等業(yè)務(wù)對象。
另外,本實施例中,每個性能組可以包括不同的業(yè)務(wù)對象,例如:性能組1可以包括至少一個稀疏(thin)Lun,性能組2可以包括至少一個密集(thick)Lun,性能組3可以包括至少一個文件系統(tǒng)等。
另外,本實施例中,上述允許操作流量可以理解為單位時間內(nèi)允許的操作流量,例如:每秒允許的寫流量或者每秒允許的讀流量;或者上述允許操作流量可以理解為在某一時間周期內(nèi)允許的讀流量或者寫流量等。
另外,本實施例中,上述操作指令可以為讀操作指令或者寫操作指令,例如:文件系統(tǒng)下發(fā)的對緩存進行寫操作的寫操作指令,或者Lun下發(fā)的對緩存進行讀操作的讀操作指令。
102、從所述至少一個性能組中選擇所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能組,并判斷所述目標(biāo)性能組的允許操作流量是否還存在剩余流量。
由于,本實施例中,存儲陣列所支持的業(yè)務(wù)對象被劃分為至少一個性能組,那么,目標(biāo)業(yè)務(wù)對象必然屬于這至少一個性能組中的一個,從而步驟102可以選擇出上述目標(biāo)性能組。另外,本實施例中,允許操作流量是一個變量,即允許操作流量隨著操作指令的響應(yīng)會變化。上述剩余流量可以理解為性能組當(dāng)前還允許的操作流量。例如:目標(biāo)性能組的原始允許操作流量為1000,當(dāng)響應(yīng)了多個操作指令后,允許操作流量就必然減少,如目標(biāo)性能組的允許操作流量還剩余800,那么,這個800就是剩余流量。其中,本實施例中,操作流量的單位可以是按照存儲單位進行統(tǒng)計,或者可以是按照操作次數(shù)或者占用緩存的時間進行統(tǒng)計,對此本實施例不作限定。
103、若所述目標(biāo)性能組的允許操作流量還存在剩余流量時,響應(yīng)所述操作 指令。
其中,響應(yīng)操作指令可以是緩存響應(yīng)該操作指令。
104、若所述目標(biāo)性能組的允許操作流量不存在剩余流量時,拒絕所述操作指令。
其中,拒絕該操作指令可以是存儲陣列的控制器拒絕該操作指令,即不響應(yīng)該操作指令。
本實施例中,上述方法可以應(yīng)用于任何包括存儲陣列的存儲設(shè)備,例如:服務(wù)器和計算機等。另外,上述方法應(yīng)用的存儲設(shè)備可以是分布式系統(tǒng)中的存儲陣列,例如:以存儲陣列同時支持NAS和SAN業(yè)務(wù)為例,系統(tǒng)示意圖可以如圖2所示,其中存儲陣列同時支持NAS和SAN業(yè)務(wù),主機通過接口服務(wù)器連接到存儲陣列,另外的主機直接通過網(wǎng)絡(luò)文件系統(tǒng)(Network File System,NFS)協(xié)議或者通用網(wǎng)絡(luò)文件系統(tǒng)(Common Internet File System,CIFS)協(xié)議網(wǎng)絡(luò)連接存儲陣列。當(dāng)然,上述方法應(yīng)用的存儲設(shè)備還可以是非分布系統(tǒng)的存儲設(shè)備。
本實施例中,接收目標(biāo)業(yè)務(wù)對象下發(fā)的針對存儲陣列的緩存的操作指令,其中,所述存儲陣列所支持的業(yè)務(wù)對象被劃分為至少一個性能組,且預(yù)先為每個所述性能組計算有允許操作流量;從所述至少一個性能組中選擇所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能組,并判斷所述目標(biāo)性能組的允許操作流量是否還存在剩余流量;若所述目標(biāo)性能組的允許操作流量還存在剩余流量時,響應(yīng)所述操作指令;若所述目標(biāo)性能組的允許操作流量不存在剩余流量時,拒絕所述操作指令。這樣可以限制業(yè)務(wù)對象的操作流量,這樣可以避免因某一業(yè)務(wù)對象過分占用緩存而造成其他業(yè)務(wù)對象的性能惡化,從而本發(fā)明實施例可以解決融合存儲的性能惡化問題。
請參閱圖3,圖3是本發(fā)明實施例提供的另一種存儲陣列操作方法的流程示意圖,如圖3所示,包括以下步驟:
301、接收目標(biāo)業(yè)務(wù)對象下發(fā)的針對存儲陣列的緩存的操作指令,其中,所述存儲陣列所支持的業(yè)務(wù)對象被劃分為至少一個性能組,且預(yù)先為每個所述性能組計算有允許操作流量。
本實施例中,上述目標(biāo)業(yè)務(wù)對象下發(fā)的操作指令可以是以輸入輸出(Input/OutPut,IO)方式進行下發(fā)的,例如:步驟301可以是存儲陣列的控制 器接收主機的目標(biāo)業(yè)務(wù)對象下發(fā)的IO。
302、從所述至少一個性能組中選擇所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能組,并判斷所述目標(biāo)性能組的允許操作流量是否還存在剩余流量,若是,則執(zhí)行步驟303,若否,則執(zhí)行步驟305。
本實施例中,上述方法還可以包括如下步驟:
獲取所述存儲列陣所支持的業(yè)務(wù)對象,并創(chuàng)建所述至少一個性能組,其中,每個所述性能組至少包括一個所述業(yè)務(wù)對象;
計算每個所述性能組的允許操作流量,其中,所述允許操作流量可以包括寫操作次數(shù)、寫操作帶寬和讀操作次數(shù)和讀操作帶寬中的至少一項。
其中,性能組的寫操作次數(shù)可以是每秒進行寫操作的次數(shù),具體可以用寫IOPS(每秒進行讀寫操作的次數(shù)Input/OutPut Operations Per Second)表示,寫IOPS=寫盤并發(fā)數(shù)除以時延的商乘以業(yè)務(wù)對象性能特征的CPU損耗比例,即寫IOPS=(寫盤并發(fā)數(shù)/時延)*業(yè)務(wù)對象性能特征的CPU損耗比例;其中,/表示除法運算,*表示乘法運算,上述寫盤并發(fā)數(shù)表示硬盤同一時間允許響應(yīng)的最大寫操作指令數(shù),或者理解為硬盤同一時間允許下發(fā)的最大寫IO數(shù),上述時延表示響應(yīng)寫操作指令的時延,或者理解為響應(yīng)寫IO的時延,時延的單位可以為秒,上述業(yè)務(wù)對象性能特征的CPU損耗比例為比值,是根據(jù)業(yè)務(wù)特征估算出來的數(shù)據(jù)。
這樣通過上述性能組的寫操作次數(shù)就可以限定每個性能組允許的響應(yīng)的寫操作次數(shù)。
上述性能組的寫操作帶寬可以理解為性能組的寫帶寬,其中,性能組的寫帶寬=寫盤并發(fā)數(shù)*IO大小*業(yè)務(wù)對象性能特征的CPU損耗比例/時延;其中,上述IO大小可以理解該性能組的任一業(yè)務(wù)對象的IO寫的流量,或者上述IO大小可以理解該性能組的業(yè)務(wù)對象的寫操作指令寫的流量。
這樣通過上述性能組的寫操作帶寬就可以限定每個性能組允許的響應(yīng)的寫操作的帶寬。
其中,性能組的讀操作次數(shù)可以是每秒進行讀操作的次數(shù),具體可以用讀IOPS表示,讀IOPS=讀盤并發(fā)數(shù)除以時延的商乘以業(yè)務(wù)對象性能特征的CPU損耗比例,即讀IOPS=(讀盤并發(fā)數(shù)/時延)*業(yè)務(wù)對象性能特征的CPU損耗比例;其中,上述讀盤并發(fā)數(shù)表示硬盤同一時間允許響應(yīng)的最大讀操作指令數(shù), 或者理解為硬盤同一時間允許下發(fā)的最大讀IO數(shù),上述時延表示響應(yīng)讀操作指令的時延,或者理解為響應(yīng)讀IO的時延,時延的單位可以為秒,上述業(yè)務(wù)對象性能特征的CPU損耗比例為比值,是根據(jù)業(yè)務(wù)特征估算出來的數(shù)據(jù)。
這樣通過上述性能組的讀操作次數(shù)就可以限定每個性能組允許的響應(yīng)的讀操作次數(shù)。
上述性能組的讀操作帶寬可以理解為性能組的讀帶寬,其中,性能組的讀帶寬=讀盤并發(fā)數(shù)*IO大小*業(yè)務(wù)對象性能特征的CPU損耗比例/時延;其中,上述IO大小可以理解該性能組的任一業(yè)務(wù)對象的IO讀的流量,或者上述IO大小可以理解該性能組的業(yè)務(wù)對象的讀操作指令讀的流量。
這樣通過上述性能組的讀操作帶寬就可以限定每個性能組允許的響應(yīng)的讀操作的帶寬。
該實施方式中,當(dāng)步驟301接收到操作指令為寫操作指令時,那么,上述剩余流量就可以包括寫操作次數(shù)或者寫操作帶寬,或者寫操作次數(shù)和寫操作帶寬。例如:當(dāng)上述允許操作流量還存在寫操作次數(shù)和寫操作帶寬時,則允許操作流量還存在剩余流量,若上述允許操作流量寫操作次數(shù)為0,或者寫操作帶寬為0時,則允許操作流量不存在剩余流量。
另外,需要說明的是,本實施例中,每響應(yīng)一個操作指令就可以更新允許操作流量,例如:每響應(yīng)一次寫操作指令,那么,寫操作次數(shù)就減1。當(dāng)然,本實施例中,還可以是周期性地更新允許操作流量,這樣可以節(jié)約更新操作次數(shù)。
該實施方式中,可以如圖4所示,可以包括如下步驟:
1)用戶下發(fā)創(chuàng)建存儲池命令;
2)在存儲陣列上根據(jù)硬盤域,創(chuàng)建存儲池;
3)在相應(yīng)的存儲池上,創(chuàng)建對應(yīng)的性能池;
其中,性能池可以包含4項參數(shù),分別為寫IOPS、寫帶寬、讀IOPS、讀帶寬,同時有一個和存儲池關(guān)聯(lián)的全局唯一標(biāo)識符;
4)初步計算該性能池的性能兩項參數(shù)IOPS和帶寬;
5)返回用戶創(chuàng)建成功;
6)用戶下發(fā)創(chuàng)建存儲對象,比如Lun、文件系統(tǒng);
7)在存儲陣列上創(chuàng)建文件對象;
8)查詢并創(chuàng)建對應(yīng)同類的性能組,如果查詢到已經(jīng)創(chuàng)建,則不用創(chuàng)建;
9)如果是首次創(chuàng)建該性能組,則初步計算該性能組的IOPS和帶寬;
10)關(guān)聯(lián)性能組和性能池的父子關(guān)系;
11)添加該業(yè)務(wù)對象到性能組;
12)返回用戶創(chuàng)建成功。
本實施例中,還可以為各個性能組設(shè)置優(yōu)先級別,且每個性能組的允許操作流量可以優(yōu)先級別根據(jù)進行調(diào)整,例如:上述方法還可以包括如下步驟:
設(shè)置所述至少一個性能組的優(yōu)先級別;
根據(jù)每個性能組的優(yōu)先級別對該性能組的允許操作流量進行調(diào)整,其中,每個所述性能組進行所述調(diào)整后的允許操作流量與該性能組的優(yōu)先級別對應(yīng)。
上述設(shè)置所述至少一個性能組的優(yōu)先級別可以是接收用戶輸入的操作指令而設(shè)置的。另外,本實施例中還可以預(yù)先獲取的優(yōu)先級別與允許操作流量的調(diào)整量的對應(yīng)關(guān)系,即可以根據(jù)性能組的優(yōu)先級別對計算出的允許操作流量進行調(diào)整,例如:第一優(yōu)先級別對應(yīng)的調(diào)整量為增加50%,第二優(yōu)先級別對應(yīng)的調(diào)整量為10%,第三優(yōu)先級別對應(yīng)的調(diào)整量為減少10%等,這樣當(dāng)某一性能組的允許操作流量通過上述公式計算出后,當(dāng)識別到該性能組的優(yōu)先級別為第一優(yōu)先級別時,就可以將該性能組的允許操作流量增加50%?;蛘呖梢灶A(yù)先獲取的優(yōu)先級別與允許操作流量的對應(yīng)關(guān)系,例如:第一優(yōu)先級別對應(yīng)的允許操作流量為每秒寫操作次數(shù)為1000,第一優(yōu)先級別對應(yīng)的允許操作流量為每秒寫操作次數(shù)為800,這樣可以直接根據(jù)該對應(yīng)關(guān)系調(diào)整性能組的允許操作流量。
該實施方式中可以實現(xiàn)為性能組設(shè)置優(yōu)先級別,這樣可以更加靈活調(diào)整性能組的允許操作流量。另外,設(shè)置好優(yōu)先級別后,還可以設(shè)定性能組的允許操作流量不作動態(tài)調(diào)整。
303、從至少一個性能池中選擇所述目標(biāo)性能組所屬的目標(biāo)性能池,并判斷所述目標(biāo)性能池的允許操作流量是否還存在剩余流量,若是,則執(zhí)行步驟304,若否,則執(zhí)行步驟305。
本實施例中,存儲陣列包括至少一個硬盤域,且所述至少一個硬盤域被劃分為至少一個性能池,且預(yù)先為每個所述性能池計算有允許操作流量,每個所述性能池包括至少一個所述性能組。上述硬盤域可以理解一個或者多個硬盤,即一個硬盤域可以包括一個或者多個硬盤。另外,每個上述性能池可以包括一個或者多個硬盤域。例如:以存儲陣列包括SAS硬盤和SSD硬盤,即如圖5所 示,該存儲陣列可以包括SAS硬盤域501和SSD硬盤域502,另外,該存儲陣列還包括緩存503。這樣本實施例中,就可以創(chuàng)建分別包括SAS硬盤域501和SSD硬盤域502的性能池504和性能池505,其中,這里的包括可以理解為邏輯上的包括。而在性能池504上可以創(chuàng)建NAS性能組506,其中,NAS性能組506可以包括文件系統(tǒng),以及在性能池505上創(chuàng)建稀疏(thin)性能組507和密集(thick)性能組508。另外,本實施例中,在存儲陣列的控制器可以部署服務(wù)質(zhì)量(Quality of Service,QoS)模塊509,其中,QOS模塊509可以用于對各性能組和性能池的允許操作流量進行調(diào)整。
需要說明的是,在圖5中SAS硬盤域501、SSD硬盤域502和緩存503都是屬于硬件模塊,而創(chuàng)建性能池504、性能池505、NAS性能組506、稀疏(thin)性能組507、密集(thick)性能組508和QOS模塊509都可以是在存儲陣列上創(chuàng)建的程序模塊或者理解為邏輯模塊或者理解為虛擬模塊。
本實施例中,上述方法還可以包括如下步驟:
根據(jù)所述存儲陣列包括的至少一個硬盤域,創(chuàng)建至少一個性能池,其中,每個所述性能池至少包括一個所述硬盤域;
計算每個所述性能池的允許操作流量,其中,所述允許操作流量包括寫操作次數(shù)、寫操作帶寬和讀操作次數(shù)和讀操作帶寬中的至少一項;
關(guān)聯(lián)所述至少一個性能組與所述至少一個性能池的父子關(guān)系,其中,每個所述性能池至少包括一個所述性能組。
其中,上述性能池的寫操作次數(shù)可以為每秒進行寫操作的次數(shù),可以用寫IOPS表示,性能池的寫IOPS=硬盤數(shù)量*單盤寫IOPS*系統(tǒng)性能特征的CPU損耗比例。其中,硬盤數(shù)量為性能池包括的硬盤數(shù)量,單盤寫IOPS為性能池內(nèi)某一硬盤允許的每秒進行寫操作的次數(shù),上述系統(tǒng)性能特征的CPU損耗比例為比值,是根據(jù)硬盤特征估算出來的數(shù)據(jù)。
這樣通過上述性能池的寫操作次數(shù)就可以限定每個性能池允許的響應(yīng)的寫操作次數(shù)。
上述性能池的寫操作帶寬可以理解為性能池的寫帶寬,其中,性能池的寫帶寬=硬盤數(shù)量*單盤寫帶寬*系統(tǒng)性能特征的CPU損耗比例。其中,單盤寫帶寬為性能池的包括的某一硬盤的寫操作指令的寫帶寬。
這樣通過上述性能池的寫操作帶寬就可以限定每個性能池允許的響應(yīng)的寫 操作的帶寬。
其中,性能池的讀操作次數(shù)可以是每秒進行讀操作的次數(shù),具體可以用讀IOPS表示,讀IOPS=硬盤數(shù)量*單盤讀IOPS*系統(tǒng)性能特征的CPU損耗比例。其中,單盤寫IOPS為性能池內(nèi)某一硬盤允許的每秒進行讀操作的次數(shù)。
這樣通過上述性能池的讀操作次數(shù)就可以限定每個性能池允許的響應(yīng)的讀操作次數(shù)。
上述性能池的讀操作帶寬可以理解為性能池的讀帶寬,其中,性能池的讀帶寬=硬盤數(shù)量*單盤讀帶寬*系統(tǒng)性能特征的CPU損耗比例,其中,單盤讀帶寬為性能池的包括的某一硬盤的讀操作指令的寫帶寬。
這樣通過上述性能池的讀操作帶寬就可以限定每個性能池允許的響應(yīng)的讀操作的帶寬。
304、響應(yīng)所述操作指令。
本實施例中,可以實現(xiàn)只有當(dāng)目標(biāo)性能組的允許操作流量還存在剩余流量,且目標(biāo)性能池的允許操作流量還存在剩余流量時,才響應(yīng)所述操作指令。這樣可以避免目標(biāo)性能組過分占用緩存,從而不會影響其他性能組的性能,以及還可以避免目標(biāo)性能池過分占用緩存,從而不會影響其他性能池的性能,以實現(xiàn)QOS。
305、拒絕所述操作指令。
本實施例中,可以實現(xiàn)當(dāng)目標(biāo)性能組的允許操作流量不存在剩余流量時,拒絕所述操作指令。且目標(biāo)性能組的允許操作流量存在剩余流量,但目標(biāo)性能池的允許操作流量不存在剩余流量時,拒絕所述操作指令。這樣可以避免目標(biāo)性能組過分占用緩存,從而不會影響其他性能組的性能,以及還可以避免目標(biāo)性能池過分占用緩存,從而不會影響其他性能池的性能,以實現(xiàn)QOS。
另外,本實施例中,拒絕所述操作指令可以是向發(fā)送操作指令的業(yè)務(wù)對象返回繁忙的提示,或者向主機返回繁忙的提示。
本實施例中,每個所述性能組可以包括至少一個性能子組,例如:為每個業(yè)務(wù)對象創(chuàng)建一個性能子組。另外,還可以預(yù)先為每個所述性能子組計算有允許操作流量。例如,上述方法還可以包括如下步驟:
獲取所述存儲列陣所支持的業(yè)務(wù)對象,并為每個業(yè)務(wù)對象創(chuàng)建一個性能子組;
計算每個所述性能子組的允許操作流量,其中,所述允許操作流量包括寫操作次數(shù)、寫操作帶寬和讀操作次數(shù)和讀操作帶寬中的至少一項。
其中,性能子組的寫操作次數(shù)可以是每秒進行寫操作的次數(shù),具體可以用寫IOPS表示,寫IOPS=寫盤并發(fā)數(shù)除以時延的商乘以業(yè)務(wù)對象性能特征的CPU損耗比例,即寫IOPS=(寫盤并發(fā)數(shù)/時延)*業(yè)務(wù)對象性能特征的CPU損耗比例;其中,上述寫盤并發(fā)數(shù)表示硬盤同一時間允許響應(yīng)的最大寫操作指令數(shù),或者理解為硬盤同一時間允許下發(fā)的最大寫IO數(shù),上述時延表示響應(yīng)該性能子組包括的業(yè)務(wù)對象的寫操作指令的時延,或者理解為響應(yīng)該性能子組包括的業(yè)務(wù)對象的寫IO的時延,時延的單位可以為秒,上述業(yè)務(wù)對象性能特征的CPU損耗比例為比值,是根據(jù)該性能子組包括的業(yè)務(wù)對象的特征估算出來的數(shù)據(jù)。
這樣通過上述性能子組的寫操作次數(shù)就可以限定每個業(yè)務(wù)對象允許的響應(yīng)的寫操作次數(shù)。
上述性能子組的寫操作帶寬可以理解為性能子組的寫帶寬,其中,性能組的寫帶寬=寫盤并發(fā)數(shù)*IO大小*業(yè)務(wù)對象性能特征的CPU損耗比例/時延。
這樣通過上述性能子組的寫操作帶寬就可以限定每個業(yè)務(wù)對象允許的響應(yīng)的寫操作的帶寬。
其中,性能子組的讀操作次數(shù)可以是每秒進行讀操作的次數(shù),具體可以用讀IOPS表示,讀IOPS=讀盤并發(fā)數(shù)除以時延的商乘以業(yè)務(wù)對象性能特征的CPU損耗比例,即讀IOPS=(讀盤并發(fā)數(shù)/時延)*業(yè)務(wù)對象性能特征的CPU損耗比例。
這樣通過上述性能子組的讀操作次數(shù)就可以限定每個業(yè)務(wù)對象允許的響應(yīng)的讀操作次數(shù)。
上述性能子組的讀操作帶寬可以理解為性能子組的讀帶寬,其中,性能子組的讀帶寬=讀盤并發(fā)數(shù)*IO大小*業(yè)務(wù)對象性能特征的CPU損耗比例/時延;其中,上述IO大小可以理解該性能組的業(yè)務(wù)對象的IO讀的流量,或者上述IO大小可以理解該性能組的業(yè)務(wù)對象的讀操作指令讀的流量。
這樣通過上述性能組的讀操作帶寬就可以限定每個性能組允許的響應(yīng)的讀操作的帶寬。
這樣通過上述性能子組的讀操作帶寬就可以限定每個業(yè)務(wù)對象允許的響應(yīng) 的讀操作的帶寬。
該實施方式中,上述從所述至少一個性能組中選擇所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能組,并判斷所述目標(biāo)性能組的允許操作流量是否還存在剩余流量,可以包括:
從所述至少一個性能組包括的性能子組中選擇所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能子組,并判斷所述目標(biāo)性能子組的允許操作流量是否還存在剩余流量,若是,則將所述目標(biāo)性能子組所屬的性能組作為所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能組,并判斷所述目標(biāo)性能組的允許操作流量是否還存在剩余流量。
該實施方式中,可以實現(xiàn)只有當(dāng)目標(biāo)性能子組的允許操作流量存在剩余流量,且目標(biāo)性能組的允許操作流量存在剩余流量,且目標(biāo)性能池的允許操作流量存在剩余流量時,才響應(yīng)操作指令。這樣可以實現(xiàn)更加精確管理每個業(yè)務(wù)對象的操作流量,以避免影響其他業(yè)務(wù)對象的性能,以實現(xiàn)不同業(yè)務(wù)對象之間的性能服務(wù)保障。具體可以如圖6所示,基于通用的對象性能保障算法,給文件系統(tǒng)或者Lun業(yè)務(wù)對象配置相應(yīng)的Qos策略,其中,性能組和性能池的可以如圖5所示。這樣可以實現(xiàn)首先對業(yè)務(wù)對象的允許操作流量進行控制,再對業(yè)務(wù)對象所在的性能組的允許操作流量進行控制,再對性能組所在的性能池的允許操作流量進行控制。最終達到了不同的硬盤域的性能各自不影響,不同的性能組中的業(yè)務(wù)對象各自不影響,同時保障了性能組中單個業(yè)務(wù)對象的Qos性能保障。解決了存儲陣列中,在多種對象并存的時候,性能惡化的問題。
該實施方式中,可以如圖7所示,包括如下步驟:
1)用戶下發(fā)創(chuàng)建存儲池命令;
2)在存儲陣列上根據(jù)硬盤域,創(chuàng)建存儲池;
3)在相應(yīng)的存儲池上,創(chuàng)建對應(yīng)的性能池;
4)初步計算該性能池的性能兩項參數(shù)IOPS和帶寬;
5)返回用戶創(chuàng)建成功;
6)用戶下發(fā)創(chuàng)建業(yè)務(wù)對象,比如Lun、文件系統(tǒng);
7)在存儲陣列上創(chuàng)建業(yè)務(wù)對象;
8)查詢并創(chuàng)建對應(yīng)同類的性能組,如果查詢到已經(jīng)創(chuàng)建,則不用創(chuàng)建;
9)如果是首次創(chuàng)建該性能組,則初步計算該性能組的IOPS和帶寬;
10)關(guān)聯(lián)性能組和性能池的父子關(guān)系;
11)創(chuàng)建該業(yè)務(wù)對象的性能子組;
12)初步計算該性能子組的性能值;
13)關(guān)聯(lián)該性能子組和性能組的父子關(guān)系;
14)返回用戶創(chuàng)建成功。
該實施方式,在響應(yīng)上述操作指令之后,上述方法還可以包括如下步驟:
查詢所述目標(biāo)性能組的當(dāng)前允許操作流量,并根據(jù)所述操作指令所產(chǎn)生的當(dāng)前流量對所述目標(biāo)性能組的當(dāng)前允許操作流量進行調(diào)整;
查詢所述目標(biāo)性能池的當(dāng)前允許操作流量,并根據(jù)所述操作指令所產(chǎn)生的當(dāng)前流量對所述目標(biāo)性能池的當(dāng)前允許操作流量進行調(diào)整;
查詢所述目標(biāo)性能子組的當(dāng)前允許操作流量,并根據(jù)所述操作指令所產(chǎn)生的當(dāng)前流量對所述目標(biāo)性能子組的當(dāng)前允許操作流量進行調(diào)整。
這樣可以實現(xiàn)更新性能池、性能組和性能子組的允許操作流量。另外,上述當(dāng)前流量可以包括操作次數(shù)和操作帶寬。另外,本實施例中,可以是周期性調(diào)整性能池、性能組和性能子組的允許操作流量。
該實施方式中,性能池、性能組和性能子組的允許操作流量的調(diào)整可以是由存儲陣列的控制器中部署的QOS來實現(xiàn),例如:如圖8所示,包括如下步驟:
1)IO進入存儲陣列經(jīng)過控制器;其中,該IO可以理解為步驟301中接收的操作指令;
2)控制器針對IO進行性能組的流量控制;當(dāng)所述IO所屬性能組還有剩余流量的時候,則繼續(xù)下一個步驟,否則拒絕該IO的服務(wù),控制器向主機返回繁忙;
3)控制器針對IO進行性能池的流量控制;當(dāng)所述IO所屬性能池還有剩余流量的時候,則繼續(xù)下一個步驟,否則拒絕該IO的服務(wù),控制器向主機返回繁忙。
4)控制器將IO下發(fā)給Cache緩存;
5)返回,返回可以理解為響應(yīng)該IO所返回的響應(yīng)結(jié)果
6)IO返回;其中,IO返回可以理解為將響應(yīng)該IO所返回的響應(yīng)結(jié)果給主機;
7)IO和后臺定時器,觸發(fā)Qos模塊向Cache查詢所述性能組的性能;
8)Cache計算所述性能組的性能;其中,該性能可以理解為該性能組的當(dāng) 前允許操作流量;
9)返回給Qos;其中,這里是將計算的性能返回給Qos;
10)Qos根據(jù)當(dāng)前性能值和Cache返回的性能值進行周期性調(diào)整處理;其中,當(dāng)前性能性可以理解為IO所產(chǎn)生的當(dāng)前流量,例如:將Cache返回的性能值減去當(dāng)前性能值;
11)Qos模塊向Cache查詢所述性能池的性能;
12)Cache計算所述性能池的性能;
13)返回給Qos;
14)Qos根據(jù)當(dāng)前性能值和Cache返回的性能值進行周期性調(diào)整處理。
這樣可以實現(xiàn)對性能組和性能池的性能進行調(diào)整,即對性能組和性能池的允許操作流量進行調(diào)整。
另外,針對性能子組的當(dāng)前允許操作流量進行調(diào)整可以如圖9所示,包括如下步驟:
1)IO進入存儲陣列經(jīng)過控制器;
2)控制器針對IO進行所述IO對象的性能子組的流量控制;當(dāng)所述IO所屬性能子組還有剩余流量的時候,則繼續(xù)下一個步驟,否則拒絕該IO的服務(wù),控制器向主機返回繁忙;
3)控制器針對IO進行性能組的流量控制;當(dāng)所述IO所屬性能組還有剩余流量的時候,則繼續(xù)下一個步驟,否則拒絕該IO的服務(wù),控制器向主機返回繁忙;
4)控制器針對IO進行性能池的流量控制;當(dāng)所述IO所屬性能池還有剩余流量的時候,則繼續(xù)下一個步驟,否則拒絕該IO的服務(wù),控制器向主機返回繁忙;
5)控制器將IO下發(fā)給Cache緩存;
6)返回,返回可以理解為響應(yīng)該IO所返回的響應(yīng)結(jié)果;
7)IO返回;其中,IO返回可以理解為將響應(yīng)該IO所返回的響應(yīng)結(jié)果給主機;
8)IO和后臺定時器,觸發(fā)Qos模塊向Cache查詢所述對象性能子組的性能;
9)Cache計算所述對象性能子組的性能;
10)返回給Qos;即將計算的性能子組的性能返回給Qos;
11)Qos根據(jù)當(dāng)前性能值,和Cache返回的性能值進行周期性調(diào)整處理;
12)Qos模塊向Cache查詢所述性能組的性能;
13)Cache計算所述性能組的性能;
14)返回給Qos;即將計算的性能組的性能返回給Qos;
15)Qos根據(jù)當(dāng)前性能值,和Cache返回的性能值進行周期性調(diào)整處理;
16)Qos模塊向Cache查詢所述性能池的性能;
17)Cache計算所述性能池的性能;
18)返回給Qos;即將計算的性能池的性能返回給Qos;
19)Qos根據(jù)當(dāng)前性能值,和Cache返回的性能值進行周期性調(diào)整處理;
這樣可以實現(xiàn)對性能子組、性能組和性能池的性能進行調(diào)整,即對性能子組、性能組和性能池的允許操作流量進行調(diào)整。
本實施例中,在圖1所示的實施例的基礎(chǔ)上增加了多種可選的實施方式,且都可以實現(xiàn)解決融合存儲的性能惡化問題。
下面為本發(fā)明裝置實施例,本發(fā)明裝置實施例用于執(zhí)行本發(fā)明方法實施例一至二實現(xiàn)的方法,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分,具體技術(shù)細節(jié)未揭示的,請參照本發(fā)明實施例一和實施例二。
請參閱圖10,圖10是本發(fā)明實施例提供的一種存儲陣列操作裝置的結(jié)構(gòu)示意圖,如圖10所示,包括:接收單元101、判斷單元102、響應(yīng)單元103和第一拒絕單元104,其中:
接收單元101,用于接收目標(biāo)業(yè)務(wù)對象下發(fā)的針對存儲陣列的緩存的操作指令,其中,所述存儲陣列所支持的業(yè)務(wù)對象被劃分為至少一個性能組,且預(yù)先為每個所述性能組計算有允許操作流量。
判斷單元102,用于從所述至少一個性能組中選擇所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能組,并判斷所述目標(biāo)性能組的允許操作流量是否還存在剩余流量。
響應(yīng)單元103,用于若所述目標(biāo)性能組的允許操作流量還存在剩余流量時,響應(yīng)所述操作指令。
第一拒絕單元104,用于若所述目標(biāo)性能組的允許操作流量不存在剩余流量時,拒絕所述操作指令。
本實施例中,上述存儲陣列可以包括至少一個硬盤域,且所述至少一個硬盤域被劃分為至少一個性能池,且預(yù)先為每個所述性能池計算有允許操作流量,每個所述性能池包括至少一個所述性能組;
響應(yīng)單元103可以用于若所述目標(biāo)性能組的允許操作流量還存在剩余流量時,從所述至少一個性能池中選擇所述目標(biāo)性能組所屬的目標(biāo)性能池,并判斷所述目標(biāo)性能池的允許操作流量是否還存在剩余流量,若是,則響應(yīng)所述操作指令;
如圖11所示,所述裝置還可以包括:
第二拒絕單元105,用于若所述目標(biāo)性能池的允許操作流量不存在剩余流量時,拒絕所述操作指令。
本實施例中,每個所述性能組可以包括至少一個性能子組,且預(yù)先為每個所述性能子組計算有允許操作流量;
判斷單元102可以用于從所述至少一個性能組包括的性能子組中選擇所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能子組,并判斷所述目標(biāo)性能子組的允許操作流量是否還存在剩余流量,若是,則將所述目標(biāo)性能子組所屬的性能組作為所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能組,并判斷所述目標(biāo)性能組的允許操作流量是否還存在剩余流量。
本實施例中,如圖12所示,所述裝置還可以包括:
第一創(chuàng)建單元106,用于獲取所述存儲列陣所支持的業(yè)務(wù)對象,并創(chuàng)建所述至少一個性能組,其中,每個所述性能組至少包括一個所述業(yè)務(wù)對象;
第一計算單元107,用于計算每個所述性能組的允許操作流量,其中,所述允許操作流量包括寫操作次數(shù)、寫操作帶寬和讀操作次數(shù)和讀操作帶寬中的至少一項。
本實施例中,如圖13所示,所述裝置還可以包括:
設(shè)置單元108,用于設(shè)置所述至少一個性能組的優(yōu)先級別;
第一調(diào)整單元109,用于根據(jù)每個性能組的優(yōu)先級別對該性能組的允許操作流量進行調(diào)整,其中,每個所述性能組進行所述調(diào)整后的允許操作流量與該性能組的優(yōu)先級別對應(yīng)。
本實施例中,如圖14所示,所述裝置還可以包括:
第二創(chuàng)建單元110,用于根據(jù)所述存儲陣列包括的至少一個硬盤域,創(chuàng)建至 少一個性能池,其中,每個所述性能池至少包括一個所述硬盤域;
第二計算單元111,用于計算每個所述性能池的允許操作流量,其中,所述允許操作流量包括寫操作次數(shù)、寫操作帶寬和讀操作次數(shù)和讀操作帶寬中的至少一項;
關(guān)聯(lián)單元112,用于關(guān)聯(lián)所述至少一個性能組與所述至少一個性能池的父子關(guān)系,其中,每個所述性能池至少包括一個所述性能組。
本實施例中,如圖15所示,所述裝置還可以包括:
第二調(diào)整單元113,用于查詢所述目標(biāo)性能組的當(dāng)前允許操作流量,并根據(jù)所述操作指令所產(chǎn)生的當(dāng)前流量對所述目標(biāo)性能組的當(dāng)前允許操作流量進行調(diào)整;
第三調(diào)整單元114,用于查詢所述目標(biāo)性能池的當(dāng)前允許操作流量,并根據(jù)所述操作指令所產(chǎn)生的當(dāng)前流量對所述目標(biāo)性能池的當(dāng)前允許操作流量進行調(diào)整;
第四調(diào)整單元115,用于查詢所述目標(biāo)性能子組的當(dāng)前允許操作流量,并根據(jù)所述操作指令所產(chǎn)生的當(dāng)前流量對所述目標(biāo)性能子組的當(dāng)前允許操作流量進行調(diào)整。
需要說明的是,本實施例中介紹的裝置可以用于實現(xiàn)如圖1至圖9所示的實施例中描述的方法,本實施例中介紹的裝置可以實現(xiàn)圖1至圖9所示的實施例中任意實現(xiàn)方式,此處不作重復(fù)說明。
本實施例中,接收目標(biāo)業(yè)務(wù)對象下發(fā)的針對存儲陣列的緩存的操作指令,其中,所述存儲陣列所支持的業(yè)務(wù)對象被劃分為至少一個性能組,且預(yù)先為每個所述性能組計算有允許操作流量;從所述至少一個性能組中選擇所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能組,并判斷所述目標(biāo)性能組的允許操作流量是否還存在剩余流量;若所述目標(biāo)性能組的允許操作流量還存在剩余流量時,響應(yīng)所述操作指令;若所述目標(biāo)性能組的允許操作流量不存在剩余流量時,拒絕所述操作指令。這樣可以限制業(yè)務(wù)對象的操作流量,這樣可以避免因某一業(yè)務(wù)對象過分占用緩存而造成其他業(yè)務(wù)對象的性能惡化,從而本發(fā)明實施例可以解決融合存儲的性能惡化問題。
請參閱圖16,圖16是本發(fā)明實施例提供的另一種存儲陣列操作裝置的結(jié)構(gòu) 示意圖,如圖16所示,包括:處理器161、網(wǎng)絡(luò)接口162、存儲器163和通信總線164,其中,所述通信總線164用于實現(xiàn)所述處理器161、網(wǎng)絡(luò)接口162和存儲器163之間連接通信,所述處理器161執(zhí)行所述存儲器163中存儲的程序用于實現(xiàn)以下方法:
接收目標(biāo)業(yè)務(wù)對象下發(fā)的針對存儲陣列的緩存的操作指令,其中,所述存儲陣列所支持的業(yè)務(wù)對象被劃分為至少一個性能組,且預(yù)先為每個所述性能組計算有允許操作流量;
從所述至少一個性能組中選擇所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能組,并判斷所述目標(biāo)性能組的允許操作流量是否還存在剩余流量;
若所述目標(biāo)性能組的允許操作流量還存在剩余流量時,響應(yīng)所述操作指令;
若所述目標(biāo)性能組的允許操作流量不存在剩余流量時,拒絕所述操作指令。
本實施例中,所述存儲陣列包括至少一個硬盤域,且所述至少一個硬盤域被劃分為至少一個性能池,且預(yù)先為每個所述性能池計算有允許操作流量,每個所述性能池包括至少一個所述性能組;
處理器161執(zhí)行的若所述目標(biāo)性能組的允許操作流量還存在剩余流量時,響應(yīng)所述操作指令的程序,可以包括:
若所述目標(biāo)性能組的允許操作流量還存在剩余流量時,從所述至少一個性能池中選擇所述目標(biāo)性能組所屬的目標(biāo)性能池,并判斷所述目標(biāo)性能池的允許操作流量是否還存在剩余流量,若是,則響應(yīng)所述操作指令;
處理器161執(zhí)行的程序還可以包括:
若所述目標(biāo)性能池的允許操作流量不存在剩余流量時,拒絕所述操作指令。
本實施例中,每個所述性能組包括至少一個性能子組,且預(yù)先為每個所述性能子組計算有允許操作流量;
處理器161執(zhí)行的從所述至少一個性能組中選擇所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能組,并判斷所述目標(biāo)性能組的允許操作流量是否還存在剩余流量的程序,可以包括:
從所述至少一個性能組包括的性能子組中選擇所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能子組,并判斷所述目標(biāo)性能子組的允許操作流量是否還存在剩余流量,若是,則將所述目標(biāo)性能子組所屬的性能組作為所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能組,并判斷所述目標(biāo)性能組的允許操作流量是否還存在剩余流量。
本實施例中,處理器161執(zhí)行的程序還可以包括:
獲取所述存儲列陣所支持的業(yè)務(wù)對象,并創(chuàng)建所述至少一個性能組,其中,每個所述性能組至少包括一個所述業(yè)務(wù)對象;
計算每個所述性能組的允許操作流量,其中,所述允許操作流量包括寫操作次數(shù)、寫操作帶寬和讀操作次數(shù)和讀操作帶寬中的至少一項。
本實施例中,處理器161執(zhí)行的程序還可以包括:
設(shè)置所述至少一個性能組的優(yōu)先級別;
根據(jù)每個性能組的優(yōu)先級別對該性能組的允許操作流量進行調(diào)整,其中,每個所述性能組進行所述調(diào)整后的允許操作流量與該性能組的優(yōu)先級別對應(yīng)。
本實施例中,處理器161執(zhí)行的程序還可以包括:
根據(jù)所述存儲陣列包括的至少一個硬盤域,創(chuàng)建至少一個性能池,其中,每個所述性能池至少包括一個所述硬盤域;
計算每個所述性能池的允許操作流量,其中,所述允許操作流量包括寫操作次數(shù)、寫操作帶寬和讀操作次數(shù)和讀操作帶寬中的至少一項;
關(guān)聯(lián)所述至少一個性能組與所述至少一個性能池的父子關(guān)系,其中,每個所述性能池至少包括一個所述性能組。
本實施例中,在所述響應(yīng)所述操作指令之后,處理器161執(zhí)行的程序還可以包括:
查詢所述目標(biāo)性能組的當(dāng)前允許操作流量,并根據(jù)所述操作指令所產(chǎn)生的當(dāng)前流量對所述目標(biāo)性能組的當(dāng)前允許操作流量進行調(diào)整;
查詢所述目標(biāo)性能池的當(dāng)前允許操作流量,并根據(jù)所述操作指令所產(chǎn)生的當(dāng)前流量對所述目標(biāo)性能池的當(dāng)前允許操作流量進行調(diào)整;
查詢所述目標(biāo)性能子組的當(dāng)前允許操作流量,并根據(jù)所述操作指令所產(chǎn)生的當(dāng)前流量對所述目標(biāo)性能子組的當(dāng)前允許操作流量進行調(diào)整。
本實施例中,接收目標(biāo)業(yè)務(wù)對象下發(fā)的針對存儲陣列的緩存的操作指令,其中,所述存儲陣列所支持的業(yè)務(wù)對象被劃分為至少一個性能組,且預(yù)先為每個所述性能組計算有允許操作流量;從所述至少一個性能組中選擇所述目標(biāo)業(yè)務(wù)對象所屬的目標(biāo)性能組,并判斷所述目標(biāo)性能組的允許操作流量是否還存在剩余流量;若所述目標(biāo)性能組的允許操作流量還存在剩余流量時,響應(yīng)所述操作指令;若所述目標(biāo)性能組的允許操作流量不存在剩余流量時,拒絕所述操作 指令。這樣可以限制業(yè)務(wù)對象的操作流量,這樣可以避免因某一業(yè)務(wù)對象過分占用緩存而造成其他業(yè)務(wù)對象的性能惡化,從而本發(fā)明實施例可以解決融合存儲的性能惡化問題。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存取存儲器(Random Access Memory,簡稱RAM)等。
以上所揭露的僅為本發(fā)明較佳實施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。