專利名稱:管理對在存儲器件之間遷移的磁道延伸區(qū)的寫入操作的制作方法
技術領域:
本發(fā)明涉及一種用于管理對在存儲器件之間遷移的磁道延伸區(qū)(extentsoftracks)的寫入操作的方法、系統以及計算機程序產品。
背景技術:
在層級存儲環(huán)境中,磁道延伸區(qū)可在諸如硬盤驅動器、固態(tài)存儲器件之類的不同存儲器件層之間遷移,這取決于存儲器件的特征與存取頻率和數據優(yōu)先級。例如,較常存取的延伸區(qū)和/或較高優(yōu)先級的延伸區(qū)可從較慢存取層遷移到較快存取層,而不常存取的延伸區(qū)和/或較低優(yōu)先級的延伸區(qū)可遷移到較慢存取層。在當前層級存儲環(huán)境中,在給定時段內在上層/池和下層/池之間多次來回遷移延伸區(qū)。在此前提下,下層將升級給定延伸區(qū),而不會認識到該延伸區(qū)在整體或部分上仍在 上層中保持未被修改。當遷移延伸區(qū)時,可能將來自延伸區(qū)的所有數據從一個存儲器件復制到另一個存儲器件。此類遷移將花費大量時間。在當前分層存儲架構中,上層可包含從先前降級的延伸區(qū)到下層的舊的未修改(冗余)區(qū)(tracts),其可用作第二級緩存。當前解決方案的主要缺點是效率較低,因為固態(tài)存儲器件(SSD)驅動器的讀取性能顯著高于硬盤驅動器的讀取性能。從已被停止供電的硬盤驅動器不必要地讀取數據還會 縮短硬盤的壽命 降低電源效率 增加數據請求的存取時間,因為必須首先為驅動器供電本領域中需要用于在存儲器件之間遷移磁道延伸區(qū)并解決上述問題的改進的技術。
發(fā)明內容
提供了一種用于管理對在存儲器件之間遷移的磁道延伸區(qū)的寫入操作的計算機程序、計算機程序產品、系統以及方法。處理將磁道延伸區(qū)從第二存儲器遷移到第一存儲器的操作。判定對于要遷移的延伸區(qū)是否存在延伸區(qū)對象。如果所述延伸區(qū)在先前時間預先被從所述第一存儲器遷移到所述第二存儲器,則所述延伸區(qū)對象存在。對于每個磁道,所述延伸區(qū)對象包括寫入指示符,指示當所述延伸區(qū)被預先遷移到所述第二存儲器時,自所述先前時間以來是否已在所述第二存儲器中更新該磁道。響應于判定所述延伸區(qū)對象存在,確定所述延伸區(qū)中具有這樣的寫入指示符的磁道所述寫入指示符指示自所述先前時間以來已在所述第二存儲器中更新該磁道。將所確定的磁道的數據從所述第二存儲器復制到所述第一存儲器中的空閑位置。對于每個所確定的磁道,在所述延伸區(qū)對象中更新所確定的磁道的表項,以將該磁道的數據被復制到的空閑位置指示為該磁道的有效地址。
現在將僅通過實例的方式參考附圖中所示的優(yōu)選實施例描述本發(fā)明,這些附圖是:圖I示出根據現有技術并且其中可實現本發(fā)明的一個優(yōu)選實施例的計算環(huán)境的一個實施例;圖2示出根據本發(fā)明的一個優(yōu)選實施例的延伸區(qū)對象中的表項的一個實施例;圖3示出根據本發(fā)明的一個優(yōu)選實施例的作為延伸區(qū)表的延伸區(qū)對象的一個實施例;圖4示出根據本發(fā)明的一個優(yōu)選實施例的將延伸區(qū)從第二存儲器遷移至第一存儲器的操作的一個實施例;圖5示出根據本發(fā)明的一個優(yōu)選實施例的用于處理對第一存儲器中存在的延伸區(qū)中的磁道的寫入請求的操作的一個實施例; 圖6示出根據本發(fā)明的一個優(yōu)選實施例的用于處理對第二存儲器中存在的延伸區(qū)中的磁道的寫入請求的操作的一個實施例。
具體實施例方式圖I示出在第一存儲器4與第二存儲器6中存儲數據磁道的服務器2的一個實施例。服務器2包括處理器8,處理器8包括一個或多個處理器器件與內存10,在內存10中,加載操作系統12以由處理器8執(zhí)行。操作系統12包括延伸區(qū)遷移代碼14,以管理在第一存儲器4與第二存儲器6之間由延伸區(qū)對象16所表示的磁道延伸區(qū)的遷移。磁道延伸區(qū)可以在第一存儲器4或第二存儲器6之一中是有效的,并可在第一存儲器4與第二存儲器6之間遷移。服務器2可以以循環(huán)架構等,通過存儲接口的單獨電纜在網絡上與第一存儲器4和第二存儲器6通信。第一存儲器4與第二存儲器6可包括不同類型的存儲器件,諸如固態(tài)存儲器件(SSD),其包含固態(tài)電子器件,諸如電可擦除可編程只讀存儲器(EEPR0M)、閃存、快閃磁盤(FlashDisk)、隨機存取內存(RAM)驅動器、存儲級內存(SCM)等、磁性存儲盤、光盤、磁帶等。內存8可包括一個或多個易失性或非易失性內存器件。延伸區(qū)遷移代碼14可以備選地實施為操作系統12外部的應用代碼,或可以以硬件邏輯實施,諸如專用集成電路(ASIC)、或計算機可讀存儲介質中的可編程處理器執(zhí)行代碼。在一個實施例中,第一存儲器4與第二存儲器6可包括存儲器件層級配置內的存儲層,其中層基于諸如輸入/輸出(I/o)存取規(guī)范(profile)速度、冗余之類的特征來定義存儲器。例如,第一存儲器4可包括高速存儲器,諸如SSD或RAM驅動器,且第二存儲器6可包括較慢存取存儲器,諸如硬盤驅動器或磁帶介質。采用本領域中公知的層級管理存儲技術,操作系統12可調用延伸區(qū)遷移代碼14,以將較不常被存取和/或具有較低優(yōu)先級的延伸區(qū)從第一存儲器4遷移至第二存儲器6,并將較常被存取和/或較高優(yōu)先級的磁道延伸區(qū)從第二存儲器6遷移至第一存儲器4。除了數據存取頻率與數據優(yōu)先級之外的數據特征可用來判定是否要在存儲層級的較高與較低層存儲器件之間遷移延伸區(qū)。在特定實施例中,延伸區(qū)對象16標識在第二存儲器6中連續(xù)存儲的磁道,這在第二存儲器6包括對于介質中連續(xù)存儲磁道具有改進的讀取/寫入存取的存儲器件(諸如硬盤驅動器與磁帶驅動器)的實施例中是有利的。但是,延伸區(qū)中的磁道數據可能未連續(xù)存儲在第一存儲器內,所述第一存儲器可包括未改進連續(xù)存儲磁道存取的存儲器件,諸如固態(tài)存儲器件(SSD)或隨機存取內存(RAM)驅動器。延伸區(qū)對象16包括在一個延伸區(qū)內管理的每個磁道的表項。每個磁道可包括相同大小的單個數據單元。服務器2可在第一存儲器4與第二存儲器6中,維護服務器2管理的每個單獨延伸區(qū)的多個延伸區(qū)對象16。另外,可存在額外的存儲器件,使得服務器2可在兩個以上存儲器中管理磁道延伸區(qū)的遷移,其中不同存儲器可具有不同I/O存取規(guī)范。圖2示出延伸區(qū)對象16中的表項50的一個實施例,所述表項提供有關延伸區(qū)中的一個磁道的信息。磁道標識符(ID)52標識延伸區(qū)中的磁道。修改指示符54指示當延伸區(qū)與磁道預先從第一存儲器4遷移至第二存儲器6時,自先前時間以來,是否已在第二存儲器6中更新該磁道,因此指示當第二存儲器6上存在磁道與延伸區(qū)時,第一存儲器4是否具有磁道的最新版本。有效地址56指示第一存儲器4中具有第二存儲器6中的磁道的最新 版本的地址。有效校驗和58包括從有效地址56處的數據計算的校驗和值。所述校驗和值可利用本領域中公知的校驗和或散列算法計算,以確定數據的獨特或可能獨特的表示。如 果修改指示符52指示已在第二存儲器6更新磁道且第一存儲器4沒有最新數據版本,則由于在第二存儲器6處的更近的更新,有效地址56所標識的數據不包括有效版本,而是包括先前版本。在特定實施例中,可將數據更新寫入第一存儲器4中的新的空閑位置。在此情況下,磁道的延伸區(qū)表項50可維護第一存儲器4中存儲的磁道的每個先前版本a. . . η的先前版本地址6(V . . . 60n以及從磁道的先前版本計算的先前版本校驗和62p . . . 62n。延伸區(qū)表80中的先前版本地址6(V . . 60n的順序可指示先前版本的年齡,其中最新的先前版本地址是第一個,即60i,最舊的先前版本地址為最后一個,即60n。服務器2可基于各種因素(諸如可用空間、預定的版本限制數、可用來存儲先前版本的預定空間等)限制在第一存儲器4中所維護的數據版本數。在第一存儲器4包括SSD的實施例中,當更新時常存取的邏輯地址時,作為稱為寫入平衡(Wear Leveling)的過程的一部分,將最近寫入的數據寫入到第一存儲器4中的新的實際位置以跨存儲器件分散寫入,這將延長固態(tài)存儲器件的壽命。持續(xù)寫入到固態(tài)器件的同一物理位置會損耗固態(tài)存儲器件中的存儲塊。圖3示出實現為延伸區(qū)表80的延伸區(qū)對象的一個實例,所述延伸區(qū)表對于每個磁道具有一個行,并且各列提供有關延伸區(qū)對象的信息。圖4示出在延伸區(qū)遷移代碼14中實施的操作的一個實施例,此操作使延伸區(qū)從第二存儲器6遷移或升級到第一存儲器4。在處理遷移延伸區(qū)的請求(步驟100)后,判定(步驟102)要遷移磁道的延伸區(qū)的延伸區(qū)對象16是否存在。如果否,則延伸區(qū)遷移代碼14進行步驟104,以創(chuàng)建延伸區(qū)的新延伸區(qū)對象16,并清除每個延伸區(qū)表項50(圖2)的修改指示符54,以指示未在第二存儲器2中修改數據。對于在延伸區(qū)16的每個磁道,延伸區(qū)遷移代碼14對延伸區(qū)中每個磁道執(zhí)行操作循環(huán)(步驟106-114)。對于每個磁道,將磁道從第二存儲器6復制到第一存儲器4中的空閑位置(步驟108)。延伸區(qū)遷移代碼14計算(步驟110)所復制磁道的校驗和,并將磁道的有效地址56設置(步驟112)成第一存儲器4中該磁道被復制到的空閑位置;且將有效校驗和58設置成所計算的校驗和值。在初次將延伸區(qū)升級及遷移到第一存儲器4時,執(zhí)行步驟104-114的操作。
如果(步驟102)對于正在升級的延伸區(qū),延伸區(qū)對象16已存在,則該延伸區(qū)預先被從第一存儲器4遷移到第二存儲器6,且在步驟116至128對延伸區(qū)中每個磁道執(zhí)行循環(huán),以從第二存儲器6遷移或升級到第一存儲器4。如果(步驟118)所考慮磁道的修改指示符54指示磁道未在第二存儲器6中更新,則不對磁道執(zhí)行任何操作且不會復制數據,因為數據并未改變。如果(步驟118)磁道的修改指示符54指示磁道已被修改,則將磁道的數據從第二存儲器6復制(步驟120)到第一存儲器4中的空閑位置。將磁道的新的先前版本地址設置成當前有效地址56,使磁道的當前數據成為先前版本,且將磁道的新的先前版本校驗和設置成當前有效校驗和58。然后,將有效地址56設置(步驟124)成數據被復制到的空閑位置的地址,且將有效校驗和58設置(步驟126)成從復制到空閑位置的數據計算的校驗和值。然后,先前版本對(先前版本地址6(^——60n與先前版本校驗和62a——62n)被重新排序(步驟127),所以先前版本信息會按先前版本的年齡或版本號加以排序。在延伸區(qū)對象16包括延伸區(qū)表80 (圖3)以執(zhí)行步驟127的重新排序操作及產生當前有效數據與校驗和先前版本的一個實施例中,延伸區(qū)遷移代碼14可將當前的先前版本6(V . . . 60n與62a. . . . 62n的列向右移兩列,以覆寫及占據先前版本2···· n+1的列,然后 將當前有效地址56與當前有效校驗和58復制到最新當前先前版本地址60i與62lt)如此,使當前版本地址56與校驗和58成為最近先前版本,以在有效字段56與58內騰出空間給復制到空閑位置的已更新數據。在備選實施例中,排序以指示先前版本排序的指針或其他信息表不。對于圖4的操作,當延伸區(qū)從第二存儲器6遷移或升級到第一存儲器4時,自延伸區(qū)從第一存儲器4遷移或降級到第二存儲器6以來,只有已在第二存儲器6中改變的磁道才被復制到第一存儲器4。在第一存儲器4包括SSD的實施例中,此描述的操作提供寫入平衡,因為新數據被寫入到新位置,且可避免對第一存儲器4的非必要寫入,因為自先前遷移以來,未在第二存儲器6修改的數據不會被復制到第一存儲器4。圖5示出由操作系統12執(zhí)行的操作的一個實施例,其處理對第一存儲器4中存在的延伸區(qū)中的磁道的寫入。在接收寫入后,操作系統12 (或一些其他代碼)從目標磁道的寫入計算(步驟152)暫時校驗和。如果(步驟154)暫時校驗和匹配磁道的有效校驗和58,則將完成返回給寫入請求,因為在磁道有效地址56處的數據與要寫入的數據相同。如此,數據不必被寫入到第一存儲器4,這在第一存儲器包括壽命受到連續(xù)寫入到相同位置的影響而減少的SSD或其他類型器件的實施例中,會降低寫入平衡。如果(步驟154)暫時校驗和值不匹配有效校驗和58,則操作系統12判定(步驟158)暫時校驗和值是否匹配先前版本校驗和62” ...62n中的一個??赡艽嬖诹銈€或更多先前版本地址與校驗和值。如果匹配,則操作系統12執(zhí)行操作160-166,以使用在先前版本地址6(V . . . 60n之一處的先前版本數據,因為先前版本數據匹配要寫入的數據。在步驟160,操作系統12將新的先前版本地址與新的先前版本校驗和值設置(步驟160)成有效地址與有效校驗和值。此新的先前版本地址與新的先前版本校驗和變成最新的先前版本地址6(^與校驗和62lt)操作系統12將磁道的寫入數據寫入(步驟162)到第一存儲器的空閑位置,并將有效地址56設置(步驟164)成數據被復制到的空閑位置的地址,并將有效校驗和58設置(步驟166)成從空閑位置中的數據計算的校驗和值。然后,先前版本對(先前版本地址6(V . . . 60n與先前校驗和62a. . . . 62n)被重新排序(步驟167),所以先前版本信息會按先前版本的年齡或版本號加以排序。
在延伸區(qū)對象16包括延伸區(qū)表80 (圖3)的實施例中,在創(chuàng)建新的先前版本地址與先前版本校驗和以執(zhí)行步驟167的重新排序操作之后,操作系統12可在所述表中將所有當前的先前版本地址6(V . . 60 與校驗和62p . . 62n向右移兩列,以覆寫列數據,并使其成為先前版本地址602. . . 60n+1與校驗和622. . . 62n+1,然后所創(chuàng)建的新的先前版本地址與校驗和變成先前版本地址6(^與校驗和SZ1。在備選實施例中,排序可藉由指示先前版本排序的指針或其他信息表示。如果(步驟158)暫時校驗和匹配一個所確定的先前版本校驗和62p . . . 62n,則操作系統12緩沖(步驟168)匹配先前校驗和的所確定的先前 地址與先前校驗和。操作系統12將新的先前版本地址與新的先前版本校驗和設置(步驟170)成當前有效地址56與有效校驗和58的值,以產生最新先前版本的當前有效地址與校驗和。在執(zhí)行步驟170之后,操作系統12接著分別將有效地址56與有效校驗和58設置(步驟172)成所緩沖的先前版本地址與先前的版本校驗和。在延伸區(qū)對象16包括延伸區(qū)表80 (圖3)的實施例中,在步驟168-172產生一個先前版本地址(例如,60i)、先前版本校驗和(例如,62^、當前有效版本56與58之后,操作系統12可接著在匹配的緩沖先前版本地址60i與校驗和62i之后,在表80中將先前版本地址60i+1. . . 60n與先前版本校驗和62i+1. . . 62n的所有列向左移兩列,以覆寫復制到有效字段56與58的匹配的緩沖先前版本地址60i與校驗和62i所占據的列。藉由圖5所描述的實施例,操作系統12嘗試使用當前有效地址56與58或一個先前版本地址60Ρ . . 60η與新的有效地址56的校驗和62Ρ . . 62η與校驗和58,以避免必須將數據寫入到第一存儲器4。如此,操作系統12針對新的寫入數據,重復使用已在第一存儲器4中存在的數據。在第一存儲器4包括SSD的實施例中,使用寫入的有效或先前版本數據以避免寫入將避免磨損及延長SSD的壽命。圖6示出在操作系統12代碼(或其他組件)中實施的操作的一個實施例,其處理對第二存儲器6中存在的延伸區(qū)內的目標磁道的寫入。當圖6的操作開始時,延伸區(qū)對象16已建立。響應于(步驟200)接收到寫入,操作系統12從目標磁道的寫入計算(步驟202)暫時校驗和。如果(步驟204)暫時校驗和匹配磁道的有效校驗和58且如果(步驟205)修改指示符54設置成指示第二存儲器6內的磁道先前已修改,使得修改未在延伸區(qū)對象16中反映,則修改指示符54被清除(步驟206),因為第一存儲器4磁道將具有在第二存儲器6中修改的磁道。寫入數據被寫入(步驟208)到第二存儲器中的磁道,且將完成返回(步驟210)給寫入請求。在此情況下,因為在第一存儲器4內的磁道的有效地址56處的數據與在第二存儲器6寫入的數據相同,所以延伸區(qū)對象16不必被更新。如果(步驟205)修改指示符54未設置,則控制會進行步驟210而不寫入任何數據,因為在第一存儲器4與第二存儲器6兩者內的有效或最近寫入數據具有已匹配待寫入數據的數據。如果(步驟204)暫時校驗和不匹配有效校驗和58,則操作系統12判定(步驟212)暫時校驗和是否匹配先前版本校驗和62P . . . 62η中的一個。可能存在零個或更多先前版本地址與校驗和值。如果(步驟212)存在匹配,則操作系統12執(zhí)行操作214-218,以使用在先前版本地址60Ρ . . . 60η中的一個處的先前版本磁道,因為在第一存儲器6內的所確定的先前版本的磁道匹配寫入到第二存儲器6中的磁道的數據。操作系統12緩沖(步驟214)所確定的先前版本地址(例如,60Ρ、匹配的先前版本校驗和62i的先前版本校驗和(例如,62P。操作系統12將新的先前版本地址與新的先前版本校驗和設置(步驟216)成當前有效地址56與有效校驗和58值。執(zhí)行步驟216之后,操作系統12分別將有效地址56與有效校驗和58設置(步驟218)成緩沖的先前版本地址60i與先前版本校驗和62it)操作系統12清除(步驟206)修改指示符54以指示磁道未被修改,因為第一存儲器4具有在第二存儲器6處修改的數據。然后,控制進行步驟206至步驟208,以完成對第二存儲器6的寫入。在延伸區(qū)對象16包括延伸區(qū)表80 (圖3)的實施例中,在步驟212-216產生一個先前版本地址(例如,60Ρ與先前版本校驗和(例如,62P、當前有效版本56與58之后,操作系統12可接著在匹配的緩沖先前版本地址60i與校驗和62i之后,在表80中將先前版本地址60i+1與先前版本校驗和62i+1的所有列向左移動兩列,以覆寫匹配的緩沖先前版本地址60i與校驗和62i所占據的列。如果(步驟212)暫時校驗和不匹配一個先前版本校驗和,則設置修改指示符42(步驟222),以指示數據已在第二存儲器6中被修改,且控制進行到步驟208以完成到第二存儲器6的寫入。設置修改指示符54指示第一存儲器6可能沒有寫入到第二存儲器6的數據。在此情況下,在第一存儲器6中,有效地址56處的數據不是“有效數據”,因為磁道數據已在第二存儲器6中被修改,且在有效地址58處的磁道數據可能為最近先前版本。因此, 當設置修改指示符54時,有效地址56與有效校驗和56信息可能不能用于磁道的實際有效數據。藉由圖6所描述的實施例,如果第一存儲器4中的磁道的先前存在數據匹配要寫入到第二存儲器6的數據,操作系統12將嘗試使用當前有效地址56與58、或一個先前版本60!. . . 60n與校驗和62P . . 62n,作為在第一存儲器4中的新有效地址56與有效校驗和58。藉由更新延伸區(qū)對象16以反映第一存儲器4具有寫入到第二存儲器6的數據,在將具有修改后的磁道的延伸區(qū)從第二存儲器6遷移回第一存儲器4時,不必隨后使用寫入到第二存儲器6的磁道的數據來更新第一存儲器4,因為修改指示符54被清除。在第一存儲器4包括SSD的實施例中,使用第一存儲器4內的有效或先前磁道版本用于到第二存儲器6的寫入,將避免在稍后從第二存儲器6遷移到第一存儲器4的過程內必須寫入第一存儲器。避免對第一存儲器4的寫入可減少磨損及延長SSD的壽命。在圖5與6的實施例中,在沒有針對第一存儲器4或第二存儲器6中正在被寫入的磁道維護的延伸區(qū)對象的情況下,允許寫入進行而不執(zhí)行任何進一步動作。另外,如果對于寫入操作存在多個要寫入的磁道,則針對每個要寫入的磁道執(zhí)行圖5與6的操作。當將延伸區(qū)從第二存儲器遷移到第一存儲器時、當執(zhí)行對第一存儲器中存在的延伸區(qū)的寫入、以及當執(zhí)行對第二存儲器的寫入時,所描述的實施例提供了用于減少寫入第一存儲器的次數的技術。在第一存儲器包括SSD或其他存儲器件(其存儲壽命受到連續(xù)更新同一單元的影響而減少)的實施例中,所描述的實施例可減少磨損及延長存儲器件的壽命O其他實施例細節(jié)所描述的操作可以以利用標準編程和/或工程技術的方法、裝置或計算機程序產品實施,以產生軟件、固件、硬件或其任何組合。因此,實施例的各方面可采用完全硬件實施例、完全軟件實施例(包括固件、駐留軟件、微碼等)、或結合軟件與硬體方面(所有在此通常稱為“電路”、“模塊”或“系統”)的實施例的形式。此外,實施例的各方面可采用在其中包含計算機可讀程序代碼的一個或多個計算機可讀介質中體現的計算機程序產品的形式。
可以使用一個或多個計算機可讀介質的任何組合。計算機可讀介質可以是計算機可讀信號介質或計算機可讀存儲介質,計算機可讀存儲介質例如可以是-但不限于-電的、磁的、光的、電磁的、紅外線的、或半導體的系統、裝置、器件、或前述各項的任何適當的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括以下有一個或多個導線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或前述各項的任何適當的組合。在本文語境中,計算機可讀存儲介質可以是任何含有或存儲供指令執(zhí)行系統、裝置或器件使用的或與指令執(zhí)行系統、裝置或器件相聯系的程序的有形介質。計算機可讀信號介質可以包括例如在基帶中或作為載波的一部分傳播的帶有計算機可讀程序代碼的數據信號。這樣一種傳播信號可以采取任何適當的形式,包括-但不限于-電磁的、光的或其任何適當的組合。計算機可讀信號介質可以是不同于計算機可讀存儲介質的、可以傳達、傳播或傳輸供指令執(zhí)行系統、裝置或器件使用的或與指令執(zhí)行系統、裝置或器件相聯系的程序的任何一種計算機可讀介質。包含在計算機可讀介質中的程序代碼可以采用任何適當的介質傳輸,包括-但不限于-無線、有線、光纜、射頻等等、或上述各項的任何適當的組合。用于執(zhí)行本發(fā)明的各方面的操作的計算機程序碼,可以以一種或多種程序設計·語言的任何組合來編寫,所述程序設計語言包括面向對象的程序設計語言-諸如Java、SmalltalKC++之類,還包括常規(guī)的過程式程序設計語言-諸如“C”程序設計語言或類似的程序設計語言。程序碼可以完全地在用戶的計算上執(zhí)行、部分地在用戶的計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶的計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務器上執(zhí)行。在后一種情形中,遠程計算機可以通過任何種類的網絡-包括局域網(LAN)或廣域網(WAN)-連接到用戶的計算機,或者,可以(例如利用因特網服務提供商來通過因特網)連接到外部計算機。以下參照按照本發(fā)明實施例的方法、裝置(系統)和計算機程序產品的流程圖和/或框圖描述本發(fā)明的各方面。要明白的是,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數據處理裝置的處理器,從而生產出一種機器,使得通過計算機或其它可編程數據處理裝置執(zhí)行的這些指令,產生實現流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。也可以將這些計算機程序指令存儲在能指令計算機、其它可編程數據處理裝置或其他設備以特定方式工作的計算機可讀介質中,這樣,存儲在計算機可讀介質中的指令產生一個包括實現流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置的制品。也可以將計算機程序指令加載到計算機、其它可編程數據處理裝置或其他設備上,使得在所述計算機、其它可編程數據處理裝置或其他設備上執(zhí)行一系列操作步驟,以產生計算機實現的過程,從而在所述計算機或其它可編程裝置上執(zhí)行的指令就提供實現流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。在特定實施例中,圖I的服務器能以云計算環(huán)境中的云部件實施。在云計算環(huán)境中,在云計算遞送中涉及的硬件與軟件組件的系統架構可包括在網絡(諸如因特網)上彼此通信的多個云組件。例如,在特定實施例中,圖I的服務器可在網絡云中提供客戶端、其他服務器和軟件和/或硬件組件以及存儲和數據處理服務。服務器2可提供對存儲器4與6的可靠存儲服務與存取,以匹配云消費者的服務質量要求,包括需要存儲的客戶端及提供存儲服務給客戶端的其他服務器。服務器2可與客戶端通信,以通過網絡接口或其他應用編程接口提供存儲器4與6的存儲服務。除非明確表示,否則術語“ 一個實施例”、“實施例”、“各實施例”、“該實施例”、“所述實施例”以及“一個或多個實施例”指“本發(fā)明的一個或多個(但不是全部)實施例”。除非明確表示,否則術語“包括”、“包含”、“具有”及其變型指“包括但不限于”。除非明確表示,否則列舉的項目列表不暗示任何或所有項目是互斥的。除非明確表示,否則術語“一”、“一個”與“該”指“一個或多個”。 除非在此特別指定,否則彼此通信的設備不必彼此連續(xù)通信。此外,彼此通信的設備可直接或通過一個或多個媒介物間接通信。具有一些彼此通信的組件的實施例的描述不暗示需要所有此類組件。相反,描述多種可選組件來示意說明本發(fā)明的多種可能實施例。此外,盡管可以按照連續(xù)的順序來描述處理步驟、方法步驟、算法或類似步驟,但是此類處理、方法和算法可以被配置為以替代順序工作。換句話說,所描述的步驟的任何序列或順序并不一定指示要求按此順序執(zhí)行步驟。實際可以按任何順序執(zhí)行在此描述的處理的步驟。此外,可以同時執(zhí)行某些步驟。當在此描述單個設備或物品時,將顯而易見的是,可以使用多個設備/物品(無論它們是否協作)來代替單個設備/物品。同樣,當在此描述了多個設備或物品(無論它們是否協作)的情況下,將顯而易見的是,可以使用單個設備或物品來代替多個設備或物品,或者可以使用不同數目的設備/物品代替所示數目的設備或程序。設備的功能和/或特性可以替代地由一個或多個其他未明確描述為具有此類功能/特性的設備來體現。因此,本發(fā)明的其他優(yōu)選實施例不必包括設備本身。圖4-6的示意性操作顯示以特定順序發(fā)生的特定事件。在備選實施例中,特定操作能以不同的順序執(zhí)行、修改或移除。而且,可將步驟添加到上述邏輯,且仍然遵循描述的實施例。另外,在此描述的操作可連續(xù)發(fā)生或特定操作可被平行處理。此外,可由單個處理單元或分布式處理單元來執(zhí)行操作。出于例示與描述的目的,已提供本發(fā)明的各種優(yōu)選實施例的上述描述。所述描述并非旨在是窮舉的或是將本發(fā)明限于所公開的精確形式。鑒于以上教導,許多修改與變型是可能的。本發(fā)明的范圍不受此詳細描述的限制,而是由所附權利要求書限制。上述說明書、實例以及數據提供對本發(fā)明組成的制造與使用的完整描述。由于可在不偏離本發(fā)明的精神與范圍的情況下實現本發(fā)明的許多實施例,所以本發(fā)明主張的權利在以下所附的權利要求書內。
權利要求
1.一種用于管理第一存儲器與第二存儲器中的數據的方法,所述方法包括以下步驟 處理將磁道延伸區(qū)從所述第二存儲器遷移到所述第一存儲器的操作; 判定對于要遷移的延伸區(qū)是否存在延伸區(qū)對象,其中如果所述延伸區(qū)在先前時間預先被從所述第一存儲器遷移到所述第二存儲器,則所述延伸區(qū)對象存在,并且其中對于每個磁道,所述延伸區(qū)對象包括寫入指示符,指示當所述延伸區(qū)被預先遷移到所述第二存儲器時,自所述先前時間以來是否已在所述第二存儲器中更新該磁道 '及響應于判定所述延伸區(qū)對象存在而執(zhí)行以下步驟 確定所述延伸區(qū)中具有這樣的寫入指示符的磁道所述寫入指示符指示自所述先前時間以來已在所述第二存儲器中更新該磁道; 將所確定的磁道的數據從所述第二存儲器復制到所述第一存儲器中的空閑位置;及對于每個所確定的磁道,在所述延伸區(qū)對象中更新所確定的磁道的表項,以將該磁道的數據被復制到的空閑位置指示為該磁道的有效地址。
2.如權利要求I的方法,其中所述延伸區(qū)對象維護所述第一存儲器中的磁道數據的先前版本的信息,其中對于具有至少一個先前版本的每個磁道,該磁道的表項包括每個先前版本的先前版本地址,所述先前版本地址指示該磁道的該先前版本的數據在所述第一存儲器中的位置,其中所述方法還包括以下步驟 對于每個所確定的磁道,將新的先前版本地址設置成該磁道的有效地址,然后更新該有效地址以指示來自所述第二存儲器的數據被復制到的空閑位置。
3.如權利要求I或2的方法,還包括 提供包括固態(tài)存儲器件的所述第一存儲器;以及 提供包括具有慢于所述固態(tài)存儲器件的輸入/輸出存取規(guī)范的存儲器件類型的所述第二存儲器。
4.如任一上述權利要求的方法,其中所述第二存儲器將磁道連續(xù)存儲在所述延伸區(qū)中,并且其中所述方法還包括將所述第二存儲器中的已修改磁道復制到所述第一存儲器中與所述延伸區(qū)內的未修改磁道有關的非相鄰位置。
5.如任一上述權利要求的方法,其中每個表項包括從所述有效地址中標識的磁道數據計算的有效校驗和值,并且所述有效校驗和值用于在所述第一存儲器中維護的磁道的至少一個先前版本;所述第一存儲器中的磁道的先前版本的先前版本地址;以及從所述先前版本地址中標識的磁道數據計算的先前版本校驗和值,其中所述方法還包括以下步驟 接收對所述第一存儲器中存在的延伸區(qū)中的目標磁道的寫入; 從針對所述目標磁道的寫入計算暫時校驗和; 判定所述暫時校驗和是否匹配所述有效校驗和、或是否匹配所述目標磁道的延伸區(qū)對象中的表項內的至少一個先前版本校驗和中的一個; 使用所述有效地址或所述先前版本地址以及對應有效或先前版本校驗和,所述有效或先前版本校驗和匹配所述有效地址的所述暫時校驗和以及所述目標磁道的所述延伸區(qū)對象中的所述表項的有效校驗和;及 響應于判定所述暫時校驗和不匹配所述有效校驗和或不匹配所述至少一個先前版本校驗和中的任一個,將對所述目標磁道的寫入操作寫入到所述第一存儲器中的空閑位置。
6.如權利要求5的方法,其中響應于判定所述暫時校驗和匹配所述有效校驗和或匹配所述至少一個先前版本校驗和中的一個,對所述目標磁道的寫入的寫入步驟不寫入所述第一存儲器。
7.如權利要求5或6的方法,其中使用所述有效地址或所述先前版本地址以及匹配所述暫時校驗和的對應校驗和的步驟包括 響應于判定所述暫時校驗和匹配所述有效校驗和或匹配所述至少一個先前版本校驗和中的一個而返回寫入完成;及響應于判定所述暫時校驗和匹配所述至少一個先前版本校驗和中的一個,執(zhí)行以下步驟 針對匹配的先前版本校驗和而緩沖所述先前版本地址與所述先前版本校驗和; 將新的先前版本地址與新的先前版本校驗和設置成所述有效地址與所述有效校驗和的值;及 在設置所述新的先前版本地址與所述新的先前版本校驗和之后,分別將所述有效地址與所述有效校驗和設置成所緩沖的先前版本地址與所述先前版本校驗和。
8.如任一上述權利要求的方法,其中每個表項包括從所述有效地址中標識的磁道數據計算的有效校驗和值,并且所述有效校驗和值用于在所述第一存儲器中維護的磁道的至少一個先前版本;所述第一存儲器中的磁道的先前版本的先前版本地址;以及從所述先前版本地址中標識的磁道數據計算的先前版本校驗和值,其中所述方法還包括以下步驟 接收對所述第二存儲器中存在的延伸區(qū)中的目標磁道的寫入; 從針對所述目標磁道的寫入計算暫時校驗和; 判定所述暫時校驗和是否匹配所述有效校驗和、或是否匹配所述目標磁道的延伸區(qū)對象中的表項內的至少一個先前版本校驗和中的一個; 響應于判定匹配,使用所述有效地址或所述先前版本地址以及對應有效或先前版本校驗和,所述有效或先前版本校驗和匹配所述有效地址的所述暫時校驗和以及所述目標磁道的所述延伸區(qū)對象中的所述表項的有效校驗和。
9.如權利要求8的方法,所述方法還包括以下步驟 設置所述延伸區(qū)對象中的目標磁道的所述表項內的所述指示符,以指示已響應于判定所述暫時校驗和不匹配所述有效校驗和或不匹配所述至少一個先前版本校驗和中的一個而在所述第二存儲器中更新該磁道,其中所述指示符指示所述第一存儲器中的所述有效地址處的所述目標磁道的數據不是在所述第二存儲器中維護的磁道數據的最新版本。
10.如權利要求8或9的方法,所述方法還包括以下步驟 響應于判定所述暫時校驗和匹配所述至少一個先前版本校驗和中的一個,執(zhí)行以下步驟 針對匹配的先前版本校驗和而緩沖所述先前版本地址與所述先前版本校驗和; 將新的先前版本地址與新的先前版本校驗和分別設置成所述有效地址與所述有效校驗和的值;及 在設置所述新的先前版本地址與所述新的先前版本校驗和之后,分別將所述有效地址與所述有效校驗和設置成所緩沖的先前版本地址與所緩沖的先前版本校驗和。
11.如任一上述權利要求的方法,其中每個表項包括多個列,所述多個列包括在有效校驗和列中的有效校驗和值,其從有效地址列中的有效地址內標識的磁道數據來計算,且用于在所述第一存儲器中維護的磁道的至少一個先前版本;先前版本地址列,其具有所述第一存儲器中的磁道的先前版本的地址;以及先前版本校驗和列,其具有從所述先前版本地址處的磁道數據計算的校驗和值,其中所述方法還包括以下步驟 接收對所述第一存儲器或所述第二存儲器中存在的延伸區(qū)中的目標磁道的寫入; 從針對所述目標磁道的寫入計算暫時校驗和; 判定所述暫時校驗和是否匹配所述目標磁道的延伸區(qū)對象中的表項內的所述至少一個先前版本校驗和中的一個; 將所述先前版本地址與匹配所述暫時校驗和的對應先前版本校驗和寫入到所述目標磁道的延伸區(qū)對象中的所述表項的所述有效地址列與所述有效校驗和列;及 移位版本早于所述先前版本地址的版本且校驗和被寫入到所述有效地址列與所述有效校驗和列的任何先前地址列與先前校驗和列,以覆寫包括所述先前版本地址與寫入到所述有效地址列與所述有效校驗和列的對應先前版本校驗和的所述先前地址列與所述先前校驗和列。
12.—種與第一存儲器及第二存儲器通信的系統,所述系統包括 處理器; 內存,其包括由所述處理器執(zhí)行的代碼以執(zhí)行操作,所述系統包括處理部件,用于處理將磁道延伸區(qū)從所述第二存儲器遷移到所述第一存儲器的操作;判定部件,用于判定對于要遷移的延伸區(qū)是否存在延伸區(qū)對象,其中如果所述延伸區(qū)在先前時間預先被從所述第一存儲器遷移到所述第二存儲器,則所述延伸區(qū)對象存在,并且其中對于每個磁道,所述延伸區(qū)對象包括寫入指示符,指示當所述延伸區(qū)被預先遷移到所述第二存儲器時,自所述先前時間以來是否已在所述第二存儲器中更新該磁道;以及響應于判定所述延伸區(qū)對象存在 所述判定部件還可操作以確定所述延伸區(qū)中具有這樣的寫入指示符的磁道所述寫入指示符指示自所述先前時間以來已在所述第二存儲器中更新該磁道; 復制部件,用于將所確定的磁道的數據從所述第二存儲器復制到所述第一存儲器中的空閑位置;以及 更新部件,對于每個所確定的磁道,所述更新部件用于在所述延伸區(qū)對象中更新所確定的磁道的表項,以將該磁道的數據被復制到的空閑位置指示為該磁道的有效地址。
13.如權利要求12的系統,其中所述延伸區(qū)對象維護所述第一存儲器中的磁道數據的先前版本的信息,其中對于具有至少一個先前版本的每個磁道,該磁道的表項包括每個先前版本的先前版本地址,所述先前版本地址指示該磁道的該先前版本的數據在所述第一存儲器中的位置,其中所述系統還包括 設置部件,對于每個所確定的磁道,所述設置部件將新的先前版本地址設置成該磁道的有效地址,然后更新該有效地址以指示來自所述第二存儲器的數據被復制到的空閑位置。
14.如權利要求12或13的系統,其中所述第一存儲器包括固態(tài)存儲器件,并且其中所述第二存儲器包括具有慢于所述固態(tài)存儲器件的輸入/輸出存取規(guī)范的存儲器件類型。
15.如權利要求12至14中的任一權利要求的系統,其中每個表項包括從所述有效地址中標識的磁道數據計算的有效校驗和值,并且所述有效校驗和值用于在所述第一存儲器中維護的磁道的至少一個先前版本;所述第一存儲器中的磁道的先前版本的先前版本地址;以及從所述先前版本地址中標識的磁道數據計算的先前版本校驗和值,其中所述系統還包括 接收部件,用于接收對所述第一存儲器中存在的延伸區(qū)中的目標磁道的寫入; 計算部件,用于從針對所述目標磁道的寫入計算暫時校驗和; 所述判定部件,其還可操作以判定所述暫時校驗和是否匹配所述有效校驗和、或是否匹配所述目標磁道的延伸區(qū)對象中的表項內的至少一個先前版本校驗和中的一個; 使用部件,用于使用所述有效地址或所述先前版本地址以及對應有效或先前版本校驗和,所述有效或先前版本校驗和匹配所述有效地址的所述暫時校驗和以及所述目標磁道的所述延伸區(qū)對象中的所述表項的有效校驗和;以及 寫入部件,用于響應于判定所述暫時校驗和不匹配所述有效校驗和或不匹配所述至少一個先前版本校驗和中的任一個,將對所述目標磁道的寫入操作寫入到所述第一存儲器中的空閑位置
16.如權利要求12至14中的任一權利要求的系統,其中每個表項包括從所述有效地址中標識的磁道數據計算的有效校驗和值,并且所述有效校驗和值用于在所述第一存儲器中維護的磁道的至少一個先前版本;所述第一存儲器中的磁道的先前版本的先前版本地址;以及從所述先前版本地址中標識的磁道數據計算的先前版本校驗和值,其中所述系統還包括 接收部件,用于接收對所述第二存儲器中存在的延伸區(qū)中的目標磁道的寫入; 計算部件,用于從針對所述目標磁道的寫入計算暫時校驗和; 所述判定部件,其還可操作以判定所述暫時校驗和是否匹配所述有效校驗和、或是否匹配所述目標磁道的延伸區(qū)對象中的表項內的至少一個先前版本校驗和中的一個; 使用部件,用于響應于判定匹配而使用所述有效地址或所述先前版本地址以及對應有效或先前版本校驗和,所述有效或先前版本校驗和匹配所述有效地址的所述暫時校驗和以及所述目標磁道的所述延伸區(qū)對象中的所述表項的有效校驗和。
17.如權利要求12至14中的任一權利要求的系統,其中每個表項包括多個列,所述多個列包括在有效校驗和列中的有效校驗和值,其從有效地址列中的有效地址內標識的磁道數據來計算,且用于在所述第一存儲器中維護的磁道的至少一個先前版本;先前版本地址列,其具有所述第一存儲器中的磁道的先前版本的地址;以及先前版本校驗和列,其具有從所述先前版本地址處的磁道數據計算的校驗和值,其中所述系統還包括 接收部件,用于接收對所述第一存儲器或所述第二存儲器中存在的延伸區(qū)中的目標磁道的與入; 計算部件,用于從針對所述目標磁道的寫入計算暫時校驗和; 判定部件,用于判定所述暫時校驗和是否匹配所述目標磁道的延伸區(qū)對象中的表項內的所述至少一個先前版本校驗和中的一個;寫入部件,用于將所述先前版本地址與匹配所述暫時校驗和的對應先前版本校驗和寫入到所述目標磁道的延伸區(qū)對象中的所述表項的所述有效地址列與所述有效校驗和列;及移位部件,用于移位版本早于所述先前版本地址的版本且校驗和被寫入到所述有效地址列與所述有效校驗和列的任何先前地址列與先前校驗和列,以覆寫包括所述先前版本地址與寫入到所述有效地址列與所述有效校驗和列的對應先前版本校驗和的所述先前地址列與所述先前校驗和列。
18.一種用于管理第一存儲器與第二存儲器中的數據的計算機程序產品,所述計算機程序產品包括 計算機可讀存儲介質,其可由處理電路讀取并存儲由所述處理電路執(zhí)行以便執(zhí)行如權利要求I至11中的任一權利要求的方法的指令。
19.一種計算機程序,所述計算機程序存儲在計算機可讀介質上并可載入數字計算機的內部內存,所述計算機程序包括軟件代碼部分,當所述程序在計算機上運行時,所述軟件代碼部分用于執(zhí)行如權利要求I至11中的任一權利要求的方法。
全文摘要
提供了一種用于管理對在存儲器件之間遷移的磁道延伸區(qū)的寫入操作的計算機程序產品、系統以及方法。處理將磁道延伸區(qū)從第二存儲器遷移到第一存儲器的操作。判定對于要遷移的延伸區(qū)是否存在延伸區(qū)對象。如果所述延伸區(qū)在先前時間預先被從所述第一存儲器遷移到所述第二存儲器,則所述延伸區(qū)對象存在。對于每個磁道,所述延伸區(qū)對象包括寫入指示符,指示當所述延伸區(qū)被預先遷移到所述第二存儲器時,自所述先前時間以來是否已在所述第二存儲器中更新該磁道。響應于判定所述延伸區(qū)對象存在,確定所述延伸區(qū)中具有這樣的寫入指示符的磁道所述寫入指示符指示自所述先前時間以來已在所述第二存儲器中更新該磁道。將所確定的磁道的數據從所述第二存儲器復制到所述第一存儲器中的空閑位置。對于每個所確定的磁道,在所述延伸區(qū)對象中更新所確定的磁道的表項,以將該磁道的數據被復制到的空閑位置指示為該磁道的有效地址。
文檔編號G06F3/06GK102884502SQ201180022683
公開日2013年1月16日 申請日期2011年5月9日 優(yōu)先權日2010年5月20日
發(fā)明者D·蒙特戈梅利 申請人:國際商業(yè)機器公司