專利名稱:用于存儲管理的方法、設備和系統(tǒng)的制作方法
技術領域:
本發(fā)明的實施方式涉及信息技術領域,更具體地,涉及用于存儲管理的方法、設備和系統(tǒng)。
背景技術:
對于任何計算系統(tǒng)而言,存儲管理都是其核心功能之一,它直接影響到系統(tǒng)性能和終端用戶體驗。存儲管理的主要任務之一是為一個或多個用戶或者應用分配和回收存儲空間。如果存儲空間的分配或回收不當,可能會導致應用性能的降低、資源沖突甚至整個系統(tǒng)的死鎖。特別是,近年來已經(jīng)提出了以虛擬供應(Virtual Provisioning)為代表的虛擬共享存儲機制。根據(jù)這種機制,可以為用戶在邏輯上或者概念上提供相對較大的存儲空間, 而僅在實際需要的情況下才真正從共享物理存儲池中分配存儲資源。在此類虛擬共享存儲機制中,存儲空間的分配與回收的重要性更加凸顯。例如,如果不能迅速、靈活和有效地回收閑置存儲空間,則可能影響其他用戶或應用對存儲資源的使用。在目前的存儲管理中,一個亟待改善的問題是如何回收已經(jīng)分配、但當前未被使用的存儲空間。在現(xiàn)有技術中,在特定的存儲空間被分配之后,存儲管理方(例如,負責存儲管理的過程、設備、系統(tǒng),等等)通常只有在該存儲空間中的所有位(bit)都被寫入特定值的情況下才會對其進行回收。例如,該特定值通??梢栽O定為0。在這種情況下,假設待回收的目標存儲空間大小為1 兆字節(jié)(MB),則只有當這U8MB空間中的每個位都被寫入 0時,這塊空間才可能被回收,并繼而有可能被再次分配以供使用。這種存儲空間的回收方法存在明顯缺陷。首先,對存儲空間的回收需要掃描該空間中的每個位,并且確定其當前值是否為0等預定值。顯而易見,這是一個低效、耗時的過程。此外,更重要的缺陷在于,存儲管理系統(tǒng)的這種空間回收方法對于較高級別的系統(tǒng)(諸如,文件系統(tǒng)等)通常不具有約束效力。例如,當文件系統(tǒng)需要創(chuàng)建一個文件時,它向存儲系統(tǒng)請求分配相應的存儲空間。而在文件系統(tǒng)隨后刪除該文件時,它通常僅僅設置對于文件系統(tǒng)有意義的某些標記以指示刪除狀態(tài),而不會向已分配的存儲空間中的每個位寫入0。 以微軟公司的NTFS文件系統(tǒng)為例,當文件系統(tǒng)刪除某個文件時,其通常僅僅設置一組稱為 BITMAP的標記(例如,一個字節(jié)),該標記與被刪除的文件所使用的存儲空間相關聯(lián),并且可以向文件系統(tǒng)指示該文件已被刪除。在這種情況下,存儲管理方與文件系統(tǒng)都不了解或遵循對方特定的規(guī)則和/或標記,因而存儲管理方無法得知已刪除文件的存儲空間實際上已經(jīng)處于閑置狀態(tài),因而也就無法回收和再利用該存儲空間。顯然,這將引起資源的閑置和浪費,增大存儲資源競爭的潛在壓力,并且不利地影響系統(tǒng)性能和用戶體驗。
發(fā)明內容
為了克服上述技術問題,本領域中需要更為有效、靈活存儲管理方案。為此,本發(fā)明的實施方式提供一種用于存儲管理的方法、設備和系統(tǒng)。
在本發(fā)明的一個方面,提供一種用于存儲管理的方法。該方法包括請求文件系統(tǒng)確定目標存儲空間在所述文件系統(tǒng)中的當前使用狀態(tài);從所述文件系統(tǒng)接收所述存儲空間的當前使用狀態(tài)的指示;以及根據(jù)所述指示來確定是否回收所述存儲空間。在本發(fā)明的另一方面,提供一種用于存儲管理的設備,包括請求裝置,配置用以請求文件系統(tǒng)確定目標存儲空間在所述文件系統(tǒng)中的當前使用狀態(tài);通信裝置,配置用以從所述文件系統(tǒng)接收所述存儲空間的當前使用狀態(tài)的指示;以及確定裝置,配置用以根據(jù)所述指示來確定是否回收所述存儲空間。在本發(fā)明的又一方面,提供一種用于存儲管理的系統(tǒng),包括如上文所述的用于存儲管理的設備;以及與所述存儲管理設備通信的文件系統(tǒng)?,F(xiàn)有技術存儲空間回收中的上述缺陷,主要歸因于存儲管理方與文件系統(tǒng)之間缺乏有效的通信機制,進而導致雙方無法了解對方的規(guī)則和狀態(tài)。與此不同,根據(jù)本發(fā)明的實施方式,允許存儲管理方請求文件系統(tǒng)確定目標存儲空間在文件系統(tǒng)中的當前使用狀況, 而不是對存儲空間進行全局掃描。如果文件系統(tǒng)返回的指示表明目標存儲空間目前已在文件系統(tǒng)中處于閑置狀態(tài)或稱未使用狀態(tài),則存儲管理方可以根據(jù)此類指示確定回收該空間??梢岳斫?,本發(fā)明的實施方式在存儲管理方與文件系統(tǒng)之間建立了有效的聯(lián)系和通信機制,從而解決了現(xiàn)有技術中無法有效回收閑置存儲空間的問題,實現(xiàn)了有益的技術效果。 而且,在本發(fā)明實施方式的執(zhí)行期間,在存儲空間上運行的應用無需中斷其操作,仍然可以不受影響繼續(xù)執(zhí)行。
通過參考附圖閱讀下文的詳細描述,本發(fā)明的上述以及其他目的、特征和優(yōu)點將變得易于理解。附圖以示例而非限制的方式示出了本發(fā)明的若干實施方式,其中圖1示出了根據(jù)本發(fā)明示例性實施方式的用于存儲管理的方法的流程圖;圖2示出了根據(jù)本發(fā)明示例性實施方式的用于存儲管理的設備的示意性結構框圖;圖3示出了根據(jù)本發(fā)明示例性實施方式的用于存儲管理的系統(tǒng)的示意性結構框圖;圖4A和圖4B分別示出了根據(jù)本發(fā)明示例性實施方式的用于存儲管理的操作時序圖;以及圖5示出了適于用來實踐本發(fā)明實施方式的計算機系統(tǒng)的框圖。在各個附圖中,相同或相似的標號被用以指代相同或類似的部分或元件。
具體實施例方式本發(fā)明的實施方式涉及用于存儲管理的方法、設備和系統(tǒng)。下面將參考附圖以示例的方式來描述本發(fā)明的若干實施方式。應當理解,下文示出和描述的這些實施方式僅僅是示例性的,并非意在限制本發(fā)明的范圍。例如,在對實施方式的描述中,可能提及共享虛擬存儲機制、Windows 操作系統(tǒng)、NTFS文件系統(tǒng)等具體概念。然而,這些具體概念僅僅是作為示例來闡釋本發(fā)明的原理和思想,并不對本發(fā)明的范圍構成任何限制。實際上,本發(fā)明的實施方式適用于存在上文描述的缺陷的任何情況。因此,本發(fā)明的范圍僅由所附權利要求書限定。如上所述,本發(fā)明實施方式的核心思想之一是在存儲管理方與文件系統(tǒng)之間建立適當?shù)耐ㄐ艡C制,從而允許存儲管理方獲知特定的存儲空間在文件系統(tǒng)中的當前使用狀態(tài),進而據(jù)此確定是否可以回收該存儲空間。首先參考圖1來描述根據(jù)本發(fā)明實施方式的用于存儲管理的方法100。應當理解, 方法100可以由存儲管理方(例如,負責存儲管理的任何適當?shù)倪壿嬻w或實體)來執(zhí)行。 例如,在本發(fā)明的某些實施方式中,方法100可由下文結合圖2描述的用于存儲管理的設備 200執(zhí)行。在方法100開始之后,在步驟102,請求文件系統(tǒng)確定目標存儲空間在文件系統(tǒng)中的當前使用狀態(tài)。在本發(fā)明的某些實施方式中,步驟102中可以響應于來自另一方的指示而被執(zhí)行。例如,用戶空間中的應用(簡稱“用戶應用”)可以指示存儲管理方確定與該應用關聯(lián)的一個或多個存儲空間是否處于閑置狀態(tài)并且可以回收。在這種情況下,用戶應用可以向存儲管理方提供待處理的目標存儲空間的標識??梢岳斫?,用戶應用所提供的存儲空間標識可能是較高級別的標識,諸如某個盤的盤符(例如,“E:\”)。在這種情況下,可能需要對此類標識進行處理,以將其轉換為存儲系統(tǒng)和/或文件系統(tǒng)可以理解的標識(例如,存儲空間中的地址),并且將其隨附于所述請求發(fā)送給文件系統(tǒng)。備選地或附加地,步驟102也可以由存儲管理方根據(jù)某些標準或規(guī)則自動地發(fā)起。例如,在本發(fā)明的某些實施方式中,步驟102可以在滿足特定的觸發(fā)條件時開始執(zhí)行,例如,系統(tǒng)中的可用存儲空間總量低于某個閾值。在本發(fā)明的另一些實施方式中,步驟102也可以按照預定的時間間隔定期執(zhí)行。此外,存儲空間可被劃分為塊(chunk),并且塊的大小通常是2的冪,例如32MB、 64MB、U8MB等。相應地,在本發(fā)明的某些實施方式中,方法100的步驟102中的請求可以包括請求文件系統(tǒng)確定塊的當前使用狀態(tài)。例如,對于目標存儲空間,可以將其在邏輯上劃分為特定大小的塊,并且以塊為單位來請求文件系統(tǒng)確定其狀態(tài)。應當理解,可以按照任何適當?shù)捻樞騺泶_定這些塊的狀態(tài)。例如,在某些實施方式中,可以按照順序的方式依次確定每個塊在文件系統(tǒng)中的當前使用狀態(tài)。在另一些實施方式中,可以按照并行的方式基本上同時地確定這些塊在文件系統(tǒng)中的當前使用狀態(tài)。其他執(zhí)行方式也是可行的,本發(fā)明在此方面不受限制。根據(jù)本發(fā)明的實施方式,可以根據(jù)各種因素而動態(tài)設置請求確定其當前使用狀態(tài)的塊的大小。例如,在本發(fā)明的某些實施方式中,塊的大小可以取決于在存儲空間上操作的應用的數(shù)目。本領域技術人員可以理解,并如下文將詳細描述的,對存儲空間的狀態(tài)確定和回收可能影響其他應用對該存儲空間的輸入/輸出(I/O)操作(具體地,主要是I/O寫操作)。因此,當存儲空間上操作的應用數(shù)目較多時,可以適當減小塊的大小,以降低待處理的塊與其他應用所要使用的存儲空間重疊的可能性,從而減小對其他應用的影響。此外,在本發(fā)明的某些實施方式中,塊的大小還可以取決于在存儲空間上操作的應用的屬性。例如,當存儲空間上操作的應用需要頻繁訪問存儲空間,特別是頻繁地對存儲空間進行I/O寫操作時,可以適當減小塊的大小以減少沖突和影響。另外,塊的大小還可以取決于用戶的設置。 例如,在本發(fā)明的某些實施方式中,可以允許用戶例如通過用戶界面來交互地指定塊的大小。應當理解,上面列舉的僅僅是可能影響塊大小的幾個示例性因素,塊的大小可以根據(jù)其他任何適當?shù)囊蛩貋泶_定,本發(fā)明在此方面不受限制。此外,需要理解的是,這里所稱的“塊”是存儲管理方劃分目標存儲空間的邏輯單位,并不一定對應于底層系統(tǒng)(例如,操作系統(tǒng)OS)操作存儲資源的基本單位。在二者不同的情況下,操作系統(tǒng)可能將針對一個塊的狀態(tài)確定和/或回收動作劃分為不止一次操作。 下文將參考圖4A和圖4B描述這種情況。根據(jù)本發(fā)明的實施方式,可以通過各種方式來實現(xiàn)步驟102中記載的向文件系統(tǒng)的所述請求。例如,以上文提及的NTFS文件系統(tǒng)為例,該系統(tǒng)提供有稱為FSCTL_GET_ V0LUME_BITMAP的應用編程接口(API),該API可在內核態(tài)(kernel mode)下被調用,用以獲得與目標存儲空間相關聯(lián)的BITMAP標記,該BITMAP標記指示相應存儲空間在文件系統(tǒng)中的當前使用狀態(tài),即使用狀態(tài)或閑置狀態(tài)。應當理解,這僅僅是請求文件系統(tǒng)確定存儲空間使用狀態(tài)的一個示例性實施方式。在NTFS文件系統(tǒng)以及其他任何文件系統(tǒng)中,可以利用目前已有或將來開發(fā)的任何適當方式,請求文件系統(tǒng)確定目標存儲空間的當前使用狀態(tài)。本發(fā)明在此方面不受限制。接下來,在方法100的步驟104,從文件系統(tǒng)接收目標存儲空間的當前使用狀態(tài)的指示。當文件系統(tǒng)接收到步驟102中發(fā)出的上述請求后,它根據(jù)請求中隨附的標識來辨識待處理的存儲空間或存儲空間的塊(為簡便,以下統(tǒng)稱為“存儲空間”),確定文件系統(tǒng)對該存儲空間的當前使用狀態(tài),并且返回表明該狀態(tài)的指示。繼續(xù)上文的示例,在NTFS文件系統(tǒng)中,步驟102中的請求例如可以通過調用FSCTL_GET_VOLUME_BITMAP這一 API來實現(xiàn)。作為響應,文件系統(tǒng)獲得與請求中標識的存儲空間相關聯(lián)的BITMAP標記,并可以返回該BITMAP標記作為狀態(tài)指示。在本發(fā)明的某些實施方式中,在步驟104處接收的指示可以被保存在特定的存儲器緩沖區(qū)中,以供將來使用。根據(jù)本發(fā)明的優(yōu)選實施方式,在步驟104之后,方法繼續(xù)進行到步驟106,在此處理存儲空間的訪問一致性(或稱存取一致性)。如已知的,在此使用的術語“訪問一致性”是指確保對同一存儲空間的所有I/O訪問都能正確地反映該存儲空間的當前狀態(tài)和更新, 并且確保在存儲管理方對存儲空間執(zhí)行回收的過程中,其他任何應用不能對該存儲空間進行I/O寫操作。應當理解,步驟106是可選的。例如,在以下一個或多個情況下,步驟106可被省略沒有任何應用在存儲空間上進行操作(即,存儲設備處于無人使用的離線狀態(tài)); 可以確定在存儲空間上操作的應用在特定時段內不會訪問目標存儲空間;可以確定在存儲空間上操作的應用在特定時段內僅對目標存儲空間進行I/O讀操作而不進行I/O寫操作; 以及無需考慮存儲空間訪問一致性的其他任何情況。在步驟106,可以采用多種策略來處理存儲空間的訪問一致性。例如,在本發(fā)明的優(yōu)選實施方式中,可以采用“指示更新”的策略來處理訪問一致性,即,在實際執(zhí)行步驟 108(下文詳述)之前,更新接收到的狀態(tài)指示。具體地,根據(jù)這種策略,當在步驟104處接收并且保存了存儲空間使用狀態(tài)的指示之后,存儲管理方不會限制其他應用對該存儲空間的訪問(例如,I/O寫操作)。此后,為了防止由于其他應用在步驟104與確定步驟108之間的時間間隔中修改了該存儲空間的使用狀態(tài)而引發(fā)不一致問題,可以在實際執(zhí)行步驟108 之前更新已存儲的指示。例如,仍以上文描述的NTFS文件系統(tǒng)為例,在實際執(zhí)行步驟108之前,每當其他應用對目標存儲空間進行I/O操作之后,作為響應,可以再次獲取目標存儲空間的使用狀態(tài)指示(例如,BITMAP標記),并且將新獲取的指示與已經(jīng)獲取的指示(例如,被存儲在存儲器緩沖區(qū)中)進行邏輯或(“OR”)運算,從而更新狀態(tài)指示。此類實施方式的示例將在下文參考圖4A詳述。備選地或附加地,在本發(fā)明的另一些實施方式中,可以在步驟106處采用“提前鎖定”的策略來處理訪問一致性。也即,響應于在步驟104處接收目標存儲空間的當前使用狀態(tài)的指示,可使目標存儲空間立即被鎖定,即,禁止其他應用對目標存儲空間進行任何I/O 寫操作。相應地,當步驟108和/或步驟110(下文詳述)的動作完成之后,可以使目標存儲空間被解鎖。應當理解,在此類實施方式中,對存儲空間的鎖定可以在不同的時刻進行。 換言之,步驟106與步驟102和104可以按照不同于圖1所示的順序執(zhí)行。例如,在本發(fā)明的某些實施方式中,可以在步驟102的請求之前、同時或之后鎖定目標存儲空間。在另一些實施方式中,可以在接收指示的同時或者之后鎖定目標存儲空間。這些不同的執(zhí)行順序均包含在本發(fā)明的范圍之內。此類實施方式的示例將在下文參考圖4B詳述。接下來,方法100進行到步驟108,在此根據(jù)目標存儲空間的當前使用狀態(tài)的指示,確定是否回收目標存儲空間。具體地,如果步驟104處接收的指示表明目標存儲空間目前在文件系統(tǒng)中處于空閑狀態(tài)(例如,在相應的文件已被刪除的情況下),則確定回收該存儲空間(步驟108的分支“是”)。在這種情況下,方法進行到步驟110,在此執(zhí)行相應的動作以使目標存儲空間被回收,而后方法進行到步驟112。步驟110中的回收動作可以通過目前已知或將來開發(fā)的任何適當方式來實現(xiàn)。例如,可以由存儲管理方調用稱為WRITE_SAME 的SCSI (小型計算機系統(tǒng)接口)命令。存儲系統(tǒng)可以理解該命令,并且按照該命令指定的參數(shù)來釋放相應的存儲空間。應當理解,這僅僅是本發(fā)明實施方式的一個示例,本發(fā)明在此方面不受限制。另一方面,在108處,如果在步驟104處接收的指示表明目標存儲空間目前在文件系統(tǒng)中處于使用狀態(tài),則確定不回收該存儲空間(步驟108的分支“否”),并且方法進行到步驟112。應當理解,在本發(fā)明的優(yōu)選實施方式中,步驟108和/或步驟110對目標存儲空間的操作可以以獨占方式執(zhí)行。即,目標存儲空間在該步驟的執(zhí)行期間被鎖定,不允許其他任何應用進行I/O寫操作(注意,在本說明書的上下文中,“獨占”和“鎖定”可互換使用)。在此,需要強調的是,步驟108和/或步驟110的獨占執(zhí)行可以由存儲管理方顯式地發(fā)起,即, 由存儲管理方鎖定目標存儲空間(此時,還需要在相應步驟的執(zhí)行之后使目標存儲空間被解鎖)。備選地或附加地,這種獨占執(zhí)行也可以由底層操作系統(tǒng)來保證,例如通過調用以具有獨占屬性的API或命令(例如,上文提及的WRITE_SAME)。可以理解,獨占執(zhí)行是為了確保步驟108、110的正確性,但并非是必須的,例如,如果存儲設備處于離線狀態(tài),和/或在存儲空間上操作的應用在特定時段內不會訪問目標存儲空間等等,則步驟108、110無需以獨占方式執(zhí)行。另外,應當理解,在步驟108以獨占方式執(zhí)行的實施方式中,如果步驟106在此前已被執(zhí)行,并且該步驟中采用了“提前鎖定”策略,那么在步驟108開始執(zhí)行之前目標存儲空間已經(jīng)由存儲管理方獨占,因此在步驟108處無需發(fā)起任何額外鎖定動作。然而,如果步驟106先前未被執(zhí)行或者該步驟中采用了不同于“提前鎖定”的其他策略(例如,“指示更新”策略),則根據(jù)優(yōu)選實施方式,應當在步驟108確保目標存儲空間在其執(zhí)行期間被鎖定。
在目標存儲空間被鎖定期間,針對它的所有I/O寫操作將被暫時掛起,從而變成未決I/O操作。根據(jù)本發(fā)明的實施方式,可以采用目前已知或者將來開發(fā)的任何適當方式來管理這些未決I/O操作。例如,一種常用的方式是將未決I/O操作組織在FIFO(先進先出)隊列中。其他方式也是可行的,本發(fā)明在此方面不受限制。在這種情況下,為了處理這些可能存在的未決I/O操作,方法100在步驟112處調度針對目標存儲空間的未決I/O操作??梢岳斫猓襟E112中提及的“未決I/O操作”是指自從目標存儲空間被鎖定之后, 由于被掛起而變?yōu)槲礇Q的針對目標存儲空間的所有1/0(寫)操作。根據(jù)本發(fā)明的實施方式,在步驟112,可以按照任意適當?shù)捻樞驁?zhí)行針對目標存儲空間的未決I/O操作。例如,如上文描述的示例中,如果未決I/O操作被組織在FIFO隊列中,則在步驟112處可以使這些未決I/O操作根據(jù)請求到達的順序被依次執(zhí)行。或者,可以根據(jù)適當?shù)牟l(fā)度來并行執(zhí)行未決I/O操作。實際上,對未決I/O操作的調度可以根據(jù)任何現(xiàn)在已知或將來開發(fā)的方式進行,本發(fā)明在此方面不受限制。此外,應當理解,步驟112是可選的。例如,如果目標存儲空間從未被鎖定,和/或在目標存儲空間被鎖定后不存在針對該目標存儲空間的I/O寫操作請求,則無需執(zhí)行步驟 112。實際上,類似于步驟106,如果存儲設備處于離線狀態(tài),和/或在存儲空間上操作的應用在特定時段內不會訪問目標存儲空間,和/或在存儲空間上操作的應用在特定時段內僅對目標存儲空間進行I/O讀操作而不進行I/O寫操作,均可以省略步驟112。根據(jù)本發(fā)明的實施方式,如果以塊為單位操作目標存儲空間,則在步驟112之后, 可以針對剩余的待處理存儲塊從步驟102開始重復地執(zhí)行方法100。另一方面,如果已經(jīng)完成了對目標存儲空間的最后一塊的處理,或者目標存儲空間被作為整體被操作,則方法100 在步驟112之后結束。通過上文描述,本領域技術人員可以理解,根據(jù)方法100的實施方式,存儲管理方能夠與文件系統(tǒng)有效地通信,并根據(jù)存儲空間在文件系統(tǒng)中的當前使用狀態(tài)來確定是否對其進行回收。特別地,存儲空間的訪問一致性問題也可得到處理。現(xiàn)在參考圖2,其示出了根據(jù)本發(fā)明示例性實施方式的用于存儲管理的設備200 的示意性結構框圖??梢岳斫?,設備200可以被實現(xiàn)以用作上文提及的“存儲管理方”,并且可配置用以執(zhí)行用于存儲管理的方法,例如參考圖1描述的方法100。如圖2所示,根據(jù)本發(fā)明的實施方式,設備200可以包括請求裝置202,通信裝置 204以及確定裝置206。請求裝置202可配置用以請求文件系統(tǒng)確定目標存儲空間在所述文件系統(tǒng)中的當前使用狀態(tài)。通信裝置204可配置用以從文件系統(tǒng)接收該存儲空間的當前使用狀態(tài)的指示。確定裝置206可配置用以根據(jù)所述指示來確定是否回收所述存儲空間。如上所述,在某些情況下,待處理的目標存儲空間被劃分為塊。為了應對這種情況,可選地,在本發(fā)明的某些實施方式中,請求裝置202可進一步包括塊請求裝置2022,其可配置用以請求文件系統(tǒng)確定塊的當前使用狀態(tài)。此外,為了避免或降低存儲資源的沖突, 塊請求裝置2022可進一步配置用以根據(jù)以下一個或多個而動態(tài)設置請求確定其當前使用狀態(tài)的塊的大小在存儲空間上操作的應用的數(shù)目、在存儲空間上操作的應用的屬性、以及用戶設置。此外,如圖2所示,可選地,在本發(fā)明的某些實施方式中,設備200還可包括回收裝置208,其可配置用以響應于所述確定裝置確定回收所述存儲空間而使所述存儲空間被回收。而且,為了在狀態(tài)確定和回收存儲空間的過程中避免造成存儲資源的沖突或者死鎖,可選地,在本發(fā)明的某些實施方式中,設備200還可包括一致性處理裝置210,其可配置用以在確定裝置206執(zhí)行確定之前處理所述存儲空間的訪問一致性。具體地,如圖2所示,可選地,在某些實施方式中,一致性處理裝置210可以進一步包括指示更新裝置2102, 其可配置用以響應于針對目標存儲空間的I/O寫操作而更新所述指示(S卩,實施上文描述的“指示更新”策略)。備選地或附加地,一致性處理裝置210還可以進一步包括鎖定裝置 2104和解鎖裝置2106,其中鎖定裝置2104可配置用以使目標存儲空間被鎖定,而解鎖裝置 2106可配置用以相應地使目標存儲空間被解鎖(即,實施上文描述的“提前鎖定”策略)。而且,為了處理狀態(tài)確定和回收期間可能存在的未決I/O操作,可選地,在本發(fā)明的某些實施方式中,設備200還可以包括調度裝置212,其可配置用以在確定裝置206執(zhí)行確定之后,調度針對目標存儲空間的未決I/O操作??梢岳斫?,上文結合圖2描述的設備200可以通過軟件、硬件、固件、專用集成電路或其任意組合來實現(xiàn)。例如,在本發(fā)明的某些實施方式中,設備200可以實現(xiàn)為以內核態(tài) (kernel mode)運行的軟件應用,并且其中包含的各個裝置以軟件模塊的方式具體化。在另一些實施方式中,設備200也可以基于硬件而實現(xiàn)為實體設備。本發(fā)明在此方面不受限制。參考圖3,其示出了根據(jù)本發(fā)明示例性實施方式的用于存儲管理的系統(tǒng)300。如圖 3所示,系統(tǒng)300可以包括用于存儲管理的設備302、文件系統(tǒng)304、底層驅動306、一個或多個存儲空間308-1到308-N(可統(tǒng)稱為308)、應用310以及其他應用312。設備302可以對應于上文圖2描述的設備200,其可以配置用以按照上文參考圖1和圖2描述的方式與文件系統(tǒng)304通信,并且根據(jù)從文件系統(tǒng)304處接收到的、關于存儲空間308的當前使用狀態(tài)的指示,來確定是否回收存儲空間308-1到308-N中的一個或多個。而且,根據(jù)本發(fā)明的優(yōu)選實施方式,系統(tǒng)300可以配置用以確保在狀態(tài)確定和回收存儲空間的過程中,應用310與其他應用312之間不會發(fā)生訪問一致性的問題。特別地,在本發(fā)明的某些實施方式中,在用戶空間中運行的某個應用310可配置用以指示所述存儲管理設備回收所述目標存儲空間。這里需要注意,在多數(shù)系統(tǒng)中,為了確保系統(tǒng)的安全性、穩(wěn)定性和/或運行效率,用戶應用對底層設備的操作通常受到較大限制。 以NTFS系統(tǒng)為例,用戶應用通常無權調用上文提及的用于狀態(tài)確定和回收的API_FSCTL_ GET_VOLUME_BITMAP和直接發(fā)送SCSI命令WRITE_SAME。因此,如圖3所示,設備302運行在內核空間中或者具有內核空間的權限。換言之,設備302以內核態(tài)運行。這樣,當接收到來自用戶空間的應用310的指示時,設備302可操作以完成存儲空間的狀態(tài)確定和回收所需的操作。另外,圖3中還示出了底層驅動306,其可配置用以負責內核空間與物理存儲空間之間的抽象與轉換,例如,對存儲空間的標識進行轉換,從而支持在實際物理存儲資源中的
尋址,等等。上文已經(jīng)參考圖1-圖3分別詳細描述了根據(jù)本發(fā)明示例性實施方式的用于存儲管理的方法、設備和系統(tǒng)?,F(xiàn)在,將參考圖4A和圖4B,詳細描述根據(jù)本發(fā)明實施方式的兩個具體示例,以便本領域的技術人員能夠更好地理解本發(fā)明的基本原理和思想。
可以看到,圖4A和圖4B以UML (統(tǒng)一建模語言)時序圖的形式給出。然而,這僅僅是為了說明目的,不對本發(fā)明的范圍構成任何限制。另外,如下文所述,在圖4A和圖4B的示例中,存儲管理操作響應于用戶應用的指示而發(fā)起。然而,如上文所述,這只是本發(fā)明的一種實施方式。存儲管理操作可以響應于其他多種事件而發(fā)起。而且,在圖4A和圖4B的示例中,存儲空間的狀態(tài)確定和回收是以塊為基礎順序來執(zhí)行的。應當理解,這些具體特征都是為了更好地闡釋本發(fā)明優(yōu)選實施方式的原理,本發(fā)明的范圍在這些方面均不受限制。首先參考圖4A,其示出了根據(jù)本發(fā)明優(yōu)選實施方式的用于存儲管理的操作時序圖。特別地,在此示例中,采用“指示更新”策略來處理目標存儲空間的訪問一致性問題(例如,上文參考圖的步驟106所描述的)。如圖4A所示,用戶應用可以指示回收指定的目標存儲空間。響應于此,存儲管理設備(例如,上文參考圖2描述的設備200)可以發(fā)起回收過程。在本發(fā)明的某些實施方式中,回收過程可以作為進程或者線程被發(fā)起,其可被配置以根據(jù)參考圖1描述的方法100進行操作。在回收過程發(fā)起之后,它執(zhí)行某些必要的初始化動作,例如初始化用于將來保存使用狀態(tài)指示的存儲器緩沖區(qū),等等。此后,回收過程處理目標存儲空間的第一塊。如上文所述,這可以包括請求文件確定第一塊的當前使用狀態(tài),并且接收文件系統(tǒng)返回的當前使用狀態(tài)的指示。在接收到指示后,回收過程將該指示例如存儲在存儲器緩沖區(qū)中(未示出),并且不對目標存儲空間進行鎖定或獨占。此后,回收過程可以根據(jù)該指示來確定是否回收,以及在確定回收的情況下執(zhí)行回收動作。在此期間,如果其他應用請求對存儲空間進行I/O寫操作,只要狀態(tài)確定和回收動作尚未開始,則該I/O寫操作便可以執(zhí)行。特別地,如果其他應用發(fā)起的I/O寫操作與目標存儲空間重疊,則存儲管理設備將更新狀態(tài)指示,例如通過對指示進行邏輯“或”運算,如上文所述。以此方式,可以確保狀態(tài)確定和回收動作總是基于目標存儲空間的最新的、正確的狀態(tài)。另一方面,如果當其他應用發(fā)起的I/O寫操作請求到達時,針對目標存儲空間的狀態(tài)確定和/或回收動作已經(jīng)開始,則目標存儲空間已經(jīng)處于被獨占的狀態(tài)(即,被鎖定), 因而該請求將作為未決I/O操作被掛起。當回收過程完成了針對目標存儲空間的狀態(tài)確定以及可能的回收動作之后,未決I/O操作可以根據(jù)任何適當?shù)姆绞奖徽{度和執(zhí)行,如上文所述。此后,回收過程可以順序地處理目標存儲空間中的第二塊、第三塊直至最后一塊。 針對每個塊的操作與上文針對第一塊的操作類似,在此不再重復。當最后一個塊處理完成之后,可以向請求回收的應用返回處理結果。這里需要特別指出的是,針對每一塊的狀態(tài)確定和回收動作可執(zhí)行不止一次(盡管在圖中僅示出了一次)。這是因為,如上文所述,回收過程所定義的“塊”與文件系統(tǒng)的基本單位可能是不同的。這種情況下,對于每個塊,文件系統(tǒng)會在邏輯上進一步劃分為若干基本單元。而且,某些存儲系統(tǒng)可能要求對這些基本單元按照順序操作,這就可能導致狀態(tài)確定和/或回收動作執(zhí)行多次??紤]一個具體示例,假設回收過程的一個存儲塊被文件系統(tǒng)劃分為8個基本單元,并且文件系統(tǒng)指示該塊中的第1、3、4個基本單元可回收,其他基本單元不可回收。這時,如果存儲系統(tǒng)具有連續(xù)操作基本單元的要求,則需要執(zhí)行兩次回收動作第一次回收動作只能回收第1個基本單元,第二次回收動作回收第3、4基本單元。應當理解,這僅僅是針對某些存儲系統(tǒng)的特定實施方式。當存儲系統(tǒng)無此要求時,當然可以通過單次回收動作完成對目標存儲空間的回收。本發(fā)明在此方面不受限制。下面參考圖4B,其示出了根據(jù)本發(fā)明另一示例性實施方式的用于存儲管理的又一操作時序圖。特別地,在此示例中,采用“提前鎖定”策略來處理目標存儲空間的訪問一致性問題(例如,上文參考圖的步驟106所描述的)。圖4B的操作與圖4A基本上等同,其區(qū)別在于當回收過程從文件系統(tǒng)接收到塊的當前使用狀態(tài)的指示之后,它便立即使目標存儲空間被鎖定。因此,其他應用隨后發(fā)起的針對目標存儲空間的任何I/O寫操作請求都將作為未決操作被掛起。相應地,當回收過程完成了對塊的確定或回收動作之后,使目標存儲空間被解鎖,并且調度目標存儲空間被鎖定期間產(chǎn)生的所有未決I/O操作。圖4B的其他操作類似于圖4A,在此不再重復。如上所述,圖4A和圖4B的示例中均涉及對目標存儲空間的訪問一致性處理。然而,這僅僅是本發(fā)明的優(yōu)選實施方式,而并非必不可少的。實際上,如上文所述,在很多情況下,本發(fā)明的實施方式可以不考慮目標存儲空間的訪問一致性,和/或以目前已知或將來開發(fā)的任何方法來處理訪問一致性。圖5示出了適于用來實踐本發(fā)明實施方式的計算機系統(tǒng)的框圖。如圖5所示,計算機系統(tǒng)可以包括CPU(中央處理單元)501、RAM(隨機存取存儲器)502、R0M(只讀存儲器)503、系統(tǒng)總線504、硬盤控制器505、鍵盤控制器506、串行接口控制器507、并行接口控制器508、顯示控制器509、硬盤510、鍵盤511、串行外部設備512、并行外部設備513和顯示器514。在這些部件中,與系統(tǒng)總線504相連的有CPU 501、RAM 502、ROM 503、硬盤控制器505、鍵盤控制器506、串行接口控制器507、并行接口控制器508和顯示控制器509。硬盤510與硬盤控制器505相連,鍵盤511與鍵盤控制器506相連,串行外部設備512與串行接口控制器507相連,并行外部設備513與并行接口控制器508相連,以及顯示器514與顯示控制器509相連。應當理解,圖5所述的結構框圖僅僅為了示例的目的而示出的,而不是對本發(fā)明的限制。在某些情況下,可以根據(jù)需要增加或者減少其中的一些設備。特別地,本發(fā)明的實施方式可以通過計算機程序產(chǎn)品的形式實現(xiàn)。計算機程序產(chǎn)品例如可以存儲在圖5所示的RAM 502、ROM 503、硬盤510和/或任何適當?shù)拇鎯橘|中, 或者通過網(wǎng)絡從適當?shù)奈恢孟螺d到計算機系統(tǒng)500上。該計算機程序產(chǎn)品可以包括計算機代碼部分,其包括可由適當?shù)奶幚碓O備(例如,圖5中示出的CPU 501)執(zhí)行的程序指令。所述程序指令至少可以包括用于請求文件系統(tǒng)確定目標存儲空間在所述文件系統(tǒng)中的當前使用狀態(tài)的指令;用于從所述文件系統(tǒng)接收所述目標存儲空間的當前使用狀態(tài)的指示;以及用于根據(jù)所述指示來確定是否回收所述目標存儲空間的指令。上文已經(jīng)結合附圖,詳細描述了根據(jù)本發(fā)明實施方式的用于存儲管理的方法、設備和系統(tǒng)。根據(jù)本發(fā)明的實施方式,在存儲管理方與文件系統(tǒng)之間建立了有效的通信機制, 從而使得存儲管理方可以獲知目標存儲空間在文件系統(tǒng)中的當前使用狀態(tài),并據(jù)此確定目標存儲空間是否可回收??梢岳斫猓c現(xiàn)有技術相比,本發(fā)明的實施方式解決了現(xiàn)有技術中無法有效回收閑置存儲空間的技術問題。而且,在本發(fā)明實施方式的執(zhí)行期間,在存儲空間上運行的應用無需中斷其操作,仍然可以不受影響繼續(xù)執(zhí)行。應當注意,本發(fā)明的實施方式可以通過軟件、硬件或者軟件和硬件的結合來實現(xiàn)。 硬件部分可以利用專用邏輯來實現(xiàn);軟件部分可以存儲在存儲器中,由適當?shù)闹噶顖?zhí)行系CN 102541743 A
統(tǒng),例如微處理器或者專用設計硬件來執(zhí)行。本領域的普通技術人員可以理解上述的方法和系統(tǒng)可以使用計算機可執(zhí)行指令和/或包含在處理器控制代碼中來實現(xiàn),例如在諸如磁盤、CD或DVD-ROM的載體介質、諸如只讀存儲器(固件)的可編程的存儲器或者諸如光學或電子信號載體的數(shù)據(jù)載體上提供了這樣的代碼。本實施方式的設備及其模塊可以由諸如超大規(guī)模集成電路或門陣列、諸如邏輯芯片、晶體管等的半導體、或者諸如現(xiàn)場可編程門陣列、可編程邏輯設備等的可編程硬件設備的硬件電路實現(xiàn),也可以用由各種類型的處理器執(zhí)行的軟件實現(xiàn),也可以由上述硬件電路和軟件的結合例如固件來實現(xiàn)。本說明書中提及的通信網(wǎng)絡可以包括各類網(wǎng)絡,包括但不限于局域網(wǎng)(“LAN”), 廣域網(wǎng)(“WAN”),基于IP協(xié)議的網(wǎng)絡(例如,因特網(wǎng))以及端對端網(wǎng)絡(例如,ad hoc對等網(wǎng)絡)。此外,盡管在附圖中以特定順序描述了本發(fā)明方法的操作,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實現(xiàn)期望的結果。相反,流程圖中描繪的步驟可以改變執(zhí)行順序。附加地或備選地,可以省略某些步驟, 將多個步驟合并為一個步驟,或是將一個步驟分解為多個步驟。雖然已經(jīng)參考若干具體實施方式
描述了本發(fā)明,但是應該理解,本發(fā)明并不限于所公開的具體實施方式
。本發(fā)明旨在涵蓋所附權利要求的精神和范圍內所包括的各種修改和等同布置。所附權利要求的范圍符合最寬泛的解釋,從而包含所有這樣的修改及等同結構和功能。
權利要求
1.一種用于存儲管理的方法,包括請求文件系統(tǒng)確定目標存儲空間在所述文件系統(tǒng)中的當前使用狀態(tài); 從所述文件系統(tǒng)接收所述目標存儲空間的當前使用狀態(tài)的指示;以及根據(jù)所述指示來確定是否回收所述目標存儲空間。
2.根據(jù)權利要求1所述的方法,還包括響應于確定回收所述目標存儲空間,使所述目標存儲空間被回收。
3.根據(jù)權利要求1所述的方法,還包括在所述確定之前,處理所述目標存儲空間的訪問一致性。
4.根據(jù)權利要求3所述的方法,其中所述處理包括響應于針對所述目標存儲空間的 I/O寫操作而更新所述指示。
5.根據(jù)權利要求1到4任意一個所述的方法,其中所述目標存儲空間在所述確定期間被鎖定。
6.根據(jù)權利要求5所述的方法,還包括在所述確定之后,調度針對所述目標存儲空間的未決I/O操作。
7.根據(jù)權利要求1所述的方法,其中所述目標存儲空間被劃分為塊,并且其中請求確定所述目標存儲空間的當前使用狀態(tài)包括請求所述文件系統(tǒng)確定塊的當前使用狀態(tài)。
8.根據(jù)權利要求7所述的方法,其中根據(jù)以下一個或多個而動態(tài)設置請求確定其當前使用狀態(tài)的塊的大小在所述目標存儲空間上操作的應用的數(shù)目、在所述目標存儲空間上操作的應用的屬性、以及用戶設置。
9.根據(jù)權利要求1所述的方法,其中所述目標存儲空間是虛擬共享存儲空間。
10.一種用于存儲管理的設備,包括請求裝置,配置用以請求文件系統(tǒng)確定目標存儲空間在所述文件系統(tǒng)中的當前使用狀態(tài);通信裝置,配置用以從所述文件系統(tǒng)接收所述目標存儲空間的當前使用狀態(tài)的指示;以及確定裝置,配置用以根據(jù)所述指示來確定是否回收所述目標存儲空間。
11.根據(jù)權利要求10所述的設備,還包括回收裝置,配置用以響應于所述確定裝置確定回收所述目標存儲空間,使所述目標存儲空間被回收。
12.根據(jù)權利要求10所述的設備,還包括一致性處理裝置,配置用以在所述確定裝置執(zhí)行所述確定之前處理所述目標存儲空間的訪問一致性。
13.根據(jù)權利要求12所述的設備,其中所述一致性處理裝置進一步包括指示更新裝置,配置用以響應于針對所述目標存儲空間的I/O寫操作而更新所述指
14.根據(jù)權利要求10-13任意一個所述的設備,其中所述目標存儲空間在所述確定期間被鎖定。
15.根據(jù)權利要求14所述的設備,還包括調度裝置,配置用以在所述確定裝置執(zhí)行所述確定之后,調度針對所述目標存儲空間的未決I/O操作。
16.根據(jù)權利要求10-13任意一個所述的設備,其中所述目標存儲空間被劃分為塊,并且所述請求裝置進一步包括塊請求裝置,配置用以請求所述文件系統(tǒng)確定塊的當前使用狀態(tài)。
17.根據(jù)權利要求16所述的設備,其中所述塊請求裝置進一步配置用以,根據(jù)以下一個或多個而動態(tài)設置請求確定其當前使用狀態(tài)的塊的大小在所述目標存儲空間上操作的應用的數(shù)目、在所述目標存儲空間上操作的應用的屬性、以及用戶設置。
18.根據(jù)權利要求10所述的設備,其中所述目標存儲空間是虛擬共享存儲空間。
19.一種用于存儲管理的系統(tǒng),包括根據(jù)權利要求10-18任一項所述的用于存儲管理的設備;以及與所述用于存儲管理的設備通信的文件系統(tǒng)。
20.根據(jù)權利要求19所述的系統(tǒng),還包括在所述目標存儲空間上操作的應用,配置用以指示所述用于存儲管理的設備回收所述目標存儲空間。
21.根據(jù)權利要求19所述的系統(tǒng),其中所述用于存儲管理的設備以內核態(tài)在所述系統(tǒng)中運行。
全文摘要
本發(fā)明的實施方式涉及用于存儲管理的方法、設備和系統(tǒng)。具體地,公開了一種用于存儲管理的方法,包括請求文件系統(tǒng)確定目標存儲空間在所述文件系統(tǒng)中的當前使用狀態(tài);從所述文件系統(tǒng)接收所述目標存儲空間的當前使用狀態(tài)的指示;以及根據(jù)所述指示來確定是否回收所述目標存儲空間。還公開了用于存儲管理的相應設備和系統(tǒng)。根據(jù)本發(fā)明的實施方式,在存儲管理方與文件系統(tǒng)之間建立了有效的通信機制,從而能夠實現(xiàn)更為有效的存儲管理。
文檔編號G06F12/02GK102541743SQ20101060312
公開日2012年7月4日 申請日期2010年12月17日 優(yōu)先權日2010年12月17日
發(fā)明者黃為綱, 黃松玨 申請人:伊姆西公司