TW201418984A - 保護碟資料完整性的方法及實現其之電腦程式產品 - Google Patents
保護碟資料完整性的方法及實現其之電腦程式產品 Download PDFInfo
- Publication number
- TW201418984A TW201418984A TW102130623A TW102130623A TW201418984A TW 201418984 A TW201418984 A TW 201418984A TW 102130623 A TW102130623 A TW 102130623A TW 102130623 A TW102130623 A TW 102130623A TW 201418984 A TW201418984 A TW 201418984A
- Authority
- TW
- Taiwan
- Prior art keywords
- cache
- unique identifier
- global unique
- partition
- partition table
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/4408—Boot device selection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/281—Single cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/463—File
Abstract
本發明提供一種在備用操作系統(OS)環境中保護快取儲存裝置資料完整性的方法。本發明包括以修改過的全域唯一識別符分區表(MGPT)取代快取碟(cached disk)中的全域唯一識別符分區表(GPT)。當操作系統利用MGPT對快取碟中的快取分區進行存取時,MGPT令快取分區無法被存取,而快取碟中的非快取分區則依然可被存取。在正常操作下,快取碟中的資料一般是使用基於GPT的訊息且通過快取軟體而被存取,此GPT被儲存於快取中碟(caching disk)。反應於所接收到的停用快取請求,GPT取代快取碟中的MGPT,以使所有正式快取碟中的資料,在即使沒有適當的快取軟體的情況下,依然可在備用操作系統環境中被存取。
Description
本申請案是第13/595,986號美國專利申請案的部份連續案,前述美國專利申請案申請於2012年8月27日,且名稱為「在外部操作環境中保護儲存裝置資料完整性的方法」,其於此被整合入本案以參考。
本發明是有關於資料完整性,且特別是有關於在備用操作系統環境中保護一種基於全域唯一識別符(GUID)分區表的儲存裝置的資料完整性。
長期以來,快取是被用於儲存環境中,以提升例如是磁碟驅動器等較慢的儲存裝置的性能。在快取中,較小及較快的儲存媒體是用以暫時儲存和擷取常用的資料,而較大及典型較慢的大容量存儲媒體則是用於資料的長期存儲。有一種快取的方法為
回寫式快取,其中寫入碟的資料是預先儲存於快取中,之後通常是當快取中的資料量達到一定的閾值後、或是當時間允許時,才被寫入至大量儲存裝置中。
圖1是示例性先前技術的具有回寫快取功能的電腦系統100的方塊圖。示例性的習知的電腦系統100包括連通系統記憶體104的中央處理單元(CPU)102、快取106以及目標儲存裝置108。此外,快取軟體110載入系統記憶體104中,且用以促成電腦系統100上的回寫式快取功能。
如上所述,快取106通常包括比目標儲存裝置108更小及更快的存取儲存裝置。由於快取106的速度的提升,快取106的讀取和寫入的處理速度,遠超過使用目標儲存裝置108的處理速度。回寫式快取藉由上述差異的優勢,可在稍後將資料傳輸至目標儲存裝置108之前,先將所有的寫入請求傳送至回寫式快取106。
舉例而言,當中央處理單元102處理資料的寫入請求以將其寫入至目標儲存裝置108時,快取軟體110會攔截此寫入請求,並將資料寫入至快取106。此資料,由於並未被寫入至目標儲存裝置108中,因此通常被稱為“不良”資料,而當其之後被寫入至目標儲存裝置108時,則成為“乾淨”資料。快取軟體110提供目標儲存裝置108的完整檢視予使用者。亦即,當央處理單元102處理上述同一資料的讀取請求時,快取軟體110會再次攔截讀取請求,並確定資料是否儲存在快取記憶體中。當資料確實
儲存在快取記憶體中時,中央處理單元102會從快取106讀取資料,否則中央處理單元102將從目標儲存裝置10讀取資料。
可以理解的是,資料能在任何一個時間點上被儲存至快取106中,且尚未更新至目標儲存裝置108上,因此目標儲存裝置108並不具有使用者所認為的一個完整且一致的資料副本。如此一來,若是使用者決定將目標儲存裝置108移至不存在有快取軟體110的另一個操作系統環境中時,目標儲存裝置108中所存在的資料可能會被損壞且變得毫無用處。
舉例而言,當一個文件部分存儲於目標儲存裝置108且部分儲存於快取106中時,快取軟體110提供的上述文件的完整檢視,而使用者所看到的文件是被完整地儲存於目標裝置108中。然而,若是使用者將目標儲存裝置108移至不存在有快取軟體110的另一個操作系統環境中時,在目標儲存裝置108中的文件將會是不完整的。但是,使用者將不會知道此文件是否為完整,且可能試圖對此文件進行修改。之後,當目標儲存裝置108被移回至原始的操作系統環境中時,將產生資料完整性的問題。
傳統上來說,此資料完整性的問題是藉由使用者,在將目標儲存裝置108移至另一個操作系統環境中之前,先行停用快取軟體110,而被解決。當取軟體110被停用時,其從快取106中刷新所有的不良資料,以確保在目標儲存裝置108中的資料為整理且乾淨的。此時,當目標儲存裝置108被移至另一個操作系統環境中時,將不會因為快取而產生資料的損壞。
可惜的是,使用者往往不會記得要在將目標儲存裝置108移除或是移至另一個操作系統環境中之前,先行停用快取軟體110。如此一來,儘管有快取軟體110的快取刷新功能,一個健忘使用者可能會因為忘記要在移動目標儲存裝置108之前得先行停用快取軟體110,而依然會損壞在目標儲存裝置108中的資料。
基於上述,有了在備用操作系統環境中保護儲存裝置的資料完整性的系統及方法的需求。在理想的情況下,即使是使用者忘記要在將快取儲存裝置移至備用操作系統環境中之前得先行停用快取軟體的情況下,上述系統及方法應當提供一些保護。
(**審查提示:請注意下述發明內容是以法律術語且對應於請求項而撰寫。為了技術的正確性,請先著重於實施方式中的內容再考慮對此處進行修改。感謝!)
廣義而言,為了解決上述之問題,本發明的實施例提供一種在備用操作系統(OS)環境中保護快取儲存裝置資料完整性的處理方式。在一實施例中,本發明揭露一種在備用操作系統環境中保護碟中的資料完整性的方法。上述方法包括以修改過的全域唯一識別符分區表(Modefied globally unique identifier partition table,簡稱MGPT)取代快取碟(cached disk)中的全域唯一識別符分區表(Globally unique identifier partition table,簡稱GPT)。重要的是,當操作系統利用上述修改過的全域唯一識別符分區表對快取碟中的快取分區進行存取時,修改過的全域唯一識別符分區表可令快取分區無法被存取,而快取碟中的非快取分區則依然可被存
取。在正常操作下,快取碟中的資料一般是利用基於全域唯一識別符分區表的訊息,且通過快取軟體而被存取。
為了確保快取碟中的快取分區在備用操作系統環境中不能被存取,快取分區在修改過的全域唯一識別符分區表中的分區項目具有不同於儲存在全域唯一識別符分區表中的對應項目的開始與結束位置。然而,快取碟中的非快取分區在修改過的全域唯一識別符分區表中的分區項目相同於在全域唯一識別符分區表中的對應項目,因此非快取分區在備用操作系統環境可被存取。修改過的全域唯一識別符分區表通常儲存於快取碟中,而操作系統在備用操作系統環境下將可利用儲存於快取碟中的修改過的全域唯一識別符分區表來啟動快取碟。全域唯一識別符分區表可被儲存於一快取中碟(caching disk)中,而此快取中碟可利用回寫式快取方式將快取資料儲存於快取碟中。此外,全域唯一識別符分區表亦被儲存於快取碟中不同於修改過的全域唯一識別符分區所在位置的位置,因此快取碟若是無故損壞時,可進行完整的全域唯一識別符分區表重建。
本發明的另一實施例進一步揭露一種在備用操作系統環境中保護碟資料完整性的方法。類似上述實施例,此方法包括以修改過的全域唯一識別符分區表取代快取碟中的全域唯一識別符分區表。其中,當操作系統利用修改過的全域唯一識別符分區表對快取碟中的快取分區進行存取時,修改過的全域唯一識別符分區表令快取分區無法被存取,而當操作系統利用修改過的全域唯
一識別符分區表存取快取碟中的一非快取分區時,非快取分區可被存取。在正常操作下,快取碟中的資料一般是基於全域唯一識別符分區表的訊息,且通過快取軟體而被存取。接著,反應於所接收到的停用快取請求,全域唯一識別符分區表取代快取碟中的修改過的全域唯一識別符分區表。如上所述,快取分區在修改過的全域唯一識別符分區表中的分區項目具有不同於儲存在全域唯一識別符分區表中的對應項目的開始與結束位置,而快取碟中的非快取分區在修改過的全域唯一識別符分區表中的分區項目相同於在全域唯一識別符分區表中的對應項目。全域唯一識別符分區表被同時儲存於一快取中碟上述快取碟中不同於修改過的全域唯一識別符分區所在位置的位置。
本發明的又一實施例更揭露一種體現在電腦可讀取媒體的電腦程式,其用以在備用操作系統環境中保護碟資料完整性。上述電腦程式包括使修改過的全域唯一識別符分區表取代快取碟中的全域唯一識別符分區表的電腦指令,其中當操作系統利用修改過的全域唯一識別符分區表對快取碟中的快取分區進行存取時,修改過的全域唯一識別符分區表令快取分區無法被存取,而當操作系統利用修改過的全域唯一識別符分區表存取快取碟中的一非快取分區時,非快取分區可被存取。此外,上述電腦程式更包括利用基於全域唯一識別符分區表的訊息而存取該快取碟中的資料的電腦指令。類似上述實施例,快取分區在修改過的全域唯一識別符分區表中的分區項目具有不同於儲存在全域唯一識別符
分區表中的對應項目的開始與結束位置,而快取碟中的非快取分區在修改過的全域唯一識別符分區表中的分區項目則相同於在全域唯一識別符分區表中的對應項目。修改過的全域唯一識別符分區表儲存於快取碟中,而操作系統在備用操作系統環境下將可利用儲存於快取碟中的修改過的全域唯一識別符分區表來啟動快取碟。反應於所接收到的停用快取請求,上述電腦程式更包括使全域唯一識別符分區表取代快取碟中的修改過的全域唯一識別符分區表的電腦指令。
基於上述,快取碟被移至一備用操作系統環境中,且不存在適當的快取軟體時,修改過的全域唯一識別符分區表令快取碟中的快取分區無法被存取,而非快取分區則依然可在備用操作系統環境中被存取。如此一來,使用者務必將快取碟返還至原始的電腦系統,並將快取軟體停用,以使整個快取碟可在備用操作系統環境中被存取。為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
100‧‧‧電腦系統
102‧‧‧中央處理單元
104‧‧‧系統記憶體
106‧‧‧快取
108‧‧‧目標儲存裝置
110‧‧‧快取軟體
200‧‧‧示例性電腦系統
202‧‧‧中央處理單元
204‧‧‧系統記憶體
206‧‧‧快取中碟
208‧‧‧快取碟
210‧‧‧快取軟體
212‧‧‧原始全域唯一識別符分區表
214‧‧‧修改過的全域唯一識別符分區表
300a‧‧‧項目
300a’‧‧‧項目
300b‧‧‧項目
400a‧‧‧分區
400b‧‧‧分區
400n‧‧‧分區
600‧‧‧方法
602~610‧‧‧操作步驟
700‧‧‧方法
702~710‧‧‧操作步驟
LBAs 1~33‧‧‧邏輯區塊位址
藉由參考接下來的描述並配合所附圖式,本發明以及伴隨的更多優點能更好地被暸解,其中:
圖1是示例性先前技術的具有回寫快取能力的電腦系統的方塊圖。
圖2是依照本發明一實施例的帶有當快取碟被移至備用操作
系統環境中時可具有資料完整性保護的快取碟208的示例性電腦系統的方塊圖。
圖3是依照本發明一實施例的示例性全域唯一識別符分區表(GPT)及與其相應地修改過的全域唯一識別符分區表(MGPT)的示意圖。
圖4是依照本發明一實施例的具有多個可在備用操作系統環境中被存取且在原始的操作系統環境中使用不同的快取軟體的分區的快取碟的示意圖。
圖5是依照本發明一實施例的示例性電腦系統的方塊圖,其中快取碟已被自動地全面更新且能於不存在快取軟體的情況下安全地從後備操作系統中被存取。
圖6是依照本發明一實施例的可在快取碟被移至備用操作系統環境中時保護快取碟資料完整性的方法的流程圖。
圖7是依照本發明一實施例的令快取碟中的快取分區可在備用操作系統環境中反應於接收到的停用快取請求而被存取的方法的流程圖。
本發明利用全域唯一識別符(Globally unique identifier,簡稱GUID)分區表以在備用操作系統環境中保護快取儲存裝置資料的完整性。大致上來說,本發明的實施例是利用碟中的全域唯一識別符分區表,以提供一種保護快取碟資料完整性的機制。由
於操作系統試圖利用全域唯一識別符分區表存碟,此處理方式在不需要額外的硬體或物理上改變系統架構的情況下,提供一種可在備用操作系統環境中控制使用者在碟所視內容的機制。
為了讓本發明的特徵和優點能更明顯易懂,在下列敘述中提供了許多具體細節。然而,明顯地,任何所屬技術領域中具有通常知識者當可知,本發明即使省略部份或全部具體的細節也可以被實施。在其它情況下,為了避免不必要地使本發明模糊,在此將不會詳細地描述眾所周知的處理步驟。
圖1繪示為先前技術。圖2是依照本發明一實施例的帶有當快取碟208被移至備用操作系統環境中時可具有資料完整性保護的快取碟208的示例性電腦系統200的方塊圖。電腦系統200包括連接至系統記憶體204的中央處理單元(CPU)202、快取中碟206以及快取碟208。此外,快取軟體210載入至系統記憶體204內且作用於促成在電腦系統200中的回寫式快取功能。
快取中碟206通常是小於且快於用在快取碟208中的存取碟。舉例而言,快取中碟206可為固態碟(SSD),例如:基於反及快閃(NAND flash)的固態碟或相位變化記憶體(PCM)。由於快取中碟206的速度的提升,快取中碟206的讀寫是以遠超過使用快取碟208的速度而進行處理。回寫式快取藉由上述差異的優勢,可在將資料傳輸至快取碟208之前,先將所有的寫入請求傳送至快取中碟206。快取軟體210提供快取碟208的完整檢視,故無論一些資料是否實際上儲存在快取中碟206中,使用者總是能看到整
的快取碟208。
在正常操作下,當中央處理單元202處理資料的寫入請求以將其寫入快取碟208時,快取軟體210會攔截寫入請求並將資料寫入快取中碟206。由於此資料並未被寫入快取碟208中,因此往往被稱為“不良”資料,而之後當其被寫入快取碟208中時,則被稱為“乾淨”資料。當中央處理單元202處理上述同一資料的讀取請求時,快取軟體210會再次攔截讀取請求,並確定資料是否位在快取記憶體中。當資料確實儲存在快取記憶體中時,中央處理單元202會從快取中碟206讀取資料,否則中央處理單元202將從快取碟208讀取資料。
如上所述,若是使用者決定將快取碟208移至不存在有相同快取軟體210的另一個操作系統環境中時,快取碟中的資料可能會被損壞且變得毫無用處。為了解決上述問題,本發明的實施例以修改過的全域唯一識別符分區表218取代快取碟208中實際上的全域唯一識別符分區表,使得快取碟208中的快取內容,當被移至備用操作系統環境中時,無法被存取。
在一基本輸入輸出系統(BIOS)系統中,中央處理單元202在系統啟動期間所執行的第一個程式代碼就是系統BIOS,其對電腦系統200的硬體進行設置並載入操作系統。接著,系統BIOS識別一個指定的啟動裝置,例如:快取碟208,且試圖載入能進一步控制電腦系統200的操作系統軟體。在採用統一可延伸韌體介面(UEFI)標準的較新系統中,此功能是藉由全域唯一識別符分區
表通過統一可延伸韌體介面而被提供。
使用全域唯一識別符分區表的碟中的第一扇區0被保留為受保護的主啟動記錄(MBR)區域,以支持基於BIOS的系統從全域唯一識別符分區表碟來啟動。用以存取全域唯一識別符分區表碟的佈局及分區信息儲存在碟中的扇區1~33。這些初期的扇區即被稱為全域唯一識別符分區表。本發明的實施例以修改過的全域唯一識別符分區表取代碟中的原始全域唯一識別符分區表。舉例而言,在一實施例中,快取碟208的原始全域唯一識別符分區表212被修改過的全域唯一識別符分區表214所取代。原始全域唯一識別符分區表212被存入快取碟208中的另一位置,例如是靠近快取碟208結尾。此外,原始全域唯一識別符分區表212被存入快取中碟206中。
圖3是依照本發明一實施例的示例性全域唯一識別符分區表212及與其相應地修改過的全域唯一識別符分區表214的示意圖。如圖3所示,第一邏輯扇區被保留為受保護的主啟動記錄區域,以支持基於BIOS的系統從全域唯一識別符分區表碟來啟動。繼受保護的主啟動記錄扇區之後為主要PGT標頭及分區表項目。本發明的實施例修改快取分區的項目,而將非快取項目完好的保留。舉例而言,在圖3中,項目1 300a被定義為快取分區,而項目2 300b則被定義為非快取分區。本發明的實施例以在修改過的全域唯一識別符分區表214中的項目1 300a'的虛擬資料取代快取項目1 300a的資料。亦即,項目1 300a'在修改過的全域唯一
識別符分區表214中的分區開始及結束位置資料不同於項目1 300a在原始全域唯一識別符分區表212中的分區開始及結束位置資料。
然而,本發明的實施例並不對非快取分區的項目進行修改。舉例而言,在圖3中,項目2 300b被定義為非快取分區。因此,本發明的實施例並不將快取到的項目2 300b在修改過的全域唯一識別符分區表214中的資料進行取代。亦即,項目2 300b在修改過的全域唯一識別符分區表214中的分區開始及結束位置資料相同於項目2 300b在原始全域唯一識別符分區表212中的分區開始及結束位置資料。於是,修改過的全域唯一識別符分區表214的操作系統將具有非快取分區的存取,但卻不具有快取分區的存取。
通過這種方式,若是將快取碟208在沒有預先停用快取軟體210情況下移至備用操作系統環境中時,新的電腦系統將無法存取快取碟208中的任何一個快取分區資料,因為其將載入有虛擬分區項目資料300a'的修改過的全域唯一識別符分區表214,其中虛擬分區項目資料300a'儲存有快取分區的錯誤佈局與分區信息,因此使得快取碟208中的快取分區在沒有適當快取軟體210的情況下無法被存取。
請再參考圖2,快取碟208的原始全域唯一識別符分區表212是同時儲存於快取中碟206與於快取碟208中的一個預定義的新位置,例如是靠近快取碟208的結尾。然而,需要注意的是,
全域唯一識別符分區表212能被儲存於快取碟208中的邏輯區塊位址(LBAs)1~33以外的位置。舉例而言,全域唯一識別符分區表212能被儲存於快取碟208中的另一個非啟動扇區,且同時能指出全域唯一識別符分區表212儲存於快取中碟206中的位址。原始全域唯一識別符分區表212包括所有在快取碟208中的適當的分區項目資料。一般來說,快取軟體210能使全域唯一識別符分區表212在正常運作下保持更新。
圖4是依照本發明一實施例的具有多個可在備用操作系統環境中被存取且在原始的操作系統環境中使用不同的快取軟體的分區400~400n的快取碟208的示意圖。圖4中所繪示的分區400a~400b對應於全域唯一識別符分區表212的分區項目300a~300b以及修改過的全域唯一識別符分區表214的分區項目300a'~300b。舉例而言,分區1 400a為快取分區且對應於分區項目300a,而分區2 400b則為非快取分區且對應於分區項目300b。
當快取碟208被移至不具有與原始操作系統環境中相同的快取軟體的備用操作系統環境中時,修改過的全域唯一識別符分區表214讓使用者能存取快取碟208中的非快取分區2 400b。然而,當快取碟208被移至不具有與原始操作系統環境中相同的快取軟體的備用操作系統環境中時,修改過的全域唯一識別符分區表214令快取碟208中的快取分區1 400a無法被存取。如此一來,為了讓快取碟208中的快取分區資料在備用操作系統環境下可被存取,使用者務須將快取碟208返還至原始的電腦系統且將
快取軟體210停用。為了將快取碟208還原,本發明的實施例刷新快取中碟206並以一直保持更新的原始全域唯一識別符分區表212取代快取碟208中的修改過的全域唯一識別符分區表214。
圖5是依照本發明一實施例的示例性電腦系統200的方塊圖,其中快取碟208已被自動地全面更新且能於不存在快取軟體的情況下安全地從後備操作系統中被存取。電腦系統200包括連接至系統記憶體204的中央處理單元202、快取中碟206及快取碟208。次外,快取軟體210載入至系統記憶體204內且作用於促進在電腦系統200中的回寫式快取功能。如上所述,快取軟體210提供快取碟208的完整檢視,故無論一些資料是否實際上儲存在快取中碟206中,使用者總是能看到整的快取碟208。
如上面所討論,若是使用者決定將快取碟208移至不存在有相同快取軟體210的備用操作系統環境中,修改過的全域唯一識別符分區表會使快取碟208中的快取分區,在修改過的全域唯一識別符分區表被備用操作系統環境用於存取快取碟208中的資料時,無法被存取。
於是,為了將快取碟208移至備用操作系統環境,使用者應傳送停用快取指令至快取軟體210,以停用快取碟208的碟快取功能。反應於所接收到的快取碟208的停用快取請求,快取軟體210為快取碟208的安全移除及在備用操作系統環境中的使用作準備。
尤其是,快取軟體210藉由確保依然存在於快取中碟206
中的快取碟208的所有不良資料皆被寫入快取碟208中,刷新快取碟208中的快取資料。此外,快取軟體210藉由進行任何全域唯一識別符分區表212所需要的更新,確保快取碟208中的原始全域唯一識別符分區表212對於快取碟208來說是一致且完整的。然後,快取軟體210將更新的原始全域唯一識別符分區表212寫入快取碟208中。在圖5所示的範例中,上述方法是以快取碟208中的更新的全域唯一識別符分區表212取代儲存於快取碟208中的修改過的全域唯一識別符分區表214而被完成。此後,所有在快取碟208中的分區是完整。亦即,快取碟208已自我完整,且能於不存在快取軟體210的情況下,安全地從後備操作系統中被存取。
圖6是依照本發明一實施例的可在快取碟被移至備用操作系統環境中時保護快取碟資料完整性的方法600的流程圖。在初始操作步驟602下,進行預處理操作。預處理操作例如是可包括將快取軟體載入系統記憶體中,而本領域技術人員藉由仔細閱讀本揭露之內容將可推知此其它相關的處理操作方式。
在操作步驟604下,將快取碟的原始全域唯一識別符分區表儲存於快取碟中不同於扇區1~33所在位置的位置。請參考圖2,當快取軟體210剛被安裝時,及當快取軟體210在任何時刻剛使得碟可進行快取時,快取碟208中的原始全域唯一識別符分區表將會被寫入及儲存在不同於扇區1~33所在位置的位置。本發明的一實施例寫入快取碟中的原始全域唯一識別符分區表,且將原
始全域唯一識別符分區表儲存在快取碟中不同於扇區1~33所在位置的位置。舉例而言,在圖2中,快取碟208中的原始全域唯一識別符分區表212被儲存於快取中碟206及快取碟208中不同於扇區1~33所在位置的位置。
請再次參考圖6,在操作步驟606中,快取碟中的原始全域唯一識別符分區表被修改過的全域唯一識別符分區表所取代。如上所述,當操作系統利用修改過的全域唯一識別符分區表對資料進行存取時,修改過的全域唯一識別符分區表令碟中的快取分區無法被存取。請參考圖2,本發明的實施例以修改過的全域唯一識別符分區表214取代快取碟中的全域唯一識別符分區表212的備份。據此,當快取碟在不具有相同的快取軟體210的情況下,而在備用操作系統環境中被存取時,操作系統將試圖利用修改過的全域唯一識別符分區表214來對快取碟進行存取。如此一來,快取碟208中的快取分區將無法被備用操作系統所存取,而快取碟208中的非快取分區則可依然在備用操作系統環境中被存取。
在方法600的操作步驟608中,快取碟中的資料是通過基於原始全域唯一識別符分區表的訊息而被存取。亦即,在正常的操作下,快取軟體210攔截所有存取快取碟208中的資料的,以利用快取中碟206進行回寫式快取。這是通過利用基於原始全域唯一識別符分區表的訊息所達成的,而此訊息能在快取中碟206及快取碟208中的資料被更新時而同時被更新。
後期處理操作可在操作步驟610中被進行。後期處理操
作例如是可包括處理讀取和寫入請求以及在時間允許時將不良資料弄入快取碟中。而本領域技術人員藉由仔細閱讀本揭露之內容將可推知更多相關的後期處理操作方式。
圖7是依照本發明一實施例的令快取碟中的快取分區可在備用操作系統環境中反應於接收到的停用快取請求而被存取的方法700的流程圖。在初始操作步驟702中,進行預先操作。預先操作例如是可包括提供快取碟的回寫式快取功能,而本領域技術人員藉由仔細閱讀本揭露之內容將可推知其它相關的處理操作方式。
在操作步驟704中,接收停用快取請求。當使用者欲將快取碟移至備用操作系統環境中時,使用者應先停用快取碟的快取,以確保儲存於快取碟中的資料已被全面地更新及淨化。如將在下面進行更詳細地描述,停用快取碟的快取將導致快取軟體確保碟已被全面及完整地更新,以及可在不存在有快取軟體的情況下,安全地在備用操作系統中被存取。
反應於所接收到的停用快取請求,在操作步驟706中,快取碟中的修改過的全域唯一識別符分區表被快取碟中的原始(且被保持在最新狀態的)分區表所取代。以快取碟中被全面更新的全域唯一識別符分區表取代快取碟中的修改過的全域唯一識別符分區表。請參考圖5,反應於所接收到的快取碟208的停用快取請求,快取軟體210為快取碟208的安全移除及在備用操作系統環境中的使用作準備。因此,快取軟體210藉由確保依然存在於快
取中碟206中的快取碟208的所有不良資料皆被寫入快取碟208中,刷新快取碟208中的快取資料。此外,快取軟體210藉由進行任何全域唯一識別符分區表212所需要的更新,確保快取碟208中的原始全域唯一識別符分區表212對於快取碟208來說是一致且完整的。然後,快取軟體210將更新的原始全域唯一識別符分區表212寫入快取碟208中。在圖5所示的範例中,上述方法是以快取碟208中的更新的全域唯一識別符分區表212取代儲存於快取碟208中的修改過的全域唯一識別符分區表214而被完成。此後,在快取碟208中的資料是完整的。亦即,快取碟208已自我完整,且能於不存在快取軟體210的情況下,安全地從後備操作系統中被存取。
請再次參考圖7,快取碟的快取功能在操作步驟708中被停用。當快取軟體為快取碟的安全移除及在備用操作系統環境中的使用作好準備時,快取碟的快取功能被停止,而原先的快取碟可被移至備用操作系統環境中且被安全的存取。後期處理操作在操作步驟710中被進行。後期處理操作例如是可包括允許其它裝置的快取以及從系統中移除原先的快取碟。而本領域技術人員藉由仔細閱讀本揭露之內容將可推知更多相關的後期處理操作方式。
本發明的實施例可應用於任何超過一個碟的儲存環境,以提供儲存子系統的完整檢視。舉例而言,本發明的實施例可應用於以多個磁碟機來進行資料的儲存的獨立磁碟冗餘陣列(RAID)
環境中。在獨立磁碟冗餘陣列中,獨立磁碟冗餘陣列軟體可被用於提供獨立磁碟冗餘陣列所代表的邏輯裝置的完整檢視。然而,個別獨立磁碟冗餘陣列的碟可分別讓修改過的全域唯一識別符分區表取代其全域唯一識別符分區表,以使儲存於碟中的資料,當碟在不存在有獨立磁碟冗餘陣列軟體的情況下被移至備用操作系統環境中時,無法被存取。通過這種方式,個別獨立磁碟冗餘陣列的碟中的資料完整性能在任何碟被錯誤地移至備用操作系統環境中時受到保護。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
200‧‧‧示例性電腦系統
202‧‧‧CPU
204‧‧‧系統記憶體
206‧‧‧快取中碟
208‧‧‧快取碟
210‧‧‧快取軟體
212‧‧‧原始GPT
214‧‧‧MGPT
Claims (20)
- 一種在備用操作系統環境中保護碟資料完整性的方法,包括:以一修改過的全域唯一識別符分區表(MGPT)取代一快取碟中的一全域唯一識別符分區表(GPT),其中當一操作系統利用該修改過的全域唯一識別符分區表對該快取碟中的一快取分區進行存取時,該修改過的全域唯一識別符分區表令該快取分區無法被存取,且其中當該操作系統利用該修改過的全域唯一識別符分區表存取該快取碟中的一非快取分區時,該非快取分區可被存取;以及利用基於該全域唯一識別符分區表的訊息存取該快取碟中的資料。
- 如申請專利範圍第1項所述的方法,其中在該快取碟中的快取分區在該修改過的全域唯一識別符分區表中的分區項目具有不同於儲存在該全域唯一識別符分區表中的對應項目的開始與結束位置。
- 如申請專利範圍第2項所述的方法,其中在該快取碟中的非快取分區在該修改過的全域唯一識別符分區表中的分區項目相同於在該全域唯一識別符分區表中的對應項目。
- 如申請專利範圍第2項所述的方法,其中操作系統在一備用操作系統環境下利用儲存於該快取碟中的該修改過的全域唯一識別符分區表來啟動該快取碟。
- 如申請專利範圍第1項所述的方法,更包括以該全域唯一識別符分區表取代在該快取碟中的該修改過的全域唯一識別符分區表,以反應於所接收到的一停用快取請求。
- 如申請專利範圍第1項所述的方法,其中該全域唯一識別符分區表儲存於一快取中碟中,其中該快取中碟是利用回寫式快取方式將快取資料儲存於該快取碟中。
- 如申請專利範圍第6項所述的方法,其中該全域唯一識別符分區表亦被儲存於該快取碟中不同於該修改過的全域唯一識別符分區所在位置的位置。
- 一種在備用操作系統環境中保護碟資料完整性的方法,包括:以一修改過的全域唯一識別符分區表取代一快取碟中的一全域唯一識別符分區表,其中當一操作系統利用該修改過的全域唯一識別符分區表對該快取碟中的一快取分區進行存取時,該修改過的全域唯一識別符分區表令該快取分區無法被存取,且其中當該操作系統利用該修改過的全域唯一識別符分區表存取該快取碟中的一非快取分區時,該非快取分區可被存取;利用基於該全域唯一識別符分區表的訊息存取該快取碟中的資料;以及以該全域唯一識別符分區表取代該快取碟中的該修改過的全域唯一識別符分區表,以反應於所接收到的一停用快取請求。
- 如申請專利範圍第8項所述的方法,其中在該快取碟中 的快取分區在該修改過的全域唯一識別符分區表中的分區項目具有不同於儲存在該全域唯一識別符分區表中的對應項目的開始與結束位置。
- 如申請專利範圍第9項所述的方法,其中在該快取碟中的非快取分區在該修改過的全域唯一識別符分區表中的分區項目相同於在該全域唯一識別符分區表中的對應項目。
- 如申請專利範圍第9項所述的方法,其中操作系統在一備用操作系統環境下利用儲存於該快取碟中的該修改過的全域唯一識別符分區表來啟動該快取碟。
- 如申請專利範圍第8項所述的方法,其中該全域唯一識別符分區表儲存於一快取中碟中,其中該快取中碟是利用回寫式快取方式將快取資料儲存於該快取碟中。
- 如申請專利範圍第8項所述的方法,其中該全域唯一識別符分區表亦被儲存於該快取碟中不同於該修改過的全域唯一識別符分區所在位置的位置。
- 一種體現於電腦可讀取媒體上的電腦程式,用以在備用操作系統(OS)環境中保護碟資料完整性,包括:電腦指令,其使得一修改過的全域唯一識別符分區表取代一快取碟中的一全域唯一識別符分區表,其中當一操作系統利用該修改過的全域唯一識別符分區表對該快取碟中的一快取分區進行存取時,該修改過的全域唯一識別符分區表令該快取分區無法被存取,且其中當該操作系統利用該修改過的全域唯一識別符分區 表存取該快取碟中的一非快取分區時,該非快取分區可被存取;以及電腦指令,其利用基於該全域唯一識別符分區表的訊息而存取該快取碟中的資料。
- 如申請專利範圍第14項所述的電腦程式,其中在該快取碟中的快取分區在該修改過的全域唯一識別符分區表中的分區項目具有不同於儲存在該全域唯一識別符分區表中的對應項目的開始與結束位置。
- 如申請專利範圍第15項所述的電腦程式,其中在該快取碟中的非快取分區在該修改過的全域唯一識別符分區表中的分區項目相同於在該全域唯一識別符分區表中的對應項目。
- 如申請專利範圍第14項所述的電腦程式,其中操作系統在一備用操作系統環境下利用儲存於該快取碟中的該修改過的全域唯一識別符分區表來啟動該快取碟。
- 如申請專利範圍第14項所述的電腦程式,更包括以該全域唯一識別符分區表取代在該快取碟中的該修改過的全域唯一識別符分區表,以反應於所接收到的一停用快取請求。
- 如申請專利範圍第14項所述的電腦程式,其中該全域唯一識別符分區表儲存於一快取中碟中,其中該快取中碟是利用回寫式快取方式將快取資料儲存於該快取碟中。
- 如申請專利範圍第14項所述的電腦程式,其中該全域唯一識別符分區表亦被儲存於該快取碟中不同於該修改過的全域唯 一識別符分區所在位置的位置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/595,986 US20140059291A1 (en) | 2012-08-27 | 2012-08-27 | Method for protecting storage device data integrity in an external operating environment |
US13/967,219 US20140059293A1 (en) | 2012-08-27 | 2013-08-14 | Method for protecting a gpt cached disks data integrity in an external operating system environment |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201418984A true TW201418984A (zh) | 2014-05-16 |
Family
ID=50069724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102130623A TW201418984A (zh) | 2012-08-27 | 2013-08-27 | 保護碟資料完整性的方法及實現其之電腦程式產品 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20140059293A1 (zh) |
KR (1) | KR102145358B1 (zh) |
CN (1) | CN103631564B (zh) |
DE (1) | DE102013109088A1 (zh) |
TW (1) | TW201418984A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101999617B1 (ko) * | 2012-09-24 | 2019-07-12 | 삼성전자주식회사 | 전자 장치, gpt 복원 방법 및 컴퓨터 판독가능 기록매체 |
US9208105B2 (en) | 2013-05-30 | 2015-12-08 | Dell Products, Lp | System and method for intercept of UEFI block I/O protocol services for BIOS based hard drive encryption support |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7155571B2 (en) * | 2002-09-30 | 2006-12-26 | International Business Machines Corporation | N-source in-kernel cache for high performance in computer operating systems |
US20040088481A1 (en) * | 2002-11-04 | 2004-05-06 | Garney John I. | Using non-volatile memories for disk caching |
EP1503283A1 (en) * | 2003-08-01 | 2005-02-02 | Hewlett-Packard Development Company, L.P. | Data processing system and method |
US7558911B2 (en) * | 2003-12-18 | 2009-07-07 | Intel Corporation | Maintaining disk cache coherency in multiple operating system environment |
US7934069B2 (en) * | 2007-04-27 | 2011-04-26 | Hewlett-Packard Development Company, L.P. | Enabling and disabling cache in storage systems |
JP5300407B2 (ja) * | 2008-10-20 | 2013-09-25 | 株式会社東芝 | 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法 |
CN101387989A (zh) * | 2008-10-29 | 2009-03-18 | 北京世纪红山科技有限公司 | 构建基于分区管理的虚拟存储设备的计算机系统及方法 |
WO2012047551A1 (en) * | 2010-10-06 | 2012-04-12 | Marvell World Trade Ltd. | Distributed cache coherency protocol |
JP5717864B2 (ja) * | 2010-11-16 | 2015-05-13 | インテル・コーポレーション | データ記憶システムに用いるエンドポイントキャッシュ |
-
2013
- 2013-08-14 US US13/967,219 patent/US20140059293A1/en not_active Abandoned
- 2013-08-22 DE DE102013109088.5A patent/DE102013109088A1/de not_active Withdrawn
- 2013-08-26 KR KR1020130101222A patent/KR102145358B1/ko active IP Right Grant
- 2013-08-27 CN CN201310379354.7A patent/CN103631564B/zh active Active
- 2013-08-27 TW TW102130623A patent/TW201418984A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
KR20140027885A (ko) | 2014-03-07 |
US20140059293A1 (en) | 2014-02-27 |
DE102013109088A1 (de) | 2014-02-27 |
KR102145358B1 (ko) | 2020-08-18 |
CN103631564B (zh) | 2017-03-22 |
CN103631564A (zh) | 2014-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10289556B2 (en) | Techniques to perform power fail-safe caching without atomic metadata | |
CN109643275B (zh) | 存储级存储器的磨损均衡设备和方法 | |
US8316257B2 (en) | NAND power fail recovery | |
US10885004B2 (en) | Method and apparatus to manage flush of an atomic group of writes to persistent memory in response to an unexpected power loss | |
US20090327608A1 (en) | Accelerated resume from hibernation in a cached disk system | |
US20030005219A1 (en) | Partitioning cache metadata state | |
KR20150035560A (ko) | 솔리드 스테이트 드라이브(ssd)에 대한 최적화된 컨텍스트 드롭 | |
JP2001166993A (ja) | 記憶制御装置およびキャッシュメモリの制御方法 | |
CN109902034B (zh) | 快照创建方法、装置、电子设备及机器可读存储介质 | |
US20060294339A1 (en) | Abstracted dynamic addressing | |
US9921913B2 (en) | Flushing host cache data before rebuilding degraded redundant virtual disk | |
JP2008204460A (ja) | ディスク・パーティションのほぼ瞬時のバックアップおよび復元 | |
CN105786721A (zh) | 一种内存地址映射管理方法及处理器 | |
US20140059291A1 (en) | Method for protecting storage device data integrity in an external operating environment | |
JP2006099802A (ja) | 記憶制御装置およびキャッシュメモリの制御方法 | |
US7945724B1 (en) | Non-volatile solid-state memory based adaptive playlist for storage system initialization operations | |
TW201418984A (zh) | 保護碟資料完整性的方法及實現其之電腦程式產品 | |
US10430287B2 (en) | Computer | |
US8108605B2 (en) | Data storage system and cache data—consistency assurance method | |
JP4724253B2 (ja) | データ記憶システムおよびキャッシュデータの一貫性保証方法 | |
US20150242155A1 (en) | Method for protecting storage device data integrity in an external operating environment | |
US11494112B2 (en) | Storage device and accessing method for operation log thereof | |
US20140195732A1 (en) | METHOD AND SYSTEM TO MAINTAIN MAXIMUM PERFORMANCE LEVELS IN ALL DISK GROUPS BY USING CONTROLLER VDs FOR BACKGROUND TASKS | |
JPH0566998A (ja) | デイスクキヤツシユシステム |