使得離臺沖突最小化的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明的實(shí)施方式涉及用于通過計(jì)算環(huán)境中的處理器設(shè)備來使得離臺沖突最小化的方法和系統(tǒng)。軌道的離臺分組被限制于最近最少使用(LRU)列表的底部部分,而不對LRU列表中最近最多使用端的軌道進(jìn)行分組以避免離臺沖突。軌道的離臺分組從LRU列表的底部進(jìn)行離臺。
【專利說明】使得離臺沖突最小化的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明總體上涉及計(jì)算系統(tǒng),并且更具體地涉及用于使得離臺沖突最小化的系統(tǒng)和方法。
【背景技術(shù)】
[0002]在當(dāng)今社會中,計(jì)算機(jī)系統(tǒng)是常見的。計(jì)算機(jī)系統(tǒng)可以出現(xiàn)在工作場所、家中或?qū)W校中。計(jì)算機(jī)系統(tǒng)可以包括數(shù)據(jù)存儲系統(tǒng)或者磁盤存儲系統(tǒng)已處理并存儲數(shù)據(jù)。已知當(dāng)前的計(jì)算機(jī)存儲系統(tǒng)使得存儲軌道從高速緩存離臺(destage)至長期存儲設(shè)備已使得高速緩存中有足夠空間供數(shù)據(jù)寫入。當(dāng)使得存儲軌道離臺時,當(dāng)前的存儲系統(tǒng)在高速緩存變滿或者全局壓力因數(shù)高時,使得存儲軌道從高速緩存中的每個邏輯存儲組(rank)離臺。也就是說,即使高速緩存中的一些邏輯存儲組可能關(guān)于被分配給這些邏輯存儲組的存儲空間量僅存儲了少量存儲軌道,存儲軌道仍然在全局壓力因數(shù)高時從每個邏輯存儲組離臺。此外,離臺任務(wù)幫助開始存儲軌道向存儲系統(tǒng)的離臺。
【發(fā)明內(nèi)容】
[0003]在一個實(shí)施例中,提供了一種用于使用計(jì)算環(huán)境中的至少一個處理器設(shè)備而使得離臺沖突最小化的方法。在一個實(shí)施例中,僅作為示例,將軌道的離臺分組限制于最近最少使用(LRU)列表的底部部分,而不對LRU列表中最近最多使用端的軌道進(jìn)行分組,以避免離臺沖突。軌道的離臺分組從LRU列表的底部部分進(jìn)行離臺。
[0004]在另一個實(shí)施例中,提供了一種用于使用計(jì)算環(huán)境中的至少一個處理器設(shè)備而使得離臺沖突最小化的計(jì)算機(jī)系統(tǒng)。該計(jì)算機(jī)系統(tǒng)包括計(jì)算機(jī)可讀介質(zhì)以及與該計(jì)算機(jī)可讀介質(zhì)可操作通信的處理器。在一個實(shí)施例中,僅作為示例,該處理器將軌道的離臺分組限制于最近最少使用(LRU)列表的底部部分,而不對LRU列表中最近最多使用端的軌道進(jìn)行分組以避免離臺沖突。軌道的離臺分組從LRU列表的底部部分進(jìn)行離臺。
[0005]在另外的實(shí)施例中,提供了一種用于使用計(jì)算環(huán)境中的至少一個處理器設(shè)備而使得離臺沖突最小化的計(jì)算機(jī)程序產(chǎn)品。計(jì)算機(jī)可讀存儲介質(zhì)具有存儲于其上的計(jì)算機(jī)可讀程序代碼部分。該計(jì)算機(jī)可讀程序代碼部分包括第一可執(zhí)行部分,其將軌道的離臺分組限制于最近最少使用(LRU)列表的底部部分,而不對LRU列表中最近最多使用端的軌道進(jìn)行分組,以避免離臺沖突。軌道的離臺分組從LRU列表的底部部分進(jìn)行離臺。
[0006]除了以上示例性方法實(shí)施例之外,其它的示例性系統(tǒng)和計(jì)算機(jī)產(chǎn)品實(shí)施例也得以被提供并且表現(xiàn)出相關(guān)優(yōu)勢。已經(jīng)提供了以上
【發(fā)明內(nèi)容】
而以簡化形式對以下【具體實(shí)施方式】中進(jìn)一步描述的概念選擇進(jìn)行介紹。該
【發(fā)明內(nèi)容】
并非旨在標(biāo)識出所請求保護(hù)主題的關(guān)鍵特征或必要特征,也并非旨在確定所請求保護(hù)主題的范圍時作為輔助。所請求保護(hù)的主題并不局限于解決了【背景技術(shù)】中所提到的任意或全部缺陷的實(shí)施方式。
【專利附圖】
【附圖說明】
[0007]為了本發(fā)明的優(yōu)勢將輕易得到理解,將參考附圖中所圖示的具體實(shí)施例對以上簡要描述的本發(fā)明進(jìn)行更為特定的描述。要理解的是,這些附圖進(jìn)描繪了本發(fā)明的典型實(shí)施例,因此并非被要認(rèn)為對其范圍有所限制,本發(fā)明將通過使用附圖而利用附加的特性和細(xì)節(jié)被加以描述和解釋,其中:
[0008]圖1是示出可以在其中實(shí)現(xiàn)本發(fā)明各方面的用于對離臺任務(wù)進(jìn)行平滑的示例性硬件結(jié)構(gòu)的框圖;
[0009]圖2是示出根據(jù)本發(fā)明的可以在其中實(shí)現(xiàn)本發(fā)明各方面的計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)存儲系統(tǒng)的示例性硬件結(jié)構(gòu)的框圖;
[0010]圖3是圖示可以在其中實(shí)現(xiàn)本發(fā)明各方面的用于使得離臺沖突最小化的示例性方法的流程圖;
[0011]圖4是圖示可以在其中實(shí)現(xiàn)本發(fā)明各方面的用于向最近最少使用列表中的軌道添加順序編號的示例性方法的流程圖;以及
[0012]圖5是圖示可以在其中實(shí)現(xiàn)本發(fā)明各方面的用于對來自最近最少使用列表的軌道進(jìn)行分組和離臺的示例性方法的流程圖。
【具體實(shí)施方式】
[0013]如之前所提到的,已知當(dāng)前的計(jì)算機(jī)存儲系統(tǒng)使得存儲軌道從高速緩存離臺至長期存儲設(shè)備已使得高速緩存中有足夠空間供數(shù)據(jù)寫入。在一個實(shí)施例中,最優(yōu)排序?qū)?WiseOrdering for Writes, WOW)增加了離臺任務(wù)控制模塊(TCB),或者簡單地一次一個地“令任務(wù)離臺”,該WOW是被用于根據(jù)相關(guān)聯(lián)任務(wù)或請求所針對的存儲位置而對列表進(jìn)行排序來利用時間和空間局部性的列表。在一個實(shí)施例中,離臺任務(wù)被用來管理數(shù)據(jù)存儲和檢索系統(tǒng)內(nèi)以及主機(jī)計(jì)算機(jī)和數(shù)據(jù)存儲和檢索系統(tǒng)之間的數(shù)據(jù)移動。換句話說,離臺TCB是使得軌道從高速緩存離臺至存儲(例如,磁盤驅(qū)動器)的任務(wù)。離臺TCB可以是用于啟動存儲軌道的離臺的命令。
[0014]然而,為了進(jìn)行有效離臺,離臺分組對于防止RAID懲罰(RAID-5和RAID-6)而言是重要的,例如,針對RAID-5邏輯存儲組的單軌道離臺可能導(dǎo)致4個驅(qū)動操作(例如,讀取奇偶性、讀取舊數(shù)據(jù)、離臺新數(shù)據(jù)以及離臺新奇偶性)。如果使得整個帶離臺,則RAID控制器并不需要取出舊奇偶性和舊數(shù)據(jù),并且離臺僅需要一個驅(qū)動操作。甚至在無法對整個帶進(jìn)行分組的情況下,使得帶中具有盡可能多的軌道也是有利的,因?yàn)閮H需要為N個軌道付出一次RAID懲罰而不是對每個軌道離臺都付出懲罰。例如,帶是在其上計(jì)算奇偶性的軌道的集合。例如,在6+p的RAID-5陣列中,具有6個數(shù)據(jù)盤以及一個奇偶性盤。從每個盤取得一些固定數(shù)量的軌道并且通過對這些軌道間的數(shù)據(jù)進(jìn)行XOR而計(jì)算奇偶性。當(dāng)帶的所有軌道都處于高速緩存中時,則能夠簡單地通過在該帶的軌道之間對數(shù)據(jù)進(jìn)行XOR來計(jì)算奇偶性。但是如果帶中僅有幾個軌道處于高速緩存中,則無法僅從高速緩存中的那些軌道計(jì)算奇偶性。為了計(jì)算新的奇偶性,使得舊數(shù)據(jù)(對于已經(jīng)修改的軌道而言)和舊的奇偶性入臺(stage)?,F(xiàn)在能夠通過觀看舊數(shù)據(jù)和新數(shù)據(jù)之間的差異并且查看舊奇偶性來計(jì)算新奇偶性。由于舊數(shù)據(jù)入臺并且舊奇偶性要使得修改的數(shù)據(jù)離臺,所以存在著幾個更多的驅(qū)動操作。著被稱作RAID懲罰。例如,如果高速緩存中存在有一跨距(stride)的N個軌道,并且如果決定使得每個軌道單獨(dú)離臺,則每次離臺都將必須付出RAID懲罰。相反地,如果在一次離臺中令所有軌道離臺,則僅付出一次RAID懲罰。
[0015]當(dāng)數(shù)據(jù)以LRU(最近最少使用)的方式進(jìn)行布置,并且有若干任務(wù)嘗試在一次離臺時,分組會變得復(fù)雜,這是因?yàn)檫@些任務(wù)會針對相同的軌道集合而互相競爭,從而致使離臺分組為次優(yōu)。因此,需要使用計(jì)算環(huán)境中的至少一個處理器設(shè)備來使得離臺沖突最小化。在一個實(shí)施例中,通過從高速緩存中修改磁帶最近最少使用端揀取(例如,選擇)軌道來執(zhí)行離臺分組。隨后,與該磁帶處于相同跨距的所有軌道被分組在一起并被離臺。這些被分組軌道中的一些能夠在LRU列表中被升高(例如,更為接近最近最多使用的“MRU”端)。由于MRU端上的軌道被重新訪問的概率更高,所以對軌道進(jìn)行分組可能會導(dǎo)致更多的離臺沖突(即,軌道在主機(jī)試圖再次對該軌道進(jìn)行寫入的同時正被離臺)。一種解決方案提供了為這樣的軌道提供副文件(sidef i Ie)而使得當(dāng)軌道被選擇離臺時,那些軌道被移動到副文件并且隨后允許在高速緩存中的另一個時隙中進(jìn)行新的寫入。然而,實(shí)施副文件的解決方案是十分麻煩的并且需要額外的算法軟件代碼。因此,需要一種更為有效地使得離臺沖突最小化的處理。在一個實(shí)施例中,僅作為示例,將軌道的離臺分組限制為最近最少使用(LRU)列表的底部部分,而不對LRU列表中最近最多使用端的軌道進(jìn)行分組以避免離臺沖突。軌道的離臺分組從LRU列表的底部部分進(jìn)行離臺。在一個實(shí)施例中,在最近最少使用(LRU)列表中維護(hù)和使用軌道的順序編號。使用順序編號來定位和/或找出經(jīng)修改軌道在LRU列表中的相對位置。僅處于底部百分之n(例如,“X”%)的那些軌道被選擇并分組以便進(jìn)行宦A同D ο
[0016]為了解決這些低效性,本發(fā)明提供了一種用于使用計(jì)算環(huán)境中的處理器設(shè)備對軌道進(jìn)行分組以便離臺的解決方案。在一個實(shí)施例中,僅作為示例,從最近最少使用(LRU)列表中選擇用于離臺的軌道。在一個實(shí)施例中,LRU列表時以最近最少使用的方式進(jìn)行排序的軌道列表。LRU具有最近最多使用端(列表的頂部)以及底部端部分。所選擇的軌道從LUR列表的底部進(jìn)行分組并離臺。換句話說,本發(fā)明進(jìn)從LRU列表的底部揀取某些軌道(例如,該跨距的第一軌道)以便離臺。換句話說,從LRU列表的底部揀取該跨距的至少一個軌道并且允許離臺TCB執(zhí)行分組。換句話說,在對軌道進(jìn)行分組以便離臺至RAID存儲時,本發(fā)明將離臺分組限制在LRU列表的底部部分,而不對處于該列表的MRU端頂部的軌道進(jìn)行分組以避免沖突。
[0017]轉(zhuǎn)向圖1,用于對離臺任務(wù)進(jìn)行平滑的系統(tǒng)100的一個實(shí)施例的框圖。至少在所圖是的實(shí)施例中,系統(tǒng)100包括經(jīng)由總線140 (例如,有線和/或無線總線)耦合至高速緩存120和處理器130的存儲器110。
[0018]存儲器110可以是本領(lǐng)域已知或者未來研發(fā)的任意類型的存儲器設(shè)備。存儲器110的示例包括但并不局限于具有一個或多個連線的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)訪問存儲器(RAM)、可擦除可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊致盤只讀存儲器(⑶-ROM)、光學(xué)存儲設(shè)備、磁性存儲設(shè)備,或者以上的任意適當(dāng)組合。在存儲器110的各個實(shí)施例中,存儲軌道能夠被存儲在存儲器110中。此外,每個存儲軌道能夠在向該存儲軌道寫入數(shù)據(jù)時從高速緩存120離臺至存儲器110。
[0019]在一個實(shí)施例中,高速緩存120包括被劃分為一個或多個邏輯存儲組1210的寫高速緩存,其中每個邏輯存儲組1210包括一個或多個存儲軌道。高速緩存120可以是本領(lǐng)域已知或未來研發(fā)的任意高速緩存。
[0020]在操作期間,在存儲軌道已經(jīng)被寫入之后,每個邏輯存儲組1210中的存儲軌道在前臺離臺過程中被離臺至存儲器110。也就是說,前臺離臺處理將存儲軌道從(多個)邏輯存儲組1210離臺至存儲器110,同時主機(jī)(未示出)向高速緩存120的邏輯存儲組1210中的各個存儲軌道主動進(jìn)行寫入。理想情況下,特定存儲軌道在一個或多個主機(jī)期望對該特定存儲軌道進(jìn)行寫入時不會正在進(jìn)行離臺,這被稱作離臺沖突。
[0021]在各個實(shí)施例中,處理器130包括離臺管理模塊1310或者對其進(jìn)行訪問,后者包括計(jì)算機(jī)可讀代碼,當(dāng)被處理器130執(zhí)行時,該計(jì)算機(jī)可讀代碼使得處理器130執(zhí)行本發(fā)明。在各個實(shí)施例中,處理器130被配置為根據(jù)標(biāo)準(zhǔn)時間間隔或者可變的重復(fù)計(jì)算的離臺任務(wù)間隔來計(jì)算離臺任務(wù)的數(shù)量。
[0022]在各個其它實(shí)施例中,處理器130被配置為將離臺任務(wù)以及離臺任務(wù)的當(dāng)前數(shù)量加大和/或降低。
[0023]在各個其它實(shí)施例中,處理器130被配置為在離臺任務(wù)的當(dāng)前數(shù)量比所期望的離臺任務(wù)數(shù)量大的情況下將離臺任務(wù)的當(dāng)前數(shù)量遞減值1,和/或在離臺任務(wù)的當(dāng)前數(shù)量小于所期望的離臺任務(wù)數(shù)量的情況下將離臺任務(wù)的當(dāng)前數(shù)量遞減值I。在遞增或遞增之后,處理器130被配置為在達(dá)到標(biāo)準(zhǔn)時間間隔、或達(dá)到針對計(jì)算所選擇的可變的重新計(jì)算離臺任務(wù)間隔時,重新計(jì)算離臺任務(wù)的當(dāng)前數(shù)量。
[0024]在一個實(shí)施例中,每個邏輯存儲組1210在高速緩存120中被分配以相同的預(yù)定量的存儲空間。在另一個實(shí)施例中,至少兩個邏輯存儲組1210在高速緩存120中被分配以不同的預(yù)定量的存儲空間。在又一實(shí)施例中,每個邏輯存儲組1210被分配以高速緩存120中的不同預(yù)定量的存儲空間。在這些實(shí)施例中的每一個中,高速緩存120中的每個預(yù)定量的存儲空間不會超過預(yù)定的最大量的存儲空間。
[0025]在各個實(shí)施例中,處理器130被配置為按百分比基礎(chǔ)來分配預(yù)定的最大量的存儲空間。在一個實(shí)施例中,分配給相應(yīng)邏輯存儲組1210的預(yù)定的最大量的存儲空間處于高速緩存120的總體存儲容量的大約百分之一到大約百分之二十五的范圍之內(nèi)(1% -50% )。在另一個實(shí)施例中,分配給相應(yīng)邏輯存儲組1210的預(yù)定最大數(shù)量的存儲空間是高速緩存120的總體存儲容量的百分之二十五(25% )。
[0026]在各個其它實(shí)施例中,處理器130被配置為按存儲軌道來分配預(yù)定最大數(shù)量的存儲空間。也就是說,每個邏輯存儲組1210被限制為預(yù)定的最大數(shù)量的存儲軌道,這可以根據(jù)不同的邏輯存儲組而有所變化。
[0027]在各個實(shí)施例中,處理器130被配置為對高速緩存120中的每個邏輯存儲組1210進(jìn)行監(jiān)視,并且確定每個相應(yīng)邏輯存儲組1210的存儲軌道的數(shù)量關(guān)于其在高速緩存120中所分配的存儲空間的數(shù)量而進(jìn)行存儲。在一個實(shí)施例中,處理器130被配置為按百分比來確定每個相應(yīng)邏輯存儲組1210中存儲軌道的數(shù)量。也就是說,處理器130被配置為對每個邏輯存儲組1210進(jìn)行監(jiān)視,并且確定每個相應(yīng)邏輯存儲組1210被用來關(guān)于高速緩存120中的總存儲空間的單個分配而對存儲軌道進(jìn)行存儲的百分比。
[0028]另一個實(shí)施例中,處理器130被配置為確定每個相應(yīng)邏輯存儲組1210中存儲軌道的數(shù)量。具體而言,處理器130被配置為對每個相應(yīng)邏輯存儲組1210進(jìn)行監(jiān)視,并且確定每個相應(yīng)邏輯存儲組1210被用來關(guān)于高速緩存120中的總體存儲空間的單個分配而對存儲軌道進(jìn)行存儲的存儲軌道的數(shù)量。
[0029]在各個實(shí)施例中,處理器130被配置為從每個相應(yīng)邏輯存儲組1210對存儲軌道進(jìn)行離臺直至每個相應(yīng)邏輯存儲組1210中關(guān)于其在高速緩存120中的預(yù)定分配的存儲空間數(shù)量保留了預(yù)定最小數(shù)量的存儲空間,并且隨后停止或不再從使用少于或等于預(yù)定最小數(shù)量的存儲空間的邏輯存儲組1210中離臺存儲軌道。在一個實(shí)施例中,處理器130被配置為從每個邏輯存儲組1210中離臺存儲軌道直至達(dá)到高速緩存120中預(yù)定數(shù)量的存儲空間的預(yù)定百分比(例如,百分之三十(30%))。在另一個實(shí)施例中,處理器130被配置為從每個邏輯存儲組1210離臺存儲軌道直至達(dá)到預(yù)定最小數(shù)量的存儲軌道。
[0030]例如,在包括十個(10)邏輯存儲組1210的實(shí)施例中,其中每個邏輯存儲組1210被分配以高速緩存120的總存儲空間的百分之10(10% )并且預(yù)定的最小存儲軌道數(shù)量為百分之三十(30% ),處理器130將繼續(xù)從包括多于高速緩存120的總體存儲容量的百分之三(3% ) ( BP,10% X30%= 3% )的每個邏輯存儲組1210中使得存儲軌道離臺。一旦特定邏輯存儲組1210已經(jīng)達(dá)到了百分之三的閾值,處理器130就將停止或不再從該特定存儲軌道使得存儲軌道離臺直至該特定邏輯存儲組1210使用多于預(yù)定數(shù)量的存儲軌道(即,在該示例中為高速緩存的總存儲容量的百分之三)。
[0031]在各個實(shí)施例中,處理器130被配置為利用公式來確定要在從每個相應(yīng)邏輯存儲組1210中使得存儲軌道離臺時所利用的離臺任務(wù)的數(shù)量。在各個實(shí)施例中,該公式基于高速緩存120的全局壓力因數(shù),因?yàn)槠渖婕暗矫總€相應(yīng)邏輯存儲組1210。也就是說,用來使得存儲軌道從每個相應(yīng)邏輯存儲組1210離臺的離臺任務(wù)的數(shù)量與其所分配的存儲空間的數(shù)量成比例,每個相應(yīng)邏輯存儲組1210被乘以該全局壓力因數(shù),全局壓力因數(shù)是高速緩存120的總量中被邏輯存儲組1210所利用的存儲空間的總計(jì)百分比所確定的因數(shù)。
[0032]在一個實(shí)施例中,該公式包括在特定邏輯存儲組1210利用其所分配的存儲空間的較大數(shù)量并且全局壓力因數(shù)高時所利用的預(yù)定最大數(shù)量的離臺任務(wù)(例如,四十(40)個離臺任務(wù))。在另一個實(shí)施例中,當(dāng)特定邏輯存儲組1210利用小于或等于有關(guān)其在高速緩存120中所分配的存儲空間數(shù)量的預(yù)定最小數(shù)量的存儲空間數(shù)量時,該公式包括所利用的缺省為零(O)的離臺任務(wù)。
[0033]在各個實(shí)施例中,處理器130被配置為選擇軌道以便從最近最少使用(LRU)列表中離臺,并且將所選擇的軌道移動至離臺等待列表。經(jīng)由處理器130所選擇的軌道被分組并且從離臺等待列表中進(jìn)行離臺。
[0034]圖2是示出根據(jù)本發(fā)明的計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)存儲系統(tǒng)的硬件結(jié)構(gòu)的示例性框圖200。示出了主機(jī)計(jì)算機(jī)210、220、225,它們均作為數(shù)據(jù)存儲系統(tǒng)200的一部分而用作執(zhí)行數(shù)據(jù)處理的中央處理單元。主機(jī)(物理或虛擬設(shè)備)210、220和225可以是用來在數(shù)據(jù)存儲系統(tǒng)200中實(shí)現(xiàn)本發(fā)明的用途的一個或多個新的物理設(shè)備或邏輯設(shè)備。在一個實(shí)施例中,僅作為示例,數(shù)據(jù)存儲系統(tǒng)200可以被實(shí)施為IBM? System Storage?DS8000?o網(wǎng)絡(luò)連接260可以是光纖信道結(jié)構(gòu)、光纖信道點(diǎn)對點(diǎn)鏈路、通過以太網(wǎng)結(jié)構(gòu)或點(diǎn)對點(diǎn)鏈路的光纖通道、FICON或ESCON I/O接口、任意其它I/O接口類型、無線網(wǎng)絡(luò)、有線網(wǎng)絡(luò)、LAN、WAN、異類的、同類的、公有的(即,互聯(lián)網(wǎng))、私有的,或者其任意組合。主機(jī)210、220和225可以處于本地或者在一個或多個位置間進(jìn)行分布,并且可以被配以任意類型的結(jié)構(gòu)(或結(jié)構(gòu)信道)(圖2中未示出)或者針對存儲控制器240的網(wǎng)絡(luò)適配器260,諸如光纖信道、FIC0N、ESC0N、以太網(wǎng)、光纖、無線或同軸適配器。數(shù)據(jù)存儲系統(tǒng)200因此配備有適當(dāng)結(jié)構(gòu)(圖2中未示出)或網(wǎng)絡(luò)適配器260以進(jìn)行通信。數(shù)據(jù)存儲系統(tǒng)200在圖2中被描繪為包括存儲控制器240和存儲230。在一個實(shí)施例中,這里所描述的實(shí)施例可被應(yīng)用于各種類型的計(jì)算架構(gòu),諸如在使用這里所描述的各個實(shí)施例的虛擬集群管理環(huán)境中應(yīng)用。
[0035]為了有助于對這里所描述的方法更為清楚的理解,存儲控制器240在圖2中被示為單個處理單元,包括微處理器242、系統(tǒng)存儲器243和非易失性存儲(NVS) 216,這將在以下更為詳細(xì)地描述。注意到,在一些實(shí)施例中,存儲控制器240由多個處理單元組成,其中每個具有其自己的處理器聯(lián)合體和系統(tǒng)存儲器,并且在數(shù)據(jù)存儲系統(tǒng)內(nèi)通過專用網(wǎng)絡(luò)進(jìn)行互連。存儲230可以包括一個或多個諸如存儲陣列的存儲設(shè)備,它們通過存儲網(wǎng)絡(luò)而連接至存儲控制器240。
[0036]在一些實(shí)施例中,存儲230中所包括的設(shè)備可以以環(huán)形架構(gòu)進(jìn)行連接。存儲控制器240對存儲230進(jìn)行管理并且有助于對即定于存儲230的寫入和讀取請求的處理。存儲控制器240的系統(tǒng)存儲器243存儲操作軟件250、程序指令和數(shù)據(jù),處理器242可以對它們進(jìn)行訪問以便執(zhí)行與管理存儲230相關(guān)聯(lián)的功能和方法步驟,并且執(zhí)行本發(fā)明的步驟和方法。如圖2所示,系統(tǒng)存儲器243還可以包括用于存儲230的高速緩存245或者與其進(jìn)行通信,用于存儲230的高速緩存在這里還被稱作“高速緩沖存儲器”,其用于緩存“寫入數(shù)據(jù)”和“讀取數(shù)據(jù)”,它們分別是指寫入/讀取請求及其相關(guān)聯(lián)的數(shù)據(jù)。在一個實(shí)施例中,高速緩存245在系統(tǒng)存儲器243之外的設(shè)備中進(jìn)行分配,仍然能夠由微處理器242所訪問,并且除了執(zhí)行如這里所描述的操作之外還可以用來針對數(shù)據(jù)損失提供附加的安全性。
[0037]在一些實(shí)施例中,為了提升數(shù)據(jù)存儲系統(tǒng)200的性能,高速緩存245利用易失性存儲器和非易失性存儲器來實(shí)施,并且經(jīng)由本地總線(圖2中未示出)耦合至微處理器242。數(shù)據(jù)存儲控制器中所包括的NVS216可由微處理器242訪問并且用來為其它附圖中所描述的本發(fā)明的操作和執(zhí)行提供附加的支持。NVS216還可以被稱作“持久性”高速緩存或“高速緩存存儲器”,并且利用可能采用外部電力來保持存儲于其中的數(shù)據(jù)的非易失性存儲器來實(shí)施。NVS可以出于適合實(shí)現(xiàn)本發(fā)明的目標(biāo)的任何目的而存儲在高速緩存245中并且隨其進(jìn)行存儲。在一些實(shí)施例中,在數(shù)據(jù)存儲系統(tǒng)200失去電力的情況下,諸如電池的備用電源(圖2中未示出)為NVS216提供充分電力以保存存儲在其中的數(shù)據(jù)。在某些實(shí)施例中,NVS216的容量小于或等于高速緩存245的總體容量。
[0038]存儲230在物理上可以包括一個或多個諸如存儲陣列的存儲設(shè)備。存儲陣列是諸如硬盤的個體存儲設(shè)備的邏輯分組。在某些實(shí)施例中,存儲230包括JBOD (完全磁盤束)陣列或RAID(獨(dú)立冗余磁盤陣列)陣列。物理存儲陣列的集合可以進(jìn)一步被組合以形成邏輯存儲組,其將物理存儲與邏輯配置脫離關(guān)聯(lián)。邏輯存儲組中的存儲空間可以被分配給邏輯卷,該邏輯卷定義了寫入/讀取請求中所指定的存儲位置。
[0039]在一個實(shí)施例中,如圖2所示的存儲系統(tǒng)可以包括邏輯全或者簡單地稱為“卷”,其可能具有不同類型的分配。存儲230a、230b和230η被示為數(shù)據(jù)存儲系統(tǒng)200中的邏輯存儲組,并且在這里被稱作邏輯存儲組230a、230b和230η。邏輯存儲組可以處于數(shù)據(jù)存儲系統(tǒng)200本地,或者可以位于物理上遠(yuǎn)程的位置。換句話說,本地存儲控制器可以與遠(yuǎn)程存儲控制器相連接并且對在遠(yuǎn)程位置的存儲進(jìn)行管理。邏輯存儲組230a被示為配置有兩個完整卷234和236以及一個部分卷232a。邏輯存儲組230被被示為具有另一個部分卷232b。因此,卷232跨邏輯存儲組230a和230b進(jìn)行分配。邏輯存儲組230η被示為完全分配給卷238—也就是說,邏輯存儲組230η是指卷238的整個物理存儲。從以上示例將會意識到,卷可以被配置為包括一個或多個部分和/或完整卷。卷和邏輯存儲組可以被進(jìn)一步劃分為所謂的“軌道”,其表示固定的存儲分塊。軌道因此與給定卷相關(guān)聯(lián)并且可以被給予給定邏輯存儲組。
[0040]存儲控制器240可以包括離臺管理模塊255、選擇模塊257(例如,軌道選擇模塊)、最近最少使用(LRU)列表模塊258和順序編號模塊259。離臺管理模塊255、選擇模塊257,LRU列表模塊258和順序編號模塊259可以是同時工作的一個完整模塊或者是單獨(dú)模塊。離臺管理模塊255、選擇模塊257、LRU列表模塊258和順序編號模塊259可以具有一些內(nèi)部存儲器(未示出)并且可以存儲未處理、已處理或“半處理”數(shù)據(jù)。離臺管理模塊255、選擇模塊257、LRU列表模塊258和順序編號模塊259可以彼此結(jié)合地進(jìn)行工作,并且與存儲控制器240、主機(jī)210、220、225的各個組件以及可以經(jīng)由存儲結(jié)構(gòu)260遠(yuǎn)程連接的其它存儲控制器240和主機(jī)210、220、225相結(jié)合地進(jìn)行工作。離臺管理模塊255、選擇模塊257、LRU列表模塊258和順序編號模塊259在結(jié)構(gòu)上都可以是一個完整模塊,或者可以與其它個體模塊相關(guān)聯(lián)和/或連同其被包括。離臺管理模塊255、選擇模塊257、LRU列表模塊258和順序編號模塊259也可以位于高速緩存245或者存儲控制器240的其它組件中。
[0041]存儲控制器240包括用于控制針對主機(jī)計(jì)算機(jī)210、220、225的光纖信道協(xié)議的控制開關(guān)241,用于控制所有存儲控制器240的微處理器242,用于存儲控制存儲控制器240的操作的微程序(操作軟件)250的非易失性控制存儲器243,用于臨時存儲(緩存)數(shù)據(jù)的高速緩存245,以及用于輔助高速緩存245讀取和寫入數(shù)據(jù)的緩沖器244,用于控制協(xié)議以便控制往來于離臺管理模塊255的數(shù)據(jù)傳輸?shù)目刂崎_關(guān)241、選擇模塊257、LRU列表模塊258和可以在其中進(jìn)行信息設(shè)置的順序編號模塊259??梢詫?shí)施多個緩沖器244以對這里所描述的方法和步驟進(jìn)行輔助。
[0042]在一個實(shí)施例中,主機(jī)計(jì)算機(jī)與一個或多個物理或虛擬設(shè)備210、220、225以及存儲控制器240通過作為接口網(wǎng)絡(luò)適配器(這可以是光纖信道)260進(jìn)行連接,即經(jīng)由被稱作“結(jié)構(gòu)”交換機(jī)進(jìn)行連接。微處理器242可以對存儲器243進(jìn)行控制以存儲來自集群主機(jī)/節(jié)點(diǎn)設(shè)備(物理或虛擬)210的命令信息以及用于識別主機(jī)/節(jié)點(diǎn)設(shè)備(物理或虛擬)210的信息??刂崎_關(guān)241、緩沖器244、高速緩存245、操作軟件250、微處理器242、存儲器243、NVS216、離臺管理模塊255、選擇模塊257、LRU列表模塊258和順序編號模塊259互相通信并且可以是單獨(dú)組件或者是一個(或多個)個體組件。而且,如果并非全部組件,可以隨存儲器243包括諸如操作軟件250的若干組件。出于適于本發(fā)明的目的,所示出設(shè)備內(nèi)的每個組件可以鏈接在一起并且可以互相通信。
[0043]轉(zhuǎn)向圖3,描繪了圖示使得離臺沖突最小化的示例性方法300的流程圖。方法300開始(步驟302)。方法300將軌道的離臺分組(例如,被選擇進(jìn)行離臺的軌道的分組)限制至最近最少使用(LRU)列表的底部部分,而不對LRU列表的最近最多使用(MRU)端的軌道進(jìn)行分組以避免離臺沖突(步驟304)。方法300從LRU列表的底部部分使得軌道的離臺分組進(jìn)行離臺(步驟306)。方法300結(jié)束(步驟308)。
[0044]向LRU列表中的軌道添加順序編號
[0045]在一個實(shí)施例中,當(dāng)軌道被添加到列表的MRU端時,該軌道被更新以順序編號。順序編號可以通過使用當(dāng)前時間戳獲得,和/或順序編號可以是單遞增編號。對于前一情況而言,順序編號僅是時間戳的函數(shù)。對于后一情況而言,維護(hù)用于順序編號的計(jì)數(shù)器。當(dāng)軌道被添加到MRU端時軌道被分配以該計(jì)數(shù)器并且該計(jì)數(shù)器隨后遞增。
[0046]轉(zhuǎn)向圖4,描繪了圖不用于向最近最少使用列表添加順序編號的不例性方法400的流程圖。方法400開始(步驟402)。方法400將軌道添加至最近最少使用(LRU)列表(步驟404)的最近最多使用(MRU)端(步驟404)。方法400獲得順序編號(例如,使用當(dāng)前時間戳和/或單遞增編號)(步驟406)。該方法為軌道添加和/或更新以順序編號(步驟 408)。
[0047]離臺分組
[0048]在一個實(shí)施例中,僅作為示例,離臺TCB將從最近最少使用(LRU)列表揀取軌道并且開始離臺分組。在一個實(shí)施例中,為了對軌道(例如,元數(shù)據(jù)軌道)執(zhí)行離臺分組而執(zhí)行以下步驟。首先,離臺TCB將從最近最少使用(LRU)列表的底部端取得軌道并且開始離臺分組。接下來,對從最近最少使用(LRU)中所選擇的軌道的分組中的第一軌道和最后軌道進(jìn)行定位。接下來,從分組中的第一軌道開始進(jìn)行離臺所選擇的軌道。然而,如果軌道處于高速緩存中、被修改以及處于最近最少使用(LRU)列表底部的百分之(%)n之中,則該軌道被添加至離臺分組。如果軌道并非處于高速緩存中且并未被修改,則本發(fā)明移動至離臺分組中的下一個軌道。如果軌道的順序編號小于(O最近最多使用的順序編號減去最近最少使用的順序編號并隨后乘以(X/100)(例如,軌道的順序編號小于(〈)((MRU順序編號-LRU順序編號)*(X/100)),則該軌道處于LRU列表底部的百分之n(例如,“X” % )中。最后,如果這是分組中最后的軌道,則該處理結(jié)束對分組的離臺。換句話說,本發(fā)明保持進(jìn)行直至軌道被添加至離臺任務(wù)。一旦離臺任務(wù)已經(jīng)處理了所有軌道并且構(gòu)建了分組,本發(fā)明就對整個分組進(jìn)行離臺。
[0049]轉(zhuǎn)向圖5,描繪了圖示用于從最近最少使用(LRU)列表對軌道進(jìn)行分組和離臺的示例性方法500的流程圖。方法500開始(步驟502)。方法500通過從最近最少使用(LRU)列表選擇軌道而開始,并且開始離臺分組(步驟504)。方法500定位離臺分組中的第一軌道和最后軌道(步驟506)。可以使用順序編號來定位第一軌道和最后軌道的相對位置。方法500從離臺分組中的第一軌道開始離臺(步驟508)。方法500隨后確定該軌道是否位于高速緩存中、被修改以及處于LRU列表的底部(步驟510)。如果是,則方法500將該軌道添加至離臺分組(步驟512)。如果否,則方法500移動至離臺分組中的下一個軌道(步驟514)。方法500隨后確定該軌道是否為離臺分組中最后的軌道(步驟516)。如果是,則方法500結(jié)束(步驟518)。如果否,則方法在對該軌道離臺之后返回510。
[0050]如本領(lǐng)域技術(shù)人員將會意識到的,本發(fā)明的各方面可以被實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品、因此,本發(fā)明的各方面可以采用完全硬件的實(shí)施例、完全軟件的實(shí)施例(包括固件、駐留軟件、微代碼等)或者采用結(jié)合軟件和硬件方面的實(shí)施例,它們?nèi)慷伎梢栽谶@里被統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,本發(fā)明的各方面可以采取在具有記錄于其上的計(jì)算機(jī)可讀程序代碼的一個或多個計(jì)算機(jī)可讀介質(zhì)上實(shí)現(xiàn)的計(jì)算機(jī)程序產(chǎn)品的形式。
[0051]可以采用一個或多個計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號介質(zhì)或物理的計(jì)算機(jī)可讀存儲介質(zhì)。物理的計(jì)算機(jī)可讀存儲介質(zhì)例如可以是電子、磁性、光纖、晶體、聚合物、電磁、紅外或半導(dǎo)體系統(tǒng)、裝置或設(shè)備,或者以上的任意適當(dāng)組合,但是并不局限于此。物理的計(jì)算機(jī)可讀存儲介質(zhì)的示例包括但并不局限于具有一個或多個線路的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、RAM、ROM和EPROM、閃存、光纖、CD-ROM、光學(xué)存儲設(shè)備、磁性存儲設(shè)備,或者以上的任意組合。在本文的上下文中,計(jì)算機(jī)可讀存儲介質(zhì)可以是能夠包含或存儲供指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或者結(jié)合它們使用的程序或數(shù)據(jù)的任意有形介質(zhì)。
[0052]記錄于計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)代碼可以使用任意適當(dāng)介質(zhì)進(jìn)行傳送,包括但并不局限于無線、有線、光線、射頻(RF)等,或者以上的任意適當(dāng)組合。用于執(zhí)行本發(fā)明各方面的操作的計(jì)算機(jī)代碼可以以諸如“C”編程語言或其它類似編程語言的任意靜態(tài)語言進(jìn)行編寫。計(jì)算機(jī)代碼可以作為獨(dú)立軟件包完全在用戶的計(jì)算機(jī)上執(zhí)行,部分在用戶的計(jì)算機(jī)上執(zhí)行,部分在用戶計(jì)算機(jī)上且部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行,或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后者的情況下,遠(yuǎn)程計(jì)算機(jī)可以通過任意類型的網(wǎng)絡(luò)或通信系統(tǒng)連接至用戶的計(jì)算機(jī),該網(wǎng)絡(luò)或通信系統(tǒng)包括但并不局限于局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)、聚合網(wǎng)絡(luò),或者可以形成到外部計(jì)算機(jī)的連接(例如,使用互聯(lián)網(wǎng)提供商而通過互聯(lián)網(wǎng))。
[0053]以上參考根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖對本發(fā)明的各方面進(jìn)行了描述。將要理解的是,流程圖和/或框圖中的每個框以及流程圖和/或框圖中框的組合能夠通過計(jì)算機(jī)程序指令來實(shí)施。這些計(jì)算機(jī)程序指令可以被提供至通用計(jì)算機(jī)、專用計(jì)算機(jī)或者其它可編程數(shù)據(jù)處理裝置的處理器以產(chǎn)生機(jī)器,而使得經(jīng)由計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令形成用于實(shí)施流程圖和/或框圖中的一個或多個框中所指定的功能/動作的手段。
[0054]這些計(jì)算機(jī)程序指令還可以存儲在計(jì)算機(jī)可讀介質(zhì)中,其能夠?qū)τ?jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或以特定方式工作的其它設(shè)備進(jìn)行指示而使得存儲在計(jì)算機(jī)可讀介質(zhì)中的指令產(chǎn)生包括實(shí)施流程圖和/或框圖中的一個或多個框中所指定的功能/動作的指令的制造商品。計(jì)算機(jī)程序指令還可以被加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)后處理裝置或者其它設(shè)備上而使得一系列操作步驟得以在該計(jì)算機(jī)、其它可編程數(shù)據(jù)后處理裝置或者其它設(shè)備上得以執(zhí)行以產(chǎn)生計(jì)算機(jī)實(shí)施的過程,而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令提供用于實(shí)施流程圖和/或框圖中的一個或多個框中所指定的功能/動作的過程。
[0055]以上附圖中的流程圖和框圖示出了根據(jù)本發(fā)明各個實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的架構(gòu)、功能和執(zhí)行操作。在這方面,流程圖或框圖的個體框能夠示出包括用于實(shí)施(多個)所指定邏輯功能的一個或多個可執(zhí)行指令的模塊、分段或代碼部分。還應(yīng)當(dāng)注意的是,在可替換的實(shí)施方式示例中,框中所指示的功能有時是以與圖中所示有所不同的順序來執(zhí)行。例如,根據(jù)所涉及的功能,順序示出的兩個框?qū)嶋H上可以基本上同時執(zhí)行,或者有事可以以逆向順序執(zhí)行。還要注意到的是,框圖和/或流程圖中的框以及框圖和/或流程圖中的框的組合可以由執(zhí)行所指定的功能和動作的專用的基于硬件的系統(tǒng)來執(zhí)行,或者由專用硬件和計(jì)算機(jī)指令的組合來執(zhí)行。
[0056]雖然已經(jīng)對本發(fā)明的一個或多個實(shí)施例進(jìn)行了詳細(xì)描述,但是本領(lǐng)域技術(shù)人員將會意識到,可以針對那些實(shí)施例進(jìn)行修改和調(diào)試而并不背離如以下權(quán)利要求中所給出的本發(fā)明的范圍。
【權(quán)利要求】
1.一種用于通過計(jì)算環(huán)境中的處理器設(shè)備來使得離臺沖突最小化的方法,所述方法包括: 將軌道的離臺分組限制于最近最少使用LRU列表的底部部分,而不對所述LRU列表中最近最多使用端的軌道進(jìn)行分組,以避免所述離臺沖突;以及 從所述LRU列表的所述底部部分對軌道的所述離臺分組進(jìn)行離臺。
2.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括執(zhí)行以下之一: 向所述LRU列表中的所述軌道添加順序編號,以及 針對所述LRU列表中的所述軌道維護(hù)所述順序編號。
3.根據(jù)權(quán)利要求2所述的方法,進(jìn)一步包括使用所述順序編號來定位所述LRU列表中經(jīng)修改的軌道的位置,其中所述順序編號是當(dāng)前獲得的時間戳和單遞增編號中的一種。
4.根據(jù)權(quán)利要求3所述的方法,進(jìn)一步包括當(dāng)一軌道被添加到所述LRU列表的最近最多使用端時,向所述一軌道添加所述順序編號之一。
5.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括將所述軌道的所述離臺分組限制于所述LRU列表的底部百分之N的部分。
6.根據(jù)權(quán)利要求5所述的方法,進(jìn)一步包括從所述LRU列表的所述底部百分之N的部分選擇所述軌道之一,并且將選擇的所述軌道之一進(jìn)行分組以用于離臺。
7.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括執(zhí)行以下之一: 從所述LRU列表的所述底部部分選擇用于離臺的軌道, 定位從所述LRU列表中選擇的軌道的所述離臺分組中的第一軌道和最后軌道二者, 從軌道的所述離臺分組中的所述第一軌道開始所述離臺, 如果一軌道被修改、位于高速緩存中以及位于所述LRU列表的所述底部百分之N的部分中,則將所述一軌道添加至軌道的所述離臺分組,否則: 移動至軌道的所述離臺分組中的下一選擇的所述軌道,以及 在所述最后軌道之后終止對所述軌道的所述離臺分組進(jìn)行的所述分組。
8.一種用于在計(jì)算環(huán)境中使得離臺沖突最小化的系統(tǒng),所述系統(tǒng)包括: 可在所述計(jì)算環(huán)境中進(jìn)行操作的至少一個處理器設(shè)備,其中處理器設(shè)備: 將軌道的離臺分組限制于最近最少使用LRU列表的底部部分,而不對所述LRU列表中最近最多使用端的軌道進(jìn)行分組,以避免所述離臺沖突;以及 從所述LRU列表的所述底部部分對軌道的所述離臺分組進(jìn)行離臺。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中所述至少一個處理器設(shè)備執(zhí)行以下之一: 向所述LRU列表中的所述軌道添加順序編號,以及 針對所述LRU列表中的所述軌道維護(hù)所述順序編號。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述至少一個處理器設(shè)備使用所述順序編號來定位所述LRU列表中經(jīng)修改的軌道的位置,其中所述順序編號是當(dāng)前獲得的時間戳和單遞增編號中的一種。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述至少一個處理器設(shè)備當(dāng)一軌道被添加到所述LRU列表的最近最多使用端時,向所述一軌道添加所述順序編號之一。
12.根據(jù)權(quán)利要求8所述的系統(tǒng),其中所述至少一個處理器設(shè)備將所述軌道的所述離臺分組限制于所述LRU列表的底部百分之N的部分。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述至少一個處理器設(shè)備從所述LRU列表的所述底部百分之N的部分選擇所述軌道之一,并且將選擇的所述軌道之一進(jìn)行分組以用于離臺。
14.根據(jù)權(quán)利要求8所述的系統(tǒng),其中所述至少一個處理器設(shè)備執(zhí)行以下之一: 從所述LRU列表的所述底部部分選擇用于離臺的軌道, 定位從所述LRU列表中選擇的所述軌道的所述離臺分組中的第一軌道和最后軌道二者, 從軌道的所述離臺分組中的所述第一軌道開始所述離臺, 如果一軌道被修改、位于高速緩存中以及位于所述LRU列表的所述底部百分之N的部分中,則將所述一軌道添加至軌道的所述離臺分組,否則: 移動至軌道的所述離臺分組中的下一選擇的所述軌道,以及 在所述最后軌道之后終止對所述軌道的所述離臺分組進(jìn)行的所述分組。
【文檔編號】G06F12/08GK104182179SQ201410214000
【公開日】2014年12月3日 申請日期:2014年5月20日 優(yōu)先權(quán)日:2013年5月23日
【發(fā)明者】M·T·本哈斯, L·M·古普塔, M·J·卡洛斯 申請人:國際商業(yè)機(jī)器公司