專(zhuān)利名稱(chēng):自動(dòng)精簡(jiǎn)配置遷移和清理的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及用于數(shù)據(jù)存儲(chǔ)的方法和裝置,并且具體地涉及用于在數(shù)據(jù)存儲(chǔ)系統(tǒng)中管理多個(gè)邏輯卷的方法和裝置。
背景技術(shù):
在給它們的用戶(hù)提供多種應(yīng)用的組織中,經(jīng)常使用大規(guī)模計(jì)算機(jī)盤(pán)存儲(chǔ)系統(tǒng)。存儲(chǔ)虛擬化也用于從物理存儲(chǔ)抽象化邏輯存儲(chǔ)。虛擬化系統(tǒng)提供用于數(shù)據(jù)存儲(chǔ)的邏輯 空間,同時(shí)管理邏輯和實(shí)際物理存儲(chǔ)位置之間的映射的一些形式。自動(dòng)精簡(jiǎn)配置(thin provisioning)系統(tǒng)根據(jù)需要給應(yīng)用服務(wù)器提供存儲(chǔ)空間。自動(dòng)精簡(jiǎn)配置還簡(jiǎn)化容量計(jì)劃, 因?yàn)槠渥詣?dòng)將共享存儲(chǔ)系統(tǒng)的所有服務(wù)器的需要聚集為單個(gè)增長(zhǎng)率。
發(fā)明內(nèi)容
在本發(fā)明的實(shí)施例中,提供了一種用于將數(shù)據(jù)遷移到大容量存儲(chǔ)系統(tǒng)的方法。該 方法包括接收進(jìn)入數(shù)據(jù)分區(qū)用于大容量存儲(chǔ)系統(tǒng)中的存儲(chǔ)。在大容量存儲(chǔ)系統(tǒng)中為進(jìn)入數(shù) 據(jù)分區(qū)分配邏輯存儲(chǔ)。檢查數(shù)據(jù)分區(qū)的內(nèi)容,并且如果進(jìn)入數(shù)據(jù)分區(qū)只包括零數(shù)據(jù),則禁止 大容量存儲(chǔ)系統(tǒng)中進(jìn)入數(shù)據(jù)分區(qū)的物理存儲(chǔ),同時(shí)保持用于進(jìn)入數(shù)據(jù)分區(qū)的分配的邏輯存 儲(chǔ)。禁止物理存儲(chǔ)和保持邏輯存儲(chǔ)提供存儲(chǔ)空間的顯著節(jié)省,并且不減少存儲(chǔ)的信息的級(jí) 別。在一些實(shí)施例中,分配邏輯存儲(chǔ)包括創(chuàng)建具有用于進(jìn)入數(shù)據(jù)分區(qū)的邏輯地址的分 區(qū)數(shù)據(jù)記錄,并且將分區(qū)數(shù)據(jù)記錄存儲(chǔ)在永久介質(zhì)中。當(dāng)確定進(jìn)入數(shù)據(jù)分區(qū)包括非零數(shù)據(jù) 時(shí),將進(jìn)入數(shù)據(jù)分區(qū)存儲(chǔ)在永久介質(zhì)中,并且分區(qū)數(shù)據(jù)記錄典型地包含進(jìn)入數(shù)據(jù)分區(qū)的物 理地址。典型地,該大容量存儲(chǔ)系統(tǒng)是自動(dòng)精簡(jiǎn)配置存儲(chǔ)系統(tǒng)。在公開(kāi)的實(shí)施例中,利用包括零比特的數(shù)據(jù)分區(qū)響應(yīng)請(qǐng)求存儲(chǔ)系統(tǒng)提供只包括零 數(shù)據(jù)的數(shù)據(jù)分區(qū)。在本發(fā)明的替代實(shí)施例中,提供了一種用于監(jiān)視大容量存儲(chǔ)系統(tǒng)中的數(shù)據(jù)的方 法。該方法包括從物理存儲(chǔ)讀取數(shù)據(jù)分區(qū),并且確定數(shù)據(jù)分區(qū)是否只包括零數(shù)據(jù)。響應(yīng)于 該分區(qū)只包括零數(shù)據(jù)的確定,重新分配大容量存儲(chǔ)系統(tǒng)中數(shù)據(jù)分區(qū)的物理存儲(chǔ),同時(shí)保持 用于數(shù)據(jù)分區(qū)的邏輯存儲(chǔ)。在一些公開(kāi)的實(shí)施例中,讀取數(shù)據(jù)分區(qū)包括檢查數(shù)據(jù)分區(qū)的完整性和正確性的至 少一個(gè),并且響應(yīng)于檢查,校正數(shù)據(jù)分區(qū)。在一些實(shí)施例中,重新分配物理存儲(chǔ)包括從與數(shù)據(jù)分區(qū)相關(guān)聯(lián)的分區(qū)描述符記錄 移除物理地址。因此,根據(jù)本發(fā)明的實(shí)施例,提供一種用于將數(shù)據(jù)遷移到大容量存儲(chǔ)系統(tǒng)的方法, 包括接收進(jìn)入數(shù)據(jù)分區(qū)用于在大容量存儲(chǔ)系統(tǒng)中的存儲(chǔ);
在大容量存儲(chǔ)系統(tǒng)中為進(jìn)入數(shù)據(jù)分區(qū)分配邏輯存儲(chǔ);進(jìn)行進(jìn)入數(shù)據(jù)分區(qū)只包括零數(shù)據(jù)的確定;以及響應(yīng)于該確定,在大容量存儲(chǔ)系統(tǒng)中禁止進(jìn)入數(shù)據(jù)分區(qū)的物理存儲(chǔ),同時(shí)保持用 于進(jìn)入數(shù)據(jù)分區(qū)的分配的邏輯存儲(chǔ)。典型地,分配邏輯存儲(chǔ)包括創(chuàng)建至少包括用于進(jìn)入數(shù)據(jù)分區(qū)的邏輯地址的分區(qū)數(shù) 據(jù)記錄。創(chuàng)建分區(qū)數(shù)據(jù)記錄可以包括將分區(qū)數(shù)據(jù)記錄存儲(chǔ)在永久介質(zhì)中。在一個(gè)實(shí)施例中,該方法包括進(jìn)行進(jìn)入數(shù)據(jù)分區(qū)包括非零數(shù)據(jù)的進(jìn)一步確定,并 且響應(yīng)于該進(jìn)一步確定,將進(jìn)入數(shù)據(jù)分區(qū)存儲(chǔ)在永久介質(zhì)中。將進(jìn)入數(shù)據(jù)分區(qū)存儲(chǔ)在永久 介質(zhì)中可以包括更新分區(qū)數(shù)據(jù)記錄以包含用于進(jìn)入數(shù)據(jù)分區(qū)的物理地址。在公開(kāi)的實(shí)施例中,該大容量存儲(chǔ)系統(tǒng)包括自動(dòng)精簡(jiǎn)配置存儲(chǔ)系統(tǒng)。在替代實(shí)施例中,該方法包括利用零比特的數(shù)據(jù)分區(qū)響應(yīng)請(qǐng)求大容量存儲(chǔ)系統(tǒng)提 供只具有零數(shù)據(jù)的數(shù)據(jù)分區(qū)。根據(jù)本發(fā)明的實(shí)施例,還提供了一種用于監(jiān)視大容量存儲(chǔ)系統(tǒng)中的數(shù)據(jù)方法,包 括從物理存儲(chǔ)讀取數(shù)據(jù)分區(qū);進(jìn)行數(shù)據(jù)分區(qū)只包括零數(shù)據(jù)的確定;以及響應(yīng)于該確定,重新分配大容量存儲(chǔ)系統(tǒng)中數(shù)據(jù)分區(qū)的物理存儲(chǔ),同時(shí)保持用于 數(shù)據(jù)分區(qū)的邏輯存儲(chǔ)的分配。典型地,讀取數(shù)據(jù)分區(qū)包括檢查數(shù)據(jù)分區(qū)的完整性和正確性的至少一個(gè)。該方法 還可以包括響應(yīng)于檢查,校正數(shù)據(jù)分區(qū)。在一個(gè)實(shí)施例中,讀取數(shù)據(jù)分區(qū)包括進(jìn)行數(shù)據(jù)分區(qū)錯(cuò)誤地包括非零數(shù)據(jù)的確定。在替代實(shí)施例中,保持邏輯存儲(chǔ)的分配包括創(chuàng)建至少具有用于數(shù)據(jù)分區(qū)的邏輯地 址的分區(qū)數(shù)據(jù)記錄。該方法典型地包括將分區(qū)存儲(chǔ)在永久介質(zhì)中,并且將分區(qū)存儲(chǔ)在永久 介質(zhì)中可以包括更新分區(qū)數(shù)據(jù)記錄以包含用于進(jìn)入數(shù)據(jù)分區(qū)的物理地址,并且重新分配物 理存儲(chǔ)可以包括從分區(qū)描述符記錄移除物理地址。在另外的替代實(shí)施例中,該方法包括利用零比特的輸出數(shù)據(jù)分區(qū)響應(yīng)請(qǐng)求大容量 存儲(chǔ)系統(tǒng)提供數(shù)據(jù)分區(qū)。根據(jù)本發(fā)明的實(shí)施例,還提供了一種用于將數(shù)據(jù)遷移到大容量存儲(chǔ)系統(tǒng)的裝置, 包括控制單元,其配置為接收進(jìn)入數(shù)據(jù)分區(qū)用于在大容量存儲(chǔ)系統(tǒng)中的存儲(chǔ),以及在大容量存儲(chǔ)系統(tǒng)中為進(jìn)入數(shù)據(jù)分區(qū)分配邏輯存儲(chǔ);以及處理器,其耦合到控制單元,以便進(jìn)行進(jìn)入數(shù)據(jù)分區(qū)只包括零數(shù)據(jù)的確定;以及響應(yīng)于該確定,在大容量存儲(chǔ)系統(tǒng)中禁止進(jìn)入數(shù)據(jù)分區(qū)的物理存儲(chǔ),同時(shí)保持用 于進(jìn)入數(shù)據(jù)分區(qū)的分配的邏輯存儲(chǔ)。根據(jù)本發(fā)明的實(shí)施例,還提供了一種用于監(jiān)視大容量存儲(chǔ)系統(tǒng)中的數(shù)據(jù)的裝置, 包括控制單元,其配置為從物理存儲(chǔ)讀取數(shù)據(jù)分區(qū);以及
處理器,其耦合到控制單元,以便執(zhí)行數(shù)據(jù)分區(qū)只包括零數(shù)據(jù)的確定;以及響應(yīng)于該確定,重新分配大容量存儲(chǔ)系統(tǒng)中數(shù)據(jù)分區(qū)的物理存儲(chǔ),并且保持用于數(shù)據(jù)分區(qū)的分配的邏輯存儲(chǔ)。
從下面與附圖一起進(jìn)行的本發(fā)明的實(shí)施例的詳細(xì)描述中,將更完全地理解本發(fā) 明,附圖中圖1是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)存儲(chǔ)系統(tǒng)的示意圖;圖2是根據(jù)本發(fā)明實(shí)施例的、連接到另一存儲(chǔ)系統(tǒng)的圖1的數(shù)據(jù)存儲(chǔ)系統(tǒng)的示意 圖;圖3是根據(jù)本發(fā)明實(shí)施例的、示意性圖示用于在圖1的數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)遷移 分區(qū)的方法的流程圖;圖4是根據(jù)本發(fā)明實(shí)施例的、圖1的數(shù)據(jù)存儲(chǔ)系統(tǒng)中的高速緩存的示意圖;以及圖5是根據(jù)本發(fā)明實(shí)施例的、示意性圖示用于在圖1的數(shù)據(jù)存儲(chǔ)系統(tǒng)中清理 (scrubbing)數(shù)據(jù)分區(qū)的方法的流程圖。
具體實(shí)施例方式概述自動(dòng)精簡(jiǎn)配置是“即時(shí)容量(just in time capacity) ”,其本質(zhì)上消除了分配的 但是未使用的存儲(chǔ)或擱置的存儲(chǔ)(stranded storage)。在題為“Dynamicallocation of storage for hierarchical copies”的美國(guó)專(zhuān)利申請(qǐng)公開(kāi)No. 2006/0253681 中描述了一種 在存儲(chǔ)系統(tǒng)中實(shí)現(xiàn)自動(dòng)精簡(jiǎn)配置的機(jī)制的方式,在此通過(guò)引用并入其全部?jī)?nèi)容。本發(fā)明的實(shí)施例提供用于增強(qiáng)自動(dòng)精簡(jiǎn)配置存儲(chǔ)系統(tǒng)的性能的方法。當(dāng)物理數(shù)據(jù) 分區(qū)的內(nèi)容具有零值時(shí),從而所有的數(shù)據(jù)比特為“關(guān)(off) ”,該分區(qū)需要邏輯定義但是不需 要物理存儲(chǔ)空間。該情況可以以各種方式出現(xiàn),例如當(dāng)應(yīng)用對(duì)分區(qū)中包含的數(shù)據(jù)進(jìn)行操作 并產(chǎn)生等于零的結(jié)果時(shí)。當(dāng)數(shù)據(jù)從源存儲(chǔ)系統(tǒng)遷移到目的地自動(dòng)精簡(jiǎn)配置存儲(chǔ)系統(tǒng)時(shí),可以使用下面描述 的本發(fā)明的一個(gè)實(shí)施例。在分配物理存儲(chǔ)之前分析遷移的每個(gè)數(shù)據(jù)分區(qū)。如果分區(qū)的內(nèi)容 具有零值,則分配邏輯存儲(chǔ),并且不使用物理存儲(chǔ)。當(dāng)應(yīng)用請(qǐng)求讀取該分區(qū)的全部或部分 時(shí),通過(guò)返回只由零構(gòu)成的分區(qū)適當(dāng)?shù)仨憫?yīng)該請(qǐng)求。禁止遷移的“零”分區(qū)的物理存儲(chǔ)提高 了存儲(chǔ)效率,同時(shí)增加了用于應(yīng)用數(shù)據(jù)的可用存儲(chǔ)空間。本發(fā)明的另一實(shí)施例在“清理”過(guò)程期間,消除了具有零值的分區(qū)的物理存儲(chǔ)。典 型地,存儲(chǔ)系統(tǒng)包括清理過(guò)程,其在常規(guī)系統(tǒng)活動(dòng)的后臺(tái)工作,以周期性檢查盤(pán)上存儲(chǔ)的每 個(gè)分區(qū)的數(shù)據(jù)完整性和正確性。清理過(guò)程典型地通過(guò)將數(shù)據(jù)清理干凈,應(yīng)用來(lái)將正確數(shù)據(jù) 恢復(fù)到發(fā)現(xiàn)有缺陷的分區(qū)。除了執(zhí)行完整性和正確性檢查外,清理過(guò)程還可以實(shí)現(xiàn)來(lái)檢查 存儲(chǔ)在分區(qū)中的數(shù)據(jù)只是零的可能性。如果分區(qū)只包含零,則該分區(qū)保持邏輯地在系統(tǒng)中 定義,但是盤(pán)上的物理存儲(chǔ)空間被重新分配,并且分區(qū)的內(nèi)容(只有零)不寫(xiě)到盤(pán)上。當(dāng)應(yīng) 用請(qǐng)求讀取該分區(qū)的全部或部分時(shí),通過(guò)返回只有零構(gòu)成的分區(qū)來(lái)適當(dāng)?shù)仨憫?yīng)該請(qǐng)求。當(dāng)在清理期間發(fā)現(xiàn)“零”分區(qū)時(shí)消除用于它們的物理空間提供了類(lèi)似于上面對(duì)于數(shù)據(jù)遷移描述的優(yōu)點(diǎn)。系統(tǒng)描述圖1示出根據(jù)本發(fā)明實(shí)施例的大容量數(shù)據(jù)存儲(chǔ)系統(tǒng)10的示意方塊圖。系統(tǒng)10通 過(guò)本領(lǐng)域任何已知方式,例如經(jīng)由網(wǎng)絡(luò)50(如因特網(wǎng))或通過(guò)總線連接到一個(gè)或多個(gè)主機(jī) 52。數(shù)據(jù)以邏輯單元(LUN)存儲(chǔ)在系統(tǒng)10內(nèi),該邏輯單元包括與邏輯地址(LA)相關(guān)聯(lián)的 邏輯塊序列。這些塊的內(nèi)容典型地以分布式方式遍及一組慢和/或快存取時(shí)間、非易失性 大容量存儲(chǔ)設(shè)備12存儲(chǔ),這里通過(guò)示例的方式假設(shè)是盤(pán)。主機(jī)52經(jīng)由輸入/輸出(I/O) 請(qǐng)求存取盤(pán)12中存儲(chǔ)的數(shù)據(jù),該I/O請(qǐng)求包括I/O讀取請(qǐng)求和I/O寫(xiě)入請(qǐng)求。在I/O讀取 請(qǐng)求中,從其中存儲(chǔ)數(shù)據(jù)的盤(pán)12之一讀取請(qǐng)求的數(shù)據(jù)。在I/O寫(xiě)入請(qǐng)求中,將數(shù)據(jù)寫(xiě)入到 一個(gè)或多個(gè)盤(pán)12中。通過(guò)本領(lǐng)域技術(shù)人員所熟悉的方式,系統(tǒng)10可以包括管理節(jié)點(diǎn)25和/或系統(tǒng)10 的其他元件,該管理節(jié)點(diǎn)25典型地實(shí)現(xiàn)為可以并入盤(pán)12的一個(gè)或多個(gè)處理單元。系統(tǒng)10 還可以包括一個(gè)或多個(gè)基本類(lèi)似的接口 26,其從主機(jī)52接收I/O讀取和寫(xiě)入請(qǐng)求,請(qǐng)求訪 問(wèn)盤(pán)12。每個(gè)接口 26可以以硬件和/或軟件實(shí)現(xiàn),并且可以位于存儲(chǔ)系統(tǒng)10中,或可替 代地位于任何其他適當(dāng)位置,如網(wǎng)絡(luò)50的元件或主機(jī)52之一。在盤(pán)12和接口之間是許多 中間高速緩存20,每個(gè)高速緩存耦合到盤(pán)12的各自的子組。高速緩存20通過(guò)本領(lǐng)域所知 的任何適合的快速耦合系統(tǒng)(如總線或開(kāi)關(guān))耦合到接口 26,使得每個(gè)接口能夠與每個(gè)高 速緩存通信,并且傳送數(shù)據(jù)到每個(gè)高速緩存和從其接收數(shù)據(jù),該高速緩存反過(guò)來(lái)能夠根據(jù) 需要將數(shù)據(jù)傳送到它的盤(pán)12的子組或從其接收數(shù)據(jù)。通過(guò)示例的方式,這里假設(shè)高速緩存 20和接口 26之間的耦合是通過(guò)第一交叉點(diǎn)開(kāi)關(guān)14。接口 26基本上相互獨(dú)立地操作。高 速緩存20和接口 26操作為數(shù)據(jù)傳送系統(tǒng),在主機(jī)52和盤(pán)12之間傳送數(shù)據(jù)。典型地在存儲(chǔ)系統(tǒng)10中分布的、可以包括一個(gè)或多個(gè)處理單元的處理器30操作 該系統(tǒng)。處理器典型地發(fā)送指令到管理節(jié)點(diǎn)25和高速緩存20。系統(tǒng)10中的每個(gè)邏輯單元(LUN)的連續(xù)塊分組為分區(qū),其長(zhǎng)度貫穿系統(tǒng)典型地是 相等的。因此,LUN包括連續(xù)的邏輯分區(qū)的串,該邏輯分區(qū)依次包括連續(xù)的邏輯塊的串。在 這里描述的本發(fā)明的實(shí)施例中,假設(shè)分區(qū)是用于管理在此描述的大多數(shù)數(shù)據(jù)事務(wù)(包括清 理處理)的基本數(shù)據(jù)部分。然而,可以使用用于在數(shù)據(jù)事務(wù)中分配數(shù)據(jù)的任何其他的方便 的系統(tǒng)。管理節(jié)點(diǎn)分配邏輯單元分區(qū)給每個(gè)高速緩存20,使得每個(gè)高速緩存能夠從其分配 的分區(qū)的LA的范圍內(nèi)檢索數(shù)據(jù)和/或存儲(chǔ)數(shù)據(jù)。典型地選擇該范圍,使得利用盤(pán)12的全部 存儲(chǔ)器地址空間。在系統(tǒng)10中,數(shù)據(jù)可以冗余存儲(chǔ),在該情況下,每個(gè)分區(qū)映射到至少兩個(gè) 高速緩存,并且映射到分別與它們相關(guān)聯(lián)的盤(pán)12。在轉(zhuǎn)讓給本發(fā)明的受讓人的、題為“Data Allocation in aDistributed Storage System”的美國(guó)專(zhuān)利申請(qǐng)公開(kāi)No. 2005/0015566 中 描述了用于冗余地將邏輯地址范圍映射到高速緩存的方法。這種方法可以在本發(fā)明的實(shí)施 例中使用。每個(gè)高速緩存20的分配的分區(qū)典型地記錄在每個(gè)接口 26中存儲(chǔ)的分布表格19 中。每個(gè)分布表格由其接口使用,以將I/O請(qǐng)求從主機(jī)52路由到高速緩存??商娲鼗蛄?外地,通過(guò)本領(lǐng)域已知的用于生成分區(qū)和高速緩存之間的對(duì)應(yīng)的任何適合的方法,每個(gè)高速緩存20的分配的分區(qū)存儲(chǔ)在每個(gè)接口 26中。將理解分布表格19對(duì)每個(gè)接口 26給出系統(tǒng) 10的全部高速緩存地址范圍的一般概述。在轉(zhuǎn)讓給本發(fā)明的受讓人的、題為“Distributed IndependentCache Memory”的美國(guó)專(zhuān)利申請(qǐng)公開(kāi)No. 2005/0015567中描述了可以用于生成 如分布表格19的表格的方法。用于訪問(wèn)數(shù)據(jù)的I/O請(qǐng)求轉(zhuǎn)送到特定高速緩存,并且可以由高速緩存自身或連接 到高速緩存的盤(pán)12服務(wù)。因此,每個(gè)高速緩存對(duì)轉(zhuǎn)送到其的I/O請(qǐng)求作用,基本上與其他 高速緩存獨(dú)立;類(lèi)似地,每個(gè)高速緩存與其各自的盤(pán)子組通信,基本上與其他高速緩存和它 們各自的子組之間的通信獨(dú)立。每個(gè)高速緩存20包括各自的一組分區(qū)表格17,其對(duì)該高速緩存特定;分區(qū)表格的功能在下面更詳細(xì)地描述。管理節(jié)點(diǎn)25還可以保持主配置表格18,其包括部分包含在分區(qū)表格17并且部分 在分布表格19中的信息。在本發(fā)明的實(shí)施例中,處理器30可以通過(guò)修改主配置表格并將 相關(guān)的、修改的信息廣播給高速緩存20和接口 26,產(chǎn)生系統(tǒng)中的配置改變,使得它們將分 別修改分區(qū)表格17和分布表格19。圖2示出根據(jù)本發(fā)明實(shí)施例的、連接到源存儲(chǔ)系統(tǒng)11的存儲(chǔ)系統(tǒng)10的示意圖。在 系統(tǒng)10中,每個(gè)高速緩存20可以包括控制單元64、數(shù)據(jù)空間66和分區(qū)描述符記錄70,它 們?nèi)肯旅娓敿?xì)地描述。為了清楚,在圖2中只示出一個(gè)接口 26和一個(gè)高速緩存20及 其耦合的盤(pán)12。比圖1更詳細(xì)地示出高速緩存。存儲(chǔ)系統(tǒng)之間的連接的目的是將數(shù)據(jù)從源 存儲(chǔ)系統(tǒng)遷移到存儲(chǔ)系統(tǒng)10,這里也稱(chēng)為目的地存儲(chǔ)系統(tǒng)。源系統(tǒng)11基本包括本領(lǐng)域已知 的任何種類(lèi)的存儲(chǔ)系統(tǒng)。接口 26配置為讀取按照源系統(tǒng)11格式化的數(shù)據(jù),并且如果需要, 將遷移的數(shù)據(jù)重新安排為系統(tǒng)10可以存儲(chǔ)的數(shù)據(jù)分區(qū)種類(lèi),使得可以執(zhí)行遷移處理。兩個(gè)系統(tǒng)之間的連接可以經(jīng)由鏈路84實(shí)現(xiàn),該鏈路84例如將數(shù)據(jù)從系統(tǒng)11的一 些通信端口傳送到系統(tǒng)10的一個(gè)或多個(gè)接口 26。從這里,數(shù)據(jù)將引導(dǎo)到對(duì)應(yīng)的高速緩存 20,如同在來(lái)自主機(jī)52的任何種類(lèi)的I/O寫(xiě)入請(qǐng)求的情況下。當(dāng)來(lái)自系統(tǒng)11的數(shù)據(jù)分區(qū)到達(dá)系統(tǒng)10中的適當(dāng)?shù)母咚倬彺?0時(shí),其還可以寫(xiě)入 盤(pán)12。高速緩存可以包含用于管理高速緩存功能的控制單元64,該單元典型地在來(lái)自處理 器30的指令下操作??商娲?,高速緩存行為可以通過(guò)專(zhuān)用硬件邏輯或通過(guò)硬件和軟件元 件的組合,在處理器30的整體控制下實(shí)現(xiàn)。以下,假設(shè)高速緩存20包括控制單元64,并且 由控制單元64和處理器30執(zhí)行的功能可以互換。如果在盤(pán)12上有足夠的用于存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)塊可用,則控制單元64在盤(pán)上的物 理地址處存儲(chǔ)數(shù)據(jù),并且創(chuàng)建物理存儲(chǔ)地址和LUN的一個(gè)或多個(gè)各自的邏輯分區(qū)之間的鏈 接。由控制單元?jiǎng)?chuàng)建的鏈接在這里稱(chēng)為分區(qū)描述符記錄(PDR)70,并且PDR存儲(chǔ)在高速緩存 的分區(qū)表格17中。當(dāng)存儲(chǔ)系統(tǒng)接收用于訪問(wèn)在LUN的邏輯分區(qū)的數(shù)據(jù)的I/O命令時(shí),控制 單元使用PDR來(lái)標(biāo)識(shí)請(qǐng)求的物理位置。如果不存在足夠的數(shù)據(jù)塊來(lái)存儲(chǔ)數(shù)據(jù),則存儲(chǔ)系統(tǒng)10返回錯(cuò)誤消息。根據(jù)本發(fā)明的實(shí)施例,遷移分區(qū)初始暫時(shí)存儲(chǔ)在數(shù)據(jù)空間66中??刂茊卧缓髾z 查該分區(qū),以確定是否其包含不同于零的數(shù)據(jù)。這是典型的標(biāo)準(zhǔn)情況。然而,還可以存在這 樣的情況,其中該分區(qū)只由零構(gòu)成,或換句話說(shuō),使得其全部比特關(guān)閉。如果控制單元64確定數(shù)據(jù)空間66的進(jìn)入分區(qū)只由零構(gòu)成,則其認(rèn)為該分區(qū)要在 系統(tǒng)10中定義,但是在盤(pán)上不為該分區(qū)分配物理存儲(chǔ)空間,并且不將該分區(qū)的內(nèi)容(只有零)寫(xiě)入盤(pán)上。稍后,如果主機(jī)52發(fā)送要存儲(chǔ)系統(tǒng)10讀取遷移的分區(qū)的全部或部分的請(qǐng) 求,則通過(guò)將只由零構(gòu)成的分區(qū)返回給主機(jī)來(lái)適當(dāng)?shù)仨憫?yīng)該請(qǐng)求。圖3是根據(jù)本發(fā)明實(shí)施例的、示意性圖示用于存儲(chǔ)從存儲(chǔ)系統(tǒng)11遷移到存儲(chǔ)系統(tǒng) 10的分區(qū)的方法的流程圖91。該方法可以響應(yīng)于控制數(shù)據(jù)遷移的命令由控制單元64使用。 另外地或可替代地,當(dāng)需要將分區(qū)從源存儲(chǔ)系統(tǒng)遷移到存儲(chǔ)系統(tǒng)10時(shí),該方法可以由處理 器操作的管理節(jié)點(diǎn)25調(diào)用。在接收步驟90,高速緩存20接收從存儲(chǔ)系統(tǒng)11遷移的分區(qū),并且控制單元64可以在數(shù)據(jù)空間66中暫時(shí)存儲(chǔ)分區(qū)用于分析。在PDR寫(xiě)入步驟92,控制單元?jiǎng)?chuàng)建特定PDR 70 (圖2),并且將接收的分區(qū)的邏輯 地址(LA)寫(xiě)入PDR中。PDR存儲(chǔ)在分區(qū)表格17中以記錄遷移的分區(qū)的接收。在分區(qū)分析步驟94中,控制單元64然后分析數(shù)據(jù)空間66中的遷移的分區(qū),以確 定是否所有比特具有零值。如果控制單元確定該分區(qū)只由零組成,則在確認(rèn)步驟102中,其 可以通知管理節(jié)點(diǎn)25或處理器30它已經(jīng)完成分區(qū)遷移。另外,控制單元可以更新PDR 70 以指示沒(méi)有分配物理空間。然而,如果控制單元64確定遷移的分區(qū)包含非零數(shù)據(jù),則在足夠空間確定步驟 96,其檢查以了解盤(pán)12上是否存在可用于該分區(qū)的足夠物理存儲(chǔ)。如果盤(pán)上不存在足夠的 空間可用,則在錯(cuò)誤響應(yīng)步驟98出現(xiàn)錯(cuò)誤狀況。如果在盤(pán)上存在足夠的可用空間來(lái)存儲(chǔ)遷 移的分區(qū),則控制單元將分區(qū)數(shù)據(jù)寫(xiě)入盤(pán)中,并且在物理存儲(chǔ)步驟100中,通過(guò)記錄分區(qū)的 物理地址來(lái)更新遷移的分區(qū)PDR??刂茊卧缓笤诖_認(rèn)步驟102通知管理節(jié)點(diǎn)25或處理器 30它已經(jīng)完成分區(qū)遷移。流程圖91的實(shí)現(xiàn)禁止遷移的“零”分區(qū)的物理存儲(chǔ),提高了存儲(chǔ) 效率,并且增加了應(yīng)用數(shù)據(jù)的可用存儲(chǔ)空間。圖4示出根據(jù)本發(fā)明實(shí)施例的、存儲(chǔ)系統(tǒng)10中的一個(gè)高速緩存20及其盤(pán)12的子 組的示意圖。在圖4中,由與上面參照?qǐng)D2所述的高速緩存20的元件相同的參照標(biāo)號(hào)所示 高速緩存20的元件通常在結(jié)構(gòu)和操作上是類(lèi)似的。在下面的描述中,假設(shè)盤(pán)12包括物理 數(shù)據(jù)分區(qū)110。存儲(chǔ)系統(tǒng)10可以配置為通過(guò)并入上述增強(qiáng)的自動(dòng)精簡(jiǎn)配置系統(tǒng),在其盤(pán)上 實(shí)現(xiàn)增強(qiáng)的清理過(guò)程。在本發(fā)明的一個(gè)實(shí)施例中,除了執(zhí)行完整性和正確性檢查外(上面 在概述中描述的),還檢查分區(qū)中存儲(chǔ)的數(shù)據(jù)只是零的可能性。在清理時(shí),控制單元64將盤(pán)12上存儲(chǔ)的給定的物理數(shù)據(jù)分區(qū)110復(fù)制到數(shù)據(jù)空 間66。檢查物理分區(qū)的完整性和正確性,并且控制單元校正發(fā)現(xiàn)的任何錯(cuò)誤。然后,控制單 元檢查數(shù)據(jù)空間中存儲(chǔ)的數(shù)據(jù)只包含零的可能性。如果事實(shí)如此,則控制單元更新分區(qū)表 格17中的PDR 70,使得分區(qū)保留邏輯地址,同時(shí)重新分配物理地址。如果分區(qū)包含非零數(shù) 據(jù),則控制單元將數(shù)據(jù)空間66中的清理的分區(qū)寫(xiě)回到盤(pán)上的物理數(shù)據(jù)分區(qū)。在完整性和正確性檢查中可能發(fā)現(xiàn)的一類(lèi)錯(cuò)誤是當(dāng)物理數(shù)據(jù)分區(qū)錯(cuò)誤地包含非 零數(shù)據(jù),但是實(shí)際上應(yīng)當(dāng)只包含非零數(shù)據(jù)。如果事實(shí)如此,則如上所述,控制單元更新分區(qū) 表格17中的PDR 70,使得分區(qū)保留邏輯地址,同時(shí)重新分配物理地址。圖5是根據(jù)本發(fā)明實(shí)施例的、示意性圖示用于通過(guò)圖4的高速緩存清理數(shù)據(jù)分區(qū) 的流程圖121。在分區(qū)接收步驟120中,控制單元64從盤(pán)12接收分區(qū)用于清理,并且可以將其暫 時(shí)存儲(chǔ)在數(shù)據(jù)空間66中。在完整性檢查步驟122中,控制單元檢查分區(qū)數(shù)據(jù)的完整性和正確性。完整性檢查典型地包括檢查分區(qū)數(shù)據(jù)符合相關(guān)數(shù)據(jù),正確性檢查典型地包括檢查分 區(qū)數(shù)據(jù)的值有效。在缺陷數(shù)據(jù)確定步驟124中,控制單元確定分區(qū)數(shù)據(jù)是否包含錯(cuò)誤。在 數(shù)據(jù)校正步驟126中,控制單元校正發(fā)現(xiàn)的任何缺陷數(shù)據(jù)。應(yīng)用的校正包括上面參照?qǐng)D4 描述的那些。在分區(qū)分析步驟128中,控制單元64然后分析數(shù)據(jù)空間66中的分區(qū)以確定是否 所有比特具有零值。如果確定分區(qū)只由零構(gòu)成,則在存儲(chǔ)重新分配步驟132中,控制單元重 新分配物理分區(qū)。這釋放了之前由該分區(qū)占據(jù)的、盤(pán)12上的物理盤(pán)空間,以用于存儲(chǔ)。在步驟132之后,在PDR更新步驟134中,更新用于分區(qū)的分區(qū)數(shù)據(jù)記錄以移除 物理地址,保留邏輯地址(LA)??刂茊卧斫獍壿嫷刂范鴽](méi)有對(duì)應(yīng)的物理地址的任何 PDR 70指示該分區(qū)只由零構(gòu)成。這確保如果稍后主機(jī)52發(fā)送請(qǐng)求到存儲(chǔ)系統(tǒng)10要讀取該 分區(qū)的全部或部分,則通過(guò)存儲(chǔ)系統(tǒng)將只由零構(gòu)成的輸出(outgoing)分區(qū)返回到主機(jī)來(lái) 適當(dāng)?shù)仨憫?yīng)該請(qǐng)求。返回到分區(qū)分析步驟128,如果發(fā)現(xiàn)非零分區(qū)數(shù)據(jù),則在分區(qū)寫(xiě)入步驟130中,控 制單元64將來(lái)自數(shù)據(jù)空間66的分區(qū)數(shù)據(jù)寫(xiě)到盤(pán)上。在PDR修改步驟134中,如果數(shù)據(jù)校 正已經(jīng)改變分區(qū)大小,則控制單元64可以更新PDR70的物理地址。在步驟130或134之后,控制單元64在確認(rèn)步驟136中通知管理節(jié)點(diǎn)25或處理 器30它已經(jīng)完成清理分區(qū)。流程圖121的實(shí)現(xiàn)消除了在清理處理期間發(fā)現(xiàn)的“零”分區(qū)的 物理存儲(chǔ),這提高了存儲(chǔ)效率,并且增加了應(yīng)用數(shù)據(jù)的可用存儲(chǔ)空間。將意識(shí)到,上述實(shí)施例通過(guò)示例的方式舉出,并且本發(fā)明不限于上面具體示出和 描述的那些。而是,本發(fā)明的范圍包括上面描述的各種特征及其變化和修改的組合和子 組合,該變化和修改在本領(lǐng)域技術(shù)人員閱讀前面的描述時(shí)將出現(xiàn)并且沒(méi)有在現(xiàn)有技術(shù)中公 開(kāi)。相關(guān)申請(qǐng)的交叉引用本申請(qǐng)要求2007年10月1日提交的美國(guó)臨時(shí)專(zhuān)利申請(qǐng)?zhí)?0/976,572的權(quán)益,在 此通過(guò)引用并入其全部?jī)?nèi)容。
權(quán)利要求
一種用于將數(shù)據(jù)遷移到大容量存儲(chǔ)系統(tǒng)的方法,包括接收進(jìn)入數(shù)據(jù)分區(qū)用于在大容量存儲(chǔ)系統(tǒng)中的存儲(chǔ);在大容量存儲(chǔ)系統(tǒng)中為進(jìn)入數(shù)據(jù)分區(qū)分配邏輯存儲(chǔ);進(jìn)行進(jìn)入數(shù)據(jù)分區(qū)只包括零數(shù)據(jù)的確定;以及響應(yīng)于該確定,在大容量存儲(chǔ)系統(tǒng)中禁止進(jìn)入數(shù)據(jù)分區(qū)的物理存儲(chǔ),同時(shí)保持用于進(jìn)入數(shù)據(jù)分區(qū)的分配的邏輯存儲(chǔ)。
2.如權(quán)利要求1所述的方法,其中分配邏輯存儲(chǔ)包括創(chuàng)建至少包括用于進(jìn)入數(shù)據(jù)分區(qū) 的邏輯地址的分區(qū)數(shù)據(jù)記錄。
3.如權(quán)利要求2所述的方法,其中創(chuàng)建分區(qū)數(shù)據(jù)記錄包括將分區(qū)數(shù)據(jù)記錄存儲(chǔ)在永久 介質(zhì)中。
4.如權(quán)利要求1所述的方法,還包括進(jìn)行進(jìn)入數(shù)據(jù)分區(qū)包括非零數(shù)據(jù)的進(jìn)一步確定, 并且響應(yīng)于該進(jìn)一步確定,將進(jìn)入數(shù)據(jù)分區(qū)存儲(chǔ)在永久介質(zhì)中。
5.如權(quán)利要求4所述的方法,其中將進(jìn)入數(shù)據(jù)分區(qū)存儲(chǔ)在永久介質(zhì)中包括更新分區(qū)數(shù) 據(jù)記錄以包含用于進(jìn)入數(shù)據(jù)分區(qū)的物理地址。
6.如權(quán)利要求1所述的方法,其中該大容量存儲(chǔ)系統(tǒng)包括自動(dòng)精簡(jiǎn)配置存儲(chǔ)系統(tǒng)。
7.如權(quán)利要求1所述的方法,并且包括利用由零比特構(gòu)成的數(shù)據(jù)分區(qū)響應(yīng)請(qǐng)求大容量 存儲(chǔ)系統(tǒng)提供只包括零數(shù)據(jù)的數(shù)據(jù)分區(qū)。
8.一種用于監(jiān)視大容量存儲(chǔ)系統(tǒng)中的數(shù)據(jù)的方法,包括從物理存儲(chǔ)讀取數(shù)據(jù)分區(qū);進(jìn)行數(shù)據(jù)分區(qū)只包括零數(shù)據(jù)的確定;以及響應(yīng)于該確定,重新分配大容量存儲(chǔ)系統(tǒng)中數(shù)據(jù)分區(qū)的物理存儲(chǔ),同時(shí)保持用于數(shù)據(jù) 分區(qū)的邏輯存儲(chǔ)的分配。
9.如權(quán)利要求8所述的方法,其中讀取數(shù)據(jù)分區(qū)包括檢查數(shù)據(jù)分區(qū)的完整性和正確性 的至少一個(gè)。
10.如權(quán)利要求9所述的方法,并且包括響應(yīng)于檢查校正數(shù)據(jù)分區(qū)。
11.如權(quán)利要求8所述的方法,其中讀取數(shù)據(jù)分區(qū)包括進(jìn)行數(shù)據(jù)分區(qū)錯(cuò)誤地包括非零 數(shù)據(jù)的確定。
12.如權(quán)利要求8所述的方法,其中保持邏輯存儲(chǔ)的分配包括創(chuàng)建至少包括用于數(shù)據(jù) 分區(qū)的邏輯地址的分區(qū)數(shù)據(jù)記錄。
13.如權(quán)利要求12所述的方法,并且包括將分區(qū)存儲(chǔ)在永久介質(zhì)中。
14.如權(quán)利要求13所述的方法,其中將分區(qū)存儲(chǔ)在永久介質(zhì)中包括更新分區(qū)數(shù)據(jù)記錄 以包含用于進(jìn)入數(shù)據(jù)分區(qū)的物理地址。
15.如權(quán)利要求12所述的方法,其中重新分配物理存儲(chǔ)包括從分區(qū)描述符記錄移除物 理地址。
16.如權(quán)利要求8所述的方法,并且包括利用由零比特構(gòu)成的輸出數(shù)據(jù)分區(qū)響應(yīng)請(qǐng)求 大容量存儲(chǔ)系統(tǒng)提供數(shù)據(jù)分區(qū)。
17.一種用于將數(shù)據(jù)遷移到大容量存儲(chǔ)系統(tǒng)的裝置,包括控制單元,其配置為接收進(jìn)入數(shù)據(jù)分區(qū)用于在大容量存儲(chǔ)系統(tǒng)中的存儲(chǔ),以及在大容量存儲(chǔ)系統(tǒng)中為進(jìn)入數(shù)據(jù)分區(qū)分配邏輯存儲(chǔ);以及處理器,其耦合到控制單元以便進(jìn)行進(jìn)入數(shù)據(jù)分區(qū)只包括零數(shù)據(jù)的確定;以及響應(yīng)于該確定,在大容量存儲(chǔ)系統(tǒng)中禁止進(jìn)入數(shù)據(jù)分區(qū)的物理存儲(chǔ),同時(shí)保持用于進(jìn) 入數(shù)據(jù)分區(qū)的分配的邏輯存儲(chǔ)。
18.如權(quán)利要求17所述的裝置,其中分配邏輯存儲(chǔ)包括創(chuàng)建至少包括用于進(jìn)入數(shù)據(jù)分 區(qū)的邏輯地址的分區(qū)數(shù)據(jù)記錄。
19.如權(quán)利要求18所述的裝置,其中創(chuàng)建分區(qū)數(shù)據(jù)記錄包括將分區(qū)數(shù)據(jù)記錄存儲(chǔ)在永 久介質(zhì)中。
20.如權(quán)利要求17所述的裝置,其中處理器配置為進(jìn)行進(jìn)入數(shù)據(jù)分區(qū)包括非零數(shù)據(jù)的 進(jìn)一步確定,并且響應(yīng)于該進(jìn)一步確定,將進(jìn)入數(shù)據(jù)分區(qū)存儲(chǔ)在永久介質(zhì)中。
21.如權(quán)利要求20所述的裝置,其中將進(jìn)入數(shù)據(jù)分區(qū)存儲(chǔ)在永久介質(zhì)中包括更新分區(qū) 數(shù)據(jù)記錄以包含用于進(jìn)入數(shù)據(jù)分區(qū)的物理地址。
22.如權(quán)利要求17所述的裝置,其中該大容量存儲(chǔ)系統(tǒng)包括自動(dòng)精簡(jiǎn)配置存儲(chǔ)系統(tǒng)。
23.如權(quán)利要求17所述的裝置,其中處理器配置為利用由零比特構(gòu)成的輸出數(shù)據(jù)分區(qū) 響應(yīng)請(qǐng)求大容量存儲(chǔ)系統(tǒng)提供數(shù)據(jù)分區(qū)。
24.一種用于監(jiān)視大容量存儲(chǔ)系統(tǒng)中的數(shù)據(jù)的裝置,包括控制單元,其配置為從物理存儲(chǔ)讀取數(shù)據(jù)分區(qū);以及處理器,其耦合到控制單元以便執(zhí)行數(shù)據(jù)分區(qū)只包括零數(shù)據(jù)的確定;以及響應(yīng)于該確定,重新分配大容量存儲(chǔ)系統(tǒng)中數(shù)據(jù)分區(qū)的物理存儲(chǔ),并且保持用于數(shù)據(jù) 分區(qū)的分配的邏輯存儲(chǔ)。
25.如權(quán)利要求24所述的裝置,其中讀取數(shù)據(jù)分區(qū)包括檢查數(shù)據(jù)分區(qū)的完整性和正確 性的至少一個(gè)。
26.如權(quán)利要求25所述的裝置,其中處理器配置為響應(yīng)于檢查校正數(shù)據(jù)分區(qū)。
27.如權(quán)利要求24所述的裝置,其中讀取數(shù)據(jù)分區(qū)包括進(jìn)行數(shù)據(jù)分區(qū)錯(cuò)誤地包括非零 數(shù)據(jù)的確定。
28.如權(quán)利要求24所述的裝置,其中分配邏輯存儲(chǔ)包括創(chuàng)建至少包括用于數(shù)據(jù)分區(qū)的 邏輯地址的分區(qū)數(shù)據(jù)記錄。
29.如權(quán)利要求28所述的裝置,其中分區(qū)的物理存儲(chǔ)包括將分區(qū)存儲(chǔ)在永久介質(zhì)中。
30.如權(quán)利要求29所述的裝置,其中將分區(qū)存儲(chǔ)在永久介質(zhì)中包括更新分區(qū)數(shù)據(jù)記錄 以包含用于進(jìn)入數(shù)據(jù)分區(qū)的物理地址。
31.如權(quán)利要求28所述的裝置,其中重新分配物理存儲(chǔ)包括從分區(qū)描述符記錄移除物 理地址。
32.如權(quán)利要求24所述的裝置,其中處理器配置為利用由零比特構(gòu)成的輸出數(shù)據(jù)分區(qū) 響應(yīng)請(qǐng)求大容量存儲(chǔ)系統(tǒng)提供數(shù)據(jù)分區(qū)。
全文摘要
一種用于將數(shù)據(jù)遷移到大容量存儲(chǔ)系統(tǒng)(10)的方法,包括接收進(jìn)入數(shù)據(jù)分區(qū)用于在大容量存儲(chǔ)系統(tǒng)中的存儲(chǔ),并且在大容量存儲(chǔ)系統(tǒng)中為進(jìn)入數(shù)據(jù)分區(qū)分配邏輯存儲(chǔ)。該方法還包括進(jìn)行進(jìn)入數(shù)據(jù)分區(qū)只包括零數(shù)據(jù)的確定,并且響應(yīng)于該確定,在大容量存儲(chǔ)系統(tǒng)中禁止進(jìn)入數(shù)據(jù)分區(qū)的物理存儲(chǔ),同時(shí)保持用于進(jìn)入數(shù)據(jù)分區(qū)的分配的邏輯存儲(chǔ)。
文檔編號(hào)G06F13/00GK101809551SQ200880109702
公開(kāi)日2010年8月18日 申請(qǐng)日期2008年9月28日 優(yōu)先權(quán)日2007年10月1日
發(fā)明者埃弗里·蔡德納, 埃胡德·格米扎, 奧姆里·帕爾蒙, 奧菲爾·佐哈爾, 海姆·海曼, 謝默·施瓦茨 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司