TW201224914A - Offload reads and writes - Google Patents
Offload reads and writes Download PDFInfo
- Publication number
- TW201224914A TW201224914A TW100128753A TW100128753A TW201224914A TW 201224914 A TW201224914 A TW 201224914A TW 100128753 A TW100128753 A TW 100128753A TW 100128753 A TW100128753 A TW 100128753A TW 201224914 A TW201224914 A TW 201224914A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- token
- request
- storage
- tokens
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Description
201224914 六、發明說明: 【發明所屬之技術領域】 本發明係關於卸載讀取與寫入 【先前技術】 次:㈣㈣送資料之機制是從來源位置之檔案中讀取 貝料到主記憶n,並從該主記憶體寫入資料到指定位 置。、而在某些環境中,對於相對較小的資料而言是可接 受的工作方式當資料增加時,讀取資料並將資料 傳送到另-位置的時間也會隨著增加。此外,若資料能 ,過網路存取’則網路會對於從來源位置傳送資料到目 標位置之過程加上額外延遲。更甚者,與儲存排置.的複 雜度相結合之安全議題會使資料傳輸變得複雜化。 在此所主張之標的並不受限於解決諸如上述缺點或僅 在上述環境操作之實施例。相反地,本先前技術僅係提 供以闡述可實行本文—些實施例的—個範例技術領域。 【發明内容】 簡巨之,本文描述之標的之態樣係關於卸載讀取及寫 入。在各式態樣中’尋求傳輸資料的請求器會發送用於 代表k料之請求。相應地,該請求器接收一或更多代表 該資料之符記。該請求器則可按請求提供一或更多之該 等符記給組件,以寫入由該一或更多符記所代表之資 201224914 料。在某些示範性應用中,組件可使用一或更.多符記以 ¢.]咨.. ° 料’並則可讀取資料或邏輯地寫入資料而無需與 °月求器進行額外互動。符記可透過請求或是基於其他因 素而被無效化。 本發明内容係提供以簡要地指明本標的之一些態樣, 、下的實施方式中,該等態樣更進一步地被描述。本 發明内容並非意欲指明所主張標的之關鍵或必要特徵, 亦非意欲用以限制所主張標的之範圍。 術-「在此所述之標的」係參照在「實施方式」中所 ^述之^的’除非前後文有清楚地指示其他標的。術語 「態樣」係理解為「至少一態樣」。識別在「實施方式」 中所描述之標的之態樣不該被認為是所主張標的之識別 關鍵或是重要技術特徵。 【實施方式】 在本文中’術語「包含」及變型係理解為開放式術語, 表示「包含但不限於」。除非上下文另有清楚指示,術語 「或」係理解為「及/或」。術語「以......為基_ 解為「至少-部分以......為基礎」。術語「_個實施例」 及「一實施例J係理解為「至少—個竇 1因貫施例」。術語「另 一實施例」係理解為「至少一個其#音 W,、他貫施例」。下文可包 含其他外顯或隱含之定義。 有時在此會使用「第一 J、「第二 」 弟二」等諸如此 201224914 類的術έ吾。該等術語的使用,特別是在申請專利範圍中, 並未意圖暗指為順序,而是作為識別目的之用途。例如, 用語「第一資料」及「第二資料」並非絕對意味著第一 資料是實體上或邏輯上地位於該該第二資料之前,或甚 至是說第一資料係在第二資料之前被請求或運作。相反 地,該等用語係用於識別可能有所區別或沒有差別的資 料集合。也就是,第一資料及第二資料可視為不同資料、 相同資料、部分相同而部分不同之資料等等。第一資料 可為第二資料之子集合、潛在地適合子集合或反之亦然。 需注意到,雖然用語「該儲存器之資料」以及「在該 儲存器中之資料」有時候會在此被使用,然並未意圖使 用該等用語來將所述資料限制為實體地儲存在儲存器中 之資料。相反地,此些用語係意味著將資料限制為邏輯 地儲存在儲存n中之資料’即使資料並非實體地儲存在 儲存器中。例如,儲存抽象化(於下述)可執行最佳化, ,、中大塊的零值(chunks of zeroes)或是其他資料數值不 是實際地儲存在基本儲存媒體上,而是按表示為零值的 經縮短資料來加以表示(例如,數值及長度)。其他範例 則於以下提供。 範例操作環境 第1圖圖示合適的計算系統環境100之一例,本文所 描述之標的之態樣可在該電腦系統環境上實施1算系 統裱境100僅係合適的電腦系統環境之一例,且並非意 201224914 欲對本文所描述之標的之使用範圍或態樣功能提出任何 限制。計算環境100亦不應證釋為具有關於示範性操作 環境100中所圖示組件之任一者或組合之任何依賴性與 需求。 本文描述之標的之態樣可供操作於其他眾多一般目的 或特殊目的之電腦系統環境或配置。可適用於此處所描 述之標的之態樣的眾所周知的計算系統、環境或配置之 例子包含:個人電腦、伺服器電腦、手持裝置或膝上型 電腦裝置、多處理器系統、以微控制器為基礎之系統、 機上盒、可程式化之消費性電子產品、網路個人電腦、 迷你電腦、主機電腦、個人數位助理機(PDAS)、遊戲裝 置、印表機、電器,包含:機上盒、媒體中心或其他電 器,汽車之嵌入式或附著式電腦裝置、其他行動裝置、 包含以上任何系統或裝置之分散式計算環境及類似物。 本文描述之標的之態樣可用電腦可執行指令之一般情 境(context)來描述,諸如電腦執行之程 言’程式模組包含常用程式、程式'物件、組件、= 結構等等,該等程式模組執行特殊任務或實施特殊抽象 :料類型。此處描述之標的之態樣亦可在分散式計算環 境中實行,在該分散式計算環境中’任務由遠端處理裝 =執仃’遠端處理係經通信網路連接。在分散式計算環 ,中’程式模組可定位於本機及遠端電腦儲存器媒體, G含記憶體儲存器裝置。 參考第1圖,本圖係實施本文描述之標的之態樣之範 201224914 例系統,本圖包含採電腦丨丨〇形式之一般目的之計算裝 置。電腦可包含任何可執行指令之電子設備。電腦110 之組件可包含處理單元120、系統記憶體130、系統匯流 排121,系統匯流排121耦合各樣系統組件,包含處理 單兀120之系統記憶體。系統匯流排121可為幾種匯流 排結構類型之任一者,包含記憶體匯流排或記憶體控制 器、週邊匯流排,及使用各樣匯流排架構之任一者之局 部匯流排。以實例說明但非限制,此種架構包含工 業標準架構(ISA)匯流排、微通道架構(MCA)匯流排、增 強型工業標準架構(EISA)匯流排、視訊電子標準協會 (VESA)局部匯流排、週邊組件互連(pci)匯流排,pci匯 流排亦被稱為Mezzanine匯流排、週邊組件互連延伸 (PCI-X)匯流排、進階圖形槔(AGP),以及PCI Express 標準(PCIe)。 電腦110通常包含各樣電腦可讀取媒體。電腦可讀取 媒體可為任何可獲取之媒體,此媒體可藉由電腦1〇〇存 取,並包含揮發性及非揮發性媒體,以及可移除及不可 移除媒體。以實例說明t ’但非限制,電腦可讀取媒體 可包含電腦儲存媒體及通信媒體。 電腦儲存媒體包含揮發性及非揮發性媒體,以及可移 除及不可移除媒體,電腦儲存媒體以任何方法或技術實 施以健存資訊’諸如f腦可讀取指令、f料結構、程式 模組’或其他資料。電腦儲存媒體包含隨機存取記憶體 (RAM)、唯讀記憶體(R0M)、電子可抹除可規劃唯讀記憶 201224914 體(EEPROM) '快閃記憶體或其他記憶體技術、光碟機 (CD-ROM)、數位影音多用途光碟機(DVDs)或其他光碟儲 存器、磁卡E、磁帶、磁碟儲存器或其他磁性儲存器裝 置’或其他可用以儲存所要資訊及藉由電腦11〇存取之 任何媒體。 通仏媒體通常包含電腦可讀取指令、資料結構、程式 模組,或其他在模組化資料信號内的資料,諸如載波或 其他傳輸機制,且包含任何資料傳送媒體。術語「模組 化資料信號」表示一信號,該信號之一或多個特徵係經 «又置或改變以將資訊編碼在信號中。以實例說明之,但 非限制,通彳5媒體包含有線媒體(諸如有線網路或直接有 線連接),及包含無線媒體諸如聲訊(ac〇ustic),射頻紅 外線及其他無線媒體。上述之任何組合應可包含在電腦 可讀取媒體之範圍内。 系統記憶體130包含採揮發性及/或非揮發性記憶體形 式之電腦儲存器媒體,諸如唯讀記憶體(R〇M) 1 3丨及隨 機存取記憶體(RAM) 132。基本輸出入系統(B〇IS) 133 通常係儲存於ROM 中,BI0S含有在電腦11〇中諸 如在開機時幫助於元件之間轉移資訊之基本常用程式。 RAM 132通节含有藉由處理單元12〇可立即存取及/或正 被操作之資料及/或程式模組。以實例說明之,但非限 制,第1圖圖示作業系統134、應用程式135、其他程式 模組136及程式資料137。 電腦110亦可包含其他可移除/不可移除、揮發性/非揮 201224914 發性之電腦儲存琴 σ ^ 子益媒體。僅以實例說明之,第1圖圖示 σ “可移除及非揮發性之磁性媒體之硬碟機1 4 1、 y讀寫可移除及非揮發性之磁碟152之磁碟機⑸’及 ::寫可移除及非揮發性之光碟156 (諸如光碟或其他 先干媒體)之光碟機155 4他可移_可移除、揮發性 ^揮發1±之可用於範例操作環境之電腦儲存器媒體包 、帶卡匿、快閃記憶體卡、數位影音多用途光碟、 其他光碟、數位視訊磁帶、固態RAM、固態ROM及類 似物。硬碟機141通常經由介面刚連接至系統匯流排 121 ’且磁碟機151及光碟機155 it常藉由可㈣及非揮 發性之記憶體介面(諸如介自15〇)連接至系統匯流排 12卜 如上述所討論且圖示在第1圖中的磁碟機和與磁碟機 相關聯之電腦儲存器媒體,為電腦可讀取指令、資料結 構'程式模組及其他用在電腦110的資料提供儲存器。 例如’在第1圖中’硬碟機141係圖示為儲存作業系統 144、應用程式145、其他程式模組146及程式資料丨47。 注意該等組件可與作業系統134、應用程式135、其他程 式模組136及程式資料137相同或相異。作業系統144、 應用程式!45、其他程式模組146及程式資料147被賦 予了與他們在RAM U2中所對應之相應副本 (counterparts)不同的元件符號,以闡述它們至少係相異 之拷貝。 使用者可經由輸入裝置輸入命令和資訊至電腦11〇 10 201224914 .輸入裝置諸如鍵盤162及指標裝置161,指標裝置 '一常被無為/月咏、軌跡球或觸控板。其他輸入裝置(未圖 ㈡可包含麥克風、搖捍、手柄、衛星天線(satemte dish)、 掃指器、觸控式螢幕、手寫板或類似物。該等輸入裝置 及其他輸入裝置常經由使用者輸入介面 單元120,使用者齡λ人 4 輪入介面係耦合至系統匯流排,但該 裝置及其他輸入裝置可藉由其他介面及匯流排結 構^接,諸如平行埠、遊戲埠或通用争列匯流排(USB)。 監視器⑼或他種顯示裝置亦係經由諸如視訊介面 ⑽之介面連接至系統匯流排12卜除監視器之外,電腦 亦可匕3其他週邊輸出裝置,諸如揚聲器I”和印表機 I96,匕們可經由輸出週邊介面195連接。 電腦110可在網路環境中操作,網路環境係利用使用 邏輯連接連接至-或多個遠端電腦,諸如遠端電腦刚。 遠端電腦180可為個人電腦、伺服器、路由器、_個 人電腦、同級點裝置(peerdevice)*其他共用網路節點, 且儘官僅有一記憶體儲存器裝置181已圖示於第i圖 中’遠端電腦18Q通常包含許多或所有以上描述之關於 電腦11 〇之元件。第】圄中少—+. 第1圖中描逑之邏輯連接包含區域網 路(LAN) 171及廣域網路(WAN) 173,但亦可包含其他網 路。此種網路環境在辦公室、企業級電腦網路、内部網 路及網際網路中係為普遍。 當在LAN網路環境中使用時,電腦u〇經由網路介面 或介面卡17〇連接iLAN171。當在Wan網路環境中使 201224914 用時,電腦110可包含數據機172或其他用以建立WAN 173通信之方法,諸如網際網路。數據機172可為内接 或外接,可經由使用者輸入介面16〇或其他適合之機制 連結至系統匯流排121。在網路環境中,被描述為關於 電腦110或關於電腦110之部分之程式模組可被儲存在 遠端記憶體儲存器裝置中。以實例說明之,但非限制, 第1圖圖不遠端應用程式185,遠端應用程式185位於 記憶體裝置181。應理解,圖*之網路連結係為範例, 且可使用在電腦之間建立通信連結之其他方法。 卸載讀取與寫入 如前述,某些傳統資料傳送作業並不具效率或是甚至 不適合在現今的儲存環境下工作。 圖2-5為方塊圖,表示系統組件之示範性排置,其中 在此所述之本發明標的之態樣可運作。圖2·5所繪^之 組件為示範性質且未意圖將全部所需或納入之組件都含 括在内。在其他具體實施财,連同圖^所描述之组 件及/或功能可被含括在其他組件内(圖示或未圖示)或 是置放於子組件中,而τ #灿· j· 而不會背離在此所述之本發明熊樣 的精神或範疇。在某此1t 二具體貫施例中,連同圖2-5所描 述之組件及/或功能可橫跨多個I置加以分佈。 回到圖2,系統205可白扭咬+、。。 了包括h未益210、資料存取組件 215、符 3己管理器 225、儲;、,# 省存态220以及其他組件(未圖 示)。系統205可經由 ^ ^ 由—或更多計算裝置來實作。此類裝 12 201224914 置可包括,例如,個人電腦、飼服器電腦、手持或膝上 型電腦、多處理器系統、微控制器為基礎之系統、機上 盒、可程式化之消費性電子產品、網路個人電腦、迷你 電腦、主機電腦、行動電話、個人數位助理機(PDAs)、 遊戲裝置、印表機、電器’包含:機上盒、媒體中心或 其他電器’汽車之嵌入式或附著式電腦裝置、其他行動 裝置、包含以上任何系統㈣置之分散式計算環境,及 其類似物。 '在系統205包含單-裝置之處,示範性裝置可被設置 成扮演系、统205之角&,該示範性裝置包含圖】之電腦 11〇。在系統205包含多個裝置之處,多個裝置中之一或 多者可包含圖1之相似或相異的經設置電腦"〇。 資料存取組件215可被用來對該儲存器220往返傳輸 資料。該等資料存取組件215可包括,例如,—或更^; 之以下組件:I/O管理器、過攄器、驅動器、檔案飼服器 組件、在儲域網路(SAN)或其他儲存裝置上之組件以 及其他組件(未圖示)e SAN可被實作成,例如,暴露邏 輯儲存目標的裝置、包括此類裝置的通訊網路,或是類 似者。 在-具體實施例中,資料存取組件可包含被賦予機會 去審視在請求器2 1 0與該儲存器22〇之間的1/〇的任何 組件,且此任何組件具有能€ 1/〇 &變、完成或失效的 能力,或是基於此任何組件來執行其他動作或不執行動 作例如,在0亥系統205駐存(reside)在單—裝置之處 13 201224914 資料存取組件215可包括在請求器21〇及儲存器22〇之 間的uo堆疊中之任何物件。在該系統2〇5實作成多個 裝置之處’資料存取組件215可包括在主控該請求器21〇 之裝置上的組件、提供對儲存器22〇存取之裝置上的組 件,及/或在其他裝置上之組件及相似物。在另一具體實 施例令,該資料存取組件215可包括任一組件(例如, 服務、資料庫等等),此任一組件能通過該I/C)而由另一 組件所使用,即使該資料並未透過所使用之組件來流通。 如此處所用般,該術語「組件」是被解讀成包括裝置 的全部或-部分、-或更多之軟體模組或是軟體模組中 之一部分的集合、一或更多之軟體模组或是軟體模組中 之一部分的某些組合以及一或更多裝置或是裝置中之一 部分,以及相似物。 在一具體實施例中,儲存器22〇為能夠儲存資料之任 何儲存媒體。該儲存器220可包括揮發性記憶體(例如, 快取)及非揮發性記憶體(例如,永續儲存設備)。該術 °°為料」疋被寬廣地解讀成包括可由一或更多電腦儲 存元件所表示的任何事物。邏輯性而言,資料可在揮發 或非揮發性記憶體中被表示成一連串的i與〇。在具有 非二進位儲存媒體之電腦中,資料可根據儲存媒體的能 力來加以表示。資料可被組織成不同類型之資料結構, 包括單純的資料類型(諸如數字,英文字母等等”階層 式、鏈結式或其他相關之資料類型、包括多個其他資料 結構或是單純資料類型的資料結構,及相似物。資料的 14 201224914 某些範例包括資訊、链 八 ^ 私式碼、程式狀態、程式資料、命 令、其他資料,及相似物。 儲存器22〇可台合麻 碟儲存設備、固態或其他非揮發 性儲存设備、揮發性記憶體 偌、Η,“ 隱體(諸如副)、其他儲存設 備上述之、、、0合,及相似札
Mm , 且可橫跨多個裝置加以分 佈(例如,多個ςΑΤΜ、女/ 人箄箄 多個檔案伺服器、異質裝置之結 口等等)。用於貫作該健左怒 頁作該儲存器22〇之裝置可被實體地定位 在-起(例如,在單_裝置上、在資料中心上 是在地理位置上被分開今仗 彼刀開散佈。儲存器220可按—層式 (tiered)儲存排列或是一非展糾^ 士 s歹】式儲存排列來排置。 存器220可為外接、内桩七—&〜 ^ W接⑽或包括内接及外接兩者皆可並 連接到—或更多實作成系統2G5的組件。儲存器220可 被格式化(例如,格式化成檔案系統)或是
如,原始資料)。 J 在另一具體實施例中,儲存器22〇可被實作成儲存抽 象化而非直接實體儲存設備。儲存抽象化可包括,例如, 檔案、卷(V〇1ume)、碟、虛擬碟、邏輯單元、資料串士 替代資料串流、元資料串流或相似物。例如,儲存器二 可由具有多個實體儲存裝置之飼服器所實作而成。在此 範例中’㈣器可呈現介面’該介面允許資料存取组件 以存取儲存器之資料,該儲存器係使用該伺服器之一或 更多的實體儲存裝置或是實體儲存裝晋 5 教置之一部分所實作 而成。 抽象化之卓級可被重複成任何隨機之、、死命 调1夂,衣度。例如,提 15 201224914 供儲存抽象化給資料存取組件215之伺服器,亦可依賴 儲存抽象化以存取並儲存資料。 在另一具體實施例中,儲存器220可包括組件,該組 中提供對資料之檢視,該資料在非揮發性儲存設備中可 為永續地或非永續地。 —或更多之資料存取組件215可駐存在設備上,該設 備主控該請求器21G同時—或更多其他的資料存取組件 215可駐存在設備上,該設備主控儲存器22〇或提供對 儲存器220之存取。例如,若請求器21〇為可在個人電 腦上執行之應用m或更多之資料存取組件215 可駐存在作業系統t,該作業系統係在個人電腦上主 控一如另-範例’若儲存器22〇係由儲存區域網路(SAN) 所實作’-或更多的資料存取組件215可實作儲存作業 系統’該儲存作業系、統管理及/或提供對儲存器22〇之存 取。當請求器210及儲存器22〇在單一設備中主控時, 所有或許多$資料存取組件215亦可駐存在設備上。 、為了初始化該儲存器22〇之資料的卸載讀取(見下 述),該請求器21G可使用狀義之命令(例如,經由 ΑΠ)之^式來發送請求,㈣得絲該㈣之符記。相 應地’-或更多之資料存取組件215可藉由提供一或更 多之符記的方式來回應該請求器21〇,其中一或更多符 3己係表示該資料或資料之子集人。 例如,以各種理由來看,值 ^ 口得表不之貝料少於原本所 s月求之資料的符記會是所湘皆从 疋所期望的。當回傳符記時,該符 16 201224914 記可連同長度回傳或是甚至連同由符記表示之多個範圍 之資料一同回傳。該長度可小於資料原本所請求之長度。 一或更多之資料存取組件215可在少於與符記相關聯 之所請求長度上起作用,該符記係處於卸載讀取狀態或 疋卸載寫入狀態。實際地於資料上起作用之長度有時在 此可視為「有效長度」。在少於所請求長度上起作用之方 式以各種理由來看都是所期望的。可將有效長度回傳, 使得請求器或是其他資料存取組件能察覺到有多少位元 組係透過命令而實際地起作用。 •貝料存取組件2 15可以各種方式來動作以因應於卸載 讀取或是寫入’該等方式包括了例如·· 1. 分區資料存取組件可在將請求往前饋送到下一 個較低的資料存取組件之前,調整該卸載讀取或 寫入請求之偏移量(〇ffset)。 2· RAID資料存取組件可將卸載讀取或寫入請求加 以分割並將片段往前饋送到相同或是不同的資 料存取組件。在rAID_〇的情況下,所接收請求 可沿著條紋邊界(由較短的有效長度所形成)而 加以分割;而在RAiDq的情況丁,整體請求可 被往前饋送到多於一個的資料存取組件(由用於 相同資料之多個符記所形成)。 3'快取資料存取組件可寫出(write out)自身快取之 部分,該些部分包括了即將由卸載讀取請求所獲 得之資料。 17 201224914 4. 快取資料存取組件可使自身快取之該些部分無 效’該些部分包括了即將由卸載寫入請求所覆寫 的資料。 5· 資料驗證資料存取組件可使資料之任何經快取 校驗和(checksum)無效,該等經快取校驗和包括 了即將由卸載寫入睛求所覆寫的資料。 6. 加密資料存取組件可使卸載讀取或寫入請求失 敗。 7. 擷圖(snapshot)資料存取組件可拷貝在位置中之 資料,該資料即將由卸載寫入請求所覆寫。此可 crp分地元成’使付使用者若有必要的話可於稍後 「返回」(go back)到檔案的「先前版本」(previ〇us version)。擷圖資料存取組件本身可使用卸載讀 取及寫入命令來將在位置十之資料(即將被覆 寫)拷貝到備份(backup)位置。在此範例中,操 圊資料存取組件可被當做「下行串流請求器」(將 於下描述)。 範例並未意圖要包括全部態樣或是詳盡無遺。基於此 處之教示,該領域中具有通常技術人士可辨別出其他方 案’其中此處之教示可應用在該等方案中而不會背離在 此所述之本發明態樣的精神或範疇。 若資料存取組件21 5未能執行卸載讀取或寫入,則可 回傳錯誤碼,該錯誤碼允許另一資料存取組件或是請求 18 201224914 器去嘗式另一種機制來讀取或寫入資料。舉例而言,能 力的搜尋可在初始過程中執行。當儲存器或是較低的層 貝料存取組件不支援特定作業時,可由較高資料存取組 件或疋睛求器來執行其他動作,以達到相同結果。例如, 若儲存系統(將於下描述)不支援卸載讀取及寫入,則 為料存取組件可管理符記並維持資料之檢視從而較高 之貝料存取組件不會察覺到儲存器或是較低的資料存取 組件沒有提供此能力。 。月求器可包括來源(originating)請求器或下行串流請 求器。例如,請求器可包括能請求符記之應用程式,使 得該應用程式此執行卸載寫入。此類型的請求器可視為 來源明求器。如另一範例,請求器可包括伺服器應用裎 式(例如,伺服器訊息方塊(SMB)伺服器),該伺服器廡 用程式已從客戶端接收拷貝命令。客戶可能已經經由拷 貝命令而請求了資料從來源儲㈣拷貝到目標儲存器。 SMB伺服ϋ可接受此請求並依序使用卸載讀取及寫入以 執行該拷貝動作。在此情況τ,請求器可視為下 請求器。 & 如此處所用般,除非另有指定或是從前後文中明顯可 見’否則該術語「請求器」係被解讀成包括來源請求器 及下行串流請求器兩者。來源請求器是於最初發送用於 卸載讀取或寫人之請求的請求器。換言之,該術語請求 器係意圖涵蓋有額外組件在該請求器之 ^ W形,其中 該請求器會因應額外組件而初始化卸 戰”貝取,以及涵蓋 201224914 請求器自行主動地開始偏移讀取或寫入的情形β 例如’來源請求器可為一種期望能從來源處傳送資料 到目標處之應用程式。此類型之來源請求器可將一或更 多卸載讀取及寫入請求發送到資料存取組件2丨5以傳送 資料》 下行串流請求器為能發佈 請求器,以滿足來自另一請求器之需求。例如,一或更 多之資料存取組件215可當作為下行串流請求器並可初 始化一或更多卸載讀取或寫入,以達到由另一請求器所 發出的請求。下行串流請求器之某些範例已如上所賦 予,可參考RAID-Ο、分區及擷圖資料存取組件雖然該 等範例並未意圖包括全部態樣或是詳盡無遺。 a在-具體實施例中,符記包含了报難以猜測之隨機或 是虛擬(pseudo)隨機數字。猜測數字的難度可依數字的大 小’以及用來產生數字之機率來選擇。數字代表了在儲 存器220上之資料,但是可遠小於資料。例如請求器 可針對1〇0GB(GigaByte)檔案請求符記。因應於此唷 求器可接收’例如,512位元組或是其他大小的符記。 只要該符記是有效的,則符記可代表資料。在某些實 作令,符記可代表像是當符記與資料連結⑻响時,仍邏 ^地存在般的資料。該術語「邏輯地」係、使用於資料不 =全部都駐存在儲存器或是持續存留著的情況。例如, 可位在快取中,該快取需要在提供符記之前被 新。如另-範例’可從其他資料中衍生出某些資料。 20 201224914 另範例,來自異類來源之資料會需要# &人 被操縱以建立由符記所代表之資料或疋另 在接收了料外 -亥連結程序可發生 在1 己之請求後並在回傳符記的時間之前。 否二:他實作中,由符記所代表之資料會改變。資料是 符记的有效期間改變的行為 组株Π +Λ 士 %水器協商或是在 組件間協商。此會在以下詳加描述。 符::會逾期且因此變成無效或是在逾期前明 效。例如若由您 ^ 之電腦會二機=關閉,則主控請求器210 除、可〜? 記所代表之資料的卷會被卸 明確地無效該符記。⑼等等,而-息可被發送以 成具體實施例中,用以無效該符記之訊息可被當 跟隨性。在其他實作中,用以無效該符記 被當成可跟隨或不可跟隨的暗示。在符記被無 ,後,則不再使用該符記來存取資料。 °由相同的安全機制來保護’該機制可保護由符 Γ表之資料。例如’若使用者有權去開啟並讀取檔 接.會允許使用者獲得符記,該符記允許使用者去 、:意處之檔案。若為了讀取檔案而將通.道加以保 夺°己可經由經保全通道而被傳通。若資料可被提 ;另—實體’則該符記可被傳通到其他實體,就如資 ㈣能做到的-樣。接收實體可使用符記以獲得資料, 就如同接收實體可伟 體之資料本身-般。f料本身曾為發送到該接收實 21 201224914 符記可為不變的。也就是,若符記以任何方式改變, 則會不再可使用該符記來存取由符記代表之資料。 在一具體實施例中,只有一符記被提供來代表該資 料。然而,在另一具體實施例中,可提供多個符記其 中各符記代表了資料之多個部分。在又另一具體實施例 中’所有或是部分之資料可由多個符記來代表。該等符 5己可被封裝在另一資料結構中或是分別地提供。 在封裝的情況下,當請求器尋求執行在資料上之作業 =(例如’卸載寫入,符記無效化),非進階(n〇n_advanced) 凊求器可僅將資料結構傳回到資料存取組件。更進階的 凊求器210能夠重新排置在經封裝資料結構中的符記、 为別使用來自其他符記中 或是當多個符記被傳回時採取其他動作 接收符-己之後’晴求器2! Q可請求由被邏輯地寫入 之符記所代表的全部或部分資料。在此處有時此作業被 ::却載寫,。請求器21。可藉由連同一或更多偏移值 度來發送該符記到該資料存取組 成此作業。 π m π :㈣卸載寫入,對於每個有關的符記而言,可表 偏移值以及目標相關之偏移值。兩者或 所表示。目標相關之偏移值可代表從在 處之資料開端算起的位元組(或其他單位)數目 22 201224914 度可表示位元組(或立从、 、a其他早位)數目以拷貝在偏移值處 之起點。 或更夕之資料存取組件215可接收符記,驗證符記 代表在儲存器上之咨财 n ^ 育枓’且若為如此則根據儲存系統之 能力而邏輯地意人 冩入由符5己所代表之部分資料,其中儲存 系統係主控基本儲在哭 甫存益220。主控基本儲存器22〇之儲 存系統可包括一或+ 〇Αχτ -—多之SAN、專用(dedicated)稽案伺 服益、通用飼服器或其他電腦、網路設備、適合於實作 圖1之電腦m的任何其他裝置,及相似者。 例如,右儲存器220係經由儲存系統(諸如S AN)所 主控’而請求ϋ 21〇透過使用符記之方式正對湖請求 卸載寫人’其中該符記代表存在於SAN上之資料,該咖 可使用SAN之專屬(ProPrieta〇〇機制以邏輯地寫入資 料,而不必另外製造—份資料之實體拷貝。例如寫引用資 計數(reference counting)或另一機制可用來指示資料之 邏輯拷貝數目。例如,弓丨田斗勒_ w + 1 ^引用叶數可破用在區塊層級,其
中區塊可藉由增加該區掩夕弓丨田<I 必(HE塊之彳丨用汁數而破邏輯地複製到 SAN 上。 如另一範例,儲存器22〇可經由儲存系統(諸如檔案 伺服器)所主控’該擋案伺服器可具有其他能用於執行 卸載寫人方面的有用機制,從而卸載寫人不會牵涉到實 體地拷貝資料。 如又另-範例’儲存器22G可經由叫,儲存系統 所主控,該啞儲存系統能因應於卸載寫入而從一位置實 23 201224914 體地拷貝資料到該儲存系統之另—位置。 上並未意圖要包括全部 確,從請求器之觀點來看㈣…選的 卸載寫入之資料傳送…統要如何實現對應於 疋’、°哀吻求器無關的。 遲。在前:二’:存系統之資料傳送作業會在時間上延 儲“、“兄下’資料傳送作業不必然會發生。例如, 可快速地回應偏移寫八已經完成,但是該儲存 =之則,修整⑻m)該基本儲存器。在此情況下,可取: 在儲存系統處之資料傳送作業。 請求器210可輿—一 ▲ +、 興或更多之貫體分享符記。例如,請 /器可發送符記到主控於設備上 间工之應用%式,此應用程 式係位於該設備外部’其中該設備係由請求器210所主 控。此應用程式則可使用符記以按照如請求器210可有 的相同方式般來寫入資料。此方案係繪示於圖5中。 回到圖5’使用資料存取組件215,該請求器2ι〇請求 並獲得代表在儲存器220上之資料的符記。請求器21〇 則傳通此符記料㈣,該請求^ 51()射透過經 由資料存取組件515發送符記之方式,來寫入資料。 —或更多之資料存取組件215以及515可為相同。例 如,若請求器21 0及5 1 0係於相同設備上主控,所有的 資料存取組件215及515對於兩種請求器而言可為相 同。若請求器210及5 10係於不同設備上主控,則某此 細件可為相同(例如,能實作用於主控或提供對儲存器 24 201224914 220存取之設備的組件、 ,且件)Η時其他组件可為*同(例如, 在不同設備上之組件)。 回到圖2 ,在一具體音故友丨a 體實施射,-或更多之資料存取 組件2U可包括符記管理器(例如,諸如符記管_ 或是與此符記管理器商議。符記管理器可包括—或更多 能產生或獲得符記的組件里中 旰具f符5己代表在儲存器22〇 上之資料’符記管理器能提供該等符記給授權請求器、 回應明求以使用符記來寫入資料,並決定何時無效化符 記。如下更詳細地描述,符記管理器可橫跨多個裝置分 佈,從而邏輯上相同的符記管理器能既用於獲得在㈣ 續取中之符記’亦可使用在却載寫入中之符記。在此情 況下,符記管理器之公佑έΒ 1 π & # , 之刀佈組件可與彼此通訊以獲得關於 所需符記之資訊。在-具體實施例中,符記管理器可產 生符記、將符記料在符㈣W (會將符記與在儲存 器220上之資料相聯繫)+,並驗證從請求器處所接收 之符記已在符記儲存器中找到。 付記管理器225可將符記與資料相聯繫,盆中資料係 Τ別資料可在何處找到。此資料亦可用在符記管理器225 疋刀佈在多個裝置間之何處,以從符記管理器出之八 佈組:處獲得符記資訊(包含符記所表示為什麼資料: 符5己疋否已經逾期、其他資料等等)。符記管理器225亦 可將符記與資料之長度相聯繫以至少部分確保請求器未 能獲得超過了與符記相關聯之資料末端的資料。 右在儲存器220上之資料被改變或刪除,則符記管理 25 201224914 :225可採取各種行動,視符記管理器 疋。例如,若設置錢保存由符料代表 ^置而 5己管理器225可確伴資# # 枓,則符 係於符記產生之時即存在枓之拷貝 機制以用來在即使當資料已被改變時,仍唯=、的 貝。在此情況下,符記管理器 …等拷 中儲存器-可為儲存系統之系統(其 之拷貝-段時間或是直到另收到指示為止始資料 在其他情況下,儲存系統不會膏 ^ a 會貫作用於維持原始資料之 拷貝的機制。在此情況下,符記管 π < &理|g 225或是另一次 料存取組件215可維持原始資料 貝 sl T叶之拷貝一段時間或是直 到另收到指示為止。 需注意到維持原始資料之拷貝會 只嘗/步及到維持邏輯拷貝 而不是該原始資料之複製拷貝。邏 邏輯拷貝包括可用來建 立貫際拷貝的資料。例如,邏輟换目_^^ 、 <科传貝可包括改變日誌, 並—併包括資料之目前狀態。藓由 糟由使该改變日誌返回成 目前狀態之方式,可獲得原始拷貝。 珂只如另一範例,「寫入 時拷貝」Uopyon-wdte )技術可用來維持邏輯拷貝,該 邏輯拷貝可被用來重新建構原始資料。上錢例並未意 圖限制成如本領域中具有通常技術人士所瞭解般,有許 多方式是可由邏輯拷貝實作而成而不會背離在此所述之 本發明標的之態樣的精神或範嘴。 符記管理器225可設置成當資料改變時無效化該符 記。在此情況下’連同允許與符記相關聯之資料改變, 26 201224914 符記管理器225可指示符記不再有效。此可透過,例如, 刪除或是將在符記儲存器中之符記標記成無效的方式來 凡成。若符記官理器225係由儲存系統之組件來實作, 一或更多之失敗碼可被傳通到一或更多其他資料存取組 件,並傳通到請求器2 1 0 » 符記管理器225可管理符記之逾期。例如,符記可具 有存活時間。在存活時間已逾期之後,符記會被無效化。 在另一具體實施例中,符記可仍為有效,此取決於各種 因素,包括有: 1. 儲存約束條件(constraint)。維持資料之原始拷貝會 消耗空間到超過臨界值。在那時點,一或更多之符記會 被無效化以回收空間。 2. 記憶體約束條件。為維持多個符記而消耗之記憶體 會超過臨界值。在那時點,一或更多符記會被無效化以 回收空間。 3. 符記數目。系統可允許一組數目的活動(active)符 ^己。在達到最大數目之符記後,符記管理器可在提供另 一符記之前將存在之符記無效。 4. 輸入/輸出(1〇)額外負擔(〇verhead)。具有太多符記會 增加IO額外負擔,使得符記管理器可讓一或更多符記無 效以減輕10額外負擔。 5 . 1〇成本/等待時間。可基於從來源到目標之資料傳 輸的成本及/或等待時間來無效化符記。例如,若成本超 過了 L界值,則符記可被無效化。相似地,若等待時間 27 201224914 超過臨界值,則符記可被無效化。 6. 優先權。若干符記可具有超過其他符記之優先權。 若正準備無效化符記,則較低的優先權符記會被無效 化。符記之優先權可基於各種策略(例如,使用率、關 於符記之内隱或外顯知識、請求器之請求、其他策略等 等)。 7. 儲存提供請求。儲存提供器(例如,SAN)可請求 減^ /舌動符δ己之數目。因應於此,符記管理器可適當地 無效化一或更多之符記。 符記可基於已經成功之符記,而在一或更多卸載寫入 之别甚或是之後的任何時間被無效化。 在-具體實施例中,符記只包括代表資料之數值。在 另一具體實施例中,符記亦可包括其他資料或是與其他 資料相關聯。此其他資料可包括,例如,可用於決定儲 存裝置儲存系統或可從其中獲取資料之其他實體、網 路儲存系統之識別資訊、路由資料以及暗示、關於存取 控制機制之資訊、關於由符記所代表資料之校驗和、資 料類型(例如’系統、元資料、資料庫、虛擬硬碟等等)、 資料之存取圖樣(例如,連續的、隨機的)、使用圖樣(例 如,頻繁、偶而、很少存取等等)、資料之所欲校準、在 卸載寫入期間用於最佳化資料之置放的資料(例如,在 具有不同儲存裝置類型的混合式環境中)等等。 上述範例並未意圖要包括全部態樣或是其他資料盡納 28 201224914 無遺’此其他資料可被含括在符 聯V的碟基於此處之教示 或是與符記相關 人士可理解到其他資料可與符記:二;具有”技術 jh .L AfL ^ ^ 傳達,而不會背離 在此所述之本發明態樣的精神或範疇。 當遇到檔案片段邊界、RAID ^ ^ a* #, ^ _、,又邊界、卷跨距邊界等 == 讀取/寫人請求可於内部將讀取請 =二堆疊之較低層。此分割會發生是因為 來:/目標在橫跨於分割線之處為相異或是偏移平移 rsettranslation)在橫跨於分割線之處為相異。可由分 割器透過不完成靖灰夕t斗、* φ ^ 式來隱藏此分割,該請求需被 刀割直到所有的結果分割10都已完成。 在儲存堆疊中於分割層内之分割的隱藏,對於在儲存 堆疊上之層不需要知道關於分割這點而言是很方便的。 關於在此所述之符記式途徑,在—具體實㈣中,分割 可為可見的。特別是,❹割會由於來源/目標在橫跨於 分割線之處為相異之故㈣生,則偏移提供器(下述) 會在橫跨於刀割線之處為相異。例如’在資料被複製(或 疋未被複製)之處’可有多個提供對資料存取之卸載提 供器。如另-範例,可有多個朝向SAN的檔案飼服器。 '、了 S AN之外,一或更多之伺服器或其他資料存取組件 可被認為是卸載提供器。 卸載提供器為邏輯實體(可能包括多個散佈橫跨至多 個裝置的組件)’該邏輯實體提供對與儲存器(來源或目 標)相關聯之資料之存取。此處所用之存取可包括讀取 29 201224914 貝料...人資料、删除資料、更新資料以及包括上述兩 者或更多之結合等等。邏輯地,卸載提供器能夠執行偏 移讀取或寫人。實體地,偏移提供者可包括—或更多資 料存取組件215且亦可包括符記管理器225。 卸載提供器可從來源儲存器傳送資料,向目標儲存器 寫入資料,並維持資料以在隨著接收了與資料相關之符 -己後來提供貝料。在某些實作中,卸载提供器可指示偏 移寫入命令係在資料已經邏輯地被寫人到目標儲存器之 後才完成。此外,却載提供器可指*㈣寫入命令會完 成仁是會將與卸載寫入相關聯之實體寫入資料推遲直到 方便為止。 田=貝料被分割時,卸載提供器可提供對所請求資料之 一部分的存取,但是不會提供對所請求資料之另一部分 的存取。在此情況下,可針對在分割點之前的部分以及 在該分割點之後的部分來提供個別的符記。在儲存堆疊 層中或是在卸載提供器中之其他實作相關之約束條件會 造成符記由於其他的理由而無力跨越分割範圍。因為請 求器可觀看到從讀取回傳的符記,在此具體實施例中 为割對於請求器而言為可見的。 以下是兩個處理分割程序的示範性方式: 1.讀取請求可回傳多於一的符記,其中各符記係與 所請求資料之不同範圍相關聯。此些多個符紀可 在如先前所述之單一資料架構内被回傳。當靖東 器尋求寫入資料時’該請求器可傳通整體的資料 30 201224914 結構’若是按進階方式行動,則可僅傳通在資料 結構中之一或更多符記。 2. 若回傳單-符記,該符記可代表原始請求資料之 縮短範圍°請求器料使㈣記來執行-或更多 在縮短範圍之長度限制内的卸載寫入。當請求卸 載寫入時’所請求寫入之長度亦可被截斷。對於 讀取及寫入兩纟,請纟器可針對起始於偏移值之 另-範圍I出請求,該偏移值並非由先前請求所 處置。按此方式,請求器可透過請求器之整體所 需範圍來工作。 上述方式僅作為範例。基於此處之教示,本領域中具 有通常技術人士可瞭解到能用在處理分割上之其他方 式,而不會背離在此所述之本發明態樣的精神或範疇。 在相同堆疊中可具有多個卸載提供器。對於從卸載讀 取清求所回傳之給定範圍(在範圍截斷之情形下,可能 是唯一範圍)’可有多個卸載提供者期望能提供符記。在 一具體實施例中,該等用於相同資料之多個符記可被回 傳到請求器並藉由請求器在却載寫入中所使用。 例如’請求器可選擇符記其中之一以用於卸載寫入 中。藉由只傳通一符記到卸載提供器之方式,該請求器 可按此方式來決定被用以從中獲得資料的來源卸載提供 器。在另一範例中’請求器可傳通二或更多的符記到目 標卸載提供器。目標卸載提供器則可選擇一或更多與符 記相關聯之來源卸載提供器,其中能從符記獲得由符記 31 201224914 所代表之資料。 从在另—範财,可回傳多個符記以致能大量(bulk)資料 載Γ除了大量資料外之其他辅助資料之卸 載拷貝兩者。辅助資料之-範例為關於資料之元資料 例如,檔案系統卸載提供器可指定卸载寫入請求包括兩 符記(例如,主要咨4立β七 兩 以及元資料符記)以成功地 用在目標堆疊上’以便讓整體卸載拷貝能成功。 相反地,用於支援在堆疊中之多個大量資料却載提供 器之目的之多個符記’只需要僅一個符記被用在目標堆 疊上’以便讓卸載寫入能成功。 當多個卸載提供器可用於從來源傳送資料到目標時, 請求器能夠選擇該等可用卸载提供器中之一或更多之特 定卸載提供器。在-具體實施例中,此可牵涉到使用略 過N命令,其中「略過N」為指示略過前面1^個卸載提 供器。在另一具體實施例中,可有用於識別該(等)特 定卸載提供器之另一機制(例如,卸載提供器之ι〇 在又另一具體實施例中,當某些卸載提供器不能夠拷貝 由符記所代表之資料的同時而其他卸載提供器能夠如此 做時,選擇許多符記其中之一之方式可用於選擇該(等) 卸載提供器以拷貝資料。 在某些具體實施例中,在多於一的卸載提供器能夠拷 貝由符5己所代表之資料時,最初、最末、隨機、最少負 載、最有效率、最低延遲,或是其他所決定之卸載提供 器可被自動地選擇。 32 201224914 符記可代表開始於硬碟或其他儲存媒體之某一磁區 (sector)的資料。符記所代表之資料可為精確的多個2 - 區’但是在許多情況下不會是。若在檔案作業中針對超 ' 過了資料長度末端之資料使用該符記,則資料可被回傳 空值(null)、0或某些表示無資料之其他指示。因此若請 求器嘗試拷貝由符記所表示之超過了資料末端的資料, 則該請求器將無法通過此機制來獲得實體地駐存於超過 了資料末端之資料。 符記可被用來卸載較大檔案的歸零(zer〇ing)。例如, 符記可代表空、0或是其他「無資料」之檔案。藉由按 卸載寫入來使用此符記,可使用符記來初始化檔案或是 其他資料。 圖3為通常代表系統組件之示範性排置的方塊圖,其 中符記管理器係由主控該儲存器之裝置來主控。如所繪 示般,系統305包括圖2之請求器210以及儲存器220。 圖3之資料存取組件215係於資料存取組件31〇以及資 料存取組件3 1 5之間劃分,其中該資料存取組件3丨〇駐 存在主控·^求器210之裝置330上,而該資料存取組件 315駐存在主控儲存器220之裝置335上。在另一具體 實施例中,在儲存器22〇位於裝置335外部之處,可有 對儲存器220提供存取的額外資料存取組件。 當此裝置包括提供符記以及寫入被賦予符記之資料的 所需組件’則裝置335可被認為是卸載提供器。 符記管理器320可如先前所述般產生符記並有效化符 33 201224914 記。例如,當請求器210要求在儲存器22〇上之資料的 符記時,符記管理器320可產生代表資料之符記。此符 記則可經由資料存取組件310及315而被發送回到請^ 器 210。 關於產生符記,符記管理器320可在符記儲存器325 中建立項目(entry)。此項目可將符記與資料相聯繫,其 中資料指示在儲存器220上可在哪找到由符記所代表之 -貝料。項目亦包括其他用於管理符記之資料,諸如何時 無效化符記、符記存活之時間、其他資料等等。 當請求器210或任何其他實體提供符記給符記管理器 320時,符記管理器可在符記儲存$⑵中執行查找動 作=決定該符記是否存在。若符記存在且為有效,則符 記管理器32〇可提供位置資訊給資料存取組件315,使 得該等組件可如請求般邏輯地寫入資料。 在多個實體裝置提供對儲存器22〇之存取之處,符記 管理器320及/或符記儲存器325可具有由一或更多之實 體裝置所主控的組件。例如,符記管理器32()可橫跨多 個裝置複製符記狀態、可具有其他符記組件能與之商議 的中央化符記組件、可具有分散式系統(其中符記狀態 係從同級式4記管理器處以所需基礎來提供),或相似 者。 I輯也己官理器32〇管理符記。實際上符記管 ,器320可由單—裝置所域或是可具有分佈於二或更 夕裝置上之組件。符記管理器320可於裝置上主控,該 34 201224914 裝置係從主控該健存器22G之任何裝置上所分離出來。 例如’符記管理器320可如服務般存在,其料存取 件3 1 5彳呼叫邊符記管理器以產生並有效化符記,並 提供與該符記管理器相關聯之位置資訊。 。在-具體實施例中’符記儲存器⑵可被儲存在儲存 器220上。在另一具體實施例中,符記儲存器325可從 儲存器220分離出來。 圖4為方塊圖,該方塊圖通常代表系統組件之另一示 範杜排該排列係根據在此所述之本發明標的之態樣 來作業。如所繪示般’設備4〇5主控請求器21〇以及資 料存取,、且件3 1 G以及虛擬層43 G。資料存取組件3 i 〇係 按堆S之方式來排置’並包括N個組件,該N個組件包 括組件415、420、425及其他組件(未圖示數目n 為可變且可隨著設備而改變。 請求器210可經由應用程式介面(Αρι) 41〇來存取一或 更多之資料存取組件31〇。虛擬層43〇表示請求器或是 任何資料存取組件可駐存在虛擬環境中。 虛擬環境為一種由電腦模擬(simulate)或是仿真 (emulate)出來的環境。虛擬環境可模擬或仿真實體機 器、作業系統、一或更多介面之集合、前述之一部分、 月’J述之結合等等。當模擬或是仿真出機器時,有時機器 會被稱為虛擬機器。虛擬機器對於在虛擬機器上執行之 軟體而言,可被看做是實體機器。軟體可儲存檔案在虛 擬儲存裝置中,諸如虛擬硬碟、虛擬軟碟等等,可從虛 35 201224914 擬CD中續取棺案’可經由虛擬網路配接卡來進行通訊 等諸如此類。 在虛擬硬碟、軟碟或其他虛擬儲存裝置中之檔案可被 儲存於實體媒體上,實體媒體可為設備4〇5之本地端或 疋遠端。虛擬層430可排置資料至實體媒體上,並提供 資料至虛擬環境,從而存取資料之一或更多組件不會察 覺到該等組件是在虛擬環境中存取資料。 多於一的虛擬環境可被主控在單一電腦上。也就是, 二或更多之虛擬環境可在單一實體電腦上執行。對於在 各虛擬環&巾執行之軟體而言’虛擬環境似乎具有本身 資源(例如,硬體),即使在單一電腦上主控之多個虛擬 環境可將-或更多實體裝置實體地與彼此以及與該主控 作業系統分享。 不鄉傾抒 t . ,W 穴》哨 從該储存器處請求择得您 獲仔符5己。目標儲存H 440代表一 儲存器,其中該請求5|使用$ ~ μ 之資HMt,對㈣存^請求被寫 — I源儲存器435以及目標儲存写心
可被貫作成單一儲存& U 是-…… 具有多個卷之⑽)i 始Z的: = 未支援_ 在符記之壽命期間維持原始資:1 : _ 42 5可運作' 當來源儲存器435以及目 、 分離儲存器肖’額外的組件(伽子态440被實作成兩個 組件)可從來源儲存器4例如’儲存伺服器或其他 專送資料到目標鍺存器440 36 201224914 而無需涉及到設備4〇5β然而,在—具體實施例中,即 使當來源儲存器435及目標儲存器440被實作成兩個分 離儲存器’一或更多之資料存取組件310會運作以從來 源儲存器435拷貝資料到目择妙产。 從來 何貝貢科到目標儲存器44〇。請求器21〇 可察知或未察知、被通知或未被通知關於基本拷貝程序 是如何執行的。 在請求器2U)以及來源健存器435及/或目標儲存器 ⑽之間可有多個路徑。在—具體實施例中,在此所述 之符5己方法學係與所帶路徑無關,該路徑係提供了指示 Π表資例如’可透過符記管理器使用)為可用的 換5之,若請求器21G具有能傳通該虛擬層430 之路從、無法傳通該虛擬層㈣之網路路徑、SMB路徑 :任何其他到達來源或是目標儲存器之路徑,則該請求 隸I0可使用一或更多之此些路徑來對目標健存器440 發佈卸载寫入。拖… ^ ^ . 換δ之,咿在來源儲存器之路徑以及帶 在目^儲存器之路徑可為相同或不同。 在卸載寫入中,雜 ,_ ^ 夺連同一或更多資料之偏移和長度 …目標儲存器440。資料存取組件( 料存取組件31〇甘士 、 、个疋疋貫 、中之一)接收符記’使用符記來從符 邏錄二獲得位置資訊,並可開始從來源儲存器435 邏' 寫入資料到目標儲存器440。 之組件415 425或其他組件 作符記管理器。 以下是某些資縣 _ —t構之示範性定義,該等定義可用於在此 37 201224914 所述本發明標的之態樣: #define FSCTL_OFFLOAD_READ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 153, METHOD_BUFFERED,FILE_READ_ACCESS) //153 is used to indicate offload read typedefstruct_FSCTL_OFFLOAD_READ_INPUT { , ULONG Size; ULONG Flags; ULONG TokenTimeToLive; // (e.g., in milliseconds) ULONG Reserved; ULONGLONG FileOffset; ULONGLONG CopyLength; } FSCTL_OFFLOAD_READ_INPUT, *PFSCTL_OFFLOAD_READ_INPUT; typedefstruct _FSCTL_OFFLOAD一READ—OUTPUT { ULONG Size; ULONG Flags; ULONGLONG TransferLength; UCHAR Token[512]; // May be larger or smaller than 512 } FSCTL_OFFLOAD_READ_OUTPUT, *PFSCTL_OFFLOAD_READ_OUTPUT; #define FSCTL_OFFLOAD_WRITE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 154, METHOD—BUFFERED,FILE—WRITE_ACCESS) //154 is used to indicate offload write typedefstruct _FSCTL_OFFLOAD_WRITE_INPUT { ULONG Size; ULONG Flags; ULONGLONG FileOffset; ULONGLONG CopyLength; ULONGLONG TransferOffset; UCHAR Token[512]; } FSCTL_OFFLOAD_WRITE_INPUT, *PFSCTL_OFFLOAD_WRITE_INPUT; typedefstruct _FSCTL_OFFLOAD_WRITE_OUTPUT { ULONG Size; ULONG Flags; • ULONGLONG LengthWritten; } FSCTL_OFFLOAD_WRITE_OUTPUT, *PFSCTL_OFFLOAD_WRITE_OUTPUT; // // This flag, when OR'd into an action indicates that the given action is // non-destructive. If this flag is set then storage stack components which // do not understand the action should forward the given request 38 201224914 // #define DeviceDsmActionFlag_NonDestructive 0x80000000 #define IsDsmActionNonDestructive(_Action) ((BOOLEAN)((_Action &DeviceDsmActionFlag_NonDestructive) != 0)) typedefULONG DEVICE_DATA_MANAGEMENT_SET_ACTION; #define DeviceDsmAction_OffloadRead (3 | DeviceDsmActionFlag_NonDestructive) #define ’DeviceDsmAction—OffloadWrite 4 // // Flags that are global across all actions // typedefstruct_DEVICE—DATA—SET一RANGE { LONGLONG StartingOffset; // e.g., in bytes ULONGLONG LengthlnBytes; // e.g., multiple of sector size } DEVICE一DATA一SET—RANGE,*PDEVICE一DATA一SET一RANGE; 用於實作在此所述本發明標的之態樣的示範性IOCTL資料 結構可如以下所定義: // // input structure for IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES //1. Value ofParameterBlockOffset or ParameterBlockLength is 0 indicates that // ParameterBlock does not exist. // 2. Value of DataSetRangesOffset or DataSetRangesLength is 0 indicates that // DataSetRanges Block does not exist.IfDataSetRanges Block exists,it contains // contiguous DEVICED ATA_SET_RAN GEstructures. // 3. The total size of buffer is at least: // sizeof (DEVICE_MANAGE_DATA_SET_ATTRTOUTES)+ParameterBlockLength+
DataSetRangesLength typedefstruct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES { ULONG Size; // Size of structure //DEVICE_MANAGE_DATA_SET—ATTRIBUTES DEVICE—DATA_MANAGEMENT_SET_ACTION Action; ULONG Flags; // Global flags across all actions ULONG ParameterBlockOffset; // aligned to corresponding structure 39 201224914 ULONG not // alignment
ParameterBlockLength; // 0 means Parameter Block does // exist. ULONG DataSetRangesOffset; // aligned to // DEVICE_DATA_SET_RANGE // structure alignment. ULONG DataSetRangesLength; // 0 means DataSetRanges Block // does not exist. } DEVICE_MANAGE_DATA_SET_ATTRIBUTES, *PDEVICE_MANAGE_DATA_SET_ATTRIBUTES; // // Parameter structure definitions for copy offload actions // // // Offload copy interface operates in 2 steps: offload read and offload write. // // Input for OffloadRead action is set of extents in DSM structure // Output parameter of an OffloadRead is a token, returned by the target which will // identify a "point in time" snapshot of extents taken by the target. // Format of the token may be opaque to requestor and specific to the target. // "Note: a token length to 512 is exemplary. SCSI interface to OffloadCopy may enable // negotiable size. A new action may be created for variable-sized tokens. #define DSM_OFFLOAD_MAX_TOKEN_LENGTH 512 // Keep as ULONG multiple typedefstruct DEVICE DSM OFFLOAD READ PARAMETERS { ULONG Flags; ULONG TimeToLive; // token Time to live (e.g., in milliseconds); may be requested // by requestor }DEVICE_DSM_OFFLOAD_READ_PARAMETERS, *PDEVICE_DSM—OFFLOAD_READ_PARAMETERS; typedefstruct _DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS { ULONG Flags; ULONG Reserved; // reserved for future usage ULONGLONG TokenOffset; // The starting offset to copy from datarepresented by token 40 201224914 UCHAR Token[DSM_OFFLOAD—MAX_TOKEN_LENGTH]; //the token }DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS, *PDEVICE_DSM_OFFLOAD_WRITE_PARAMETERS; • typedefstruct _STORAGE_OFFLOAD_READ_OUTPUT { ULONG OfQoadReadFlags; // Outbound flags - ULONG Reserved; ULONGLONG LengthProtected; // The length of data represented by token, from the // lowest
StartingOfifset ULONG TokenLength; // Length of the token in bytes. UCHAR Token[DSM_OFFLOAD_MAX_TOKEN一LENGTH]; // The token created on success. } STORAGE_OFFLOAD_READ_OUTPUT, *PSTORAGE_OFFLOAD_READ_OUTPUT; // // STORAGE_OFFLOAD_READ一OUTPUT flag definitions // #define STORAGE_OFFLOAD_READ_RANGE_TRUNCATED (0x0001) typedefstruct _STORAGE_OFFLOAD_WRITE_OUTPUT { ULONG OffloadWriteFlags; // Out flags ULONG Reserved; // reserved for future usage ULONGLONG LengthCopied; // Out parameter : The length of content copied from the // start of the data represented by the token } STORAGE一OFFLOAD_WRITE_OUTPUT, *PSTORAGE_OFFLOAD_WRITE_OUTPUT; // // STORAGE_OFFLOAD_WRITE_OUTPUT flag definitions - used in OffloadWriteFlags mask // // Write performed, but on a truncated range #define STORAGE_OFFLOAD_WRITE_RANGE_TRUNCATED (0x0001) // // DSM output structure for bi-directional actions. // // Output parameter block is located in resultant buffer at the offset contained in //OutputBlockOffset field. Offset is calculated from the beginning of the buffer, 41 201224914 // and callee will align it according to the requirement of the action specific structure // template. //Example: for OffloadRead action in order to get a pointer to the output structure, a caller //shall // // PSTORAGE_OFFLOAD_READ_OUTPUT pReadOut = // (PSTORAGE_OFFLOAD_READ_OUTPUT) ((UCHAR *)pOutputBuffer -l· //((PDEVICE_MANAGE„DATA_SET_ATTRIBUTES_OUTPUT)pOutputBuffer) // ->OutputBlockO£fset) // typedefstruct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT { ULONG Size; // Size of the structure DEVICE_DATA_MANAGEMENT—SET—ACTION Action; // Action requested and performed
ULONG ULONG ULONG ULONG actions ULONG
Flags; // Common output flags for DSM actions OperationStatus; // Operation status; used for offload actions // (placeholder for richer semantic, like PENDING) ExtendedError; // Extended error information TargetDetailedError; // Target specific error; may be used for offload // (SCSI sense code)
ReservedStatus; // Reserved field ULONG OutputBlockOffset; // Action specific aligned to corresponding structure // alignment. ULONG OutputBlockLength; // 0 means Output Parameter Block does not exist. }DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT, *PDEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT; 圖6-8為一般代表示範性步驟之流程圖,該等步驟係 根據在此所述本發明標的之態樣而發生。為了簡化說 明,與圖6-8相關之所述方法係繪示並描述成一連串的 步驟。吾人應瞭解並體認到在此所述本發明態樣並未受 限於所繪示之動作及/或動作之順序。在一具體實施例 中,步驟係按如下所述之順序發生。然而,在其他具體 42 201224914 實施例中,該等步驟可平行地、按另一順序及/或連同其 他未在此所呈現及据述之步驟發生。更甚者,並非全部 所繪不之步驟都會需要根據在此所述本發明標的之態樣 來實作方法。此外,本領域中具有通常技術人士將瞭解 並體涊到此方法可透過狀態圖或是事件圖之方式而替代 地表示成一連串相互關聯之狀態。 回到圓6,在方塊6〇5處,步驟開始。在方塊61〇處, 接收到了用於代表儲存器之資料的請求。請求係連同相 關描述(例如,位置及長度)而傳遞,其中該描述係識 別儲存器之一部分《在此,該字眼「部分」可為全部或 疋小於全部的儲存器。例如,參照圖2,請求器21 〇可 4求在儲存器220上用於資料之符記。在產生請求時, 請求器210可將資料之位置(例如,檔案名稱、開啟檔 案之處置、對檔案之貫體偏移、卷或是原始磁碟等等) 與長度一併發送。 在方塊615,因應於該請求,會接收代表該資料之符 °己,其中當符記與資料連結時,該資料曾邏輯地儲存在 儲存器之部分中。如先前所提,符記可代表比起所請求 資料來的少之資料。例如,參照圖2 , 一或更多之資料 存取組件215可回傳符記到請求器21〇,該符記代表所 請求之資料或資料之子集合。符記可為一尺寸值(例如, 若干數目之位元或位元組),該尺寸值與由符記所代表之 資料大小無關。符記可連同在資料結構中之其他符記一 併接收,其中在資料結構中之各符記係與資料之不同部 43 201224914 刀相關聯或者一或更多之符記係與資料之相同部分相關 聯。 接收符記之步驟可隨附著指示符(indicati〇n),其卡該 符記代表之資料為所請求資料之子集合。該指示符可採 用例如由符記所代表資料之長度的形式。 在方塊620,符記係提供用以執行卸載寫入符記可 連同用來指示是否透過卸載提供者而邏輯地寫入全部或 部分資料的資訊一併提供。此資訊可包括例如,目標相 關偏移值、符記相關偏移值,以及長度值。符記相關偏 移值0以及與由符記所代表資料之整體長度相等之長度 值’可指示以拷貝全部資料,同時具有少於資料整體長 度之長度值的任何偏移值可指示以拷貝少於整體資料。 舉例而言,參照圖2,請求器可將符記傳至資料存取 組件215,該資料存取組件215可將符記傳至符記管理 器225以獲得所代表資料之位置。當符記管理器225為 對儲存器220提供存取的儲存系統之一部分(例如,在 SAN中)時,可將符記提供給SAN之資料存取組件,該 資料存取組件則可使用符記以識別資料並邏輯地寫入由 請求所指示之資料。 如先前所述,卸載提供器可位於發送該請求之設備的 外部。此外,一旦卸載提供器接收請求,卸載提供器可 邏輯地寫入資料而不受與發送請求設備的任何組件之額 外互動的影響。例如,參照圖3,—旦符記及寫入請求 到連了資料存取組件315,則裝置335之組件可如所請 44 201224914 求般邏輯地寫入資料而無需來自裝置33〇之任何額外輔 助。 在方塊625,若有任何其他步驟的話,則執行此些步 驟。需注意到在方塊630,在已產生符記之後的任何時 間,請求器(或是資料存取組件中之另一個)可明確地 請求將符記無效化。在一實作中,若在拷貝作業中間期 間發送此請求,則可允許拷貝至處理完成。在另一實作 中,可放棄拷貝、會產生錯誤或是發生其他步驟。 回到圖7,在方塊705,步驟開始。在方塊71〇,接收 到了用於代表儲存器之資料的請求。請求係連同相關描 述而傳遞,其中該描述係識別儲存器之一部分,該儲存 器係資料所位於之處。該請求可在儲存區域網路之組件 處或是在另一資料存取組件處被接收。例如,參照圖3, 一或更多之資料存取組件315可接收用於符記之請求’ 並連同偏移值、長度、邏輯單元數目、檔案處置或是在 儲存器220上識別資料之相似者一併接收。 在方塊7 1 5,產生了符記。所產生符記可代表曾被邏 輯儲存之資料(例如’在圖3之儲存器22〇中)。如先前 所述,此資料可為不改變的或是被允許在符記有效期間 取決於實作而改變。符記可代表如先前所指示般所請求 資料之子集合。例如,參照圖3,符記管理器32〇可產 生符記以代表在儲存器220上由請求器2丨〇所請求之資 料。 在方塊720 ’符記係透過資料結構而與所代表資料相 45 201224914 聯繫。例如,參照圖3 ,符記管理器32〇可將關聯值儲 存在符記儲存器325争’該符記儲存器325會將所產生 符記與所代表資料相聯繫。 在方塊725,茲提供符記到請求器。例如,參照圖3 , 符記管理器或是資料存取組件315其中之一可提供符記 到資料存取組件310以提供請求器21〇。符記可連同長 度值被回傳’該長度值指示由符記所表示之資料大小。 在方塊730,若有任何其他步驟的話,可執行此些步 驟。需注意到在方塊735,在已產生符記之後的任何時 間,符§己管理器可取決於各種如先前所述之因素而將符 s己無效化。若符記係在會影響資料之寫入作業期間被無 效化’則在一實作中可允許該寫入至處理完成。在另一 實作中,可放棄寫入、會產生錯誤或是發生其他步驟。 圖8為方塊圖,該方塊圖通常根據在此所述本發明標 的之各種態樣而代表示範步驟,其中當卸載寫入在卸載 k供器處被接收時會發生此些示範步驟。在方塊805 , 步驟會開始。 在方塊810,會接收符記。符記可連同資料而被接收, 該資料係指示是否邏輯地寫入由符記所代表之全部或是 某些資料。例如,參照圖3,資料存取組件315其中之 一可從圖3之資料存取組件310其中之_處接收符記。 在方塊815,會做成關於符記是否有效之決定。例如, 參照圖3,符記管理器320可藉由與符記儲存器325商 4之方式來決定所接收符記是否有效。若符記為有效, 46 201224914 請求會失效且步驟持續 則步驟持續到方塊820 ;否則 到方塊8 1 7。 在方塊817,請求會失效。例如,參照圖3,資料存取 組件315可指示該拷貝失效。 子 在方塊820,能識別由卸載拷貝所請求之資料。例如, 參照圖3’符記管理器320可與符記儲存器325商議而 獲得位置或是與符記相關之資料的其他識別符。符圮可 包括資料或是與資料相關,其中該資料指示設備主控: 符記所代表之資料。 t 在方塊825’會執行由符記所代表之資料之邏輯寫入。 例如,參照圖3 ’ m35可邏輯地寫入由符記所代表 之資料。 在方塊830 ’若有任何其他動作的話,則可執行此些 動作。 從前述實施方式之内容可見’已描述了多種與卸載讀 取及寫入相關之態樣。同時在此所述之本發明標的之熊 樣係容許有各種修改及替代方案,該等修改及替代方案 之若干續示之具體實施例係如圖式中所圖示並已於上詳 細描述。然而,吾人應瞭解到本發明並未意圖將所主張 標的之態樣限制成所揭露之特定形式,而相反地,本發 明意圖涵蓋所有的修改、替代方案以及所有落入在此處 所述之本發明標的之各式態樣之精神及範嘴内的均等 物0 201224914 【圖式簡單說明】 , 以上所描述之態樣及本文所描述之本標的之其他態樣 係藉由範例所闡述,且並不限於隨附圖示,其中相同元 件符號表示類似元件,且其中: 圖1為代表示範性通用目的計算環境之方塊圖,該計 算環境可與在此所述之本發明標的之態樣合併; 圖2-5為代表系統組件之示範性配置之方塊圖,在此 所述之本發明標的之態樣可於該等系統十運作;及 圖6-8為通常代表可根據在此所述之本發明標的之態 樣而產生之示範性動作之流程圖。 【主要元件符號說明】 100 電腦系統環境 110 電腦 120 處理單元 1.21 系統匯流排 130 系統記憶體 131 唯讀記憶體 132 隨機存取記憶體 133 基本輸出入系統 134 作業系統 135 應用程式 136 其他程式模組 137 程式資料 140 不可移除之非揮發性 記憶體介面 141 硬碟機 144 作業系統 145 應用程式 146 其他程式模組 147 程式資料 150 了移除之非揮發性記 憶體介面 151 磁碟機 152 磁碟 155 光碟機 156 光碟 160 使用者輸入介面 48 201224914 161 指標裝置 162 鍵盤 170 網路介面 171 區域網路 172 數據機 173 廣域網路 180 遠端電腦 181 記憶體儲存器裝置 185 遠端應用程式 190 視訊介面 191 監視器 195 輸出週邊介面 196 印表機 197 揚聲器 205 系統 210 請求器 215 資料存取組件 220 儲存器 225 符記管理器 305 系統 3 10 資料存取組件 315 資料存取組件 320 符記管理器 325 符記儲存器 330 裝置 335 裝置 405 設備 410 應用程式介面 415 組件A 420 組件B 425 組件N 430 虛擬層 435 來源儲存器 440 目標儲存器 510 請求器B 515 資料存取組件 49
Claims (1)
- 201224914 七、申請專利範圍: 1.種至夕邛刀由—電腦所實現之方法該方法包含以 下步驟: 發送-用於代表-儲存器之第—資料之請求,該請求會 連同一描述符—併傳遞,該描述符係識別該錯存器之一 部分; 因應於該請求,接收代表第二資料之一符記,該第二資 料係邏輯地儲存在該儲存器之該部分中,該第:資料 該第一資料之一子集合’該子集合潛在地為一較佳子集 合;及 μ 透過一卸載提供器而將用於指示邏輯地寫入第三資料 之資訊與該符記一併提供,該卸載提供 ^ 促伢态可運作使用該 捋記以至少定位該第三資料,該第資 不一負料為該第二資料 之—子集合,該子集合潛在地為一較佳子集入 2·如請求項丨所述之方法,其中發送包括了儲存器之一 部分之一描述符的一請求之步驟包含 卜步驟:發送一 偏移及長度,該偏移代表在該儲存器中 Τ <該第一資料的 —位置,該長度代表該第一資料之—大小。 #記之步驟包含 ’該大小值係不 3·如請求項1所述之方法,其中接收— 以下步驟:接收一具有一大小值之符記 受該第一資料之一大小的影響。 50 201224914 4. 如凊求項丨所述之方法,其中透過一卸載提供器而將 用於指示冑肖地寫人第2資料《資訊與該符記—併提供 之步驟包含以下步驟:提供該符記給一卸載提供器,該 卸載提供器係位於一發送該請求之設備的外部,該卸載 提供器係設置以使用該符記以邏輯地寫入該第三資料, 該符記與來自該設備之任何組件的額外互動無關。 5. 如明求項1所述之方法,其中接收該符記之步驟包含 以下步驟.接收一數目,該數目可用於獲得該第二資料, 如同當該符記曾與該第二資料連結時該第二資料係存 在該數目可由該卸載提供器所使用以識別該第二資 料該數目係按一隨機或是虛擬(pseudo)隨機機制所產 生。 如β求項1所述之方法,其中接收該符記之步驟包含 以下步驟:與在一資料結構中之其他符記一併接收該符 §己,在該資料結構中之各符記可用於獲得該第二資料之 不同部分,如同當該符記曾與該不同部分連結時該 不同部分係存在。 7.如請求項1所述之方法,更包含以下步驟:發送一請 求乂無效化該符記,該符記一旦無效化則不再可用於寫 入該第三資料。 51 201224914 8.如請求項丨所述之方法,更包含以下步驟:接收一或 更多其他符記’該等符記各者亦代表該第二資料,且更 包含以下步驟:連同提供該 該等其他符記。 之 符記時一併提供一或更多 9. 一種具有電腦可執行指令之電腦儲存媒體,其中當指 令被執行時候進行下列步驟,該等步驟包含: 從一請I器處接收-用⑨代表邏輯地儲存於一儲存器 中之第-資料之請纟,該請求會連同—描述符一併傳 遞’該描述符係識別該儲存器之一部分,其 料係位於該儲存器處; X 產生-符記,該符記代表邏輯地儲存於該儲存器之該部 分中的第二資肖,該第二資料為該第_資料之—子集 合,該子集合潛在地為一較佳子集合; 透過一資料結構將該符記與該第二資料加以關聯,該符 記可用於獲得該第二資料’如同當該符記曾與該第二資 料連結時,It第:f㈣存在;以及 提供該符記給該請求器。 10.如,求項9所述之電腦儲存媒體,更包含·· 連同第一資料接收該符記,該第三資料係指示是否要 寫入全部或是部分的該第二資料; 判定該符記是否有效; 52 201224914 若該符記為無效’則取消該請求。 11.如請求項10所述之電腦儲存媒體,更包含若該符記 為有效,則使用該符記及該資料結構以放置該第二資 料,並邏輯地寫入如該第三資料所指示般之全部或是部 分的該第二資料。 12·如請求項9所述之電腦儲存媒體,其中接收-用於 代=輯地儲存於一儲存器中之第一資料之請求之程序 更包含.在—儲存區域網路裝置之—資料存取組件處接 收°亥°月求’其中產生—代表該第二資料之符記之程序包 含由該儲存區域網路裝置產生-數值,且其中透過-資 料結構將該符記與該第二資料加以關聯之程序包含將一 項目放入一矣故tb , 格中s亥項目包括該符記以及該第二資料 之一識別符,如同兮楚 π 4第二資料存在於該請求器在該資料 存取、.且件處所接收之時間當下或是之後以及在該符記 被回傳到該請求器之時間之前或是當下。 13.如請求項9 > 所述之電腦儲存媒體,更包含接收一請 求以改變該第一資料 种M及因應於該請求而將該符記無效 14.如請求項9 一或更多之條件 所述之電腦儲存媒體,更包含基於以下 而將s亥符t己無效化:記憶體約束條件、 53 201224914 寫入活動、^ , 碟、’’勺束條件、網路頻寬約 間約束條件以及存活0㈣。㈣Μ條件、等待時 .如π求項9所述之電腦儲存媒體 求以改變該筮 ^ ,, 尺包含接收一請 變該第-資料以及因應於此而 持該第二資料之一 仃該改變,並維 資料連結時,哕第田該符圮曾與該第二 該第一貝料之該邏輯拷貝係存在。 二種ί 一計算環境中之系統,該系統包含: 一凊求器,可運作以麻,„ 料的諳灰,一用於代表—儲存器之第一資 該凊求器進一步運作接收— 符記,該第二資料為㈣ 代表第二資料之 乐一貢枓為該第一資料之一子 潛在地為一較佳子隹人 ^ μ子集口 :資料If 請求以—步運作而連同第 :貝枓與該符記一併提供,該第三資料係指示以邏輯地 寫入全部或部分的第二資料; 二:理器,可運作以產生該符記並透過—資料結構 夺^符5己與該第二資料加以關聯;及 一卸載提供器’可運作以連同該第三資料與該符記—併 接收D亥卸載提供器進一步運作與該符記管理器 以判斷該符記是否有效,該第二資料邏輯地維持彷彿沒 有改變1 ,至少在該符記有效時是如此。 17.如請求項16所述之系統,其中若該符記為有效時, 則該卸載提供係可進—步運作以邏輯地寫入如該第: 54 201224914 資料所指示般 料亦包括—玫署七或是部分的該第二資料’該第三資 置已寫入資料之目標。 18.如請求項 所述之系統,其中該請求器包含一設備 心一組件,該紐丛 /、’牛係在—主控該卸載提供器之設備的外 統 儲 19.如請求項】< ^項16所述之系 卸載提供器偁兩土 命保兩者皆於一 控。 ,其中該符記管理器以及該 存區域網路之一設備上主 20.如請求頂 „ 所述之系統,其中該符記管理器係可$ 作產生另—效七 J運 。以亦提供給該請求器,該其他符記亦代 H貝料’該符記管理器更可運作以透過該資料杜 而將該其他符記與該第二資料加以關聯。 ° 55
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/888,433 US20120079583A1 (en) | 2010-09-23 | 2010-09-23 | Offload reads and writes |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TW201224914A true TW201224914A (en) | 2012-06-16 |
Family
ID=45872084
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW100128753A TW201224914A (en) | 2010-09-23 | 2011-08-11 | Offload reads and writes |
Country Status (12)
| Country | Link |
|---|---|
| US (1) | US20120079583A1 (zh) |
| EP (1) | EP2619652A2 (zh) |
| JP (1) | JP2013539119A (zh) |
| KR (1) | KR20130139883A (zh) |
| CN (1) | CN102520877A (zh) |
| AR (1) | AR083102A1 (zh) |
| AU (1) | AU2011305839A1 (zh) |
| BR (1) | BR112013006516A2 (zh) |
| CA (1) | CA2810833A1 (zh) |
| RU (1) | RU2013112868A (zh) |
| TW (1) | TW201224914A (zh) |
| WO (1) | WO2012039939A2 (zh) |
Families Citing this family (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9092149B2 (en) | 2010-11-03 | 2015-07-28 | Microsoft Technology Licensing, Llc | Virtualization and offload reads and writes |
| US9146765B2 (en) | 2011-03-11 | 2015-09-29 | Microsoft Technology Licensing, Llc | Virtual disk storage techniques |
| US8725782B2 (en) | 2011-04-25 | 2014-05-13 | Microsoft Corporation | Virtual disk storage techniques |
| US9519496B2 (en) | 2011-04-26 | 2016-12-13 | Microsoft Technology Licensing, Llc | Detecting and preventing virtual disk storage linkage faults |
| US11496760B2 (en) | 2011-07-22 | 2022-11-08 | Qualcomm Incorporated | Slice header prediction for depth maps in three-dimensional video codecs |
| US9521418B2 (en) | 2011-07-22 | 2016-12-13 | Qualcomm Incorporated | Slice header three-dimensional video extension for slice header prediction |
| US20130041985A1 (en) * | 2011-08-10 | 2013-02-14 | Microsoft Corporation | Token based file operations |
| US9288505B2 (en) | 2011-08-11 | 2016-03-15 | Qualcomm Incorporated | Three-dimensional video with asymmetric spatial resolution |
| US9485503B2 (en) | 2011-11-18 | 2016-11-01 | Qualcomm Incorporated | Inside view motion prediction among texture and depth view components |
| US9817582B2 (en) | 2012-01-09 | 2017-11-14 | Microsoft Technology Licensing, Llc | Offload read and write offload provider |
| US9778860B2 (en) | 2012-09-12 | 2017-10-03 | Microsoft Technology Licensing, Llc | Re-TRIM of free space within VHDX |
| US8886882B2 (en) | 2012-09-14 | 2014-11-11 | Hitachi, Ltd. | Method and apparatus of storage tier and cache management |
| US8832024B2 (en) * | 2012-10-26 | 2014-09-09 | Netapp, Inc. | Simplified copy offload |
| US9208168B2 (en) * | 2012-11-19 | 2015-12-08 | Netapp, Inc. | Inter-protocol copy offload |
| TWI494884B (zh) * | 2012-11-23 | 2015-08-01 | Chunghwa Telecom Co Ltd | A method and system for obtaining a single number that has not yet been opened |
| US9071585B2 (en) * | 2012-12-12 | 2015-06-30 | Microsoft Technology Licensing, Llc | Copy offload for disparate offload providers |
| US9251201B2 (en) * | 2012-12-14 | 2016-02-02 | Microsoft Technology Licensing, Llc | Compatibly extending offload token size |
| US9558232B1 (en) * | 2013-06-21 | 2017-01-31 | EMC IP Holding Company LLC | Data movement bulk copy operation |
| US9380114B1 (en) * | 2013-06-27 | 2016-06-28 | Emc Corporation | Techniques for peer messaging across multiple storage processors of a data storage array |
| US9514210B2 (en) * | 2014-06-16 | 2016-12-06 | Netapp, Inc. | Methods and systems for a copy-offload operation |
| US9582206B2 (en) * | 2014-06-16 | 2017-02-28 | Netapp, Inc. | Methods and systems for a copy-offload operation |
| US9715351B2 (en) | 2015-02-13 | 2017-07-25 | Red Hat, Inc. | Copy-offload on a device stack |
| US10459664B1 (en) | 2017-04-10 | 2019-10-29 | Pure Storage, Inc. | Virtualized copy-by-reference |
| US10616076B2 (en) * | 2017-05-30 | 2020-04-07 | International Business Machines Corporation | Network asset management |
| TWI644204B (zh) * | 2017-08-01 | 2018-12-11 | 英業達股份有限公司 | 非揮發性記憶體磁區規劃方法 |
| CN110287148B (zh) * | 2019-07-01 | 2021-10-29 | 中原银行股份有限公司 | 一种数据交互方法及装置 |
| US11593021B2 (en) * | 2020-11-06 | 2023-02-28 | Hewlett Packard Enterprise Development Lp | Writing a container index to persistent storage |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6161145A (en) * | 1997-05-08 | 2000-12-12 | International Business Machines Corporation | Updating server-related data at a client |
| US6938002B2 (en) * | 2001-06-20 | 2005-08-30 | International Business Machines Corporation | System and method for product evaluation |
| US7121456B2 (en) * | 2002-09-13 | 2006-10-17 | Visa U.S.A. Inc. | Method and system for managing token image replacement |
| US7194462B2 (en) * | 2003-02-27 | 2007-03-20 | Bea Systems, Inc. | Systems and methods for implementing an XML query language |
| US20040267672A1 (en) * | 2003-06-26 | 2004-12-30 | Gray William J. | System and method for conducting secure electronic transactions |
| US7464124B2 (en) * | 2004-11-19 | 2008-12-09 | International Business Machines Corporation | Method for autonomic data caching and copying on a storage area network aware file system using copy services |
| US20080065835A1 (en) * | 2006-09-11 | 2008-03-13 | Sun Microsystems, Inc. | Offloading operations for maintaining data coherence across a plurality of nodes |
| CN101689131B (zh) * | 2006-12-06 | 2013-03-20 | 弗森-艾奥公司 | 用于共享的、前端、分布式raid的装置、系统和方法 |
| TWI405211B (zh) * | 2008-11-04 | 2013-08-11 | Phison Electronics Corp | 快閃記憶體儲存系統、控制器與資料保護方法 |
-
2010
- 2010-09-23 US US12/888,433 patent/US20120079583A1/en not_active Abandoned
-
2011
- 2011-08-11 TW TW100128753A patent/TW201224914A/zh unknown
- 2011-09-07 JP JP2013530171A patent/JP2013539119A/ja active Pending
- 2011-09-07 BR BR112013006516A patent/BR112013006516A2/pt not_active IP Right Cessation
- 2011-09-07 WO PCT/US2011/050739 patent/WO2012039939A2/en not_active Ceased
- 2011-09-07 RU RU2013112868/08A patent/RU2013112868A/ru not_active Application Discontinuation
- 2011-09-07 KR KR1020137007387A patent/KR20130139883A/ko not_active Withdrawn
- 2011-09-07 EP EP11827196.4A patent/EP2619652A2/en not_active Withdrawn
- 2011-09-07 CA CA2810833A patent/CA2810833A1/en not_active Abandoned
- 2011-09-07 AU AU2011305839A patent/AU2011305839A1/en not_active Abandoned
- 2011-09-23 CN CN2011102854686A patent/CN102520877A/zh active Pending
- 2011-09-26 AR ARP110103500A patent/AR083102A1/es unknown
Also Published As
| Publication number | Publication date |
|---|---|
| AU2011305839A1 (en) | 2013-03-21 |
| RU2013112868A (ru) | 2014-09-27 |
| WO2012039939A2 (en) | 2012-03-29 |
| WO2012039939A3 (en) | 2012-05-31 |
| KR20130139883A (ko) | 2013-12-23 |
| BR112013006516A2 (pt) | 2016-07-12 |
| JP2013539119A (ja) | 2013-10-17 |
| EP2619652A2 (en) | 2013-07-31 |
| CA2810833A1 (en) | 2012-03-29 |
| CN102520877A (zh) | 2012-06-27 |
| US20120079583A1 (en) | 2012-03-29 |
| AR083102A1 (es) | 2013-01-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TW201224914A (en) | Offload reads and writes | |
| US9092149B2 (en) | Virtualization and offload reads and writes | |
| US11327686B2 (en) | Apparatus and method for managing integrated storage supporting hierarchical structure | |
| US9817582B2 (en) | Offload read and write offload provider | |
| US9977718B1 (en) | System and method for smart throttling mechanisms for virtual backup appliances | |
| US20240045839A1 (en) | Multi-cloud bi-directional storage replication system and techniques | |
| US20170068469A1 (en) | Remote Shared Virtual Disk Snapshot Creation | |
| TW202107318A (zh) | 基於雲端的資料保護服務 | |
| US20210181963A1 (en) | Native key-value storage enabled distributed storage system | |
| US20090019223A1 (en) | Method and systems for providing remote strage via a removable memory device | |
| CN103597440A (zh) | 用于创建克隆文件的方法以及采用该方法的文件系统 | |
| EP2718825A2 (en) | Storage architecture for backup application | |
| US10042719B1 (en) | Optimizing application data backup in SMB | |
| US11614901B2 (en) | Apparatus and method for processing sensitive data | |
| US10126962B2 (en) | Adapted block translation table (BTT) | |
| US9749193B1 (en) | Rule-based systems for outcome-based data protection | |
| US12189648B2 (en) | Apparatus and method for managing integrated storage | |
| US10346077B2 (en) | Region-integrated data deduplication | |
| US10133505B1 (en) | Cooperative host and data storage system services for compression and encryption | |
| US20130179959A1 (en) | Zero Token | |
| US9830471B1 (en) | Outcome-based data protection using multiple data protection systems | |
| CN101305341B (zh) | 存储数据集的多个版本的方法和系统 | |
| US10936424B1 (en) | Smart file level restore with RP4VM | |
| CN114489465A (zh) | 使用网卡进行数据处理的方法、网络设备及计算机系统 | |
| Lu et al. | Bass: Improving i/o performance for cloud block storage via byte-addressable storage stack |