應(yīng)用控制的子lun級數(shù)據(jù)遷移的制作方法
【專利摘要】一種基于源代碼的規(guī)范被實現(xiàn)為用作在存儲控制器和自有應(yīng)用之間的接口,以將指定大小的數(shù)據(jù)從LUN后的物理存儲遷移到新的物理位置。
【專利說明】應(yīng)用控制的子LUN級數(shù)據(jù)遷移
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明總體涉及計算機,并且更具體地,涉及用于在計算存儲環(huán)境中提高存儲性 能的方法、系統(tǒng)和計算機程序產(chǎn)品。
【背景技術(shù)】
[0002] 在當今的社會中,計算機和計算機系統(tǒng)被發(fā)現(xiàn)于各種設(shè)置中。計算環(huán)境和網(wǎng)絡(luò)可 以在家、在工作、在學(xué)校、在政府和其他設(shè)置中被發(fā)現(xiàn)。計算環(huán)境越來越多地在很多情況下 遠離對用戶呈現(xiàn)的本地接口的一個或多個存儲環(huán)境中存儲數(shù)據(jù)。
[0003] 這些計算存儲環(huán)境可以使用通常協(xié)作工作的諸如磁盤驅(qū)動之類的存儲設(shè)備以存 儲、取回和更新大量數(shù)據(jù),該數(shù)據(jù)繼而可以被提供到請求或發(fā)送該數(shù)據(jù)的主機計算。在一些 情況下,很多數(shù)據(jù)存儲子系統(tǒng)作為單個數(shù)據(jù)存儲系統(tǒng)被進行集中管理。這些子系統(tǒng)可以由 主機"綜合系統(tǒng)"(系統(tǒng)復(fù)雜)配置來管理,該配置組合若干處理單元或處理單元的集群。 以該方式,通常包括各種類型的存儲設(shè)備的多層/多系統(tǒng)計算環(huán)境可以用于組織和處理大 量數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0004] 由于各種原因而出現(xiàn)的對數(shù)據(jù)遷移的需求在所有數(shù)據(jù)中心都是實際生活要求。這 樣的數(shù)據(jù)遷移必須對應(yīng)用是透明的(即,對于應(yīng)用伴隨零停機時間)。如今,數(shù)據(jù)遷移是由 安裝在主機或存儲控制器上的存儲虛擬化軟件提供的功能。然而,在該方法中,對于由存 儲控制器安排數(shù)據(jù)遷移,應(yīng)用無法執(zhí)行對數(shù)據(jù)的哪些部分必須被遷移到新的存儲位置的控 制?;谥鳈C的遷移解決方案沒有提供通用接口以允許對數(shù)據(jù)的那些部分必須被遷移的應(yīng) 用控制?;谥鳈C的遷移解決方案也必須經(jīng)歷下述事實:它們必須向和從主機移動數(shù)據(jù),以 便產(chǎn)生數(shù)據(jù)遷移。該控制對于諸如數(shù)據(jù)塊之類的應(yīng)用是有利的,其可以以比整個邏輯單元 名稱(LUN)--或者更一般地,通用存儲單元--更多地多粒度級迫使進行數(shù)據(jù)遷移。相 反,并且這將在進一步進行描述,數(shù)據(jù)遷移決定通常在不了解應(yīng)用的情況下進行。這可能導(dǎo) 致在對于這樣的數(shù)據(jù)移動的峰值性能需要可能已經(jīng)過去之后安排遷移的情況,因為本質(zhì)上 尖銳(spiky)的繁重工作負載無法由如今的存儲控制器內(nèi)可同的標準監(jiān)視機制來檢測。因 此,需要一種通過其可以由存儲控制器按照應(yīng)用需要來遷移存儲的粒度部分的機制。
[0005] 因此并且鑒于上述,提供了在計算環(huán)境沖由處理器執(zhí)行子邏輯單元名稱(LUN)數(shù) 據(jù)遷移的各種實施例。在一個實施例中,僅通過示例的方式,公開了用于這樣的子LUN數(shù)據(jù) 遷移的方法?;谠创a的規(guī)范被實現(xiàn)以用作在存儲控制器和自有應(yīng)用之間的接口,以將 特定大小的數(shù)據(jù)從該LUN后的物理存儲遷移到新的物理位置。
[0006] 除了前述示例性實施例中,各種系統(tǒng)和計算機程序?qū)嵤├惶峁┎⑶姨峁┝讼嚓P(guān) 優(yōu)點。
【專利附圖】
【附圖說明】
[0007] 為了易于理解本發(fā)明的優(yōu)點,將參考附圖中圖示的具體實施例來呈現(xiàn)以上簡要描 述的本發(fā)明的更具體的描述。理解到這些附圖僅描繪了本發(fā)明的典型實施例,并且因此 不被認為是對其范圍的限制,本發(fā)明將通過使用附圖來更具體和詳細地被描述和說明,其 中:
[0008] 圖1是圖示可以實現(xiàn)本發(fā)明的各方面的示例性多層數(shù)據(jù)存儲計算環(huán)境的框圖;
[0009] 圖2是用于執(zhí)行子LUN級數(shù)據(jù)遷移的傳統(tǒng)方法的框圖;
[0010] 圖3是用于執(zhí)行可以實現(xiàn)本發(fā)明的各方面的子LUN級數(shù)據(jù)遷移的示例性方法的框 圖;
[0011] 圖4是還可以實現(xiàn)本發(fā)明的各方面的用于改變用于LUN的虛擬到物理映射的示例 性方法的第一步驟的框圖;
[0012] 圖5是這里還可以實現(xiàn)本發(fā)明的各方面的先前圖4中描述的用于改變虛擬到物理 映射的示例性方法的第二步驟的框圖;
[0013] 圖6是用于執(zhí)行子LUN級數(shù)據(jù)遷移的示例方法的流程圖;
[0014] 圖7是用于執(zhí)行子LUN級數(shù)據(jù)遷移的另一示例性方法的流程圖;
[0015] 圖8是用于執(zhí)行子LUN級數(shù)據(jù)遷移的另一示例性方法的流程圖;
[0016] 圖9是用于執(zhí)行子LUN級數(shù)據(jù)遷移的另一示例性方法的流程圖;
[0017] 圖10是用于執(zhí)行子LUN級數(shù)據(jù)遷移的另一示例性方法的流程圖;以及
[0018] 圖11是用于執(zhí)行子LUN級數(shù)據(jù)遷移的另一示例性方法的流程圖。
【具體實施方式】
[0019] 如前所述,對數(shù)據(jù)遷移的需要在由于各種原因而出現(xiàn)的所有數(shù)據(jù)中心都是實際生 活的需要。這樣的情況包括:(a)由于有效使用的存儲陣列的租賃期滿而導(dǎo)致需要將數(shù)據(jù) 從一個存儲陣列移動到另一個;(b)需要將不太頻繁使用的數(shù)據(jù)遷移到較低層存儲;以及 (c)升級為高性能和容量的存儲陣列以滿足組織的增長需要。數(shù)據(jù)遷移對自有應(yīng)用必須是 透明的,其中對于自有應(yīng)用伴隨零停機時間(zero downtime)。
[0020] 此外,如前所述,如今的數(shù)據(jù)遷移是由安裝在主機上的存儲虛擬化軟件提供的功 能,諸如用于Linux?兼容環(huán)境的邏輯卷管理器(LVM)和VERITAS?.卷管理器,并且 通過存儲控制器(例如,IBM?系統(tǒng)存儲DS800或Storwize? V7000)和網(wǎng)絡(luò)存儲虛擬 化器(例如,IBM⑧SAN卷控制器(SVC))來促進。在一個示例中,如果需要遷移用于ITB 大小的LUN的數(shù)據(jù),則整個LUN從當前使用的ITB的后端存儲遷移到ITB大小的新的存儲。 因此,在本方法中,存儲在具體LUN上的整個數(shù)據(jù)將被遷移到新的位置。
[0021] 然而,在本方法中,應(yīng)用無法對哪些部分的數(shù)據(jù)必須被遷移到新的存儲位置進行 控制。這對于諸如可能需要以比整個LUN更大的多粒度級來遷移的數(shù)據(jù)庫的應(yīng)用來說是有 用的??紤]以下示例。自有應(yīng)用--在該情況下為數(shù)據(jù)庫(即,Oracle? )--希望僅將 單個表(或記錄)從當前存儲遷移到新的存儲位置,因為給定表上的數(shù)據(jù)不再被頻繁地訪 問。由應(yīng)用控制的LUN的這一類型的部分數(shù)據(jù)遷移不可能由存儲虛擬化器提供的傳統(tǒng)遷移 方法來進行。
[0022] 雖然有可能以子LUN級遷移數(shù)據(jù),但是通常進行這樣的遷移的決定是通過在存儲 控制器級監(jiān)視和分析數(shù)據(jù)訪問模式來作出的。因為存儲控制器不知道數(shù)據(jù)的語義,所以有 可能在例如峰值性能需要已經(jīng)過去了時觸發(fā)遷移。應(yīng)用層可以對哪個數(shù)據(jù)必須被遷移以及 應(yīng)用何時生成數(shù)據(jù)作出最快的決定。因此,應(yīng)用認知和基于應(yīng)用的決定作出的問題仍然無 法由現(xiàn)有解決方案來解決。
[0023] 若干常規(guī)技術(shù)嘗試解決子LUN級數(shù)據(jù)遷移的挑戰(zhàn)。首先,存儲控制器(也稱為存 儲陣列)提供用于對應(yīng)用透明地將數(shù)據(jù)從與LUN相關(guān)聯(lián)的物理存儲遷移到另一物理存儲的 有限能力。然而,這樣的遷移是對于整個LUN執(zhí)行的,從而使得該過程不適用于需要僅應(yīng)用 已經(jīng)被存儲在具體LUN上的數(shù)據(jù)的部分的遷移的情形。此外,存儲控制器通常僅允許跨與 同一供應(yīng)商相關(guān)聯(lián)的設(shè)備的數(shù)據(jù)遷移,并且從而促進供應(yīng)商鎖定(l〇ck-in),而且往往是昂 貴或資源密集型的。
[0024] 第二,在主機上運行的存儲虛擬化軟件提供潛在地跨磁盤陣列供應(yīng)商的數(shù)據(jù)遷移 使用情況,并且因此不會促進供應(yīng)商鎖定。然而,傳統(tǒng)的虛擬化軟件針對整個LUN從一個物 理存儲到另一物理存儲遷移數(shù)據(jù)。這意味著,該傳統(tǒng)的虛擬化軟件提出需要以子LUN級遷 移數(shù)據(jù)的應(yīng)用需要的挑戰(zhàn)。
[0025] 第三,(例如,用于數(shù)據(jù)庫文件的)文件系統(tǒng)軟件和專有(proprietary)卷管理允 許跨不同物理存儲的子LUN級數(shù)據(jù)移動。然而,這樣的數(shù)據(jù)遷移需要將數(shù)據(jù)從當前使用的 物理存儲讀取到主機,并且將數(shù)據(jù)從主機寫入新的存儲。該過程消耗用于數(shù)據(jù)遷移的存儲 網(wǎng)絡(luò)帶寬以及主機上的中央處理單元(CPU)帶寬二者,這降低了存儲網(wǎng)絡(luò)和/或服務(wù)器性 能。此外,這樣的專有軟件對具體的基于供應(yīng)商的實現(xiàn)而言是特定于供應(yīng)商的。
[0026] 與前述技術(shù)相比,說明的實施例的機制描述了下述技術(shù),其中,通過存儲虛擬化軟 件揭示的應(yīng)用程序編程接口(API)使得應(yīng)用能夠觸發(fā)在子LUN級從當前物理存儲到新的位 置的數(shù)據(jù)遷移。通過使用這些機制,允許應(yīng)用指定起始LBA(邏輯塊地址)以及虛擬磁盤上 的數(shù)據(jù)組塊(data chunk)的大小和用于標識數(shù)據(jù)必須被遷移到的物理存儲的目標物理存 儲描述。在接收到該API調(diào)用時,存儲虛擬化軟件對應(yīng)用透明地將數(shù)據(jù)從其當前存儲位置 遷移到指定的目標存儲位置。在該操作完成時,存儲上的虛擬磁盤映射被原子地修改為指 向用于數(shù)據(jù)的新的位置。舊的物理數(shù)據(jù)存儲位置被釋放。該API可以顯現(xiàn)為新的SCSI命 令的形式,或者使用現(xiàn)有的SCSI命令,如XC0PY。還可以存在API的其他帶外顯現(xiàn)。
[0027] 所說明的實施例的機制提供了包括下述的若干優(yōu)點。第一,由存儲虛擬化軟件揭 示的子LUN級遷移API可以允許應(yīng)用將LUN內(nèi)的數(shù)據(jù)的一部分從一個物理存儲遷移到另一 個。這將使得應(yīng)用能夠根據(jù)應(yīng)用的需要而將獨立的記錄、表或表空間遷移到新的物理存儲。 因而,不經(jīng)常訪問的表/記錄可以被移動到消耗較為便宜成本的存儲的較低層存儲,或者 非常頻繁訪問的數(shù)據(jù)可以被移動到能夠滿足較高IOP需要的較高層存儲。
[0028] 第二,由諸如各種專用卷控制器的存儲區(qū)域網(wǎng)絡(luò)(SAN)中的存儲虛擬化器揭示的 子LUN級遷移API允許在不需要將整個數(shù)據(jù)讀取到主機并且繼而將數(shù)據(jù)寫入新的存儲的情 況下,將數(shù)據(jù)從一個物理存儲遷移到另一個。這保留了存儲網(wǎng)絡(luò)帶寬,并且防止使用主機 (PU周期來安排數(shù)據(jù)遷移。
[0029] 第三,子LUN級遷移給出了對應(yīng)用的控制,以根據(jù)使用情況來確定特定LUN上的數(shù) 據(jù)的哪些部分必須被遷移到其他物理存儲。由于應(yīng)用程序已經(jīng)完全知道關(guān)于與其數(shù)據(jù)相關(guān) 聯(lián)的語義,所以很可能能夠進行對哪些數(shù)據(jù)要移動以及何時移動的最快和最好的決定。
[0030] 第四,由存儲控制器提供的子LUN級遷移將有利于來自不同供應(yīng)商的應(yīng)用。在主 機上運行的其他應(yīng)用還可以受益于這樣的API。最后,由存儲虛擬化軟件提供的子LUN級 遷移可以根據(jù)數(shù)據(jù)所位于的存儲的性能和成本來增強應(yīng)用對用于在不同種類的存儲中存 儲數(shù)據(jù)的當前需求的瞬時反應(yīng)能力。如果存儲虛擬化軟件必須監(jiān)視數(shù)據(jù)訪問模式以便進行 關(guān)于"熱點"遷移的決定,則遷移的好處可以僅在延遲之后(可能在對更高性能的需要消失 時)被感覺到。
[0031] 在下面的描述中,參考形成本說明書的一部分并且示出了本發(fā)明的若干實施例的 附圖??梢岳斫?,可以利用其他實施例,并且可以在不脫離本發(fā)明的范圍的情況下進行結(jié)構(gòu) 和操作的改變。圖1圖示了可以在其中實現(xiàn)本發(fā)明的各方面的計算存儲環(huán)境。多個主機系 統(tǒng)2a、b、... n通過管理對存儲卷28、30和32的訪問的存儲控制器6來向一個或多個存儲 卷28、30和32傳送輸入/輸出(I/O)請求。在特定實現(xiàn)中,存儲卷可以在物理上包括被組 織為集速磁盤(JBOD)、RAID陣列、直接訪問存儲設(shè)備(DASD)、SSD,磁帶設(shè)備等的多個硬盤 驅(qū)動器。
[0032] 多個虛擬卷22、24和26被呈現(xiàn)給主機系統(tǒng)2a、b. .. n,而不是呈現(xiàn)多個物理或邏 輯卷(通常其可以以復(fù)雜關(guān)系而被物理地配置)。主機系統(tǒng)2a、b. .. n可以在協(xié)議棧的不 同層處通過網(wǎng)絡(luò)8使用諸如TCP/IP、光纖信道、以太網(wǎng)等多種通信協(xié)議與存儲控制器6進行 通信,網(wǎng)絡(luò)8諸如因特網(wǎng)、存儲區(qū)域網(wǎng)絡(luò)(SAN)、內(nèi)聯(lián)網(wǎng)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)等。
[0033] 存儲控制器6包括處理器10,該處理器10執(zhí)行代碼12以執(zhí)行存儲控制器操作。 存儲控制器6還包括高速緩存系統(tǒng)14以及非易失性存儲單元16,諸如電池備份存儲器設(shè) 備。存儲控制器6在高速緩存14中存儲從主機2a、b…n接收到的用于寫入到虛擬存儲卷 22、24和26(并且由此寫入卷28、30和32)的數(shù)據(jù)更新以及從卷28、30和32讀取的用于 返回到主機2a、b…n的數(shù)據(jù)。當以快速寫入模式進行操作時,從主機2a、b…n接收的數(shù)據(jù) 更新被復(fù)制到高速緩存14和NVS 16二者。在更新被復(fù)制到高速緩存14和NVS 16二者之 后,結(jié)束狀態(tài)被返回到發(fā)送數(shù)據(jù)更新的主機2a、b. .. n。
[0034] 存儲控制器6還包括基于源代碼的規(guī)范,該規(guī)范用作在存儲控制器6和在主機2a、 b…n上操作的自有應(yīng)用之間的接口。在所描繪的實施例中,該規(guī)范/接口被表示為應(yīng)用程 序接口(API) 17。API 17由存儲控制器6呈現(xiàn)給主機2a、b…n,并且具體地呈現(xiàn)給主機2a、 b…n上操作的自有應(yīng)用,這將會進一步描述。此外,存儲控制器6還包括存儲虛擬化引擎 18,其可以結(jié)合API 17用于實現(xiàn)所示實施例的目的,同樣,這將會進一步描述。
[0035] 高速緩存系統(tǒng)14包括虛擬磁盤映射15或簡稱為"存儲映射" 15。高速緩存系統(tǒng) 14接受來自主機2a、b…n或類似設(shè)備的寫入數(shù)據(jù),其然后被置于高速緩存存儲器中。在一 個實施例中,存儲映射15包括用于綁定物理卷28、30和32到數(shù)據(jù)到虛擬卷22、24、26等的、 數(shù)據(jù)的各種物理到虛擬映射。
[0036] 如本領(lǐng)域普通技術(shù)人員應(yīng)將理解的那樣,圖1可以圖示具有諸如先前圖示的存儲 控制器6的多個互相關(guān)聯(lián)的組件的較大的多系統(tǒng)/多集群存儲環(huán)境的一部分。如先前指示 的那樣,當經(jīng)由主機系統(tǒng)2a、b…n向用戶呈現(xiàn)虛擬卷22、24和26時,底層物理配置可以具 有很多可能的形式。例如,各種類別中的很多互相關(guān)聯(lián)的存儲設(shè)備,諸如SSD、SATA、HDD、- 帶等,可以根據(jù)具體配置而包括存儲卷28、30和32。
[0037] 諸如處理器10的各種組件可以被適配為實現(xiàn)本發(fā)明的各方面以及以下要求保護 的主題。例如,存儲虛擬化引擎18可以結(jié)合處理器10進行操作以執(zhí)行要進一步描述的各 種功能,諸如結(jié)合虛擬磁盤映射15提供虛擬化功能。類似地,API還可以結(jié)合處理器1或 在存儲環(huán)境中操作的其他組件進行操作。本領(lǐng)域的普通技術(shù)人員將認識到,其他各種數(shù)據(jù) 處理和存儲組件可以被實現(xiàn)為實現(xiàn)這些方面,并且可以在存儲控制器6或其他位置操作。
[0038] 在本發(fā)明的一個實施例中,存儲控制器6提供API 17,以從主機2a…2b…n上操 作的應(yīng)用透明地將指定大小的數(shù)據(jù)從LUN后的物理存儲(例如,28、30、32)遷移到新的物理 位置。該APl 17可以由如數(shù)據(jù)庫(Oracle?或DB2)的應(yīng)用來調(diào)用,以僅將特定數(shù)據(jù)從一 個物理位置遷移到另一個,而不影響用于存儲數(shù)據(jù)的LUN。
[0039] 提供用于由自有應(yīng)用使用的一些示例API包括下述:
[0040] migrate (sourceLUN#, startLBA, size, target storage pool)
[0041] 通過該API,存儲虛擬化軟件選擇遷移的數(shù)據(jù)必須被放置于的目標位置。目標存儲 池的選擇是由應(yīng)用作出的,而目標存儲池上的數(shù)據(jù)的位置留給存儲虛擬化軟件。
[0042] migrate(sourceLUN#, startLBA, size, targetLUN#, targetLBA)
[0043] 使用該API,應(yīng)用控制數(shù)據(jù)必須被遷移到的目標LUN和確切位置。因此,完全控制 由應(yīng)用在遷移數(shù)據(jù)的同時進行。
[0044] migrate (sourceLUN#, startLBA, target storage pool id)
[0045] migrate(sourceLUN#, startLBA, targetLUN#, targetLBA)
[0046] 在上面的API呼叫的表示中,針對每個API呼叫遷移的存儲的大小是固定的,即根 據(jù)實現(xiàn)而是128k或256k。呼叫方必須多次呼叫API以遷移所需要大小的數(shù)據(jù)。
[0047] migrate(sourceLUN#, startLBA, size, targetLUN#, targetLBA, time)
[0048] 在上述API呼叫中,應(yīng)用不僅請求從源LUN到目標LUN的數(shù)據(jù)遷移,其還提及遷移 操作必須被執(zhí)行的時間。注意,為了簡化實現(xiàn)難度,在一個實施例中,起始和目標LBA和大 小參數(shù)可以被限制為具體隊列(alignment)(例如,IGB擴展)注意:為了簡化實現(xiàn)難度,可 能需要將起始和目標LBA和大小參數(shù)限制為隊列,例如DS8000的IGB擴展。
[0049] 以下提供了用于前述數(shù)據(jù)移動的一些示例性使用情況。在第一示例中,自有應(yīng)用 希望將特定記錄或數(shù)據(jù)庫表從給定LUN上的當前位置遷移到消耗較少功率并且不太資源 密集的較低層存儲。這可能由需要移動較舊(不頻繁訪問的)數(shù)據(jù)到更成本有效的存儲以 供長期保留的需求來觸發(fā)。例如,該操作將數(shù)據(jù)從以15k RPM運行全部光纖信道(FC)的成 本密集的存儲陣列遷移到以低得多的RPM運行SATA磁盤的單獨的較低成本密集的存儲陣 列。在這樣的情況下,通過諸如系統(tǒng)卷控制器(SVC)的SAN中的存儲虛擬化元件來對數(shù)據(jù) 遷移API起作用,以影響應(yīng)用遷移請求。
[0050] 在第二示例中,自有應(yīng)用發(fā)現(xiàn)給定的記錄被頻繁訪問。因此,應(yīng)用希望將該區(qū)域遷 移到更好執(zhí)行的存儲層(例如固態(tài)驅(qū)動器(SSD)層或15k RPM驅(qū)動器池)。這種使用情況 可以促進存儲控制器內(nèi)的應(yīng)用控制的"熱點"遷移。
[0051] 這里,應(yīng)當注意,上述數(shù)據(jù)遷移API不限于具體類型的應(yīng)用,例如數(shù)據(jù)庫應(yīng)用,但 是對于這種目的是有用的。本領(lǐng)域的普通技術(shù)人員應(yīng)當理解,API可以適用于具有遷移數(shù) 據(jù)需要的任何自有應(yīng)用,諸如郵件服務(wù)器或其他虛擬化應(yīng)用。
[0052] 上述API的各種實施例可以以適合于具體應(yīng)用的各種方式來實現(xiàn)。例如,API可 以經(jīng)由小型計算機系統(tǒng)接口(SCSI)被內(nèi)聯(lián)地提供給自有應(yīng)用。在另一示例中,該API可以 經(jīng)由因特網(wǎng)協(xié)議(IP)被帶外地提供給自有應(yīng)用。本領(lǐng)域的普通技術(shù)人員應(yīng)當理解,可以根 據(jù)具體情況的需要而使用所描述的API的各種實現(xiàn)。
[0053] 在一個實施例中,在支持前述數(shù)據(jù)遷移API功能的存儲控制器上,示例性步驟集 合可能發(fā)生以滿足遷移請求。
[0054] 第一,支持數(shù)據(jù)遷移API的存儲控制器揭示由存儲控制器所支持的存儲池的列表 及其性能、冗余和功耗特性。該信息被使得經(jīng)由例如模式感測小型計算機系統(tǒng)接口(SCSI) 命令而可用,并且可以由存儲控制器使用以選擇用于數(shù)據(jù)遷移的目標存儲池。
[0055] 第二,上述SCSI命令(或者在另一實施例中,例如,取決于遷移API的調(diào)用模式的 帶外的命令)由存儲虛擬化軟件接收,該存儲虛擬化軟件請求從給定起始LBA = SLBAl開 始并且大小=SZl的數(shù)據(jù)從其當前位置(例如,包括高性能和成本密集型15k RPM驅(qū)動器) 遷移到不同的存儲池(例如,包括更低的成本密集型和高能效的7. 2k RPM驅(qū)動器)
[0056] 第三,然后,存儲虛擬化軟件確定對該存儲目標池上的選擇的數(shù)據(jù)組塊的"最佳匹 配"。然后,存儲虛擬化軟件在后臺將數(shù)據(jù)從當前位置復(fù)制(對應(yīng)用透明地)到目標位置。 [0057] 第四,然后,使虛擬磁盤映射原子地指向新的物理位置,使得僅該部分的LUN現(xiàn)在 位于成本較低的存儲上。在該操作期間,如在所有其他遷移操作中,數(shù)據(jù)保持一致并且是最 新的。
[0058] 第五,一旦映射被原子地改變?yōu)榉从承碌奈锢泶鎯ξ恢?,就提交遷移操作。值得注 意的是,如果API指定目標物理磁盤以及何處放置數(shù)據(jù),則存儲控制器將數(shù)據(jù)遷移到由應(yīng) 用指定的新的位置,而不是存儲控制器選擇指定的目標池上的新的目標位置。
[0059] 現(xiàn)在轉(zhuǎn)到圖2,描繪了傳統(tǒng)數(shù)據(jù)遷移機制200的框圖。各個數(shù)據(jù)路徑、命令路徑以 及命令響應(yīng)路徑由所指示的箭頭和相應(yīng)的說明示出并且在應(yīng)用層示出。作為第一步驟,自 有應(yīng)用/實用程序向物理磁盤1發(fā)送命令以將數(shù)據(jù)從物理磁盤1 (這里示出為FC 15k RPM 驅(qū)動器)遷移到物理磁盤2 (這里示出為更低的成本密集型串行附接的SCSI (SAS) 7K RPM 驅(qū)動器)。然后,將命令響應(yīng)從物理磁盤1 (即,負責物理磁盤1的存儲控制器)返回到實用 程序/自有應(yīng)用。然后,數(shù)據(jù)被拉取到主機,并且然后寫回到物理磁盤2上的新的位置,如 圖所示。該情況消耗存儲帶寬和服務(wù)器資源來執(zhí)行。
[0060] 與圖2相反,以下圖3-圖4圖示了根據(jù)本發(fā)明的示例性實施例。例如,以下在圖 3中,圖示了使用前述執(zhí)行的API機制的智能子LUN級數(shù)據(jù)遷移的機制。
[0061] 圖3-圖4描述了例如該API如何被執(zhí)行以及與諸如先前圖2中所示的傳統(tǒng)機制 所提供的數(shù)據(jù)遷移機制相比的優(yōu)點,傳統(tǒng)機制將數(shù)據(jù)從磁盤拉取到主機并且隨后將數(shù)據(jù)寫 入目標位置,這是消耗存儲帶寬和服務(wù)器功率的。與之相比,在圖3中,機制300描繪了用 于可以包含本發(fā)明的各方面的子LUN數(shù)據(jù)遷移的示例性方法。具體參考圖3,在一個實施 例中,對遷移API的調(diào)用是由主機本地的應(yīng)用執(zhí)行的,但是數(shù)據(jù)遷移操作是由存儲控制器 執(zhí)行的。盡管其他專有傳統(tǒng)數(shù)據(jù)遷移機制(包括其他應(yīng)用)確定遷移什么數(shù)據(jù)以及何時遷 移,遷移操作在不涉及主機的情況下由存儲虛擬化器來執(zhí)行。
[0062] 圖3描繪了在所示實施例中根據(jù)本發(fā)明如何執(zhí)行子LUN數(shù)據(jù)遷移。通過使用API 并且使用說明的示例性命令,數(shù)據(jù)庫應(yīng)用發(fā)送示例性命令以將子SUN級數(shù)據(jù)從物理磁盤 1 (在該情況下描述為FC15k驅(qū)動器)遷移到PHY磁盤1、2和3的存儲池Pl中的第二物理 位置,如圖所示(在所示實施例中,包括在所示存儲池中配置的SAS7k RPM驅(qū)動器)。該命 令被返回到主機(并且因此返回到數(shù)據(jù)庫應(yīng)用)。盡管數(shù)據(jù)庫應(yīng)用對遷移什么數(shù)據(jù)以及何 時遷移作出決定,由存儲虛擬化器在不涉及主機的情況下執(zhí)行遷移操作本身(例如,存儲 虛擬化引擎18,圖1)。因此并且如圖所示,通過使得虛擬化器(諸如SVC)能夠代表應(yīng)用來 執(zhí)行遷移而不對應(yīng)用產(chǎn)生繁重開銷,來智能地遷移數(shù)據(jù)。然后,將數(shù)據(jù)從物理磁盤1遷移到 存儲池P1,如數(shù)據(jù)路徑所示。
[0063] 現(xiàn)在轉(zhuǎn)到圖4和圖5,接下來,根據(jù)前述API促進的數(shù)據(jù)遷移機制,示出了應(yīng)用于用 于選擇的LUN的虛擬到物理映射的示例性操作的框圖。注意,這些圖中的物理磁盤實際上 可以是由底層存儲控制器呈現(xiàn)的虛擬卷(例如,RAID 5卷)。在一個實施例中,所示出的虛 擬到物理映射可以被實現(xiàn)為虛擬磁盤映射15 (圖1)。然而,如本領(lǐng)域普通技術(shù)人員將理解 的,可能出現(xiàn)這樣的映射的各種實現(xiàn)以適合于具體應(yīng)用。
[0064] 首先轉(zhuǎn)到圖4,在第一步驟400A中,初始LUN地址范圍映射(這里示出了從0到 n的地址)被標識為與如圖所示的物理磁盤1中的地址范圍相對應(yīng)。在如圖5所示的第二 步驟400B中,在到目標存儲池的數(shù)據(jù)組塊的遷移操作完成之后,用范圍x-y創(chuàng)建新的LUN 地址范圍映射,其被配置為指向與已經(jīng)遷移的數(shù)據(jù)組塊相對應(yīng)的物理磁盤2中的目標存儲 池。范圍0-x和y-n保留指向物理磁盤1,如圖所示。
[0065] 以下,圖6是用于可以實現(xiàn)本發(fā)明的各方面的用于在計算存儲環(huán)境中執(zhí)行子LUN 級數(shù)據(jù)遷移的示例性方法600的流程圖。該方法600通過實現(xiàn)基于源代碼的規(guī)范而開始 (步驟602),以用作在存儲控制器和自有應(yīng)用之間的接口以將指定的子LUN級大小的數(shù)據(jù) 從LUN后的物理存儲遷移到新的物理位置(步驟604)。然后,該方法600結(jié)束(步驟606)。 [0066] 以下,圖7是這里還可以實現(xiàn)本發(fā)明的各種方面的用于執(zhí)行從源到目標存儲位置 的子LUN級數(shù)據(jù)遷移的另一示例性方法700的流程圖。方法700通過指定起始LBA以及虛 擬磁盤上的數(shù)據(jù)組塊的大小以及目標物理存儲描述(步驟704)而開始(步驟702)。然后, 基于源代碼的規(guī)范(例如,API)揭示由存儲控制器支持的存儲池的列表以及至少一個存儲 特性,諸如底層存儲(例如,SAS驅(qū)動器)的大小、可用空間、物理特性等(步驟706)。 [0067] 至少部分地基于從步驟706獲得的信息,該方法700繼續(xù)經(jīng)由接口(例如從主機) 接收調(diào)用,該調(diào)用請求要被遷移到被揭示的存儲池的列表中的目標存儲池的、從起始LBA 開始的、具有指定大小的數(shù)據(jù)組塊的數(shù)據(jù)(步驟708)。然后,存儲控制器或類似的存儲設(shè)備 可以確定用于目標存儲池中的數(shù)據(jù)組塊的"最佳匹配"(步驟710)。例如,數(shù)據(jù)組塊可以被 順序地存儲在一個物理卷上,或者在情況允許時,其可以跨多個卷被分割,并且還由存儲控 制器或其他管理設(shè)備來處理。
[0068] 作為后續(xù)步驟,當在不涉及對應(yīng)用的開銷的情況下,作為后臺處理將指定的數(shù)據(jù) 組塊遷移到目標存儲池時(即,該過程對自有應(yīng)用透明地進行)(步驟712),遷移操作開 始。在遷移操作完成之后,使得虛擬磁盤映射指向在目標存儲池上的新的物理位置(步驟 714)。一旦對虛擬磁盤映射進行了改變,就提交遷移操作(步驟716)。然后,該方法700結(jié) 束(步驟718)。
[0069] 以下,圖8圖示了根據(jù)本發(fā)明的另一實施例的用于執(zhí)行從源到目標存儲位置的子 LUN級數(shù)據(jù)遷移的另一示例性方法800。方法800通過指定要被遷移到新的存儲池的數(shù)據(jù) 組塊的遷移大?。ú襟E804)來開始(步驟802)。然后,指定要遷移的數(shù)據(jù)組塊大?。ú?驟806)??偟倪w移大小被指定為先前指定的數(shù)據(jù)組塊大小的向上舍入(rounded-up)倍數(shù) (步驟808)。
[0070] 然后,方法800移動到步驟810,其中查詢總的遷移大小是否大于或等于零。如果 否,則方法800結(jié)束(步驟826)??商娲兀椒?00移動到步驟812,其中,以數(shù)據(jù)組塊大 小的增量執(zhí)行遷移操作。遷移操作812包括與先前在圖7中描述的至少一些步驟類似的功 能,諸如經(jīng)由API接收調(diào)用,該調(diào)用請求要被遷移的、從起始LBA的數(shù)據(jù)開始的、具有指定大 小的數(shù)據(jù)組塊的數(shù)據(jù)(步驟808),確定用于數(shù)據(jù)組塊的最佳匹配(步驟810),作為后臺處 理將數(shù)據(jù)組塊遷移到目標存儲池(步驟812),將虛擬磁盤映射指向新的物理存儲位置(步 驟814),并且提交遷移操作(步驟816)。
[0071] 當方法800前進到執(zhí)行遷移操作812時,總的遷移大小減小了正在被遷移的數(shù)據(jù) 組塊的增量(步驟824)。方法800返回到步驟810以再次查詢總遷移大小是否大于或等于 零。這里,如果答案是肯定的,則方法800結(jié)束(步驟826),否則返回到步驟812以再次以 數(shù)據(jù)組塊大小的增量進行另一遷移操作。
[0072] 現(xiàn)在轉(zhuǎn)到圖9,接下來,說明用于從執(zhí)行從源到目標存儲位置的子LUN級數(shù)據(jù)遷移 的另一示例性方法900。方法900通過指定要被遷移的數(shù)據(jù)組塊的源LUN、起始LBA、總遷移 大小、目標LUN以及大小(步驟904)來開始(步驟902)。然后,方法900指定要執(zhí)行遷移 操作的時間(步驟906)。接下來,在步驟908中,如果指定的時間已經(jīng)到達,則執(zhí)行遷移操 作910,如以下將進一步描述的??商娲兀绻付ǖ臅r間沒有到達(再次,步驟908),則 方法900等待(步驟912),并且返回到步驟908以再次重新查詢。
[0073] 在步驟910,遷移操作執(zhí)行如先前在圖7和圖8中所示的類似功能,包括作為對自 有應(yīng)用透明的后臺處理而將數(shù)據(jù)遷移到目標存儲池(步驟912),將虛擬磁盤映射指向目標 存儲池上的新的物理位置(步驟914),并且提交遷移操作(步驟916)。然后,該方法結(jié)束 (步驟918)。
[0074] 以下,圖10圖示了用于執(zhí)行從源到目標存儲位置的子LUN級數(shù)據(jù)遷移的另一示例 性方法1000。方法1000通過指定起始LBA和虛擬磁盤上的數(shù)據(jù)組塊的大小以及目標物理 存儲描述(步驟1004)而開始(步驟1002)。然后,基于源代碼的規(guī)范(例如,API)揭示 由存儲控制器支持的存儲池的列表以及至少一個存儲特性,諸如底層存儲(例如,SAS驅(qū)動 器)的大小、可用空間、物理特性等(步驟1006)。
[0075] 至少部分地基于從步驟1006獲得的信息,該方法1000繼續(xù)經(jīng)由接口(例如從主 機)接收調(diào)用,該調(diào)用請求要在指定的時間被遷移到被揭示的存儲池的列表中的目標存儲 池的、從起始LBA開始的、具有指定大小的數(shù)據(jù)組塊的數(shù)據(jù)(步驟1008)。然后,存儲控制器 或類似的存儲設(shè)備可以確定用于目標存儲池中的數(shù)據(jù)組塊的"最佳匹配"(步驟1010)。例 如,數(shù)據(jù)組塊可以被順序地存儲在一個物理卷上,或者在情況可以允許時,可以跨多個卷被 分割,并且還由存儲控制器或其他管理設(shè)備來處理。
[0076] 作為后續(xù)步驟,當在特定時間,在不涉及對應(yīng)用的開銷的情況下作為后臺處理將 指定的數(shù)據(jù)組塊遷移到目標存儲池時(即,該過程對自有應(yīng)用透明地進行)(步驟1012), 遷移操作開始。在遷移操作完成之后,使虛擬磁盤映射指向目標存儲池上的新的物理位置 (步驟1014)。一旦對虛擬磁盤映射進行了改變,就提交遷移操作(步驟1016)。然后,該方 法1000結(jié)束(步驟1018)。
[0077] 以下,圖11圖示了用于執(zhí)行從源到目標存儲位置的子LUN級數(shù)據(jù)遷移的另一示例 性方法1100。方法1100通過指定起始LBA和虛擬磁盤上的數(shù)據(jù)組塊的大小以及目標物理 存儲描述(步驟1104)而開始(步驟1102)。然后,基于源代碼的規(guī)范(例如,API)揭示 由存儲控制器支持的存儲池的列表以及至少一個存儲特性,諸如底層存儲(例如,SAS驅(qū)動 器)的大小、可用空間、物理特性等(步驟1106)。
[0078] 至少部分地基于從步驟1106獲得的信息,該方法1000繼續(xù)經(jīng)由接口(例如從該 主機)接收調(diào)用,該接口請求在與接收到該調(diào)用一致的時間(即,立即)要被遷移到被揭示 的存儲池的列表中的目標存儲池的、從起始LBA開始的、具有指定大小的數(shù)據(jù)組塊的數(shù)據(jù) (步驟1108)。然后,存儲控制器或類似的存儲設(shè)備可以確定用于目標存儲池中的數(shù)據(jù)組塊 的"最佳匹配"(步驟1110)。例如,數(shù)據(jù)組塊可以被順序地存儲在一個物理卷上,或者在情 況允許時,可以跨多個卷被分割,并且再次通過存儲控制器或其他管理設(shè)備來處理。
[0079] 作為后續(xù)步驟,當在特定時間、在不涉及對應(yīng)用的開銷的情況下作為后臺處 理(即,該過程對自有應(yīng)用透明地進行)將指定的數(shù)據(jù)組塊遷移到目標存儲池時(步驟 1112),遷移操作開始。在遷移操作完成之后,進行指向在目標存儲池上的新的物理位置 的虛擬磁盤映射(步驟1114)。一旦對虛擬磁盤映射進行了改變,就提交遷移操作(步驟 1116)。然后,該方法1100結(jié)束(步驟1118)。
[0080] 所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員知道,本發(fā)明的各個方面可以實現(xiàn)為系統(tǒng)、方法或 計算機程序產(chǎn)品。因此,本發(fā)明的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施 方式、完全的軟件實施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實 施方式,這里可以統(tǒng)稱為"模塊"、"流程"或"系統(tǒng)"。此外,在一些實施例中,本發(fā)明的各個 方面還可以實現(xiàn)為在一個或多個計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,該計算機可 讀介質(zhì)中包含計算機可讀的程序代碼。
[0081] 可以采用一個或多個計算機可讀介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算 機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是一但不限 于一電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算 機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便 攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器 (EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者 上述的任意合適的組合。在本文件中,計算機可讀存儲介質(zhì)可以是任何包含或存儲程序的 有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。計算機可讀 介質(zhì)上包含的程序代碼可以用任何適當?shù)慕橘|(zhì)傳輸,包括--但不限于--無線、有線、光 纜、RF等等,或者上述的任意合適的組合。
[0082] 計算機可讀介質(zhì)上包含的程序代碼可以用任何適當?shù)慕橘|(zhì)傳輸,包括--但不限 于--無線、有線、光纜、RF等等,或者上述的任意合適的組合。可以以一種或多種程序設(shè) 計語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設(shè)計語言包括 面向?qū)ο蟮某绦蛟O(shè)計語目一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計 語言一諸如"C"語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、 部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠 程計算機上執(zhí)行、或者完全在遠程計算機或服務(wù)器上執(zhí)行。在涉及遠程計算機的情形中,遠 程計算機可以通過任意種類的網(wǎng)絡(luò)--包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN) -連接到用戶計 算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。 [0083] 下面將參照根據(jù)本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖 和/或框圖描述本發(fā)明。應(yīng)當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖 中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計 算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,使得這些計 算機程序指令在通過計算機或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生了實現(xiàn)流程 圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置。
[0084] 也可以把這些計算機程序指令存儲在計算機可讀介質(zhì)中,這些指令使得計算機、 其他可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲在計算機可讀介質(zhì)中的 指令就產(chǎn)生出包括實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的指令 的制造品(article of manufacture)。計算機程序指令還可以被加載到計算機、其他可編 程數(shù)據(jù)處理裝置或者其他設(shè)備,以使得在該計算機、其他可編程數(shù)據(jù)處理裝置或者其他設(shè) 備上執(zhí)行操作步驟序列以產(chǎn)生計算機執(zhí)行處理,使得在計算機或其他可編程裝置上執(zhí)行的 指令提供用于實現(xiàn)在流程圖和/或框圖塊中規(guī)定的功能/動作的處理。
[0085] 上面附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算 機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可 以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多 個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當注意,在有些作為替換的實現(xiàn)中,方框中 所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可 以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意 的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí) 行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令 的組合來實現(xiàn)。
[0086] 盡管已經(jīng)具體說明了本發(fā)明的一個或多個實施例,但是本領(lǐng)域普通技術(shù)人員將理 解,對該實施例的修改和調(diào)整可以在不背離如所附權(quán)利要求闡述的本發(fā)明的范圍的情況下 進行。
【權(quán)利要求】
1. 一種用于在計算環(huán)境中由處理器進行的子邏輯單元名稱(LUN)數(shù)據(jù)遷移的方法,包 括: 將基于源代碼的規(guī)范實現(xiàn)為用作在存儲控制器和自有應(yīng)用之間的接口,以將指定大小 的數(shù)據(jù)從所述LUN后的物理存儲遷移到新的物理位置。
2. 根據(jù)權(quán)利要求1所述的方法,其中,遷移所述指定大小的數(shù)據(jù)包括:指定虛擬盤上的 數(shù)據(jù)組塊大小和起始邏輯塊地址(LBA)以及用于標識所述新的物理位置的目標物理存儲 描述。
3. 根據(jù)權(quán)利要求2所述的方法,進一步包括:揭示由所述存儲控制器支持的存儲池的 列表以及與所述存儲池的所述列表中的至少一個存儲池相關(guān)聯(lián)的至少一個存儲特性。
4. 根據(jù)權(quán)利要求3所述的方法,進一步包括:經(jīng)由所述接口接收調(diào)用,所述調(diào)用請求要 被遷移到被揭示的存儲池的所述列表中的目標存儲池的、從所述起始LBA開始且具有指定 大小的所述數(shù)據(jù)組塊的數(shù)據(jù)。
5. 根據(jù)權(quán)利要求4所述的方法,進一步包括確定用于所述目標存儲池上的所述數(shù)據(jù)組 塊的最佳匹配。
6. 根據(jù)權(quán)利要求5所述的方法,進一步包括:作為遷移操作,作為后臺處理而將所述數(shù) 據(jù)組塊遷移到所述目標存儲池,所述后臺處理對所述自有應(yīng)用是透明的。
7. 根據(jù)權(quán)利要求6所述的方法,進一步包括:將虛擬盤映射指向所述目標存儲池上的 所述新的物理位置。
8. 根據(jù)權(quán)利要求7所述的方法,進一步包括:在完成將所述虛擬盤映射指向所述新的 物理位置之后,提交所述遷移操作。
9. 一種用于計算環(huán)境中的子邏輯單元名稱(LUN)數(shù)據(jù)遷移的系統(tǒng),包括: 處理器,所述處理器能夠在所述計算環(huán)境中操作,其中,所述處理器被配置用于將基于 源代碼的規(guī)范實現(xiàn)為用作在存儲控制器和自有應(yīng)用之間的接口,以將指定大小的數(shù)據(jù)從所 述LUN后的物理存儲遷移到新的物理位置。
10. 根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述基于源代碼的規(guī)范包括應(yīng)用編程接口 (API)。
11. 根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述處理器被進一步配置用于,根據(jù)遷移所述 指定大小的數(shù)據(jù),指定虛擬盤上的數(shù)據(jù)組塊的大小和起始邏輯塊地址(LBA)以及用于標識 所述新的物理位置的目標物理存儲描述。
12. 根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述處理器被進一步配置用于揭示由所述存 儲控制器支持的存儲池的列表以及與所述存儲池的所述列表中的至少一個存儲池相關(guān)聯(lián) 的至少一個存儲特性。
13. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述處理器被進一步配置用于經(jīng)由所述接口 接收調(diào)用,所述調(diào)用請求要被遷移到被揭示的存儲池的所述列表中的目標存儲池的、從所 述起始LBA開始且具有指定大小的所述數(shù)據(jù)組塊的數(shù)據(jù)。
14. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述處理器被進一步配置用于確定用于所述 目標存儲池上的所述數(shù)據(jù)組塊的最佳匹配。
15. 根據(jù)權(quán)利要求14所述的系統(tǒng),其中,所述處理器被進一步配置用于,作為遷移操 作,作為后臺處理而將所述數(shù)據(jù)組塊遷移到所述目標存儲池,所述后臺處理對所述自有應(yīng) 用是透明的。
16. 根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述處理器被進一步配置用于將虛擬盤映射 指向所述目標存儲池上的所述新的物理位置。
17. 根據(jù)權(quán)利要求16所述的系統(tǒng),其中,所述處理器被進一步配置用于在完成將所述 虛擬盤映射指向所述新的物理位置之后,提交所述遷移操作。
18. -種用于在計算環(huán)境中由處理器進行的子邏輯單元名稱(LUN)數(shù)據(jù)遷移的計算機 程序產(chǎn)品,所述計算機程序產(chǎn)品包括其中存儲有計算機可讀程序代碼部分的計算機可讀存 儲介質(zhì),所述計算機可讀程序代碼部分包括: 第一可執(zhí)行部分,用于將基于源代碼的規(guī)范實現(xiàn)為用作在存儲控制器和自有應(yīng)用之間 的接口,以將指定大小的數(shù)據(jù)從所述LUN后的物理存儲遷移到新的物理位置。
19. 根據(jù)權(quán)利要求18所述的計算機程序產(chǎn)品,進一步包括第二可執(zhí)行部分,用于根據(jù) 遷移所述指定大小的數(shù)據(jù),指定虛擬盤上的數(shù)據(jù)組塊的大小和起始邏輯塊地址(LBA)以及 用于標識所述新的物理位置的目標物理存儲描述。
20. 根據(jù)權(quán)利要求19所述的計算機程序產(chǎn)品,進一步包括第三可執(zhí)行部分,用于揭示 由所述存儲控制器支持的存儲池的列表以及與所述存儲池的所述列表中的至少一個存儲 池相關(guān)聯(lián)的至少一個存儲特性。
21. 根據(jù)權(quán)利要求20所述的計算機程序產(chǎn)品,進一步包括第四可執(zhí)行部分,用于經(jīng)由 所述接口接收調(diào)用,所述調(diào)用請求要被遷移到被揭示的存儲池的所述列表中的目標存儲池 的、從所述起始LBA開始且具有指定大小的所述數(shù)據(jù)組塊的數(shù)據(jù)。
22. 根據(jù)權(quán)利要求21所述的計算機程序產(chǎn)品,進一步包括第五可執(zhí)行部分,用于確定 用于所述目標存儲池上的所述數(shù)據(jù)組塊的最佳匹配。
23. 根據(jù)權(quán)利要求22所述的計算機程序產(chǎn)品,進一步包括第六可執(zhí)行部分,用于作為 遷移操作,作為后臺處理而將所述數(shù)據(jù)組塊遷移到所述目標存儲池,所述后臺處理對所述 自有應(yīng)用是透明的。
24. 根據(jù)權(quán)利要求23所述的計算機程序產(chǎn)品,進一步包括第七可執(zhí)行部分,用于將虛 擬盤映射指向所述目標存儲池上的所述新的物理位置。
25. 根據(jù)權(quán)利要求24所述的計算機程序產(chǎn)品,進一步包括第八可執(zhí)行部分,用于在完 成將所述虛擬盤映射指向所述新的物理位置之后,提交所述遷移操作。
【文檔編號】G06F12/02GK104335188SQ201380026278
【公開日】2015年2月4日 申請日期:2013年5月14日 優(yōu)先權(quán)日:2012年5月29日
【發(fā)明者】C·E·瓊斯, G·科豪恩科爾, P·巴維施, P·O·坎德爾瓦爾, S·羅伊 申請人:國際商業(yè)機器公司