捕獲用于處理數(shù)據(jù)的壓縮效率度量的方法和系統(tǒng)的制作方法
【專(zhuān)利摘要】本申請(qǐng)?zhí)峁┝瞬东@用于處理數(shù)據(jù)的壓縮效率度量的方法和系統(tǒng)。響應(yīng)于取回用于第一操作的原始數(shù)據(jù),執(zhí)行第一操作;基于原始數(shù)據(jù)與壓縮后的原始數(shù)據(jù)的比率,執(zhí)行第二操作以從原始數(shù)據(jù)生成壓縮效率度量;以及持久地存儲(chǔ)壓縮效率度量以便后續(xù)用于對(duì)原始數(shù)據(jù)的壓縮區(qū)分優(yōu)先次序。
【專(zhuān)利說(shuō)明】
捕獲用于處理數(shù)據(jù)的壓縮效率度量的方法和系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明的實(shí)施例涉及捕獲用于處理數(shù)據(jù)的壓縮效率度量。
【背景技術(shù)】
[0002]虛擬化系統(tǒng)可被描述為向主機(jī)提供數(shù)據(jù)的邏輯視圖的系統(tǒng)。即,盡管數(shù)據(jù)可被物理地存儲(chǔ)在不同的存儲(chǔ)設(shè)備上,但是虛擬化系統(tǒng)向主機(jī)提供數(shù)據(jù)的視圖,使得主機(jī)將數(shù)據(jù)作為存儲(chǔ)在一個(gè)存儲(chǔ)設(shè)備上來(lái)對(duì)待。隨后,當(dāng)將要存儲(chǔ)或取回?cái)?shù)據(jù)時(shí),虛擬化系統(tǒng)在邏輯視圖和物理存儲(chǔ)裝置之間映射數(shù)據(jù)的位置。
[0003]虛擬化系統(tǒng)可以對(duì)客戶(hù)數(shù)據(jù)所采取的形式幾乎不具有可見(jiàn)度或控制。例如,來(lái)自主機(jī)的數(shù)據(jù)可在堆棧的更高層被壓縮或加密。另一示例是,某些種類(lèi)的數(shù)據(jù)可利用不同的算法或以不同的效率級(jí)別被壓縮。當(dāng)虛擬化系統(tǒng)存儲(chǔ)數(shù)據(jù)時(shí),為了效率的目的(諸如降低延遲),數(shù)據(jù)的壓縮屬性(諸如,數(shù)據(jù)中有多少個(gè)零)可能是未知的或者難以針對(duì)實(shí)時(shí)系統(tǒng)需求進(jìn)tx評(píng)估。
[0004]為了周期性地檢查/驗(yàn)證數(shù)據(jù)的奇偶校驗(yàn)或冗余性,廉價(jià)磁盤(pán)冗余陣列(RAID)存儲(chǔ)適配器具有讀取持久數(shù)據(jù)的歷史。另外,RAID存儲(chǔ)適配器中的硬件/固件引擎可訪問(wèn)固件或硬件壓縮引擎。
[0005]壓縮引擎可壓縮和解壓縮要寫(xiě)入RAID存儲(chǔ)裝置中的數(shù)據(jù),以及解壓縮要從RAID存儲(chǔ)裝置讀取的數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0006]提供了一種捕獲用于處理數(shù)據(jù)的壓縮效率度量的計(jì)算機(jī)程序產(chǎn)品。該計(jì)算機(jī)程序產(chǎn)品包括其中體現(xiàn)有程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述程序代碼可由至少一個(gè)處理器執(zhí)行以執(zhí)行:由所述至少一個(gè)處理器從存儲(chǔ)裝置周期性地取回塊空間(extent)的原始數(shù)據(jù)以執(zhí)行一致性擦洗(consistency scrub)操作,所述一致性擦洗操作驗(yàn)證奇偶校驗(yàn)數(shù)據(jù)以確定所述原始數(shù)據(jù)是否是準(zhǔn)確的和可恢復(fù)的;以及響應(yīng)于取回用于所述一致性擦洗操作的所述塊空間的原始數(shù)據(jù),由所述至少一個(gè)處理器執(zhí)行所述一致性擦洗操作;和由所述至少一個(gè)處理器通過(guò)以下方式生成針對(duì)所述塊空間的壓縮效率度量:壓縮所述原始數(shù)據(jù),和生成所述原始數(shù)據(jù)與壓縮后的原始數(shù)據(jù)的比率;以及由所述至少一個(gè)處理器持久地存儲(chǔ)所述壓縮效率度量以便后續(xù)用于對(duì)多個(gè)塊空間的壓縮區(qū)分優(yōu)先次序。
[0007]提供了一種捕獲用于處理數(shù)據(jù)的效率度量的方法。該方法包括:利用計(jì)算機(jī)的處理器從存儲(chǔ)裝置周期性地取回塊空間的原始數(shù)據(jù)以執(zhí)行一致性擦洗操作,所述一致性擦洗操作驗(yàn)證奇偶校驗(yàn)數(shù)據(jù)以確定所述原始數(shù)據(jù)是否是準(zhǔn)確的和可恢復(fù)的;以及響應(yīng)于取回用于所述一致性擦洗操作的所述塊空間的原始數(shù)據(jù),執(zhí)行所述一致性擦洗操作;和通過(guò)以下方式生成針對(duì)所述塊空間的壓縮效率度量:壓縮所述原始數(shù)據(jù),和生成所述原始數(shù)據(jù)與壓縮后的原始數(shù)據(jù)的比率;以及持久地存儲(chǔ)所述壓縮效率度量以便后續(xù)用于對(duì)多個(gè)塊空間的壓縮區(qū)分優(yōu)先次序。
[0008]提供了一種捕獲用于處理數(shù)據(jù)的效率度量的計(jì)算機(jī)系統(tǒng)。該計(jì)算機(jī)系統(tǒng)包括:一個(gè)或多個(gè)處理器、一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)器、和一個(gè)或多個(gè)計(jì)算機(jī)可讀的有形存儲(chǔ)設(shè)備;以及程序指令,其被存儲(chǔ)在所述一個(gè)或多個(gè)計(jì)算機(jī)可讀的有形存儲(chǔ)設(shè)備中的至少一個(gè)上,用于由所述一個(gè)或多個(gè)處理器中的至少一個(gè)處理器經(jīng)由所述一個(gè)或多個(gè)存儲(chǔ)器中的至少一個(gè)存儲(chǔ)器執(zhí)行以執(zhí)行操作,所述操作包括:從存儲(chǔ)裝置周期性地取回塊空間的原始數(shù)據(jù)以執(zhí)行一致性擦洗操作,所述一致性擦洗操作驗(yàn)證奇偶校驗(yàn)數(shù)據(jù)以確定所述原始數(shù)據(jù)是否是準(zhǔn)確的和可恢復(fù)的;以及響應(yīng)于取回用于所述一致性擦洗操作的所述塊空間的原始數(shù)據(jù),執(zhí)行所述一致性擦洗操作;和通過(guò)以下方式生成針對(duì)所述塊空間的壓縮效率度量:壓縮所述原始數(shù)據(jù),和生成所述原始數(shù)據(jù)與壓縮后的原始數(shù)據(jù)的比率;以及持久地存儲(chǔ)所述壓縮效率度量以便后續(xù)用于對(duì)多個(gè)塊空間的壓縮區(qū)分優(yōu)先次序。
【附圖說(shuō)明】
[0009]在附圖中,相同的附圖標(biāo)記自始至終表示對(duì)應(yīng)的部件。
[0010]圖1以框圖示出根據(jù)某些實(shí)施例的計(jì)算環(huán)境。
[0011]圖2以流程圖示出根據(jù)某些實(shí)施例的用于生成壓縮效率度量的操作。
[0012]圖3以流程圖示出根據(jù)某些實(shí)施例的用于生成壓縮效率度量的操作。
[0013]圖4以流程圖示出根據(jù)某些實(shí)施例的使用壓縮效率度量的操作。
[0014]圖5以框圖示出根據(jù)某些實(shí)施例的另一計(jì)算環(huán)境。
[0015]圖6以框圖示出根據(jù)某些實(shí)施例可被使用的計(jì)算機(jī)架構(gòu)。
【具體實(shí)施方式】
[0016]本發(fā)明的各個(gè)實(shí)施例的描述是出于舉例說(shuō)明的目的而呈現(xiàn)的,而并非旨在是無(wú)遺漏的或者局限于所公開(kāi)的實(shí)施例。在不脫離所述實(shí)施例的范圍和精神的情況下,許多改型和變型對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)說(shuō)將是明顯的。本文所使用的術(shù)語(yǔ)被選擇為最佳地解釋所述實(shí)施例的原理、實(shí)際應(yīng)用、或者相對(duì)于在市場(chǎng)中發(fā)現(xiàn)的技術(shù)的技術(shù)改進(jìn),或者使本領(lǐng)域其他普通技術(shù)人員能夠理解本文公開(kāi)的實(shí)施例。
[0017]圖1以框圖示出根據(jù)某些實(shí)施例的計(jì)算環(huán)境。存儲(chǔ)適配器100包括廉價(jià)磁盤(pán)冗余陣列(RAID)引擎110、壓縮引擎120和RAID存儲(chǔ)陣列150。壓縮引擎120包括壓縮效率度量捕獲(CEMC)引擎130 JAID存儲(chǔ)陣列150存儲(chǔ)數(shù)據(jù)160和壓縮效率度量180。某些實(shí)施例將已經(jīng)讀取/轉(zhuǎn)移數(shù)據(jù)的RAID—致性或RAID數(shù)據(jù)冗余性技術(shù)與壓縮引擎處理集成,使得關(guān)于數(shù)據(jù)的壓縮效率度量可被捕獲并持久地存儲(chǔ)以用于在之后獲得以高效地壓縮虛擬化的數(shù)據(jù)。即,某些實(shí)施例涉及當(dāng)取回?cái)?shù)據(jù)用于RAID—致性擦洗操作(例如,奇偶校驗(yàn)/冗余性檢查)時(shí),捕獲壓縮可行性(例如,壓縮效率度量)。
[0018]RAID引擎110執(zhí)行從RAID存儲(chǔ)陣列150取回?cái)?shù)據(jù)160的操作。所取回的數(shù)據(jù)可被稱(chēng)為原始數(shù)據(jù)。原始數(shù)據(jù)可被描述為利用在該原始數(shù)據(jù)被取回時(shí)存儲(chǔ)該原始數(shù)據(jù)的格式表示的數(shù)據(jù)。在某些實(shí)施例中,原始數(shù)據(jù)是未壓縮的數(shù)據(jù)。在其他實(shí)施例中,原始數(shù)據(jù)是壓縮后的數(shù)據(jù),其可被再次壓縮。而且,在各個(gè)實(shí)施例中,原始數(shù)據(jù)可以是未加密的數(shù)據(jù)(例如,明文)或加密的數(shù)據(jù)。
[0019]在某些實(shí)施例中,RAID引擎110讀取數(shù)據(jù)160用于周期性地檢查/驗(yàn)證數(shù)據(jù)160的奇偶校驗(yàn)或冗余性。數(shù)據(jù)取回引擎110向CEMC引擎120提供對(duì)數(shù)據(jù)160的訪問(wèn)。在某些實(shí)施例中,RAID引擎110向CEMC引擎120轉(zhuǎn)發(fā)數(shù)據(jù)160的副本。在某些實(shí)施例中,RAID引擎110在可由CEMC引擎120訪問(wèn)的位置存儲(chǔ)數(shù)據(jù)160XEMC引擎120處理數(shù)據(jù)160以生成指示針對(duì)數(shù)據(jù)160的壓縮有多高效的比率的壓縮效率度量180,并持久地存儲(chǔ)壓縮效率度量180。
[0020]在某些實(shí)施例中,RAID引擎110和壓縮引擎120占據(jù)虛擬化分級(jí)結(jié)構(gòu)中的同一虛擬化層。所述虛擬化分級(jí)結(jié)構(gòu)可被描述為功能堆棧(由虛擬化層構(gòu)成),其被用于將主機(jī)數(shù)據(jù)映射到下層的物理存儲(chǔ)裝置或者映射到功能堆棧中的下部的虛擬化層。這可采取許多形式,但構(gòu)思是,存儲(chǔ)分級(jí)結(jié)構(gòu)中的RAID引擎110可以訪問(wèn)固件或硬件壓縮引擎120 AAID引擎110具有后臺(tái)任務(wù),其通過(guò)從下層的主要用于應(yīng)用RAID技術(shù)的存儲(chǔ)設(shè)備讀取數(shù)據(jù)、并檢查所存儲(chǔ)的數(shù)據(jù)是準(zhǔn)確的(即,沒(méi)有錯(cuò)誤)和可恢復(fù)的(例如,甚至當(dāng)數(shù)據(jù)存在問(wèn)題時(shí),該數(shù)據(jù)也可被糾正),來(lái)驗(yàn)證奇偶校驗(yàn)/冗余性數(shù)據(jù)。RAID技術(shù)涉及周期性地讀取“明文”數(shù)據(jù)。為了滿(mǎn)足RAID—致性擦洗要求,RAID引擎110以規(guī)則的節(jié)奏訪問(wèn)大量數(shù)據(jù)(例如,保證給定域中的所有數(shù)據(jù)周期性地進(jìn)行冗余性檢查)。
[0021]對(duì)于各實(shí)施例,壓縮引擎120也處理RAID引擎110取回的用于RAID—致性擦洗操作的數(shù)據(jù)。壓縮引擎120處理所述數(shù)據(jù)以導(dǎo)出壓縮效率度量180,并把壓縮效率度量180存儲(chǔ)回到存儲(chǔ)陣列中的元數(shù)據(jù)區(qū)中。在之后的時(shí)間,虛擬化分級(jí)結(jié)構(gòu)中的任務(wù)可快速收獲所存儲(chǔ)的針對(duì)數(shù)據(jù)的壓縮效率度量180,并使用壓縮效率度量180來(lái)智能地管理大型存儲(chǔ)虛擬化數(shù)據(jù)以實(shí)現(xiàn)針對(duì)虛擬化數(shù)據(jù)的容量和訪問(wèn)效率。
[0022]存儲(chǔ)層可被描述為一組具有不同類(lèi)型的性能特性的存儲(chǔ)裝置(例如,一些存儲(chǔ)裝置可比其他存儲(chǔ)裝置具有更快的訪問(wèn))。例如,存儲(chǔ)分層應(yīng)用可讀取虛擬化的塊空間的元數(shù)據(jù)屬性,并且可迀移和壓縮已知具有特定壓縮效率的數(shù)據(jù)以實(shí)現(xiàn)從具有一種類(lèi)型的性能特性的存儲(chǔ)裝置到具有另一種類(lèi)型的性能特性的存儲(chǔ)裝置的整體存儲(chǔ)效率。
[0023]圖2以流程圖示出根據(jù)某些實(shí)施例的用于生成壓縮效率度量的操作。控制在框200開(kāi)始于:RAID引擎110從存儲(chǔ)裝置(例如,RAID存儲(chǔ)陣列150)取回用于一致性擦洗操作(例如,冗余性或奇偶校驗(yàn)檢查)的塊空間的原始數(shù)據(jù)。塊空間可被描述為計(jì)算機(jī)存儲(chǔ)裝置的連續(xù)區(qū)域(例如,RAID存儲(chǔ)陣列150的一部分)。RAID引擎110向CEMC引擎120提供對(duì)所取回的原始數(shù)據(jù)的訪問(wèn)以用于生成壓縮效率度量。在框202中,響應(yīng)于取回用于一致性擦洗操作的塊空間的原始數(shù)據(jù),RAID引擎110執(zhí)行一致性擦洗操作,并且CEMC引擎120通過(guò)以下方式生成所述塊空間的壓縮效率度量:壓縮原始數(shù)據(jù)并生成原始數(shù)據(jù)與壓縮后的原始數(shù)據(jù)的比率。對(duì)于各實(shí)施例,所取回的用于一致性擦洗操作的原始數(shù)據(jù)也被用于壓縮操作(不必第二次取回原始數(shù)據(jù))。在框204中,CEMC引擎102可選地持久存儲(chǔ)塊空間的效率度量以便后續(xù)(未來(lái))用于對(duì)多個(gè)塊空間的壓縮區(qū)分優(yōu)先次序。如果壓縮效率度量指示原始數(shù)據(jù)未能很好地壓縮,則在某些實(shí)施例中,壓縮效率度量并不持久存儲(chǔ),而在其他實(shí)施例中,仍然存儲(chǔ)該壓縮效率度量。
[0024]圖3以流程圖示出根據(jù)某些實(shí)施例的用于生成壓縮效率度量的操作??刂圃诳?00開(kāi)始于:CEMC引擎120確定原始數(shù)據(jù)的大小。在框302中,CEMC引擎120壓縮原始數(shù)據(jù)。在框304中,CEMC引擎120確定壓縮后的原始數(shù)據(jù)的大小。在框306中,CEMC引擎120將壓縮效率度量生成為原始數(shù)據(jù)的大小與壓縮后的原始數(shù)據(jù)的大小的比率。例如,如果原始數(shù)據(jù)的大小是10兆字節(jié)、且壓縮后的數(shù)據(jù)的大小是2兆字節(jié),則壓縮效率度量是5:1的比率。
[0025]圖4以流程圖示出根據(jù)某些實(shí)施例的使用壓縮效率度量的操作。控制在框400開(kāi)始于:CEMC引擎120識(shí)別用于處理的塊空間。在某些實(shí)施例中,所述塊空間中的每一個(gè)可被描述為計(jì)算機(jī)存儲(chǔ)裝置的連續(xù)區(qū)域(例如,RAID存儲(chǔ)陣列150的一部分)。在框402中,CEMC引擎120取回與所述塊空間相關(guān)聯(lián)的壓縮效率度量。在框404中,CEMC引擎120使用壓縮效率度量構(gòu)建區(qū)分了優(yōu)先次序的塊空間壓縮列表。在某些實(shí)施例中,所述塊空間按照從具有較高壓縮效率度量(較高比率)的塊空間到具有較低壓縮效率度量(較低比率)的塊空間的順序被排序。在框406中,CEMC引擎120使用塊空間壓縮列表的順序來(lái)處理所述塊空間(例如,具有較高壓縮效率度量(較高比率)的塊空間被首先處理)???06的處理可以是下述中的一個(gè)或多個(gè):復(fù)制、壓縮和移動(dòng)所述塊空間。
[0026]僅僅為了增強(qiáng)理解,在本文中給出使用包括RAID存儲(chǔ)陣列、RAID引擎、包括CEMC引擎的壓縮引擎、存儲(chǔ)分層應(yīng)用、以及虛擬化元數(shù)據(jù)方案的系統(tǒng)的示例,在所述虛擬化元數(shù)據(jù)方案中,針對(duì)數(shù)據(jù)的壓縮效率度量被存儲(chǔ)。對(duì)于這樣的示例系統(tǒng),由多個(gè)存儲(chǔ)設(shè)備組成的RAID存儲(chǔ)陣列被耦接至RAID引擎,該RAID引擎可使用或訪問(wèn)壓縮引擎、并且可以是虛擬化存儲(chǔ)分級(jí)結(jié)構(gòu)的一部分。
[0027]RAID—致性檢查可在數(shù)據(jù)進(jìn)行冗余性檢查時(shí)利用壓縮引擎作為附加的后臺(tái)任務(wù)。對(duì)于該示例,假定數(shù)據(jù)被布置成使得相對(duì)于虛擬化模型中的數(shù)據(jù)的塊空間,用于RAID—致性的數(shù)據(jù)的塊空間更小并且是順次的。例如,假定RAID冗余性模型中的256K字節(jié)塊空間,其中2兆字節(jié)的虛擬化塊空間由八個(gè)raid塊空間組成。
[0028]對(duì)于這樣的示例系統(tǒng),壓縮可行性按照以下方式被記錄:
[0029]I)讀取RAID塊空間的組分?jǐn)?shù)據(jù)
[0030]2)應(yīng)用RAID技術(shù)并驗(yàn)證RAID—致性
[0031]3)對(duì)于RAID數(shù)據(jù),將所述數(shù)據(jù)傳遞給壓縮引擎,該壓縮引擎計(jì)算反映一比率的壓縮效率度量。
[0032]4)對(duì)該組RAID塊空間重復(fù)操作I _3,直到針對(duì)虛擬化塊空間的壓縮度量是已知的為止。在該示例中,由于八個(gè)RAID塊空間構(gòu)成一個(gè)虛擬化塊空間,所以壓縮引擎為八個(gè)RAID塊空間中的每一個(gè)計(jì)算壓縮效率度量,并取這八個(gè)壓縮效率度量的平均值以獲得與所述虛擬化塊空間相關(guān)聯(lián)的壓縮效率度量。
[0033]5)記錄針對(duì)所述虛擬化塊空間的元數(shù)據(jù),其反映該虛擬化塊空間的壓縮效率度量。
[0034]在壓縮評(píng)估階段,為各虛擬化塊空間讀取壓縮效率度量,使用壓縮效率度量來(lái)構(gòu)建區(qū)分了優(yōu)先次序的塊空間壓縮列表,并且應(yīng)用存儲(chǔ)分層模型以將虛擬化塊空間復(fù)制/壓縮/移動(dòng)到壓縮形式。
[0035]在某些實(shí)施例中,現(xiàn)有的一致性擦洗操作從RAID存儲(chǔ)陣列讀取數(shù)據(jù),查找介質(zhì)錯(cuò)誤或查找數(shù)據(jù)不一致性(例如,諸如所計(jì)算的奇偶校驗(yàn)與磁盤(pán)上的奇偶校驗(yàn)不匹配)。這些一致性擦洗操作周期性地、每次一部分地擦洗陣列上的所有數(shù)據(jù)。對(duì)于各實(shí)施例,數(shù)據(jù)壓縮可使用一致性擦洗操作來(lái)獲得有關(guān)數(shù)據(jù)的可壓縮程度的壓縮效率度量(并存儲(chǔ)這些壓縮效率度量),從而例如允許用戶(hù)做出是否啟用壓縮的更好的選擇。即,只要一致性擦洗操作不管怎樣必須讀取所有數(shù)據(jù),所述數(shù)據(jù)也可經(jīng)過(guò)壓縮引擎的處理(但是并不存儲(chǔ))以計(jì)算有關(guān)所述數(shù)據(jù)的壓縮程度的壓縮效率度量。在某些實(shí)施例中,一致性擦洗操作是后臺(tái)操作。
[0036]圖5以框圖示出根據(jù)某些實(shí)施例的另一計(jì)算環(huán)境。存儲(chǔ)單元500(例如,存儲(chǔ)控制器、存儲(chǔ)適配器、服務(wù)器計(jì)算機(jī)或其他計(jì)算設(shè)備)包括數(shù)據(jù)取回引擎510、壓縮效率度量捕獲(CEMC)引擎520(其可以是壓縮引擎的一部分或者與壓縮引擎分離)、以及數(shù)據(jù)存儲(chǔ)裝置150。數(shù)據(jù)存儲(chǔ)裝置550存儲(chǔ)數(shù)據(jù)560并持久地存儲(chǔ)壓縮效率度量580。在某些實(shí)施例中,數(shù)據(jù)存儲(chǔ)裝置550是一組RAID存儲(chǔ)陣列。數(shù)據(jù)取回引擎510執(zhí)行從數(shù)據(jù)存儲(chǔ)裝置550取回?cái)?shù)據(jù)560的操作。所取回的數(shù)據(jù)可被稱(chēng)為原始數(shù)據(jù)。原始數(shù)據(jù)可被描述為利用在該原始數(shù)據(jù)被取回時(shí)存儲(chǔ)該原始數(shù)據(jù)的格式表示的數(shù)據(jù)。在某些實(shí)施例中,原始數(shù)據(jù)是未壓縮的數(shù)據(jù)。在其他實(shí)施例中,原始數(shù)據(jù)是壓縮后的數(shù)據(jù),其可被再次壓縮。而且,在各個(gè)實(shí)施例中,原始數(shù)據(jù)可以是未加密的數(shù)據(jù)(例如,明文)或加密的數(shù)據(jù)。在某些實(shí)施例中,數(shù)據(jù)取回引擎510是讀取數(shù)據(jù)560以用于周期性地檢查/驗(yàn)證數(shù)據(jù)560的奇偶校驗(yàn)或冗余性的RAID引擎110。數(shù)據(jù)取回弓丨擎510向CEMC引擎520提供對(duì)數(shù)據(jù)560的訪問(wèn)。在某些實(shí)施例中,數(shù)據(jù)取回引擎510向CEMC引擎520轉(zhuǎn)發(fā)數(shù)據(jù)560的副本。在某些實(shí)施例中,數(shù)據(jù)取回引擎510在可由CEMC引擎520訪問(wèn)的位置存儲(chǔ)數(shù)據(jù)560。在某些實(shí)施例中,CEMC引擎520是壓縮引擎。CEMC引擎520處理數(shù)據(jù)560以生成指示數(shù)據(jù)560的壓縮有多高效的比率的壓縮效率度量,并持久地存儲(chǔ)壓縮效率度量580。
[0037]對(duì)于各實(shí)施例,參考圖2、3和4,數(shù)據(jù)取回引擎510執(zhí)行由RAID引擎110執(zhí)行的操作,并且CEMC引擎520執(zhí)行由CEMC引擎120執(zhí)行的操作。
[0038]圖6示出根據(jù)某些實(shí)施例可被使用的計(jì)算機(jī)架構(gòu)600。在某些實(shí)施例中,存儲(chǔ)適配器100和/或存儲(chǔ)單元500可實(shí)現(xiàn)計(jì)算機(jī)架構(gòu)600。計(jì)算機(jī)架構(gòu)600適合于存儲(chǔ)和/或執(zhí)行程序代碼并包括至少一個(gè)處理器602,該處理器602直接耦接至存儲(chǔ)器單元604或通過(guò)系統(tǒng)總線(xiàn)620間接耦接至存儲(chǔ)器單元604。存儲(chǔ)器單元604可包括在程序代碼的實(shí)際執(zhí)行期間采用的本地存儲(chǔ)器、大容量存儲(chǔ)裝置和高速緩沖存儲(chǔ)器,該高速緩沖存儲(chǔ)器提供至少一些程序代碼的臨時(shí)存儲(chǔ),以便減少在執(zhí)行期間必須從大容量存儲(chǔ)裝置取回代碼的次數(shù)。存儲(chǔ)器單元604包括操作系統(tǒng)605和一個(gè)或多個(gè)計(jì)算機(jī)程序606。
[0039]輸入/輸出(I/O)設(shè)備612、614(包括但不限于鍵盤(pán)、顯示器、指點(diǎn)設(shè)備等)可直接地或者通過(guò)居間的I/O控制器610耦接至所述系統(tǒng)。
[0040]網(wǎng)絡(luò)適配器608也可耦接至所述系統(tǒng)以使數(shù)據(jù)處理系統(tǒng)能夠通過(guò)居間的私有或公共網(wǎng)絡(luò)耦接至其他數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)設(shè)備。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡只是當(dāng)前可用的類(lèi)型的網(wǎng)絡(luò)適配器608中的一些。
[0041]計(jì)算機(jī)架構(gòu)600可耦接至存儲(chǔ)裝置616(例如,任何類(lèi)型的存儲(chǔ)設(shè)備;非易失性存儲(chǔ)區(qū),諸如磁盤(pán)驅(qū)動(dòng)器、光盤(pán)驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器等)。存儲(chǔ)裝置616可包括內(nèi)部存儲(chǔ)設(shè)備,或者附接的或網(wǎng)絡(luò)可訪問(wèn)的存儲(chǔ)裝置。存儲(chǔ)裝置616中的計(jì)算機(jī)程序606可加載到存儲(chǔ)器單元604中并由處理器602以本領(lǐng)域已知的方式執(zhí)行。
[0042]計(jì)算機(jī)架構(gòu)600可包括比圖示的組件更少的組件、未在本文示出的附加組件、或者示出的組件和附加組件的一些組合。計(jì)算機(jī)架構(gòu)600可包括本領(lǐng)域已知的任何計(jì)算設(shè)備,諸如大型機(jī)、服務(wù)器、個(gè)人計(jì)算機(jī)、工作站、膝上型計(jì)算機(jī)、手持計(jì)算機(jī)、電話(huà)設(shè)備、網(wǎng)絡(luò)設(shè)備、虛擬化設(shè)備、存儲(chǔ)控制器等。
[0043]附加的實(shí)施例細(xì)節(jié)
[0044]本發(fā)明可以是系統(tǒng)、方法和/或計(jì)算機(jī)程序產(chǎn)品。計(jì)算機(jī)程序產(chǎn)品可以包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上載有用于使處理器實(shí)現(xiàn)本發(fā)明的各個(gè)方面的計(jì)算機(jī)可讀程序指令。
[0045]計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是可以保持和存儲(chǔ)由指令執(zhí)行設(shè)備使用的指令的有形設(shè)備。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一一但不限于一一電存儲(chǔ)設(shè)備、磁存儲(chǔ)設(shè)備、光存儲(chǔ)設(shè)備、電磁存儲(chǔ)設(shè)備、半導(dǎo)體存儲(chǔ)設(shè)備或者上述的任意合適的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:便攜式計(jì)算機(jī)盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPROM或閃存)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、便攜式壓縮盤(pán)只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能盤(pán)(DVD)、記憶棒、軟盤(pán)、機(jī)械編碼設(shè)備、例如其上存儲(chǔ)有指令的打孔卡或凹槽內(nèi)凸起結(jié)構(gòu)、以及上述的任意合適的組合。這里所使用的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)不被解釋為瞬時(shí)信號(hào)本身,諸如無(wú)線(xiàn)電波或者其他自由傳播的電磁波、通過(guò)波導(dǎo)或其他傳輸媒介傳播的電磁波(例如,通過(guò)光纖電纜的光脈沖)、或者通過(guò)電線(xiàn)傳輸?shù)碾娦盘?hào)。
[0046]這里所描述的計(jì)算機(jī)可讀程序指令可以從計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)下載到各個(gè)計(jì)算/處理設(shè)備,或者通過(guò)網(wǎng)絡(luò)、例如因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)和/或無(wú)線(xiàn)網(wǎng)下載到外部計(jì)算機(jī)或外部存儲(chǔ)設(shè)備。網(wǎng)絡(luò)可以包括銅傳輸電纜、光纖傳輸、無(wú)線(xiàn)傳輸、路由器、防火墻、交換機(jī)、網(wǎng)關(guān)計(jì)算機(jī)和/或邊緣服務(wù)器。每個(gè)計(jì)算/處理設(shè)備中的網(wǎng)絡(luò)適配卡或者網(wǎng)絡(luò)接口從網(wǎng)絡(luò)接收計(jì)算機(jī)可讀程序指令,并轉(zhuǎn)發(fā)該計(jì)算機(jī)可讀程序指令,以供存儲(chǔ)在各個(gè)計(jì)算/處理設(shè)備中的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。
[0047]用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序指令可以是匯編指令、指令集架構(gòu)(ISA)指令、機(jī)器指令、機(jī)器相關(guān)指令、微代碼、固件指令、狀態(tài)設(shè)置數(shù)據(jù)、或者以一種或多種編程語(yǔ)言的任意組合編寫(xiě)的源代碼或目標(biāo)代碼,所述編程語(yǔ)言包括面向?qū)ο蟮木幊陶Z(yǔ)言一諸如Smalltalk、C++等,以及常規(guī)的過(guò)程式編程語(yǔ)言一諸如“C”語(yǔ)言或類(lèi)似的編程語(yǔ)言。計(jì)算機(jī)可讀程序指令可以完全地在用戶(hù)計(jì)算機(jī)上執(zhí)行、部分地在用戶(hù)計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶(hù)計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類(lèi)的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶(hù)計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。在一些實(shí)施例中,通過(guò)利用計(jì)算機(jī)可讀程序指令的狀態(tài)信息來(lái)個(gè)性化定制電子電路,例如可編程邏輯電路、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)或可編程邏輯陣列(PLA),該電子電路可以執(zhí)行計(jì)算機(jī)可讀程序指令,從而實(shí)現(xiàn)本發(fā)明的各個(gè)方面。
[0048]這里參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述了本發(fā)明的各個(gè)方面。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)可讀程序指令實(shí)現(xiàn)。
[0049]這些計(jì)算機(jī)可讀程序指令可以提供給通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些指令在通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。也可以把這些計(jì)算機(jī)可讀程序指令存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,這些指令使得計(jì)算機(jī)、可編程數(shù)據(jù)處理裝置和/或其他設(shè)備以特定方式工作,從而,存儲(chǔ)有指令的計(jì)算機(jī)可讀介質(zhì)則包括一個(gè)制造品,其包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的各個(gè)方面的指令。
[0050]也可以把計(jì)算機(jī)可讀程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,從而使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上執(zhí)行的指令實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作。
[0051]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或指令的一部分,所述模塊、程序段或指令的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專(zhuān)用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專(zhuān)用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
【主權(quán)項(xiàng)】
1.一種方法,包括: 利用計(jì)算機(jī)的處理器從存儲(chǔ)裝置周期性地取回塊空間的原始數(shù)據(jù)以執(zhí)行一致性擦洗操作,所述一致性擦洗操作驗(yàn)證奇偶校驗(yàn)數(shù)據(jù)以確定所述原始數(shù)據(jù)是否是準(zhǔn)確的和可恢復(fù)的;以及 響應(yīng)于取回用于所述一致性擦洗操作的所述塊空間的原始數(shù)據(jù), 執(zhí)行所述一致性擦洗操作;和 通過(guò)以下方式生成針對(duì)所述塊空間的壓縮效率度量: 壓縮所述原始數(shù)據(jù);和 生成所述原始數(shù)據(jù)與壓縮后的原始數(shù)據(jù)的比率;以及 持久地存儲(chǔ)所述壓縮效率度量以便后續(xù)用于對(duì)多個(gè)塊空間的壓縮區(qū)分優(yōu)先次序。2.如權(quán)利要求1所述的方法,還包括: 確定所述原始數(shù)據(jù)的大??; 確定壓縮后的原始數(shù)據(jù)的大??;以及 將所述壓縮效率度量生成為所述原始數(shù)據(jù)的大小與壓縮后的原始數(shù)據(jù)的大小的比率。3.如權(quán)利要求1所述的方法,還包括: 識(shí)別用于處理的塊空間; 取回與所述塊空間相關(guān)聯(lián)的壓縮效率度量; 使用所述壓縮效率度量來(lái)構(gòu)建區(qū)分了優(yōu)先次序的塊空間壓縮列表;以及 使用所述塊空間壓縮列表的順序來(lái)處理所述塊空間。4.如權(quán)利要求1所述的方法,其中虛擬化塊空間包括多個(gè)物理塊空間,并且所述方法還包括: 為存儲(chǔ)在所述多個(gè)物理塊空間中的每個(gè)物理塊空間中的原始數(shù)據(jù)生成壓縮效率度量; 計(jì)算所述壓縮效率度量的平均值;以及 存儲(chǔ)所述壓縮效率度量的平均值作為針對(duì)所述虛擬化塊空間的壓縮效率度量。5.如權(quán)利要求1所述的方法,其中所述存儲(chǔ)裝置是廉價(jià)磁盤(pán)冗余陣列(RAID)存儲(chǔ)陣列,以及其中所取回的數(shù)據(jù)是未加密的數(shù)據(jù)。6.如權(quán)利要求1所述的方法,其中響應(yīng)于確定所述壓縮效率度量指示所述原始數(shù)據(jù)未能很好地壓縮,不存儲(chǔ)所述壓縮效率度量。7.—種計(jì)算機(jī)系統(tǒng),包括: 一個(gè)或多個(gè)處理器、一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)器、和一個(gè)或多個(gè)計(jì)算機(jī)可讀的有形存儲(chǔ)設(shè)備;以及 程序指令,其被存儲(chǔ)在所述一個(gè)或多個(gè)計(jì)算機(jī)可讀的有形存儲(chǔ)設(shè)備中的至少一個(gè)上,用于由所述一個(gè)或多個(gè)處理器中的至少一個(gè)處理器經(jīng)由所述一個(gè)或多個(gè)存儲(chǔ)器中的至少一個(gè)存儲(chǔ)器執(zhí)行以執(zhí)行操作,所述操作包括: 從存儲(chǔ)裝置周期性地取回塊空間的原始數(shù)據(jù)以執(zhí)行一致性擦洗操作,所述一致性擦洗操作驗(yàn)證奇偶校驗(yàn)數(shù)據(jù)以確定所述原始數(shù)據(jù)是否是準(zhǔn)確的和可恢復(fù)的;以及響應(yīng)于取回用于所述一致性擦洗操作的所述塊空間的原始數(shù)據(jù), 執(zhí)行所述一致性擦洗操作;和 通過(guò)以下方式生成針對(duì)所述塊空間的壓縮效率度量: 壓縮所述原始數(shù)據(jù);和 生成所述原始數(shù)據(jù)與壓縮后的原始數(shù)據(jù)的比率;以及 持久地存儲(chǔ)所述壓縮效率度量以便后續(xù)用于對(duì)多個(gè)塊空間的壓縮區(qū)分優(yōu)先次序。8.如權(quán)利要求7所述的計(jì)算機(jī)系統(tǒng),其中所述操作還包括: 確定所述原始數(shù)據(jù)的大?。?確定壓縮后的原始數(shù)據(jù)的大小;以及 將所述壓縮效率度量生成為所述原始數(shù)據(jù)的大小與壓縮后的原始數(shù)據(jù)的大小的比率。9.如權(quán)利要求7所述的計(jì)算機(jī)系統(tǒng),其中所述操作還包括: 識(shí)別用于處理的塊空間; 取回與所述塊空間相關(guān)聯(lián)的壓縮效率度量; 使用所述壓縮效率度量來(lái)構(gòu)建區(qū)分了優(yōu)先次序的塊空間壓縮列表;以及 使用所述塊空間壓縮列表的順序來(lái)處理所述塊空間。10.如權(quán)利要求7所述的計(jì)算機(jī)系統(tǒng),其中虛擬化塊空間包括多個(gè)物理塊空間,以及其中所述操作還包括: 為存儲(chǔ)在所述多個(gè)物理塊空間中的每個(gè)物理塊空間中的原始數(shù)據(jù)生成壓縮效率度量; 計(jì)算所述壓縮效率度量的平均值;以及 存儲(chǔ)所述壓縮效率度量的平均值作為針對(duì)所述虛擬化塊空間的壓縮效率度量。11.如權(quán)利要求7所述的計(jì)算機(jī)系統(tǒng),其中所述存儲(chǔ)裝置是廉價(jià)磁盤(pán)冗余陣列(RAID)存儲(chǔ)陣列,以及其中所取回的數(shù)據(jù)是未加密的數(shù)據(jù)。12.如權(quán)利要求7所述的計(jì)算機(jī)系統(tǒng),其中響應(yīng)于確定所述壓縮效率度量指示所述原始數(shù)據(jù)未能很好地壓縮,不存儲(chǔ)所述壓縮效率度量。13.—種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括其中體現(xiàn)有程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述程序代碼能夠由至少一個(gè)處理器執(zhí)行以執(zhí)行權(quán)利要求1至6中任一項(xiàng)所述的方法。
【文檔編號(hào)】G06F3/06GK105843552SQ201610068935
【公開(kāi)日】2016年8月10日
【申請(qǐng)日】2016年2月1日
【發(fā)明人】D·R·卡勒, K·A·洛夫里昂
【申請(qǐng)人】國(guó)際商業(yè)機(jī)器公司