專利名稱:在基于策略的系統(tǒng)管理中以n步前視來推理的模型和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲系統(tǒng)。更具體地,本發(fā)明涉及用于管理存儲系統(tǒng)的系統(tǒng)和方法。
背景技術(shù):
基于策略的管理被視為一種允許存儲管理員管理比當(dāng)前管理的存儲更大量的存儲的萬靈藥(panacea)。對于基于策略的管理方法,系統(tǒng)管理員指定關(guān)于性能,可靠性,安全,備份,恢復(fù)等的高層策略(目標(biāo)),并且存儲管理軟件使用規(guī)則引擎自動(dòng)地將所述高層策略轉(zhuǎn)換為低層的存儲動(dòng)作。因此如所實(shí)現(xiàn)的,存儲管理的職則從系統(tǒng)管理員轉(zhuǎn)移到了存儲管理軟件提供商。存儲管理軟件提供商必須處理由于大量的異質(zhì)設(shè)備、商務(wù)規(guī)則、用戶和存儲管理動(dòng)作的存在伴隨而來的復(fù)雜性。軟件提供商還必須確保他們的管理軟件足夠通用以便處理工作負(fù)荷和系統(tǒng)配置的改變,即,不是“脆弱的”。
在復(fù)雜的存儲環(huán)境中,當(dāng)特定的高層目標(biāo)不被滿足時(shí),潛在地存在多種可以被采取以便糾正問題的存儲管理動(dòng)作。對于給定的系統(tǒng)狀態(tài),潛在地可以有多種適用的規(guī)則。當(dāng)前,基于規(guī)則的系統(tǒng)通過隨機(jī)地選擇一種可用的規(guī)則以自組織(ad-hoc)的方式處理這種情況。對于推理引擎來說,對選擇哪個(gè)特定的存儲管理動(dòng)作進(jìn)行先驗(yàn)優(yōu)先級劃分是不容易的,這是因?yàn)槊恳淮鎯芾韯?dòng)作具有可能潛在地使系統(tǒng)進(jìn)入例如顛簸(thrashing)模式或進(jìn)入次最優(yōu)狀態(tài)的復(fù)雜的副作用。此外,各個(gè)相應(yīng)的動(dòng)作具有必須被考慮在內(nèi)的與其調(diào)用相關(guān)聯(lián)的不同的成本。對這種情況的一個(gè)近似的比擬是國際象棋比賽,其中特定走步的潛在的結(jié)果直到許多步之后才會清楚。因此,國際象棋選手會嘗試在內(nèi)心中提前分析許多步而不實(shí)際走任何步。
N步前視算法被用于人工智能(AI)游戲理論領(lǐng)域,諸如國際象棋和跳棋。N步前視算法還被用于磁盤I/O調(diào)度和CPU指令調(diào)度領(lǐng)域。類似地,監(jiān)視實(shí)際系統(tǒng)以便創(chuàng)建what-if分析當(dāng)前被用于數(shù)據(jù)庫領(lǐng)域。與N步前視算法相關(guān)的研究可以劃分為三類(1)N步前視的應(yīng)用領(lǐng)域;(2)監(jiān)視信息以便創(chuàng)建系統(tǒng)模型;和(3)人工智能(AI)和規(guī)劃中的N步前視。
在應(yīng)用領(lǐng)域研究的類中,N步前視實(shí)現(xiàn)具有用于建模和推理系統(tǒng)內(nèi)的動(dòng)作的特定于領(lǐng)域的語意。例如,最小化I/O磁盤訪問次數(shù)以便優(yōu)化并行I/O系統(tǒng)中的預(yù)取和高速緩存的傳統(tǒng)的緩沖區(qū)管理算法在多個(gè)I/O被同時(shí)進(jìn)行的并行I/O系統(tǒng)中實(shí)質(zhì)上是次優(yōu)的。參見例如,M.Kallahalla等人的“Optimai prefetching and caching for parallelI/O system,”In ACM Symposium on Parallel Architectures andAlgorithms,pp.219-228,2001,其公開了一種采用全局L塊前視的在線算法,全局L塊前視為該緩沖區(qū)管理算法給出了由L個(gè)不同請求組成的前視。
在S.J.Beaty,“Lookahead scheduling,”ACM SIGMICROVolume 23,Issue 1-2(December 1992)中,公開了一種用于執(zhí)行指令的前視調(diào)度技術(shù),即與數(shù)據(jù)相關(guān)的DAG(DDD)。此外,根據(jù)Beaty,結(jié)合有其它調(diào)度技術(shù)的前視可以增加產(chǎn)生正確的調(diào)度的可能性。
分布式系統(tǒng)中的仿真依賴于對模型固有的并發(fā)性的檢測,其與對各個(gè)邏輯仿真過程的未來行為的預(yù)測有關(guān)。參見例如J.W.Janneck,“Generalizing lookahead-behavior prediction in distributedsimulation,”In Preceeding of twelfth workshop on Parallel anddistributed simulation,PP.12-19,1998,其公開了一個(gè)對使用前視算法進(jìn)行行為預(yù)測的傳統(tǒng)方法的概述。
對于磁盤中的前視調(diào)度,參見例如,T.Yeh等人的“Competitiveanalysis of on-line disk scheduling,”Theory of Computing Systems,Vol.31,pp.491-506,1998,其分析了在線磁盤調(diào)度的問題,其中可以執(zhí)行對下面將被讀的K個(gè)變量的前視,并且根據(jù)這種知識可以選擇以何種順序從磁盤上讀所述的變量,以便最小化尋道啟動(dòng)時(shí)間。
在監(jiān)視信息以便創(chuàng)建系統(tǒng)模型的類中,M.Selter等人的“Self-Monitoring and Self-Adapting Operating Systems,”InProceedings of Sixth Workshop on Hot Topics in Operating Systems,May 1997公開了Vino,即一種自我監(jiān)視并自適應(yīng)的操作系統(tǒng),其對操作系統(tǒng)的行為進(jìn)行連續(xù)監(jiān)視,以便構(gòu)造性能統(tǒng)計(jì)數(shù)據(jù)庫。數(shù)據(jù)被適當(dāng)?shù)胤诸?,并且?zhí)行離線分析以便構(gòu)造對系統(tǒng)在常規(guī)行為下的特征,并且檢測反常行為。組件的調(diào)整全部是預(yù)定的固定的實(shí)現(xiàn)。
在數(shù)據(jù)庫領(lǐng)域,諸如SMART和AutoAdmin的方法使用查詢優(yōu)化器,所述的查詢優(yōu)化器可以為數(shù)據(jù)庫中的自動(dòng)索引選擇進(jìn)行關(guān)于“what-if”情景的推理。對于SMART實(shí)現(xiàn),參見例如G.M.Lohman等人的“DB2 advisorAn optimizer Smart Enough to Recommend ItsOwn Indexes,”Proceedings,16th IEEE conference on DataEngineering,San Diego,CA,2000。對于AutoAdmin,參見例如,S.Chaudhuri等人的“AutoAdmin“What-if”Index AnalysisUtility,”Proceedings ACM SIGMOD Conference,Seattle 1998,pp.367-378。SMART系統(tǒng)被連續(xù)地監(jiān)視,并且記錄每個(gè)查詢的執(zhí)行。優(yōu)化器使用過去的歷史以便創(chuàng)建用于所述查詢中的操作的成本模型,然后所述成本模型被用于改進(jìn)執(zhí)行計(jì)劃。
在AI和規(guī)劃理論的類中,前視的概念被廣泛地用于游戲理論,游戲理論是策略的科學(xué),并且試圖數(shù)學(xué)地和邏輯地確定“選手”將采取的動(dòng)作,以便在大量“游戲”中為它們自己保證最佳的結(jié)果。研究的游戲的范圍從國際象棋到撫養(yǎng)小孩,從網(wǎng)球到收購。但是所述游戲全部共享相互依賴的共同特性。即,每個(gè)參與方的結(jié)果取決于所有參與方的選擇(策略)。Deep Blue,例如,被建造為每秒鐘檢查2億個(gè)可能的走步,并且前視多致14輪(考慮對手走步的所有排列)。前視算法結(jié)合有搜索算法,諸如A*,仿真退火(Simulated Annealing)法,爬山法(Hill-climbing)和前向剪枝(Forward pruning)。參見,例如,P.Norvig,Paradigms of AI ProgrammingCase Studies in CommonLisp,1991,以及H.-D.Bocker等人的“Interactive Problem SolvingUsing Log.”一般地在機(jī)器人技術(shù),人工智能和控制理論的環(huán)境中提到規(guī)劃理論。在機(jī)器人技術(shù)中,焦點(diǎn)是設(shè)計(jì)通過處理復(fù)雜的幾何模型產(chǎn)生有用的動(dòng)作的算法。在人工智能中,焦點(diǎn)是設(shè)計(jì)使用決策-理論模型計(jì)算適當(dāng)?shù)膭?dòng)作的系統(tǒng)。在控制理論中,呈現(xiàn)的焦點(diǎn)是數(shù)值地計(jì)算可行的軌跡或甚至是最優(yōu)的反饋控制規(guī)律的算法。存在有多種用于這些領(lǐng)域中的每一個(gè)中的前視的方法。在E.J,Sandewall的“A PlanningProblem Solver Based on Look-Ahead in Stochastic GameTrees,”Journai of the ACM(JACM),Volume 16,Issue 3,July 1969中描述了將游戲理論中的前視算法映射為規(guī)劃算法中的搜索啟發(fā)的關(guān)注的技術(shù)。
因此,需要一種用于管理存儲系統(tǒng)的技術(shù),其響應(yīng)報(bào)警狀態(tài),選擇這樣的動(dòng)作,以便優(yōu)化存儲系統(tǒng)的穩(wěn)定性,存儲系統(tǒng)先決條件和調(diào)用所選動(dòng)作的瞬時(shí)成本。
發(fā)明內(nèi)容
本發(fā)明提供了一種用于管理存儲系統(tǒng)的技術(shù),其響應(yīng)報(bào)警狀態(tài),選擇這樣的動(dòng)作,該動(dòng)作優(yōu)化存儲系統(tǒng)的穩(wěn)定性,存儲系統(tǒng)的先決條件和調(diào)用所選動(dòng)作的瞬時(shí)成本。
通過一種管理存儲系統(tǒng)的方法提供了本發(fā)明的優(yōu)點(diǎn),其中與存儲系統(tǒng)的性能目標(biāo)有關(guān)的報(bào)警狀態(tài)被檢測。N步前視引擎被調(diào)用以便在有多個(gè)動(dòng)作可以被存儲系統(tǒng)采取以便消除所述的報(bào)警狀態(tài)時(shí)仿真存儲系統(tǒng)的操作。N個(gè)可能的系統(tǒng)狀態(tài)被基于存儲系統(tǒng)的當(dāng)前狀態(tài)產(chǎn)生。基于所述多個(gè)動(dòng)作中的每一個(gè)的成本模型產(chǎn)生N個(gè)可能狀態(tài)中的每一個(gè)。每個(gè)成本模型基于一個(gè)動(dòng)作,所述動(dòng)作的行為涵義(implication),所述動(dòng)作的資源涵義以及所述操作的瞬時(shí)成本。選擇這樣的動(dòng)作,其產(chǎn)生優(yōu)化存儲系統(tǒng)的穩(wěn)定性,所述存儲系統(tǒng)的先決條件以及調(diào)用所述被選擇的動(dòng)作的瞬時(shí)成本的可能的系統(tǒng)狀態(tài)。然后調(diào)用所選擇的動(dòng)作。當(dāng)存儲系統(tǒng)的當(dāng)前狀態(tài)與所述N步前視引擎被調(diào)用時(shí)存儲系統(tǒng)的狀態(tài)之間的差異大于一個(gè)預(yù)定的差異時(shí),所述的N步前視引擎被終止,并且基于所述存儲系統(tǒng)的當(dāng)前狀態(tài),所述的N步前視引擎被重新調(diào)用以便仿真操作。
在本發(fā)明的一個(gè)示例實(shí)施例中,被存儲的N個(gè)可能的系統(tǒng)狀態(tài)可以被存儲。因此,當(dāng)所述報(bào)警狀態(tài)被檢測到時(shí),引起所述報(bào)警狀態(tài)的存儲系統(tǒng)當(dāng)前的狀態(tài)是否與存儲系統(tǒng)的早期狀態(tài)類似被確定。如果是的,從存儲器中選擇一個(gè)動(dòng)作,被選擇的動(dòng)作是當(dāng)存儲系統(tǒng)的狀態(tài)與存儲系統(tǒng)當(dāng)前狀態(tài)類似時(shí)先前被選擇的。
本發(fā)明還提供了一種用于管理存儲系統(tǒng)的系統(tǒng)。所述系統(tǒng)包括傳感器,存儲管理系統(tǒng)和存儲所述N個(gè)可能的系統(tǒng)狀態(tài)的數(shù)據(jù)庫。所述傳感器檢測與存儲系統(tǒng)的性能目標(biāo)有關(guān)的報(bào)警狀態(tài)。存儲管理系統(tǒng)調(diào)用N步前視引擎以便模擬當(dāng)有多個(gè)動(dòng)作可以被存儲系統(tǒng)采用以便消除所述的報(bào)警狀態(tài)時(shí)存儲系統(tǒng)的操作。N步前視引擎基于存儲系統(tǒng)的當(dāng)前狀態(tài)產(chǎn)生N個(gè)可能的系統(tǒng)狀態(tài)。所述N步前視引擎基于所述多個(gè)動(dòng)作中的每一個(gè)動(dòng)作的成本模型產(chǎn)生各個(gè)可能的狀態(tài)。每個(gè)成本模型基于一個(gè)動(dòng)作,所述動(dòng)作的行為涵義,所述動(dòng)作的資源涵義和所述操作的瞬時(shí)成本。所述存儲管理系統(tǒng)選擇這樣的動(dòng)作,該動(dòng)作產(chǎn)生優(yōu)化存儲系統(tǒng)的穩(wěn)定性,存儲系統(tǒng)的先決條件以及調(diào)用所選擇的動(dòng)作的瞬時(shí)成本的可能的系統(tǒng)狀態(tài)。所述存儲管理系統(tǒng)還調(diào)用被選擇的動(dòng)作。當(dāng)存儲系統(tǒng)的當(dāng)前狀態(tài)與所述N步前視引擎被調(diào)用時(shí)存儲系統(tǒng)的狀態(tài)之間的差異大于一個(gè)預(yù)定的差異時(shí),所述存儲管理系統(tǒng)終止所述的N步前視引擎,并基于存儲系統(tǒng)的當(dāng)前狀態(tài)重新調(diào)用N步前視引擎以便仿真操作。
當(dāng)存儲管理系統(tǒng)確定當(dāng)所述報(bào)警狀態(tài)被檢測到時(shí),引起所述報(bào)警狀態(tài)的存儲系統(tǒng)的當(dāng)前狀態(tài)與存儲系統(tǒng)的早期狀態(tài)類似時(shí),存儲管理系統(tǒng)選擇一個(gè)被存儲在數(shù)據(jù)庫內(nèi)的以前被在存儲系統(tǒng)的狀態(tài)與存儲系統(tǒng)的當(dāng)前狀態(tài)類似時(shí)選擇過的動(dòng)作。
在附圖中以示例的方式而不是作為限制示出了本發(fā)明,其中同樣的標(biāo)號指示著同樣的元件,其中圖1給出了根據(jù)本發(fā)明的存儲管理系統(tǒng)和存儲系統(tǒng)的功能方框圖;圖2給出了由吞吐量,可靠性,響應(yīng)時(shí)間,安全性和可用性組成的示例的系統(tǒng)行為;圖3表示由本發(fā)明的學(xué)習(xí)模塊記錄的用于量化預(yù)取規(guī)范的屬性的示例參數(shù);圖4示出了根據(jù)本發(fā)明的N步前視模塊的功能框;圖5示出了根據(jù)本發(fā)明的成本模型規(guī)范和由推理引擎得出的信息之間的交互;圖6示出了n維行為空間內(nèi)的表示為向量的行為和資源涵義函數(shù);和圖7示出了根據(jù)本發(fā)明由N步前視模塊得出的O(x*K)個(gè)可能的系統(tǒng)狀態(tài)的回溯樹。
具體實(shí)施例方式
傳統(tǒng)的存儲管理系統(tǒng)訪問系統(tǒng)的當(dāng)前狀態(tài),并且然后采取動(dòng)作,以便向更有利的狀態(tài)前進(jìn)。相反,本發(fā)明提供了用于存儲管理的前視范例,即基于當(dāng)前的系統(tǒng)狀態(tài)采取使系統(tǒng)進(jìn)入新的假想狀態(tài)的操作。所述假想動(dòng)作可以被以重復(fù)的方式施加的次數(shù)可以作為系統(tǒng)參數(shù)被控制。本發(fā)明的方法,此處被稱為N步前視方法,通過仿真所有的相關(guān)系統(tǒng)的可觀察量跟蹤假想的系統(tǒng)狀態(tài)。最后,在N個(gè)動(dòng)作被仿真之后,本發(fā)明基于所述的N步前視仿真選擇最佳的可用動(dòng)作,并且對系統(tǒng)的當(dāng)前實(shí)際狀態(tài)施加所選擇的動(dòng)作。
本發(fā)明的N步前視機(jī)制完全與推理引擎集成在一起。可用于執(zhí)行的規(guī)則集還包括由于轉(zhuǎn)換到假想系統(tǒng)狀態(tài)而可使用的規(guī)則。當(dāng)系統(tǒng)被仿真時(shí),底層物理系統(tǒng)的行為被建模。因此,由本發(fā)明使用的系統(tǒng)模型本質(zhì)上不是靜態(tài)的。即,所述模型隨著被學(xué)習(xí)引擎更新而進(jìn)化。不過N步前視預(yù)測的方法可以由于外部因素的變化諸如新用戶和新設(shè)備的加入,系統(tǒng)組件的故障,在進(jìn)行N步前視仿真的過程中指定目標(biāo)的改變導(dǎo)致系統(tǒng)進(jìn)入次最優(yōu)狀態(tài)。因此當(dāng)確定實(shí)際系統(tǒng)的當(dāng)前狀態(tài)已經(jīng)變得與以前假設(shè)的所述仿真的開始狀態(tài)相去甚遠(yuǎn)時(shí),仿真被終止并且另一個(gè)仿真被開始。
圖1給出了根據(jù)本發(fā)明的存儲管理系統(tǒng)101和存儲系統(tǒng)102的功能方框圖。存儲管理系統(tǒng)101典型地不在存儲系統(tǒng)102的直接數(shù)據(jù)路徑內(nèi)。存儲管理系統(tǒng)101通過傳感器代理103監(jiān)視存儲系統(tǒng)102。存儲管理系統(tǒng)101分析并規(guī)劃當(dāng)感測到存儲系統(tǒng)性能問題時(shí)所采取的糾正動(dòng)作。存儲系統(tǒng)102或是直接地或是通過存儲管理系統(tǒng)101間接地經(jīng)由傳感器代理103監(jiān)視各種系統(tǒng)資源。當(dāng)被監(jiān)視的資源超過預(yù)先定義的閾值時(shí)傳感器代理103發(fā)出警報(bào)。所述警報(bào)被發(fā)送到存儲管理系統(tǒng)101。
響應(yīng)警報(bào),存儲管理系統(tǒng)101確定是否存在可能會糾正引起所述警報(bào)的問題的多個(gè)競爭動(dòng)作。當(dāng)存在多個(gè)動(dòng)作時(shí),存儲管理系統(tǒng)101調(diào)用仿真引擎,N步前視引擎104,其基于接收自存儲管理系統(tǒng)101的輸入對存儲器系統(tǒng)102的操作建模。由N步前視引擎104產(chǎn)生的輸出被存儲在仿真輸出數(shù)據(jù)庫105內(nèi)。最初,N步前視引擎104進(jìn)行檢查以便查看當(dāng)前狀態(tài)是否與過去已經(jīng)被處理的其它狀態(tài)類似,并且如果有類似的狀態(tài),過去采取的糾正動(dòng)作被從數(shù)據(jù)庫105中檢索出來,并且將以前采取的糾正動(dòng)作輸出到存儲管理系統(tǒng)101。當(dāng)存儲器系統(tǒng)102的當(dāng)前狀態(tài)是新的狀態(tài)時(shí),N步前視引擎104開始仿真。N步前視引擎104執(zhí)行由用戶規(guī)定的深度為“N”的仿真。越深的仿真深度提供對潛在的糾正操作的副作用的更好的分析。激勵(lì)代理106被用于采取所選擇的糾正動(dòng)作。
本發(fā)明的技術(shù)適用于基于規(guī)則的策略管理和宣告型方法兩者。本發(fā)明的動(dòng)作可以分為三部分相關(guān)動(dòng)作的成本模型的分析,N步前視引擎分析和推理引擎分析。動(dòng)作的成本模型是其行為涵義和其資源涵義的組合物。為了簡化成本模型,本發(fā)明將成本模型處理為單獨(dú)的函數(shù)。每個(gè)系統(tǒng)都具有可以改變其行為的動(dòng)作。此處使用的術(shù)語“行為”表示系統(tǒng)可觀察到的特性??梢允褂贸橄笾T如服務(wù)質(zhì)量(Qos)目標(biāo),事務(wù)屬性等規(guī)定所述的特性。例如,圖2給出了由吞吐量,可靠性,響應(yīng)時(shí)間,安全性和可用性構(gòu)成的示例的系統(tǒng)行為200。此處使用的術(shù)語“系統(tǒng)狀態(tài)”表示系統(tǒng)的細(xì)節(jié),即資源的利用,系統(tǒng)事件和工作負(fù)荷特性。資源的利用被以使用的cpu,I/O和網(wǎng)絡(luò)帶寬表示。系統(tǒng)事件可以規(guī)定系統(tǒng)狀態(tài)諸如磁盤95%已滿,或錯(cuò)誤諸如網(wǎng)絡(luò)故障或磁盤故障。工作負(fù)荷特性包括讀寫比,順序/隨機(jī)等。
動(dòng)作的影響是當(dāng)前狀態(tài)和當(dāng)前行為的函數(shù),即,將存儲器資源從256MB增加到512MB與將同樣的存儲器資源從512MB增加到1GB具有不同的影響。類似地,將延遲從8msec改變?yōu)?msec需要與將延遲從4msee改變?yōu)?msec不同的系統(tǒng)影響。
關(guān)于動(dòng)作的行為涵義b定義了動(dòng)作對系統(tǒng)行為的影響。具體地,行為涵義b被定義為b(Current state,Current Behavior,%invocationvalue)→%Change in Behavior。行為涵義b是取決于參數(shù)諸如當(dāng)前行為,當(dāng)前系統(tǒng)狀態(tài)和所述動(dòng)作的調(diào)用程度的復(fù)合函數(shù)。系統(tǒng)的當(dāng)前行為包括這樣的參數(shù),諸如吞吐量,延遲,可用性和安全性。類似地,所述系統(tǒng)狀態(tài)是資源和應(yīng)用訪問模式的快照(snapshot),每一個(gè)都是多個(gè)變量的集合。一般地,一個(gè)動(dòng)作與這些變量的一個(gè)小的子集有關(guān)。所述子集的一些變量可能是主要的或預(yù)期的影響,而所述子集的其它變量可能是副作用。例如,預(yù)取一般具有對于吞吐量的主要影響,對于延遲的副作用,并且可能不會以任意方式影響安全性。
動(dòng)作的資源涵義r被定義為r(Current state,%invocationvalue)→New System state。動(dòng)作對系統(tǒng)狀態(tài)的影響主要被在資源方面量化,即,存在有對觀察到的工作負(fù)荷特性的二次影響,但是為了簡單起見所述影響可以被忽略。資源涵義r與行為涵義b相比直觀得多。
除了涵義函數(shù)之外,每個(gè)動(dòng)作具有一個(gè)相關(guān)聯(lián)的變量,以便表示調(diào)用所述動(dòng)作的瞬時(shí)開銷??梢酝ㄟ^監(jiān)視系統(tǒng)并且測量各個(gè)操作在各個(gè)系統(tǒng)資源上的開銷得出瞬時(shí)成本C的值。為了簡單起見,本發(fā)明將動(dòng)作的開銷分為一類,并且分配數(shù)值1,10和100以便分別表示低,中等和高開銷。因此,瞬時(shí)開銷變量是粗略的估計(jì)值并且將所述動(dòng)作分為一類而不是精確地測量所述的開銷,精確地測量所述的開銷將增加復(fù)雜性,這是因?yàn)橐恍﹦?dòng)作的開銷是被涉及的數(shù)據(jù)的量的函數(shù)。瞬時(shí)成本值被通過一個(gè)規(guī)范指定。
有兩種得出成本模型函數(shù)的可行的方法。在基于規(guī)則的系統(tǒng)的情況下,成本模型函數(shù)被僅通過學(xué)習(xí)得出。雖然搜索空間可以是大的,并且因此所需的迭代的數(shù)目可以是高的,但是其仍然是一種得出成本模型函數(shù)的可行的方法。得出成本模型函數(shù)的另一種可能性是通過使用用于定義動(dòng)作的宣告性規(guī)范。在第二種方法中,規(guī)范形成了用于所述學(xué)習(xí)處理的藍(lán)圖,并且有助于監(jiān)視和記錄與特定動(dòng)作相關(guān)的參數(shù)。
考慮預(yù)取動(dòng)作的例子。在基于規(guī)則的系統(tǒng)中,存在有調(diào)用預(yù)取動(dòng)作的規(guī)則。下面給出了用于調(diào)用這種預(yù)取動(dòng)作的三個(gè)示例的規(guī)則。每次一個(gè)動(dòng)作被調(diào)用時(shí),系統(tǒng)參數(shù)就被記錄并且被加到用于內(nèi)插(interpolation)的學(xué)習(xí)算法的數(shù)據(jù)集。
EventLatency_not_metIf{(Memory_available>70 && FC_interconnect_available>60)&&(access_pattern<0.4 sequential && read/write>0.4)}Prefetch=1.2*PrefetchEventLatency_not_metIf{(15<Memory_available>70 && FC interconnect_available>60)&&(access_pattern>0.7 sequential && read/write>0.4)}Prefetch=1.4*PrefetchEventLatency_not_metIf{(Memory_available>70 && FC interconnect_available>60)&&(0.4<access_pattern<0.7 sequential && read/write>0.4)}Prefetch=1.3*Prefetch宣告性規(guī)范使用規(guī)范作為成本模型的藍(lán)圖。然后通過在所述動(dòng)作每次被調(diào)用時(shí)添加信息,所述的成本模型被連續(xù)地改進(jìn)。例如,所述的規(guī)范模型將動(dòng)作的屬性分為兩組元級屬性和基礎(chǔ)級屬性。
元級屬性被推理引擎使用以便在若干競爭動(dòng)作之間進(jìn)行選擇。落在元級之下的屬性包括行為涵義和前提。行為涵義列舉出動(dòng)作對不同可觀察量的影響。在所述規(guī)范中,管理員不是定量地提供這種信息,而是使用描述性術(shù)語,諸如上,下和無。例如,<implicationdimension=throughput impact=up>。前提描述所述動(dòng)作對資源和工作負(fù)荷特性的相關(guān)性。例如,<precond dimension=memeory,value=*>。
基礎(chǔ)級屬性包括調(diào)用一個(gè)動(dòng)作所使用的函數(shù)和參數(shù)的細(xì)節(jié)。例如,<function name=change_prefetch_size>。所述的函數(shù)和參數(shù)可以被使用現(xiàn)有的標(biāo)準(zhǔn)諸如SMI-S表示。
出于N步前視的目的,僅有元級屬性是相關(guān)的。用于預(yù)取的示例的規(guī)范包括
<action name=PREFETCH>
<behavior_implications>
<implication dimension=throughput impact=up>
</behavior_implications>
<preconditions>
<precond dimension=sequential/random ratio value=high>
<precond dimension=read/write ratio value=high>
<precond dimension=memory value=*>
<precond dimension=fc_bandwidth value=*>
</preconditions>
<Overhead function=low>
每當(dāng)操作被在規(guī)則中調(diào)用時(shí),所述的信息被記錄在所述規(guī)則的上下文中。
學(xué)習(xí)引擎可以利用傳統(tǒng)類型的機(jī)器學(xué)習(xí)算法改進(jìn)所述的成本模型。在人工智能領(lǐng)域,學(xué)習(xí)算法被視為黑箱,其在給出前面的n個(gè)數(shù)據(jù)點(diǎn)的采樣的情況下,內(nèi)插第(n+1)個(gè)數(shù)據(jù)點(diǎn)的信息。在基于規(guī)則的系統(tǒng)的情況下,學(xué)習(xí)以基于情況的推理(CBR)為基礎(chǔ),其中為每個(gè)動(dòng)作調(diào)用記錄“系統(tǒng)快照”??商鎿Q地,學(xué)習(xí)可以涉及在所述規(guī)范中向元級屬性添加信息。對于涵義,對可觀察到的目標(biāo)調(diào)用動(dòng)作的影響被量化,諸如增加20%的預(yù)取改善了8%的吞吐量。對于前提,用于調(diào)用所述動(dòng)作的閾值被記憶,諸如以小于20%的可用存儲器調(diào)用預(yù)取對性能有負(fù)面影響。同樣,被用作調(diào)用值中的百分比變化的函數(shù)的資源百分比可以被記憶。
建立學(xué)習(xí)函數(shù)中的一個(gè)非一般性任務(wù)是定義所述學(xué)習(xí)函數(shù)依靠的參數(shù)。例如,在預(yù)取的情況下,吞吐量涵義是預(yù)取大小的值,可觀察量(即,吞吐量)的當(dāng)前值,資源狀態(tài)(例如可用的存儲器)的當(dāng)前值和工作負(fù)荷特性(例如,順序/隨機(jī)比)的改變的函數(shù)。
圖3表示由本發(fā)明的學(xué)習(xí)引擎記錄的用于量化用于預(yù)取規(guī)范的屬性的示例參數(shù)。從所述規(guī)范中得出用于所述學(xué)習(xí)函數(shù)的參數(shù),即,被監(jiān)視的資源,以及為給定動(dòng)作測量的工作負(fù)荷特性。特別地,本發(fā)明使用基于情況的推理作為用于涵義和前提的學(xué)習(xí)算法。對于基礎(chǔ)調(diào)用,本發(fā)明采用使用神經(jīng)網(wǎng)絡(luò)的增強(qiáng)式學(xué)習(xí)。
圖4給出了根據(jù)本發(fā)明的N步前視模塊104的功能框。N步前視模塊104包括成本函數(shù)分析器401,學(xué)習(xí)引擎402,行為和系統(tǒng)狀態(tài)開發(fā)器403以及推理引擎404。N步前視模塊104的輸入包括由推理引擎404的第一迭代產(chǎn)生的k個(gè)候選動(dòng)作的一個(gè)列表。此后,所述N步前視模塊迭代地為所述k個(gè)候選動(dòng)作中的每一個(gè)產(chǎn)生可能的系統(tǒng)狀態(tài);N步前視模塊104的輸出是O(k*N)個(gè)可能的系統(tǒng)狀態(tài)。對于每個(gè)狀態(tài),記錄回溯路徑,所述路徑的總成本和到達(dá)每個(gè)狀態(tài)所需的迭代次數(shù)。
在接收到所述的k個(gè)候選動(dòng)作之后,成本函數(shù)分析器401為各個(gè)動(dòng)作得出所述的成本函數(shù)。每個(gè)成本函數(shù)是一個(gè)三元組<b,r,開銷變量>,它們具有作為當(dāng)前行為和系統(tǒng)狀態(tài)的函數(shù)的值。在基于規(guī)則的系統(tǒng)的情況下,通過僅使用學(xué)習(xí)引擎402得出成本函數(shù),即,沒有用于動(dòng)作模型的規(guī)范。可替換地,可以通過使用規(guī)范和由學(xué)習(xí)引擎402收集的數(shù)據(jù)的組合得出成本函數(shù)。例如,圖5中示出了所述規(guī)范和學(xué)習(xí)組件之間的交互,其給出了根據(jù)本發(fā)明的成本模型規(guī)范和由推理引擎404得出的信息之間的交互。學(xué)習(xí)引擎402通過內(nèi)插用于所述屬性的值補(bǔ)充所述的規(guī)范。接著,行為和系統(tǒng)狀態(tài)開發(fā)器403應(yīng)用各個(gè)相應(yīng)候選動(dòng)作的成本模型函數(shù),以便作為向量添加操作得出行為和系統(tǒng)狀態(tài)的新值。圖6給出了n維行為空間內(nèi)的表示為向量的行為和資源涵義函數(shù)。
作為例子,數(shù)據(jù)復(fù)制規(guī)則的行為涵義是沿著吞吐量,延遲和可用性維度的向量。該向量被表示為B(數(shù)據(jù)復(fù)制)=[(0.3)吞吐量-(0.1)延遲+(0.2)可用性],其中調(diào)用復(fù)制分別提高了30%的吞吐量和20%的可用性,并且降低了10%的延遲。
在每次迭代的結(jié)尾,有O(x*K)個(gè)可能的系統(tǒng)狀態(tài),其中x是迭代深度并且k是候選動(dòng)作的初始集的基數(shù)。對于每次迭代,新的狀態(tài)(資源和行為)+指定的目標(biāo)被輸入到推理引擎404,以便輸出下一組候選動(dòng)作。很可能推理引擎404不施加任何候選動(dòng)作。該狀態(tài)被稱為“終點(diǎn)”狀態(tài)并且當(dāng)狀態(tài)中的下列為真時(shí)發(fā)生所有被指定的目標(biāo)被滿足,且沒有資源閾值事件。
注意N步前視模塊104是可并行的,即,可以由K個(gè)代理并行地計(jì)算各個(gè)路徑,所述的各個(gè)代理的每一個(gè)相應(yīng)于所述的候選動(dòng)作。每個(gè)代理的結(jié)果被組合并且被輸入到推理引擎404。
在N次迭代的結(jié)尾,O(K*N)個(gè)系統(tǒng)狀態(tài)以及用于每個(gè)路徑的回溯路徑,每個(gè)路徑的總成本和到達(dá)該狀態(tài)所需的迭代的次數(shù)被輸入到推理引擎404。推理引擎404使用優(yōu)化函數(shù)確定回溯樹中滿足先決條件并且優(yōu)化穩(wěn)定性和瞬時(shí)成本函數(shù)的“最佳”路徑。圖7給出了由N步前視模塊104得出的O(x*K)個(gè)可能的系統(tǒng)狀態(tài)的回溯樹700。每個(gè)系統(tǒng)狀態(tài)被由一個(gè)圓圈表示??盏膱A圈表示中間的系統(tǒng)狀態(tài)。黑的或被填充的圓圈表示終點(diǎn)狀態(tài)。圖7中還給出了示例的瞬時(shí)成本C。
通過優(yōu)化穩(wěn)定性函數(shù),在行為和資源涵義方面產(chǎn)生了最“穩(wěn)定”的系統(tǒng)狀態(tài)。此處“穩(wěn)定”被定義為目標(biāo)和當(dāng)前狀態(tài)(被表示為n維向量空間內(nèi)的向量)之間的點(diǎn)積。通過優(yōu)化瞬時(shí)成本函數(shù),為一個(gè)操作的調(diào)用獲得最低的瞬時(shí)成本。通過優(yōu)化先決條件,諸如動(dòng)作的鏈?zhǔn)秸{(diào)用(反映為若干迭代)和同一動(dòng)作的重復(fù)調(diào)用被避免了。
通過對路徑的所有邊進(jìn)行簡單的加法為每個(gè)路徑計(jì)算瞬時(shí)成本函數(shù)C。然后同一動(dòng)作的連續(xù)調(diào)用被檢查,并且當(dāng)被檢測到時(shí),RepeatFlag被設(shè)置為True。所述路徑內(nèi)被調(diào)用的迭代/動(dòng)作的次數(shù)I被計(jì)算。狀態(tài)(每個(gè)路徑的狀態(tài))和所述目標(biāo)的點(diǎn)積被計(jì)算。所述點(diǎn)積是向量之間的夾角的余弦S。所述路徑被以S的值的降序排序。被排序的列表的的最高的x%的路徑被保留,并且具有RepeatFlag=True的路徑被濾除,即,被從列表刪除。供最后挑選的路徑被以C的升序重新排序。所述列表的第一個(gè)元件以及其路徑的回溯被選擇。N步前視函數(shù)的結(jié)果是所選擇的路徑的起始的候選動(dòng)作。
雖然前面已經(jīng)出于清楚地理解的目的以某種詳細(xì)程度說明了本發(fā)明,顯然可以實(shí)現(xiàn)所附權(quán)利要求的范圍內(nèi)的某些改變和修改。因此,本實(shí)施例被視為是示例性的而不是限制性的,并且本發(fā)明不限于此處給出的細(xì)節(jié),而是可以在所附權(quán)利要求的范圍和等同物內(nèi)修改。
權(quán)利要求
1.一種管理存儲系統(tǒng)的方法,包括檢測與存儲系統(tǒng)的性能目標(biāo)有關(guān)的報(bào)警狀態(tài);調(diào)用N步前視引擎以便仿真當(dāng)存在有所述存儲系統(tǒng)可以采取以便消除所述的報(bào)警狀態(tài)的多個(gè)動(dòng)作時(shí)所述存儲系統(tǒng)的操作;基于所述存儲系統(tǒng)的當(dāng)前狀態(tài)產(chǎn)生N個(gè)可能的系統(tǒng)狀態(tài);和選擇這樣的動(dòng)作,所述動(dòng)作產(chǎn)生優(yōu)化所述存儲系統(tǒng)的穩(wěn)定性、所述存儲系統(tǒng)的先決條件和調(diào)用所選擇的動(dòng)作的瞬時(shí)成本的可能的系統(tǒng)狀態(tài)。
2.如權(quán)利要求1的方法,還包括調(diào)用所選擇的動(dòng)作。
3.如權(quán)利要求1的方法,還包括存儲所述的N個(gè)可能的系統(tǒng)狀態(tài)。
4.如權(quán)利要求1的方法,還包括當(dāng)所述報(bào)警狀態(tài)被檢測到時(shí),確定引起所述報(bào)警狀態(tài)的存儲系統(tǒng)的當(dāng)前狀態(tài)是否與所述存儲系統(tǒng)的早期狀態(tài)類似;從存儲器選擇這樣的動(dòng)作,所述被選擇的動(dòng)作是以前當(dāng)所述存儲系統(tǒng)的狀態(tài)與所述存儲系統(tǒng)的當(dāng)前狀態(tài)類似時(shí)被選擇的。
5.如權(quán)利要求1的方法,其中產(chǎn)生N個(gè)可能的狀態(tài)基于所述的多個(gè)動(dòng)作的每一個(gè)的成本模型產(chǎn)生每個(gè)可能的狀態(tài)。
6.如權(quán)利要求5的方法,其中每個(gè)成本模型基于動(dòng)作,所述動(dòng)作的行為涵義,所述動(dòng)作的資源涵義和所述動(dòng)作的瞬時(shí)成本。
7.如權(quán)利要求1的方法,其中產(chǎn)生N個(gè)可能的狀態(tài)根據(jù)基于規(guī)則的系統(tǒng)產(chǎn)生每個(gè)可能的狀態(tài)。
8.如權(quán)利要求1的方法,其中產(chǎn)生N個(gè)可能的狀態(tài)基于至少一個(gè)規(guī)范產(chǎn)生每個(gè)可能的狀態(tài)。
9.如權(quán)利要求1的方法,其中N是用戶可選擇的。
10.如權(quán)利要求1的方法,還包括當(dāng)所述存儲系統(tǒng)的當(dāng)前狀態(tài)與所述N步前視引擎被調(diào)用時(shí)所述存儲系統(tǒng)的狀態(tài)的差異大于一個(gè)預(yù)定的差異時(shí),終止所述的N步前視引擎;和基于所述存儲系統(tǒng)的當(dāng)前狀態(tài)重新調(diào)用所述的N步前視引擎以便仿真操作。
11.一種管理存儲系統(tǒng)的系統(tǒng),包括檢測與存儲系統(tǒng)的性能目標(biāo)有關(guān)的報(bào)警狀態(tài)的傳感器;和存儲管理系統(tǒng),其調(diào)用N步前視引擎以便仿真當(dāng)存在有所述存儲系統(tǒng)可以采取以便消除所述的報(bào)警狀態(tài)的多個(gè)動(dòng)作時(shí)所述存儲系統(tǒng)的操作,所述N步前視引擎基于所述存儲系統(tǒng)的當(dāng)前狀態(tài)產(chǎn)生N個(gè)可能的系統(tǒng)狀態(tài),所述存儲管理系統(tǒng)選擇這樣的動(dòng)作,所述動(dòng)作產(chǎn)生優(yōu)化所述存儲系統(tǒng)的穩(wěn)定性、所述存儲系統(tǒng)的先決條件和調(diào)用所選擇的動(dòng)作的瞬時(shí)成本的可能的系統(tǒng)狀態(tài)。
12.如權(quán)利要求11的系統(tǒng),其中所述存儲管理系統(tǒng)調(diào)用所選擇的動(dòng)作。
13.如權(quán)利要求11的系統(tǒng),還包括存儲所述的N個(gè)可能的系統(tǒng)狀態(tài)的數(shù)據(jù)庫。
14.如權(quán)利要求13的系統(tǒng),其中當(dāng)所述報(bào)警狀態(tài)被檢測到時(shí),所述存儲管理系統(tǒng)確定引起所述報(bào)警狀態(tài)的存儲系統(tǒng)的當(dāng)前狀態(tài)是否與所述存儲系統(tǒng)的早期狀態(tài)類似,并且選擇以前當(dāng)所述存儲系統(tǒng)的狀態(tài)與所述存儲系統(tǒng)的當(dāng)前狀態(tài)類似時(shí)被選擇的在數(shù)據(jù)庫中存儲的動(dòng)作。
15.如權(quán)利要求11的系統(tǒng),其中所述N步前視引擎基于所述的多個(gè)動(dòng)作的每一個(gè)的成本模型產(chǎn)生每個(gè)可能的狀態(tài)。
16.如權(quán)利要求15的系統(tǒng),其中每個(gè)成本模型基于動(dòng)作,所述動(dòng)作的行為涵義,所述動(dòng)作的資源涵義和所述動(dòng)作的瞬時(shí)成本。
17.如權(quán)利要求11的系統(tǒng),其中所述N步前視引擎根據(jù)基于規(guī)則的系統(tǒng)產(chǎn)生每個(gè)可能的狀態(tài)。
18.如權(quán)利要求11的系統(tǒng),其中所述N步前視引擎基于至少一個(gè)規(guī)范產(chǎn)生每個(gè)可能的狀態(tài)。
19.如權(quán)利要求11的系統(tǒng),其中N是用戶可選擇的。
20.如權(quán)利要求11的系統(tǒng),其中當(dāng)所述存儲系統(tǒng)的當(dāng)前狀態(tài)與所述N步前視引擎被調(diào)用時(shí)所述存儲系統(tǒng)的狀態(tài)的差異大于一個(gè)預(yù)定的差異時(shí),所述存儲管理系統(tǒng)終止所述的N步前視引擎,并且基于所述存儲系統(tǒng)的當(dāng)前狀態(tài)重新調(diào)用所述的N步前視引擎以便仿真操作。
全文摘要
當(dāng)檢測到與存儲系統(tǒng)性能目標(biāo)有關(guān)的報(bào)警狀態(tài)時(shí),存儲管理系統(tǒng)調(diào)用N步前視引擎以便仿真當(dāng)存在有所述存儲系統(tǒng)可以采取以便消除所述報(bào)警狀態(tài)的多個(gè)動(dòng)作時(shí)所述存儲系統(tǒng)的操作。N步前視引擎基于存儲系統(tǒng)的當(dāng)前狀態(tài)產(chǎn)生N個(gè)可能的系統(tǒng)狀態(tài)。所述的N個(gè)可能的狀態(tài)基于所述多個(gè)動(dòng)作中的每一個(gè)的成本模型。每個(gè)成本模型基于動(dòng)作,所述動(dòng)作的行為涵義,所述動(dòng)作的資源涵義和所述動(dòng)作的瞬時(shí)成本。選擇產(chǎn)生這樣的系統(tǒng)狀態(tài)的動(dòng)作,所述系統(tǒng)狀態(tài)優(yōu)化穩(wěn)定性,先決條件和調(diào)用所選擇的動(dòng)作的瞬時(shí)成本。
文檔編號G06F12/00GK1755651SQ200510107568
公開日2006年4月5日 申請日期2005年9月29日 優(yōu)先權(quán)日2004年9月30日
發(fā)明者約翰·戴維斯·帕爾莫, 桑迪普·馬德哈夫·烏塔姆昌達(dá)尼, 卡拉德哈爾·沃魯甘迪 申請人:國際商業(yè)機(jī)器公司