新四季網

用於存儲管理器的數據流過濾器和插件的製作方法

2023-10-09 08:34:04

專利名稱:用於存儲管理器的數據流過濾器和插件的製作方法
技術領域:
概括地說,本發明涉及對軟體應用提供數據存儲服務的存儲管理器。 更具體地,本發明涉及作為存儲管理器操作的一部分提供例如加密、壓縮 和其他數據轉換的過濾功能。
背景技術:
作為背景,存儲管理器是用作軟體應用(例如備份/恢復程序或web 伺服器)和數據存儲資源(例如帶驅動器、盤驅動器、存儲子系統等)之 間的中介的系統。可以與應用程式集成或與其單獨實現的存儲管理器提供 接受存儲的對象並且隨後在請求時檢索對象的接口 。已使用存儲管理器的 應用包括資料庫安裝的備份映像、企業應用數據、個人工作站、web內容 等的管理。
通常需要一種存儲管理器,通過壓縮或加密向物理存儲設備寫入或從 其中讀取的數據來過濾所述數據。為壓縮和/或加密提供支持的現有存儲管 理器以兩個方法之一執行此操作。最常見地,由內置存儲管理器產品本身 的算法提供此類過濾。不太常見地,通過提供向存儲管理器用戶給出寫入 其自己算法(多個)的選項的編程鉤子來支持此類過濾。利用此選項,還 需要用戶自己重新實現存儲管理器的大部分功能。
第一個方法的缺陷包括
用戶受限於存儲管理器產品中內置的壓縮和/或加密算法。
一些產品支持加密但不支持壓縮,反之亦然。
一些產品僅支持弱加密或較差的壓縮。
'存儲管理器供應商可向客戶收取附加費以啟用內置的壓縮和/或加密
5算法。
如果發現內置算法具有安全缺陷或致命漏洞,則客戶不能立即換入 不同的現用算法以避免暴露於風險中。
當發明了更好的算法時,存儲管理器客戶必須等待供應商使用最新 技術更新嵌入的算法,儘管在單獨的現用程序中可能已存在該新技術。
供應商可能未實現客戶期望的特定壓縮或加密算法。
第二個方法的缺陷包括
存儲管理器的編程鉤子給客戶帶來重新實現存儲管理器否則將提供 的大部分功能的負擔。典型地,用戶必須寫入這樣的程序,即可接受存儲 的對象,跟蹤這些對象的位置,向/從物理存儲設備寫入和讀取這些對象, 在請求時基於存儲管理器需要的任何查詢協議來檢索這些對象,以及寫入 期望的壓縮和/或加密算法。在該方案中,存儲管理器基本上將所有工作託 付給用戶,並且沒有提供其自己的任何功能。存儲管理器主要用作向用戶 寫入的外部程序轉發所有存儲和檢索請求以便處理的空殼或"存根 (stub)"。存儲管理器自身只是組合和拆分經過其以及調用其的應用之 間的信息的緩衝區,並提供用於接口 API (應用編程接口 )的存根,但是 將大部分工作託付給用戶的程序。
該方法為壓縮和加密提供很少的支持。存在編程鉤子,但是需要客 戶以對自身來說較多的附加開銷和工作來創建所需的支持。
他們的數據已被其自己的定製程序破壞,或者程序中的漏洞在關鍵時刻(例 如當需要存儲對象來恢復停機的系統時)妨礙檢索存儲對象。
如果發生在先前段落中描述的事件,則存儲管理器供應商可能發現 自身會面臨對客戶自己的編程,承擔責任。
因此,需要一種克服上述缺陷的存儲管理器過濾技術。需要一種允許 在不必重新設計存儲管理器或在定製程序中重複其功能的情況下容易地實 現存儲管理器過濾器的方案。還期望提供實現新的和不同過濾器的能力。 目前,對存儲管理器過濾的最常見的需要是壓縮和加密。然而,必須承認,如果可行性越寬,在一些情形下有利於提供其他數據轉換,例如在英制和
米制單位之間、或在不同代碼頁或字符集(如ASCII (美國信息交換標準 代碼)、EBCDIC (擴展二進位編碼的十進位交換碼)和統一碼(Unicode)) 之間轉換。通過實例的方式,如果第一系統以第一字符格式生成a數據 (例如使用EBCDIC字符的大型機)並且該數據需要被恢復到使用第二字 符格式的第二系統(例如使用ASCII字符編碼的工作站),則此能力將非 常有用。可4吏用存儲管理器過濾的另一領域是審計跟蹤的生成。此類過濾 器可用於檢查被存儲或檢索的數據,並生成用於管理用途的審計信息。

發明內容
通過一種方法、系統和電腦程式產品解決以上問題並獲得了現有技 術的改進,其中管理數據存儲資源上的客戶端數據的存儲管理器具有利用 許多不同類型數據流過濾器的能力,這些過濾器既未內置在存儲管理器中 也不需要定製編程工作。存儲管理器用戶可通過簡單地標識用戶希望存儲 管理器在過濾用戶數據時使用的數據流過濾器來容易地實現過濾。所述過 濾器可以是現用程序,後者不是存儲管理器的一部分並且不需要客戶端應 用或存儲管理器域信息(例如由客戶端應用或存儲管理器使用的協議或數 據類型的信息)。存儲管理器作為被請求的數據流操作的一部分調用所標 識的過濾器,以及從數據流源接收數據流。數據流被提供給所述過濾器, 後者過濾所述數據流。在過濾之後,存儲管理器從過濾器接收數據流並將 其發送至數據流目的地。
根據這裡公開的示例性實施例,可作為以下項的屬性之一接收所述過 濾器標識存儲管理器事務請求、存儲資源、應用、主機、用戶、或存儲 對象類別等。所述過濾^作可以導致也可以不導致所述數據流的轉換。如 果過濾器轉換數據流,則其可作為包括對所述數據流執行轉換的寫過濾器 以及可以逆轉也可以不逆轉所述轉換的讀過濾器的過濾器對的一部分來實 現。此類轉換可包括壓縮/解壓縮過濾、加密/解密過濾、字符集轉換過濾 等。如果過濾器未轉換數據流,則其可代替地祐:設計為生成與所述數據流相關的信息,例如審計跟蹤。
所述過濾器可在其自己的執行上下文中被調用,並且可經由進程間通 信機制與所述過濾器交換所述數據流。此機制可包括第一和第二管道,一 個用於向所述過濾器提供所述數據流,另 一個用於從所述過濾器接收所述 數據流。可以使用過濾器參數來調用所述過濾器,如果所述過濾器適於處 理所述參數,則傳遞所述過濾器參數,否則,所述#被阻止。通過實例 的方式,所述過濾器可以是加密或解密過濾器,以及所述過濾器參數可以 與加密密鑰的標識相關。
在其他方面,存儲管理器適於代表遠程客戶端將數據流過濾作為服務 來管理數據存儲資源上的客戶端數據。為了實現過濾,存儲管理器從遠程 客戶端或遠程客戶端(例如可信機構)指定的位置接收客戶端選擇的過濾 器的副本或此類過濾器的標識。
在另一方面,存儲管理器適於利用不一定是數據流過濾器的插件。此 類插件可以是具有客戶端應用數據格式或存儲管理器的域信息的定製程 序,從而其不是真實的數據流過濾器。


從以下對本發明的示例性實施例的更多特定描述,本發明的以上和其
他特徵和優點將變得清楚,如附圖所示,其中
圖l是示出示例性存儲管理器、客戶端應用和數據存儲資源的功能框
圖2是示出圖1中所示的組件的一個可能實施方式的功能框圖; 圖3是示出圖1的存儲管理器的示例性細節的功能框圖; 圖4是示出在圖3的存儲管理器和過濾器之間的進程間通信的示例性 機制的功能框圖5是示出可由圖1的存儲管理器實現以執行數據流過濾的示例性步 驟的流程圖6是示出與讀和寫過濾器對結合的圖1的存儲管理器的功能框8圖7是示出可由存儲管理器父進程實現以調用過濾器的示例性步驟的 流程圖8是示出可由存儲管理器父進程創建的過濾器客戶端進程實現的示 例性步驟的流程圖9是示出在遠程存儲管理器服務環境中的圖1的存儲管理器的示例 性實施方式的功能框圖IO是示出可用於提供實現圖l的存儲管理器的軟體版本的系統的示 例性數據處理硬體的功能框圖;以及
圖ll是可以在圖l的存儲管理器的電腦程式產品方案中使用的示例 性存儲介質的示意性表示。
*實施方式
現在轉到附圖,在所有幾個附圖中類似的標號指示類似的元素,圖1 示出存儲管理器2,其存儲和檢索由客戶端應用4生成的數據。在數據存 儲模式下,存儲管理器2從應用4接收數據對象的流(數據流),並將對 象存儲在數據存儲資源6中,典型地(但非必要地)用於歸檔目的。在數 據檢索模式下,存儲管理器2從數據存儲資源6檢索先前存儲的對象,並 將它們返回至應用4。可以在軟體、固件、硬體、或其組合中實現存儲管 理器邏輯。應用4可代表期望在數據存儲資源6中放置其數據的任意軟體 應用。可作為任意物理存儲設備或系統(包括一個或多個帶驅動器、盤驅 動器、存儲子系統等)實現數據存儲資源6。
現在轉到圖2,沒有限制本發明的範圍,資料庫系統8代表其中可適 於^f吏用圖1的組件的一個可能環境。在系統8中,通過帶和盤存儲管理器 10例示存儲管理器2,通過資料庫備份/恢復系統12例示應用4,以及通過 可在帶驅動器系統(未示出)中工作的一組帶存儲巻14和盤存儲巻15例 示數據存儲資源6。 */恢復系統12代表資料庫伺服器16提供數據^# 和恢復服務,資料庫伺服器16的存儲空間和邏輯日誌18需要被定期M 和恢復。僅通過實例,可使用例如IBM Informix ON-Bar備汾和恢復系統的產品在圖2的環境中實現*/恢復系統12。該產品為資料庫伺服器 (例如IBM Informix⑧動態伺服器(IDS ),其可用於實現資料庫伺服器 16 )提供帶和盤備份和恢復服務。資料庫伺服器16可經由是111&1 11^@產 品的一部分的歸檔API (應用編程接口 )向^#/恢復系統12傳送備除和 恢復請求。響應於這些請求,備^V恢復系統12將經由例如XBSA (X/開 放備份服務API)的協議調用存儲管理器10來實現存儲和檢索操作。可使 用例如IBM Informi^存儲管理器(ISM)的產品實現存儲管理器10 (通 過適當修改以支持在此所述的過濾)。存儲管理器10管理帶存儲巻14和 盤存儲巻15。存儲管理器10還在盤存儲巻15中維護備盼和恢復操作的目 錄20,後者將存儲的數據對象與相應的帶存儲巻14和盤存儲巻15相關。 存儲管理器10的功能包括寫入和讀取在實際帶和盤上的數據、跟蹤何種數 據在哪個帶或盤上,以及對數據分類。
可通過資料庫伺服器16的管理員向4^V恢復系統12發出^##求來 啟動數據*操作。M/恢復系統12確定需要M何種數據並連接至存 儲管理器IO。然後,*/恢復系統12從存儲空間和邏輯日誌18檢索適當 數據,建立*對象的列表,並將其傳遞至存儲管理器10。存儲管理器IO 從數據對象列表創建保存組,並將保存組(包括一個或多個數據對象)寫 入到適當的帶存儲巻14和/或盤存儲巻15。然後,存儲管理器10在目錄 20中輸入保存組和存儲巻的記錄。存儲管理器10使用目錄20來跟蹤保存 組以及在其上4^這些保存組的巻。
可通過資料庫伺服器16的管理員向*/恢復系統12發出恢復請求來 啟動數據恢復操作。M/恢復系統12確定需要恢復何種數據並連接至存 儲管理器IO。存儲管理器10在目錄20中搜索由名H分/恢復系統12請求的 特定恢復對象,並將每個恢復對象映射至其在保存組中的偏移。然後,備 份/恢復系統12從存儲管理器檢索數據,並逐對象地將其傳遞至資料庫服 務器16。資料庫伺服器16將數據寫入存儲空間和邏輯日誌18中的適當位 置(多個)。
如通過以上背景所述,有時期望存儲管理器過濾在數據存儲源中存儲或從中檢索的數據。傳統的存儲管理器提供有限的過濾選項,例如壓縮/ 解壓縮和加密/解密。同樣如上所述,此類過濾器或者嵌/v存儲管理器邏輯 中,並由此難以修改或更新,或者需要複雜的編程工作以使用編程鉤子創
建和實現此類過濾器。存儲管理器2通過提供這樣一種機制來改進此類情 形,即用戶可容易地和直接地插入可應用於寫入數據存儲資源6或從中讀 取的數據的現用壓縮、加密、或其他數據轉換程序。
圖3示出可用於實現此功能的存儲管理器2的示例性實施方式。如圖 所示,存儲管理器2實現過濾器調用子系統30,後者負責調用可以從過濾 器組32p 322、 ...32n來指定的過濾器32。這些過濾器不是存儲管理器2 的一部分。相反,它們是駐留在數據處理系統(通常也實現存儲管理器(盡 管在單獨執行上下文中))中的單獨程序(或庫)。備選地,存儲管理器 2和過濾器32可以在單獨系統上執行。過濾器標識接口 34允許用戶指定 要用作所請求的數據流操作一部分的過濾器32。可實現接口 34以例如經 由存儲管理器的用戶或管理員操作的命令行或圖形用戶接口來支持對存儲 管理器2的本地或遠程訪問。過濾器標識存儲器36 (例如存儲文件、存儲 器等)可用於在存儲管理器2中保存過濾器標識。如以下更詳細描述的, 這支持這樣的能力標識過濾器32作為對象屬性,例如存儲資源6(參見 圖1)、應用、主機、用戶、或數據對象類別的屬性。因為此類對象的其 他屬性通常由存儲管理器2維護(例如數據資源屬性),所以可容易地實 現過濾器屬性的添加。這樣,不同過濾器32可以與不同存儲資源6 (參見 圖1)、應用、主機、用戶或存儲對象類別相關。如果沒有此類能力,用 戶或應用必須將過濾器標識為每個數據流命令的參數。
數據存儲管理器2還包括數據流接收器38和數據流發送器40、以及 過濾寫入器42和過濾讀取器44。還提供用於與應用4 (參見圖1)(例如 實現XBSA協議)通信的第一傳統通信接口 46,以及提供用於與數據存儲 資源6 (參見圖1)(例如實現存^i殳備特定的協議)通信的第二傳統通信 接口 48。
圖4中示出數據流接收器38、數據流發送器40、過濾寫入器42和過
ii濾讀取器44的配置,如與過濾器32相對的在數據流寫入器和數據流讀取 器之間的關係。現在將額外地參照圖5的流程圖描述存儲管理器2的操作 (包括上述組件的操作)。如圖5的步驟50所示,存儲管理器2利用過濾 器32的能力始於以下操作,用戶經由過濾器標識接口 34標識對於存儲管 理器的過濾器。在圖5的步驟52,存儲管理器2將過濾器標識存儲在過濾 器標識存儲器36中。在過濾器標識之後或與其同時,將請求存儲管理器2 執行數據流操作,例如備份或恢復。在圖5的步驟54,過濾器調用子系統 30查詢過濾器標識存儲器36並然後調用其中標識的過濾器32。在圖5的 步驟56,數據流接收器38從數據流源接收數據流。對於一些操作(例如 數據備除),數據流源將是應用4 (參見圖1)。對於其他操作(例如數據 恢復),數據流源將是數據存儲資源(參見圖1)。在圖5的步驟58,數 據流接收器38將輸入的數據流傳遞至過濾寫入器42。過濾寫入器42的功 能是將數據流提供給所標識的過濾器32用於過濾。由於過濾器32運行在 單獨執行上下文中(或運行在單獨系統上),所以過濾寫入器42將使用適 當的進程間通信(IPC)機制(例如一對管道P1和P2 (參見圖4))與過 濾器通信。也可使用其他IPC機制,例如套接字(例如,如果過濾器32 運行在單獨數據處理系統上)。在圖5的步驟60,過濾讀取器44從執行 過濾的過濾器32接收過濾後的數據流。在圖5的步驟62,將過濾後的數 據流傳遞至數據流發送器40,後者將數據流發送至數據流目的地。對於一 些操作(例如數據備份),數據流目的地是數據存儲資源6 (參見圖1)。 對於其他操作(例如數據恢復),數據流目的地是應用4 (參見圖1)。
在許多情況下,包括過濾器32的過濾程序將不需要知道由存儲管理器 2或應用4使用的協議或數據類型(以下稱為"域信息"),而是僅需從 stdin (標準輸入)讀取以及向stdout (標準輸出)寫入。此類程序是真正 的"過濾器,,,其能夠根據自Unix作業系統出現以來而公知的"過濾器" 的標準定義來處理原始數據流。Unix的"compress"和"uncompress"程 序僅是支持此類操作的現用程序的許多實例中的兩個。用戶也可指定過濾 器32,其實現其他期望的數據轉換,例如加密和解密,或在不同字符集或代碼頁之間轉換、在英制單位和米制之間轉換等。也可指定非數據轉換過
濾器32,例如執行例如審計的任務的過濾器32。例如,此類過濾器可將用 戶數據的一部分和當前用戶名複製到單獨日誌,後者使能在以後標識用戶 及其訪問的數據。備選地,此類過濾器可檢查由存儲管理器2處理的數據 流,並創建與事務相關的日誌信息。儘管許多過濾程序將是現用軟體,但 是也可創建定製過濾程序。此類過濾程序可以是Unix意義上的真正數據流 過濾器,或它們更多地在本質上可以是插件(所述插件需要存儲管理器的 協議或應用的數據類型或格式的域信息),或者可接受或需要除了僅輸入 流之外的參數。例如, 一些過濾程序可使用參數來調用。 一個此類參數可 以是所存儲或檢索的對象的唯一 ID (對象ID)。過濾程序可選擇忽略該 參數,或者其可在參數看來適合時使用該參數。由於客戶可具有要求使用 多個密鑰來加密數據的策略,所以此能力對於加密過濾器非常有用。在此 類情況下,可使用對象ID選擇對正在討論的對象進行加密(寫過濾)或 解密(讀過濾)的密鑰。例如,可使用對n取^莫的運算在n個不同密鑰中 選擇(key—id=object_id MOD n )。應注意,並非所有加密過濾程序都必 須需要此類參數進行密鑰選擇。例如,加密過濾器可以對其始終使用的單 個密鑰進行硬編碼(但是通常這使得保護過濾器本身與保護加密密鑰一樣 重要)。
可用於數據轉換的兩種過濾程序是寫過濾器和讀過濾器。寫過濾器被 應用於存儲管理器2向數據存儲資源6寫入的數據。將用戶要求寫入的數 據傳遞至寫過濾器作為輸入,然後將寫過濾器的輸出寫入到物理存儲器。 讀過濾器被應用於存儲管理器2從數據存儲資源6讀取的數據。從物理存 儲器讀取數據,並將其傳遞至讀過濾器作為輸入,然後將讀過濾器的輸出 返回至請求檢索該數據的用戶。
如果期望,可將兩個過濾器32定義為對以一個方向轉換數據的寫過 濾器(例如Unix "compress");以及逆轉原始轉換的讀過濾器(例如 Unix "uncompress")。圖6中示出了此類過濾器配對的實例,其示出寫 過濾器32w與讀過濾器32R配對。應注意,還可定義只是傳遞數據而不改
13變數據的過濾器32。因此,可以使得將EBCDIC數據轉換成ASCII的寫 過濾器與不執行任何轉換的讀過濾器配對。結果可以是將為EBCDIC的源 數據存儲為ASCII並隨後以ASCII檢索,而不是轉換回EBCDIC。
如上所述,在存儲管理器2的一個實施方式中,可將過濾器32定義為 物理存儲設備的屬性(例如表示數據存儲資源6的一部分)。這將很方便, 因為在許多存儲管理器中,必須首先描述物理存儲i史備的屬性,然後才可 以使用它們來存儲和檢索數據。此類屬性可包括(l)到達設備的路徑,(2) 是盤還是帶設備,以及(3 )要在設備中存儲的字節的最大數目。存儲管理 器2可實現兩個新的i更備屬性;即,讀過濾器和寫過濾器。這些屬性可4皮 指定為關於設備定義命令的標誌,如下所示
sm -p/diskl/ids/logbu —t DISK -s 1000M\ -Fr/usr/bin/uncompress\ -Fw/usr/b in/compress
可用於限定到存儲管理器10的物理存儲設備的此語句標識設備及其 各種屬性,包括-Fr標誌(後跟到用於該設備的讀取過濾器程序的路徑) 以及-Fw標誌(後跟到寫入過濾器程序的路徑)。該語句始於表示存儲管 理器的標識"sm" 。 "p"標誌表示存儲設備路徑指定。"/disk/l/ids/logbu" 欄位標識到存^i殳備的實際路徑。"-tDISK"屬性表示設備類型為盤。"-s 1000M"屬性標識i史備的大小。僅通過實例的方式,由-Fr標誌標識的讀過 濾器程序示為Unix "uncompress"程序,由-Fw標誌標識的寫過濾器程序 示為Unix"compress,,程序。通常,兩個程序都位於Unix文件系統的/usr/bin 目錄中。當存儲管理器2接收到上述命令時,其可將設備屬性存儲在設備 屬性文件中和/或存儲器中。此文件或存儲器的保存讀和寫過濾器屬性的部 分可代表圖3的過濾標識存儲器36。因此,在存儲管理器操作期間可由過 濾器調用子系統30查詢過濾標識存儲器36,以確定何種過濾器(多個) 應用於寫入數據存儲資源6的特定物理設備或從中讀取的數據。
如上所述,過濾器指定不限於物理設備級。它們也可以以不同粒度(例 如虛擬設備級、應用級、主機級等)被指定。還可以為不同類別的存儲對象(例如日誌文件、數據文件等)指定過濾器32。同樣,可以為不同的用 戶或組、或根據任意其他類別方案指定過濾器32。備選地,如果期望,每 當應用4調用存儲管理器2時,可將過濾器32指定為數據存儲或檢索命令 的參數。
如果存儲管理器2被設計為傳遞過濾器參數,例如用於確定對加密/ 解密過濾器的加密密鑰的"-id ,, ^t,則可需要一種衝支術來處 理確實支持此功能的過濾器32。理想地,過濾器32將能夠使用或忽略此
參數。然而,許多現用過濾器被要求從stdin讀取和向stdout寫入,並且 這些過濾器可抱怨它們不識別該參數。解決此問題的一個方法是圍繞現用 過濾器組件編寫很小的封裝器腳本(wrapper script)以便處理該參數。例 如,可為加密過濾器進行該操作,以基於數據對象ID實現密鑰選擇。對 於其他現用過濾器程序,例如Unix "compress"和"uncompress"程序, 可編寫忽略參數的封裝器並簡單地將數據傳遞至程序。此類封裝器腳本可 以是可執行文件並被定義為對於存儲管理器2的過濾器32,而不是直接定 義對於存儲管理器的相應現用過濾器程序。
在以下實例中,稱為myCompress (其封裝Unix compress)和 myUncompress (其封裝Unix uncompress )的一對兩行封裝器腳本允許將 Unix命令用作過濾器32,即使它們不識別存儲管理器2可傳遞的參數。所 述封裝器簡單地調用Unix過濾程序而不繼續傳遞參數
myCompress:忽略過濾器參數的壓縮封裝器腳本 #!/usr/bin/sh /usr/bin/compress
myUncompress:忽略過濾器M的解壓縮封裝器腳本 #!/usr/bin/sh /usr/bin/uncompress
上述封裝器可用於如下的存儲設備過濾器配置中(假設myCompress 和myUncompress安裝在/usr/local/bin中)
sm —p /path/to/device -t DISK —s 5G\-Fw /usr/local/bin/myCompress\ -Fr /usr/local/bin/myUncompress
用於處理將不處理過濾器參數的過濾器程序的另一方法將是定義向過 濾器調用子系統30指示是否應將任何參數傳遞至過濾器的標誌。如果對於 給定過濾器定義被禁用,則過濾器調用子系統30將不向過濾器32傳遞任 何參數,從而使能在沒有任何封裝器腳本的情況下使用不識別或不需要額 外參數(例如壓縮-解壓縮對)的純現用過濾器。以下是實例
sm -p /diskl/ids/logbu -t DISK -s 1000MV
-Fr_noarg/usr/bin/uncompress\
-Fw—noarg/usr/bin/compress
這裡,-Fr—noarg標誌指示這是不應被傳遞任何參數的讀過濾器, -Fw—noarg標誌指示這是不應被傳遞任何參數的寫過濾器。然後,在不需 要任何封裝器的情況下指定現用Unix "compress"和"uncompress"命令。 應注意,仍可支持上述的原始-Fr和-Fw標誌以指示應將^t傳遞至過濾 器。
另一方法支持將任意參數串傳遞至每個過濾器32。 以下是實例
sm -p /diskl/ids/logbu —t DISK -s 1000MX
國Fr /usr/bin/uncompress —Fr—arg "read_argl read_arg2 read—arg3"\ 誦Fw /usr/bin/compress —Fw—arg "write—argl write一arg2,, 這裡,-Fr標誌指示讀過濾器,-Fr一arg標誌提M當調用讀過濾器時 傳遞給其的參數串。-Fw標誌指示寫過濾器,-Fw_arg標誌提供每當調用 寫過濾器時傳遞給其的參數串。
存在過濾器調用子系統30可用以調用外部過濾器的各種實現機制。現 在,將描述利用Unix作業系統工具創建子進程和重定向它們的輸入和輸出 流的一個此類實例。應理解,該實例並非旨在將本發明的範圍(或所附權 利要求)限於任何特定實施方式,而是僅示出可設計存儲管理器2的一個 方法。該實例也未旨在將本發明的範圍(或所附權利要求)限於Unix作業系統。其他作業系統具有生成子進程或線程和重定向它們的輸入和輸出流
的類似工具。例如,Linux是Unix的一種加強,其同樣可使用以下示例性 實施方式。藉助移植(porting),可以在Windows等作業系統環境中使 用相同方法。
根據示例性實施方式,具有要寫入物理存儲器的數據的存儲管理器2 的Unix版本中的進程可首先使數據經過寫過濾器,如下所示
創建2個管道,in_pipe和out—pipe (例如圖4中的管道PI和P2 )。
分叉出子進程以執行子過濾器。
從應用4接收數據。
將數據寫入injpipe (Pl)的輸入端。
從outjipe (P2)的輸出端讀取過濾後的結果。
向數據存儲資源6寫入過濾後的結果。 子進程執行過濾器和in_pipe和out_pipe中的服務,如下
關閉stdin並代之以in_pipe (PI)的輸出端。
關閉stdout並代之以out_pipe (P2)的輸入端。
執行(在Unix中,使用execvp或類似物)過濾器命令。
當到達文件末尾(輸入流的末尾)時退出。
在以上實施方式中,父存儲管理器進程將未處理的數據寫入injpipe (Pl)的輸入端,子過濾器進程從in_pipe的輸出端讀取該數據(由於過 濾器始終從stdin讀取,子進程將其重定向為injipe的輸出端)。子過濾 器進程將處理後的結果寫入outj)ipe (P2)的輸入端(由於過濾器始終向 stdout寫入,子進程將其重定向為outjpipe的輸入端)。最後,父存儲管 理器進程從out_pipe的輸出端檢索處理後的數據並將其寫入物理存儲器。
可以通過相反的方式執行寫入處理。因此,具有要從物理存儲器讀取 的數據的存儲管理器2的Unix版本中的進程可首先使數據經過讀過濾器, 如下
創建2個管道,in_pipe和out_pipe (例如圖4中的管道Pl和P2 )。
分叉出子進程以執行子過濾器。 從數據存儲資源6讀取數據。
■將數據寫入in_pipe (Pl)的輸入端。
.從out』ipe (P2)的輸出端讀取過濾後的結果。
將過濾後的數據傳遞至應用4。
子進程執行過濾器和in_pipe和out_pipe中的服務,如下 關閉stdin並代之以in_pipe (PI)的輸出端。
關閉stdout並代之以out_pipe ( P2 )的輸入端。
執行(在Unix中,使用execvp或類似物)過濾命令。
當到達文件末尾(輸入流的末尾)時退出。
在以上實施方式中,父存儲管理器進程從物理存儲器讀取未處理的數 據並將其寫入in_pipe (PI)的輸入端,子過濾器進程從in_pipe的輸出端 讀取該數據(由於過濾器始終從stdin讀取,所以子進程將stdin重定向為 in_pipe的輸出端)。子過濾器進程將處理後的結果寫入out_pipe (P2 )的 輸入端(由於過濾器始終向stdout寫入,所以子進程將stdout重定向為 out_pipe的輸入端)。最後,父存儲管理器進程從outjipe的輸出端檢索 處理後的數據。
圖7和8是在執行上述操作時分別代表存儲管理器父進程和子過濾器 進程的操作的流程圖。在圖7中,步驟70代表父進程創建in_pipe (PI) 和out_pipe ( P2)。圖7的步驟72代表父進程分叉出子進程以執行子過濾 器。圖7的步驟74代表父進程將數據寫入in_pipe的輸入端。圖7的步驟 76代表父進程從out_pipe的輸出端讀取數據。在圖8中,步驟78代表子 進程關閉stdin並代之以in_pipe ( PI)的輸出端。圖8的步驟80代表子 進程關閉stdout並代之以out_pipe (P2 )的輸入端。圖8的步驟82代表 子進程執行過濾命令。圖8的步驟84代表當到達輸入流末尾時子進程退出。
現在轉到圖9,示出了存儲管理器2的另一示例性實施方式,其中存 儲管理器在伺服器站點90處運行,以代表遠程客戶端92經由網絡94提供 存儲管理器服務。應用4和數據存儲資源6也可位於伺服器站點卯處。備 選地,這些組件可位於外部的其他位置。客戶端92可維護其向存儲管理器
182提供(例如經由過濾器接收接口 97)以在過濾客戶端數據時使用的過濾 器96。因此,存儲管理器2可在伺服器站點90處本地實現過濾器96的副 本。備選地,如果期望,客戶端92可維護過濾器96的單獨副本並筒單地 (例如經由過濾器標識接口 34 )向存儲管理器2標識該副本。在此情況下, 存儲管理器2可^_用遠程過程調用來調用過濾器96,並優選地^f吏用安全連 接(例如SSL (安全套接字層))跨網絡94將數據傳遞至過濾器。如果服 務器站點90具有禁止使用不可信第三方過濾器的策略,則客戶端92可(對 於存儲管理器2娥定位於由可信過濾器機構維護的儲存庫98中的過濾器。 因此,公開了一種允許存儲管理器實現用於處理數據流的過濾器的技 術。可以理解,所公開的技術提供了在傳統存儲管理器中不能發現的多個 優點,包括如下
用戶不局限於由存儲管理器供應商提供的壓縮、加密、或其他過濾器。
用戶不必向存儲管理器供應商支付額外費用來啟用嵌入的壓縮和/ 或加密算法。
用戶可快速換出被發現具有安全缺陷或致命漏洞的過濾器,並換入 提供類似功能的另 一現用組件,而不必等待存儲管理器供應商發出補丁版 本。
用戶可升級到最新的過濾技術,而無需等待來自存儲管理器供應商 的下一版本。
如果用戶不使用過濾器,則他們不必編寫其自己的冗長程序或重新 實現存儲管理器將提供的功能。
.對於客戶來說,該方法遠比編程鉤子安全,因為他們無需自己編寫
大部分存儲管理軟體,在編寫中,他們可能沒有適當的進程來確保在軟體
被部署到生產之前充分測試和調試軟體。
可避免實現編程鉤子方法的存儲管理器供應商的潛在責任。
由於過濾器的通用可插入特徵使得客戶具有更多的創造性,並JL^
戶可發現這使得他們能夠解決除了僅僅壓縮和/或加密之外的更多問題,例如審計跟蹤生成。
可以理解,可以在數據處理系統、機器實現的方法、以及電腦程式 產品中的任何一個中以各種方式實現上述概念,在計算才幾程序產品中,由 一個或多個機器可用介質提供編程邏輯以用於控制數據處理器執行所需功
能。相對於數據處理系統和機器實現的方法,圖10示出在將存儲管理器2 實現為軟體時可使用的示例性硬體環境IOO。硬體環境100包括CPU或 其他數據處理資源102和主存儲器104,其提供數據處理核心;圖形卡106, 生成對於顯示監^見器107的可視輸出信息;外圍存儲設備108;其他外圍 設備110;以及總線基礎設施112,其互連上述元件。存儲管理器2可加載 到主存儲器104中。如果應用4 (見圖1)運行在相同硬體平臺上,則其也 可加載到存儲器104中。存儲設備108可用作過濾器標識存儲器36的永久 性存儲器。也可在存儲器104中維護過濾器信息的副本。可通過由外圍設 備110 (可包括USB總線控制器、SCSI盤控制器、和網洛接口卡)提供 的I/O (輸入/輸出)資源來訪問其他數據源。監視器107可用於呈現管理
"f各息。
相對於具有計算機可讀介質和編程邏輯的電腦程式產品,通過圖11 中的標號200示出用於存儲編程邏輯的示例性數據存儲介質。介質200被 示為通常用於商業軟體銷售類型的可攜式光學存儲盤,例如光碟-只讀存儲 器(CD-ROM)盤、光碟-讀/寫(CD-R/W)盤、和數字通用盤(DVD)。 此類介質可單獨地或結合含有所需功能的另 一軟體產品存儲本發明的編程 邏輯。編程邏輯也可以由可攜式磁介質(例如軟盤、快閃記憶體棒等)、或與驅 動系統(例如盤驅動器)結合的磁介質、或包含在數據處理平臺中的介質 (例如隨M取存儲器(RAM)、只讀存儲器(ROM)或其他半導體或 固態存儲器)來提供。更寬泛地,介質可包括任何電子的、磁的、光學的、 電磁的、紅外的、半導體系統或裝置或設備、發送或傳播介質(例如網絡) 或信號、或其他實體,它們可包含、存儲、傳送、傳播或傳輸由數據處理 系統、計算機或其他指令執行系統、裝置或設^f吏用或與之結合使用的編 程邏輯。
20儘管已經描述了本發明的各個實施例,但是應理解,可根據本發明實現許多變形和備選實施例。因此,可理解,除了根據所附權利要求及其等同物的精神,不應以任何方式限制本發明。
權利要求
1.一種在適於管理數據存儲資源上的客戶端數據的存儲管理器中的數據過濾方法,包括接收數據流過濾器的標識,所述過濾器是單獨的程序或庫;作為被請求的數據流操作的一部分調用所述過濾器;向所述過濾器提供數據流;以及向數據流目的地發送所述過濾器的輸出。
2. 如權利要求1所述的方法,其中作為以下項的屬性之一接收所述 過濾器標識存儲管理器事務請求、存儲資源、應用、主機、用戶、或存 儲對象類別。
3. 如權利要求1所述的方法,其中所述過濾操作導致所述數據流的 轉換,並且所述過濾器是包括對所述數據流執行轉換的寫過濾器以及可以 逆轉也可以不逆轉所述轉換的讀過濾器的過濾器對的一部分。
4. 如權利要求3所述的方法,其中所述過濾操作包括以下操作之一 壓縮/解壓縮過濾、加密/解密過濾、或字符集轉換過濾。
5. 如權利要求1所述的方法,其中所述過濾操作導致在不轉換所述 數據流的情況下生成與所述數據流相關的信息。
6. 如權利要求5所述的方法,其中所述過濾操作包括生成審計跟蹤。
7. 如權利要求1所述的方法,其中所述過濾器在其自己的執行上下 文中被調用,並且經由進程間通信機制向所述過濾器提供所述數據流以及 從所述過濾器接收所述數據流。
8. 如權利要求7所述的方法,其中所述進程間通信機制包括向所述 過濾器提供所述數據流的第 一管道以及從所述過濾器接收所述數據流的第 二管道。
9. 如權利要求1所述的方法,其中使用過濾器參數來調用所述過濾 器,如果所述過濾器適於處理所述過濾器參數,則所述過濾器參數^L傳遞 給所述過濾器,並且如果所述過濾器不適於處理所述過濾器參數,則所述過濾器參數被阻止。
10. 如權利要求9所述的方法,其中所述過濾器是加密或解密過濾器 之一,以及所迷過濾器參數與加密密鑰的標識相關。
11. 一種適於管理數據存儲資源上的客戶端數據的存儲管理器系統, 包括數據處理核心; 到應用的第一通信接口; 到數據存儲資源的第二通信接口 ;過濾器標識接口,其適於接收數據流過濾器的標識,所述過濾器是單獨的程序或庫;過濾器標識存儲器,其適於保存所述過濾器的所述標識; 過濾器調用子系統,其適於作為被請求的數據流操作的一部分調用所述過濾器;數據流接收器,其適於從代表所述應用或所述數據存儲資源之一的數 椐流源接收數據流;過濾寫入器,其適於向所述過濾器提供所迷數據流;過濾讀取器,其適於在所述過濾器過濾之後從其接收所述數據流;以及數據流發送器,其適於向代表所述應用或所述數據存儲資源之一的數 據流目的地發送所述數據流,其中所述數據流目的地不是所述數據流源。
12. 如權利要求11所述的系統,其中所述過濾器標識包括以下項的 屬性之一存儲管理器事務請求、存儲資源、應用、主機、用戶、或存儲 對象類別。
13. 如權利要求11所述的系統,其中所述過濾器適於轉換所述數據 流,並且是包括對所述數據流執行轉換的寫過濾器以及可以逆轉也可以不 逆轉所述轉換的讀過濾器的過濾器對的 一部分。
14. 如權利要求13所述的系統,其中所述過濾器包括以下項之一 壓縮/解壓縮過濾器、加密/解密過濾器、或字符集轉換過濾器。
15. 如權利要求11所述的系統,其中所述過濾器適於在不轉換所述數據流的情況下生成與所述數據^M目關的信息。
16. 如權利要求15所述的系統,其中所述過濾器適於生成審計跟蹤。
17. 如權利要求11所述的系統,其中所述過濾器調用子系統適於在 其自己的執行上下文中調用所述過濾器,並且所述數據流寫入器和讀取器 分別適於經由進程間通信機制向所述過濾器提供所述數據流以及從所述過 濾器接收所述數據流。
18. 如權利要求17所述的系統,其中所述進程間通信機制包括向所 述過濾器提供所述數據流的第一管道以及從所述過濾器接收所述數據流的 第二管道。
19. 如權利要求11所述的系統,其中所述過濾器調用子系統適於使 用過濾器參數來調用所述過濾器,如果所述過濾器適於處理所述過濾器參 數,則所述過濾器參數被傳遞給所述過濾器,並且如果所述過濾器不適於 處理所述過濾器參數,則所述過濾器參數被阻止。
20. 如權利要求19所述的系統,其中所述過濾器是加密或解密過濾 器之一,以及所述過濾器參數與加密密鑰的標識相關。
21. —種電腦程式,包括在計算機系統上執行所述電腦程式時, 用於執行根據任意先前方法權利要求的方法的所有步驟的指令。
全文摘要
一種存儲管理器和相關方法以及電腦程式產品,用於管理數據存儲資源上的客戶端數據,並包括利用許多不同類型數據流過濾器的能力,這些過濾器既未內置在存儲管理器中也不需要定製編程工作。存儲管理器用戶可通過簡單地標識用戶希望存儲管理器在過濾用戶數據時使用的數據流過濾器來容易地實現過濾。所述過濾器可以是現用程序,後者不是存儲管理器的一部分並且不需要客戶端應用或存儲管理器域信息(例如由所述應用或存儲管理器使用的協議或數據類型或格式的信息)。存儲管理器作為被請求的數據流操作的一部分調用所標識的過濾器,以及從數據流源接收數據流。數據流被提供給所述過濾器,後者過濾所述數據流。在過濾之後,存儲管理器從過濾器接收數據流並將其發送至數據流目的地。
文檔編號G06F3/06GK101646995SQ200880008566
公開日2010年2月10日 申請日期2008年3月17日 優先權日2007年3月26日
發明者J·萊福勒, K·J·切爾考爾 申請人:國際商業機器公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀