CN103631564A - 保护被高速缓存盘的数据完整性的方法 - Google Patents
保护被高速缓存盘的数据完整性的方法 Download PDFInfo
- Publication number
- CN103631564A CN103631564A CN201310379354.7A CN201310379354A CN103631564A CN 103631564 A CN103631564 A CN 103631564A CN 201310379354 A CN201310379354 A CN 201310379354A CN 103631564 A CN103631564 A CN 103631564A
- Authority
- CN
- China
- Prior art keywords
- cached
- dish
- mgpt
- subregion
- gpt
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
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
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)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供用于在替换操作系统(OS)环境中保护被高速缓存存储设备的数据完整性的发明。本发明包括,用修改后的全局唯一标识符分区表(MGPT)来代替用于被高速缓存盘的全局唯一标识符分区表(GPT)。当MGPT被OS使用来访问被高速缓存分区时,MGPT使得被高速缓存盘上的被高速缓存分区不可访问,而当使用MGPT时,被高速缓存盘上的未被高速缓存分区仍然是可访问的。在正常操作中,使用基于通常经由高速缓存软件能够被存储在高速缓存盘上的GPT的信息来访问被高速缓存盘上的数据。响应于接收到禁用高速缓存的请求,用GPT来代替被高速缓存盘上的MGPT,因此,使得在不存在适当的高速缓存软件的替换OS环境中,在正常被高速缓存盘上的所有数据是可访问的。
Description
相关申请的交叉引用
本申请是于2012年8月27日提交的题目为“在外部操作环境中用于保护存储设备数据完整性的方法”的美国专利申请第13/595,986号的部分继续申请,通过参照将其合并于此。
技术领域
本发明一般涉及数据完整性,更具体地说,涉及在替换操作系统环境中保护基于GUID分区表的存储设备的数据完整性。
背景技术
在存储环境中已经长期使用高速缓存以增强诸如盘驱动器的更慢存储设备的性能。在高速缓存中,更小并且更快的存储介质被用于临时存储和检索频繁使用的数据,而更大并且通常更慢的大容量存储介质被用于数据的长期存储。一种高速缓存方法是回写(write-back)高速缓存,其中,被写入盘的数据首先被存储到高速缓存器中,并且之后通常当在高速缓存器中的数据量达到一定阈值或者当时间允许时,被写入大容量存储设备中。
图1是示出具有回写高速缓存能力的示例现有技术计算机系统100的框图。示例现有技术计算机系统100包括与系统存储器104通信的中央处理单元(CPU)102、高速缓存器106、以及目标存储设备108。此外,加载到系统存储器104的是其功能为促进在计算机系统100上的回写高速缓存功能性的高速缓存软件110。
如前所提及的,高速缓存器106通常包含比被用于目标存储设备108更小、更快的访问存储。因为高速缓存器106的提高的速度,所以针对高速缓存器106的读和写比使用目标存储设备108所能够得更快地被处理。通过之前将所有的写请求发送给回写高速缓存器106、之后将所述数据转移到目标存储设备108,回写高速缓存利用了这些差异。
例如,当CPU102处理用于将数据写入目标存储设备108的写请求时,高速缓存软件110解释所述写请求并且作为替代将数据写入高速缓存器106。这个数据通常被称为“脏”数据,因为它还没有被写入目标存储设备108,并且稍后当所述数据被写入目标存储设备108时,之后它成为“干净”数据。高速缓存软件110向用户提供目标存储设备108的完全视图。也就是说,当CPU102处理针对相同数据的读请求时,高速缓存软件110再次解释所述读请求,并且确定所述数据是否被存储在高速缓存存储器中。当数据被存储在高速缓存存储器中时,CPU102从高速缓存器106中读取数据,否则,CPU102从目标存储设备108中读取数据。
正如能够被领会的,在数据能够被存储在高速缓存器106中并且还没有在目标存储设备108上被更新的任何时间点,并且因此,目标存储设备108不会具有那时用户相信被存储在那里的完整和一致的拷贝。结果,如果用户决定将目标存储设备108移动到其中不存在高速缓存软件110的另一操作系统(OS)环境时,则在目标存储设备108上的数据可能被破坏并且变得无用。
例如,当文件被部分存储在目标存储设备108上并且被部分存储在高速缓存器106中时,高速缓存软件110提供文件的完整视图,并且用户将所述文件看做正在被完整地存储在目标设备108上。然而,如果用户将目标存储设备108移动到其中不存在高速缓存软件110的另一OS环境时,目标存储设备108上的文件将不完整。然而,用户不知道文件是否是完整的,并且可能尝试修改文件。当目标存储设备108之后被返回到原始OS环境时,出现数据完整性问题。
传统上,通过让用户在将目标存储设备108移动到另一OS环境之前禁用高速缓存软件110来解决这个数据完整性问题。当高速缓存软件110被禁用时,它从高速缓存器106中清空所有的脏数据,以确保目标存储设备108上的数据是完整和干净的。现在,当目标存储设备108被转到另一OS环境时,将不会出现作为高速缓存结果的数据毁坏。
不幸地是,用户并不总是记得在去除目标存储设备108并且将其移动到另一OS环境之前禁用高速缓存软件110。结果,尽管高速缓存软件110具有高速缓存清空能力,但是健忘的用户仍然能够破坏目标存储设备108上的数据,因为他们在移动目标存储设备108之前忘记禁用高速缓存软件110。
鉴于前述,需要在替换OS环境中用于保护存储设备的数据完整性的系统和方法。理想地,即使当用户在将被高速缓存的存储设备移动到替换OS环境之前忘记禁用高速缓存软件时,所述系统和方法也应当提供一些保护。
发明内容
一般来说,通过提供用于在替换OS环境中保护被高速缓存存储设备的数据完整性的过程,本发明实施例解决了这些需要。在一个实施例中,公开了一种用于在替换操作系统(OS)环境中保护盘的数据完整性的方法。所述方法包括,用修改后的全局唯一标识符分区表(MGPT)来代替用于被高速缓存盘的全局唯一标识符分区表(GPT)。重要地,当OS使用MGPT访问被高速缓存分区时,MGPT使得被高速缓存盘上的被高速缓存分区不可访问,而当使用MGPT时,被高速缓存盘上的未被高速缓存分区仍然是可访问的。在正常操作中,使用基于GPT的信息,通常经由高速缓存软件,来访问被高速缓存盘上的数据。
为了确保被高速缓存盘上的被高速缓存分区在替换OS环境中是不可访问的,用于被高速缓存分区的MGPT中的分区条目具有与被存储在用于被高速缓存盘的GPT中的对应条目中的那些不同的开始和结束位置。然而,用于未被高速缓存分区的MGPT中的分区条目与用于被高速缓存盘的GPT中的对应条目相同,因此允许未被高速缓存分区在替换OS环境中保持可访问。通常以MGPT将被OS利用以在替换操作系统(OS)环境中引导被高速缓存盘的方式,将MGPT存储在被高速缓存盘上。能够将GPT存储在高速缓存盘上,该高速缓存盘用于回写高速缓存以为被高速缓存盘存储被高速缓存数据。此外,也将GPT存储在被高速缓存盘上除了MGPT位置之外的位置中,从而如果高速缓存盘以某种方式被破坏,则允许完全的GPT重建。
在本发明附加实施例中公开了一种用于在替换OS环境中用于保护盘的数据完整性的进一步方法。类似于以上,所述方法包括,用修改后的GPT(MGPT)来代替用于被高速缓存盘的GPT,其中,当MGPT被OS使用以访问被高速缓存分区时,MGPT使得被高速缓存盘上的被高速缓存分区不可访问,并且其中,当MGPT被OS使用以访问未被高速缓存分区时,被高速缓存盘上的未被高速缓存分区是可访问的。在正常操作中,使用基于GPT的信息,通常经由高速缓存软件来访问被高速缓存盘上的数据。然后,响应于接收禁用高速缓存的请求,用GPT来代替被高速缓存盘上的MGPT。如上,用于被高速缓存分区的MGPT中的分区条目具有与存储在用于被高速缓存盘的GPT中的对应条目不同的开始和结束位置,并且用于未被高速缓存分区的分区条目与用于被高速缓存盘的GPT中的对应条目相同。GPT被存储在高速缓存盘和被高速缓存盘两者上除了MGPT的位置以外的位置中。
在本发明再一实施例中公开了被具体化在计算机可读记录介质上、用于在替换OS环境中保护盘的数据完整性的计算机程序。所述计算机程序包括用修改后的GPT(MGPT)来代替用于被高速缓存盘的GPT的计算机指令,其中,当MGPT被OS使用来访问被高速缓存分区时,MGPT使得被高速缓存盘上的被高速缓存分区不可访问,并且其中,当MGPT被OS使用来访问未被高速缓存分区时,被高速缓存盘上的未被高速缓存分区可以访问。此外,包括使用基于GPT的信息来访问被高速缓存盘上的数据的计算机指令。类似于以上,用于被高速缓存分区的MGPT中的分区条目具有与存储在用于被高速缓存盘的GPT中的对应条目不同的开始和结束位置,并且用于未被高速缓存分区的分区条目与用于被高速缓存盘的GPT中的对应条目相同。以MGPT将被OS使用以在替换OS环境中引导被高速缓存盘的方式,将MGPT存储在被高速缓存盘上。响应于接收禁用高速缓存的请求,包括使用GPT来代替被高速缓存盘上的MGPT的计算机指令。
以这种方式,当被高速缓存盘被移动到其中不存在适当高速缓存软件的替换OS环境时,MGPT使得被高速缓存盘的被高速缓存分区不可访问,同时保持未被高速缓存分区在替换OS环境中仍然可以访问。结果,提醒用户将被高速缓存盘返回到原始计算机系统并且禁用高速缓存软件,以便使得整个被高速缓存盘在替换OS环境中可访问。通过结合附图以示例示出本发明原则的以下详细描述中,本发明的其他方面和优点将变得显而易见。
附图说明
通过结合附图参照以下详细描述,可以与其进一步的优点一起最佳地理解本发明,其中:
图1是示出具有回写高速缓存能力的示例现有技术计算机系统的框图;
图2是示出根据本发明实施例的、当被高速缓存盘被移动到替换OS环境时带有具有数据完整性保护的被高速缓存盘208的示例计算机系统的框图;
图3是示出根据本发明实施例的、示例GUID分区表(GPT)和对应的修改后的GUID分区表(MGPT)的图示;
图4是示出根据本发明实施例的、具有在替换OS环境中正在被访问的多个分区的被高速缓存盘的图示,替换OS环境没有在原始OS环境中使用的相同的高速缓存软件;
图5是示出根据本发明实施例的、其中被高速缓存盘已经被完全更新并且使得自身完整以及能够从不存在高速缓存软件的替换OS被安全访问的示例计算机系统的框图;
图6是示出根据本发明实施例的、当盘被移动到替换OS环境时用于保护被高速缓存盘的数据完整性的方法的流程图;以及
图7是示出根据本发明实施例的、响应于接收到禁用高速缓存的请求而用于使得在被高速缓存盘上的被高速缓存分区在替换OS环境中可访问的方法的流程图。
具体实施方式
公开了一种用于在替换OS环境中使用全局唯一标识符(GUID)分区表来保护被高速缓存(cached)存储设备的数据完整性的发明。一般来说,本发明的实施例使用盘的GUID分区表以提供用于保护被高速缓存盘(cacheddisk)的数据完整性的机制。因为OS试图经由GUID分区表来访问盘,所以这个过程提供在不需要附加硬件或者物理地改变系统结构的情况下,当在替换OS环境中时,用于控制用户在盘上所看到的内容的机制。
在以下的描述中,阐述许多特定细节以提供对本发明的全面理解。然而,本领域技术人员应当明白,可以在没有一些或全部这些特定细节的情况下实践本发明。在其他实例中,没有详细描述熟知的处理步骤以避免不必要地妨碍本发明。
关于现有技术来描述图1。图2是示出根据本发明实施例的、当被高速缓存盘208被移动到替换OS环境时带有具有数据完整性保护的被高速缓存盘208的示例计算机系统200的框图。计算机系统200包含连接到系统存储器204、高速缓存盘(caching disk)206以及被高速缓存盘208的中央处理单元(CPU)202。此外,高速缓存软件210被加载到系统存储器204中,并且其功能是促进在计算机系统200上的回写高速缓存的功能性。
高速缓存盘206通常是比被用于被高速缓存盘208更小和更快的访问盘。例如,高速缓存盘206能够是诸如基于NAND闪存的固态驱动器(SSD)的SSD或者相变存储器(PCM)。因为高速缓存盘206的增加的速度,所以针对高速缓存盘206的读和写可以比使用被高速缓存盘208所能够进行得更快地处理。通过之前向高速缓存盘206发送所有的写请求、随后将数据转移到被高速缓存盘208,回写高速缓存利用了这些差异。高速缓存软件210提供被高速缓存盘208的完整视图,因此用户总是看见被高速缓存盘208的完整视图,不论是否一些数据实际上被存储在高速缓存盘206上。
在正常操作期间,当CPU202处理向被高速缓存盘208写入数据的写请求时,高速缓存软件210解释写请求并且向高速缓存盘206写入数据。这个数据经常被称为“脏”数据,因为它还没有被写入到被高速缓存盘208,并且当它后来被写入被高速缓存盘208时,后来成为“干净”数据。当CPU202处理对于相同数据的读请求时,高速缓存软件210再一次解释读请求,并且确定数据是否位于高速缓存存储器中。当数据被存储在高速缓存存储器中时,CPU202从高速缓存盘206中读取数据,否则CPU202从被高速缓存盘208中读取数据。
如上所述,如果用户决定将被高速缓存盘208移动到没有相同高速缓存软件210的另一OS环境,则被高速缓存盘上的数据可能被破坏并且变得无用。通过用修改后的GUID分区表(MGPT)218来代替被高速缓存盘208的实际GUID分区表,使得当被移动到替换OS环境时被高速缓存盘208的被高速缓存内容不可访问,从而本发明实施例解决了此问题。
在BIOS系统中,在系统启动期间由CPU202运行的第一代码是系统BIOS,其建立用于计算机系统200的硬件并加载操作系统。系统BIOS然后识别诸如被高速缓存盘208的指定引导设备,并且试图加载进一步控制计算机系统200的操作系统(OS)软件。在利用可扩展固件接口(UEFI)标准的更新系统中,使用GUID分区表经由UEFI来提供此功能。
使用GUID分区表(GPT)的盘的第一扇区0被保留用于受保护的MBR,以支持从GPT盘引导基于BIOS的系统。用于访问GPT盘的布局和分区信息被存储在盘的扇区1至33中。这些起始扇区被称为GUID分区表。本发明实施例使用修改后的GUID分区表来代替用于盘的原始GUID分区表。例如,在一个实施例中,使用修改后的GUID分区表(MGPT)214来代替用于被高速缓存盘208的原始GPT212。将原始GPT212保存到被高速缓存盘208上的、例如接近(towards)被高速缓存盘208的末端的另一位置。此外,将原始GPT212保存到高速缓存盘206上。
图3是示出根据本发明实施例的、示例GUID分区表(GPT)212和对应的修改后的GUID分区表(MGPT)214的图示。如图3中所示,第一逻辑扇区被保留用于受保护的MBR,以支持从GPT盘引导基于BIOS的系统。在受保护的MBR扇区后面是主PGT报头和分区表条目。本发明实施例修改用于被高速缓存分区的条目,同时保持未被高速缓存的条目完好无缺。例如,在图3中,条目1 300a定义被高速缓存分区,同时条目2 300b定义未被高速缓存分区。本发明实施例使用MGPT214中用于条目1 300a’的虚拟数据来代替用于被高速缓存条目1 300a的数据。也就是说,MGPT214中用于条目1 300a’的分区开始和结束位置数据与原始GPT212中用于条目1 300a的分区开始和结束位置数据不同。
然而,本发明实施例不修改用于未被高速缓存分区的条目。例如,在图3中,条目2 300b定义未被高速缓存分区。因此,本发明实施例不替换在MGPT214中用于被高速缓存条目2 300b的数据。也就是说,MGPT214中用于条目2 300b的分区开始和结束位置数据与原始GPT212中用于条目2300b的分区开始和结束位置数据相同。因此,使用MGPT214的OS将具有对未被高速缓存分区的访问,而没有对被高速缓存分区的访问。
以此方式,如果在没有首先禁用高速缓存软件210的情况下,将被高速缓存盘208移动到替换OS环境,则新计算机系统将不能访问被高速缓存盘208上任何被高速缓存分区数据,因为它将加载具有虚拟分区条目数据300a’的MGPT214,该MGPT214存储关于被高速缓存分区的不正确布局和分区信息的并且因此使得被高速缓存盘208上的被高速缓存分区在没有适当的高速缓存软件210的情况下是不可访问的。
返回参照图2,在高速缓存盘206上和被高速缓存盘208上的预定新位置两者处存储用于被高速缓存盘208的原始GPT212。然而,应当注意到,GPT212可以被存储在除了被高速缓存盘208的LBA1-33以外的任何位置中。例如,利用被存储在高速缓存盘206上指向GPT212的地址的指针,GPT212能够被存储在被高速缓存盘208的另一非引导扇区。原始GPT212包括关于被高速缓存盘208的所有正确分区条目数据。一般来说,高速缓存软件210能够在正常操作期间保持GPT212为当前的(current)。
图4是示出根据本发明实施例的、具有在替换OS环境中正在被访问的多个分区400a-400n的被高速缓存盘208的图示,替换OS环境没有在原始OS环境中使用的相同高速缓存软件。在图4中示出的分区400a-400b对应于GPT212分区条目300a-300b和MGPT214分区条目300a’-300b。例如,分区1400a是被高速缓存分区并且对应于分区条目300a,同时,分区2400b是未被高速缓存分区并且对应于分区条目300b。
当被高速缓存盘208被移动到不具有在原始OS环境中使用的相同高速缓存软件的替换OS环境时,MGPT214允许用户访问被高速缓存盘208上的未被高速缓存分区2400b。然而,当被高速缓存盘208被移动到不具有在原始OS环境中使用的相同高速缓存软件的替换OS环境时,MGPT214使得被高速缓存盘208的被高速缓存分区1400a不可访问。结果,提醒用户将被高速缓存盘208返回到原始计算机系统并且禁用高速缓存软件210,以便在替换OS环境中使得被高速缓存盘208上的被高速缓存分区数据是可访问的。为了恢复被高速缓存盘208,本发明实施例清空(flush)高速缓存盘206,并且用已经被保持为当前的原始GPT212来代替被高速缓存盘208上的MGPT214。
图5是示出根据本发明实施例的、其中被高速缓存盘208已经被完全更新并且使得自身完整、以及能够从不存在高速缓存软件的替换OS中被安全访问的示例计算机系统200的框图。计算机系统200包括连接到系统存储器204、高速缓存盘206以及被高速缓存盘208的CPU202。此外,高速缓存软件210被加载到系统存储器204,并且其功能是促进计算机系统200上的回写高速缓存的功能性。如上所述,高速缓存软件210向OS提供被高速缓存盘208的完整视图,所以用户总是看见被高速缓存盘208的完整视图,不管一些数据是否实际被存储在高速缓存盘206上。
如上所述,如果所述用户决定将被高速缓存盘208移动到其中不存在相同高速缓存软件210的替换OS环境,则当替换OS环境使用修改后的GUID分区表来访问被高速缓存盘208上的数据时,修改后的GUID分区表使得被高速缓存盘208的被高速缓存分区不可访问。
因此,为了将被高速缓存盘208移动到替换OS环境,用户应当通过向高速缓存软件210发送用于禁用高速缓存的命令来禁用用于被高速缓存盘208的盘高速缓存。响应于接收到禁用用于被高速缓存盘208的高速缓存的请求,高速缓存软件210准备好被高速缓存盘208以安全去除和在替换OS环境中使用。
具体地说,通过确保仍然在高速缓存盘206上的用于被高速缓存盘208的所有脏数据被写入被高速缓存盘208,高速缓存软件210清空用于被高速缓存盘208的被高速缓存数据。此外,通过在必要时执行对GPT212的任何更新,高速缓存软件210确保用于被高速缓存盘208的原始GPT212对于被高速缓存盘208是一致和完整的。然后,高速缓存软件210将更新后的GPT212写入被高速缓存盘208。在图5的示例中,这通过利用用于被高速缓存盘208的更新后的GPT212来代替存储在被高速缓存盘208上的MGPT214来进行。此后,被高速缓存盘208上的所有分区是完整的。也就是说,被高速缓存盘208自身是完整的,并且能够从其中不存在高速缓存软件210的替换OS安全地被访问。
图6是示出根据本发明实施例的、当盘被移动到替换OS环境时用于保护被高速缓存盘的数据完整性的方法600的流程图。在初始操作602中,执行预处理操作。预处理操作能够包括例如将高速缓存软件加载到系统存储器中,以及利用从本公开的仔细阅读而获得的认知(hindsight)对于本领域技术人员将是显而易见的其他预处理操作。
在操作604中,用于被高速缓存盘的原始GUID分区表被存储在除了被高速缓存盘的扇区1-33以外的位置中。转到图2,当首先安装高速缓存软件210时以及在高速缓存软件210被最新使能以用于要被高速缓存的盘的任何时候,将用于被高速缓存盘208的原始GUID分区表读取并且存储在除了被高速缓存盘208的扇区1-33以外的位置中。本发明一个实施例读取用于被高速缓存盘的原始GPT,并且将原始GPT存储在除了被高速缓存盘的扇区1-33以外的位置中。例如,在图2中,用于被高速缓存盘208的原始GPT212被存储在高速缓存盘206上和被高速缓存盘208上除了扇区1-33以外的位置中。
返回参照图6,在操作606中,使用修改后的GUID分区表来代替用于被高速缓存盘的原始GUID分区表。如上所提及的,当OS使用修改后的GUID分区表访问数据时,修改后的GUID分区表使得盘上的被高速缓存分区不可访问。转到图2,本发明实施例利用MGPT214来代替被高速缓存盘上的GPT212的拷贝。这样,当经由没有相同高速缓存软件210的替换OS环境访问被高速缓存盘时,OS将尝试使用MGPT214访问被高速缓存盘。结果,被高速缓存盘208上的被高速缓存分区对于替换OS将是不可访问的,而被高速缓存盘208上的未被高速缓存分区在替换OS环境中将保持可访问。
在方法600的操作608中,使用基于原始GUID分区表的信息来访问被高速缓存盘上的数据。也就是说,在正常操作期间,高速缓存软件210解释用于访问被高速缓存盘206上的数据的所有请求,以使用高速缓存盘206来执行回写高速缓存。这通过使用基于原始GUID分区表的信息来完成,当在高速缓存盘206和被高速缓存盘208上更新数据时能够更新原始GUID分区表。
在操作610中执行后处理操作。后处理操作能够包括,例如:处理读和写请求;当时间允许时将脏数据提交给被高速缓存盘,以及使用在仔细阅读本公开之后提供的认知对于本领域技术人员将是显而易见的进一步后处理操作。
图7是示出根据本发明实施例的、响应于接收到禁用高速缓存的请求而用于在替换OS环境中使得被高速缓存盘上的被高速缓存分区可访问的方法700的流程图。在初始操作702中,执行预处理操作。预处理操作能够包括,例如,提供关于被高速缓存盘的回写高速缓存功能性,以及使用在仔细阅读本公开之后提供的认知对本领域技术人员将是显而易见的其他预处理操作。
在操作704中,接收禁用高速缓存的请求。当用户想要将被高速缓存盘移动到替换OS环境时,用户应当首先禁用用于被高速缓存盘的高速缓存,以便确保存储在被高速缓存盘上的数据被完全更新并是干净的。正如将在以下更详细描述,禁用用于被高速缓存盘的高速缓存触发高速缓存软件,以确保盘被完全更新并是完整的,并且能够从其中不存在高速缓存软件的替换OS中被安全地访问。
响应于接收到禁用高速缓存的请求,在操作706中,利用已经被保持到最新的、用于被高速缓存盘的原始分区表来代替被高速缓存盘上的修改后的GUID分区表。可以通过利用用于被高速缓存盘的完全更新的GPT来代替被高速缓存盘上的MGPT而执行此操作。转到图5,响应于接收到禁用用于被高速缓存盘208的高速缓存的请求,高速缓存软件210准备好被高速缓存盘208以安全去除和在替换OS环境中使用。因此,通过确保仍然在高速缓存盘206上的用于被高速缓存盘208的所有脏数据被写入被高速缓存盘208,高速缓存软件210清空用于被高速缓存盘208的被高速缓存数据。此外,通过在必要时对GUID分区表212执行任何更新,高速缓存软件210确保用于被高速缓存盘208的原始GUID分区表212对于被高速缓存盘208是一致和完整的。然后,高速缓存软件210将更新后的GUID分区表212写入被高速缓存盘208。在图5的示例中,这通过利用用于被高速缓存盘208的GPT212来代替存储在被高速缓存盘208上的MGPT214来进行。此后,被高速缓存盘208上的数据是完整的。也就是说,被高速缓存盘208自身是完整的,并且从其中不存在高速缓存软件210的替换OS中能够被安全地访问。
返回参照图7,在操作708中禁用被高速缓存盘的高速缓存功能性。一旦高速缓存软件准备好被高速缓存盘以安全去除和在替换OS环境中使用,则用于被高速缓存盘的高速缓存功能性被禁用,并且正常被高速缓存的盘能够被移动到替换OS环境并且被安全地访问。在操作710中执行后处理操作。后处理操作能够包括,例如:使能用于其他设备的高速缓存;从系统去除正常被高速缓存的盘;以及使用在仔细阅读本公开之后提供的认知对于本领域技术人员将是显而易见的其他后处理操作。
能够在其中包含多于一个盘以提供存储子系统的完整视图的任何存储环境中利用本发明实施例。例如,能够在使用多个驱动来存储数据的RAID环境中利用本发明实施例。在RAID中,能够使用RAID软件来提供RAID表示的逻辑设备的完整视图。然而,RAID阵列的各盘中的每一个能够具有使用修改后的GUID分区表代替的GUID分区表,当盘被移动到其中不存在RAID软件的替换OS环境时,GUID分区表使得存储在盘上的数据不可访问。以此方式,如果任何盘被错误地移动到替换OS环境,则能够保护各个RAID盘上的数据的完整性。
虽然为了理解清晰已经详细描述了前述发明,但是显然在所附权利要求书的范围内可以实践某些改变和修改。因此,本实施例将被认为是说明性的而不是限制性的,并且发明将不限于这里所给出的细节,而是可以在所附权利要求的范围和等价物之内进行修改。
Claims (20)
1.一种用于在替换操作系统(OS)环境中保护盘的数据完整性的方法,包括:
用修改后的全局唯一标识符分区表(MGPT)来代替用于被高速缓存盘的全局唯一标识符分区表(GPT),其中,当MGPT被OS使用来访问被高速缓存分区时,MGPT使得被高速缓存盘上的被高速缓存分区不可访问,并且其中,当MGPT被OS使用来访问未被高速缓存分区时,被高速缓存盘上的未被高速缓存分区是可访问的;以及
使用基于GPT的信息来访问被高速缓存盘上的数据。
2.如权利要求1所述的方法,其中,用于被高速缓存分区的MGPT中的分区条目具有与被存储在用于被高速缓存盘的GPT中的对应条目不同的开始和结束位置。
3.如权利要求2所述的方法,其中,用于未被高速缓存分区的MGPT中的分区条目与用于被高速缓存盘的GPT中的对应条目相同。
4.如权利要求2所述的方法,其中,以MGPT将被OS利用以在替换操作系统(OS)环境中引导被高速缓存盘的方式,将MGPT存储在被高速缓存盘上。
5.如权利要求1所述的方法,进一步包括:响应于接收到禁用高速缓存的请求,用GPT来代替被高速缓存盘上的MGPT。
6.如权利要求1所述的方法,其中,GPT被存储在高速缓存盘上,其中所述高速缓存盘被用于回写高速缓存以存储用于被高速缓存盘的被高速缓存数据。
7.如权利要求6所述的方法,其中,GPT也被存储在被高速缓存盘上除了MGPT的位置以外的位置中。
8.一种用于在替换操作系统(OS)环境中保护盘的数据完整性的方法,包括:
用修改后的全局唯一标识符分区表(MGPT)来代替用于被高速缓存盘的全局唯一标识符分区表(GPT),其中,当MGPT被OS使用来访问被高速缓存分区时,MGPT使得被高速缓存盘上的被高速缓存分区不可访问,并且其中,当MGPT被OS使用来访问未被高速缓存分区时,被高速缓存盘上的未被高速缓存分区是可访问的;
使用基于GPT的信息来访问被高速缓存盘上的数据;以及
响应于接收到禁用高速缓存的请求,用GPT来代替被高速缓存盘上的MGPT。
9.如权利要求8所述的方法,其中,用于被高速缓存分区的MGPT中的分区条目具有与被存储在用于被高速缓存盘的GPT中的对应条目不同的开始和结束位置。
10.如权利要求9所述的方法,其中,用于未被高速缓存分区的MGPT中的分区条目与用于被高速缓存盘的GPT中的对应条目相同。
11.如权利要求9所述的方法,其中,以MGPT将被OS利用以在替换操作系统(OS)环境中引导被高速缓存盘的方式,将MGPT存储在被高速缓存盘上。
12.如权利要求8所述的方法,其中,GPT被存储在高速缓存盘上,其中所述高速缓存盘被用于回写高速缓存以存储用于被高速缓存盘的被高速缓存数据。
13.如权利要求8所述的方法,其中,GPT也被存储在被高速缓存盘上除了MGPT的位置以外的位置中。
14.一种具体化在计算机可读介质上、用于在替换操作系统(OS)环境中保护盘的数据完整性的计算机程序,包括:
计算机指令,用修改后的全局唯一标识符分区表(MGPT)来代替用于被高速缓存盘的全局唯一标识符分区表(GPT),其中,当MGPT被OS使用来访问被高速缓存分区时,MGPT使得被高速缓存盘上的被高速缓存分区不可访问,并且其中,当MGPT被OS使用来访问未被高速缓存分区时,被高速缓存盘上的未被高速缓存分区是可访问的;以及
计算机指令,使用基于GPT的信息来访问被高速缓存盘上的数据。
15.如权利要求14所述的计算机程序,其中,用于被高速缓存分区的MGPT中的分区条目具有与被存储在用于被高速缓存盘的GPT中的对应条目中不同的开始和结束位置。
16.如权利要求15所述的计算机程序,其中,用于未被高速缓存分区的MGPT中的分区条目与用于被高速缓存盘的GPT中的对应条目相同。
17.如权利要求14所述的计算机程序,其中,以MGPT将被OS利用以在替换操作系统(OS)环境中引导被高速缓存盘的方式,将MGPT存储在被高速缓存盘上。
18.如权利要求14所述的计算机程序,进一步包括计算机指令:响应于接收到禁用高速缓存的请求,用GPT来代替被高速缓存盘上的MGPT。
19.如权利要求14所述的计算机程序,其中,GPT被存储在高速缓存盘上,其中高速缓存盘被用于回写高速缓存以存储用于被高速缓存盘的被高速缓存数据。
20.如权利要求14所述的计算机程序,其中,GPT被存储在盘上除了MGPT的位置以外的位置中。
Applications Claiming Priority (4)
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/595,986 | 2012-08-27 | ||
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 |
US13/967,219 | 2013-08-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103631564A true CN103631564A (zh) | 2014-03-12 |
CN103631564B CN103631564B (zh) | 2017-03-22 |
Family
ID=50069724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310379354.7A Active CN103631564B (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 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088481A1 (en) * | 2002-11-04 | 2004-05-06 | Garney John I. | Using non-volatile memories for disk caching |
CN1497448A (zh) * | 2002-09-30 | 2004-05-19 | �Ҵ���˾ | 在操作系统内核环境中高速缓存应用数据的系统和方法 |
US20050138282A1 (en) * | 2003-12-18 | 2005-06-23 | Garney John I. | Maintaining disk cache coherency in multiple operating system environment |
CN101387989A (zh) * | 2008-10-29 | 2009-03-18 | 北京世纪红山科技有限公司 | 构建基于分区管理的虚拟存储设备的计算机系统及方法 |
CN101727405A (zh) * | 2008-10-20 | 2010-06-09 | 株式会社东芝 | 虚拟地址高速缓冲存储器和方法以及处理器 |
US20120089786A1 (en) * | 2010-10-06 | 2012-04-12 | Arvind Pruthi | Distributed cache coherency protocol |
WO2012065265A1 (en) * | 2010-11-16 | 2012-05-24 | Rayan Zachariassen | Endpoint caching for data storage systems |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1503283A1 (en) * | 2003-08-01 | 2005-02-02 | Hewlett-Packard Development Company, L.P. | Data processing system and method |
US7934069B2 (en) * | 2007-04-27 | 2011-04-26 | Hewlett-Packard Development Company, L.P. | Enabling and disabling cache in storage systems |
-
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
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1497448A (zh) * | 2002-09-30 | 2004-05-19 | �Ҵ���˾ | 在操作系统内核环境中高速缓存应用数据的系统和方法 |
US20040088481A1 (en) * | 2002-11-04 | 2004-05-06 | Garney John I. | Using non-volatile memories for disk caching |
US20050138282A1 (en) * | 2003-12-18 | 2005-06-23 | Garney John I. | Maintaining disk cache coherency in multiple operating system environment |
CN101727405A (zh) * | 2008-10-20 | 2010-06-09 | 株式会社东芝 | 虚拟地址高速缓冲存储器和方法以及处理器 |
CN101387989A (zh) * | 2008-10-29 | 2009-03-18 | 北京世纪红山科技有限公司 | 构建基于分区管理的虚拟存储设备的计算机系统及方法 |
US20120089786A1 (en) * | 2010-10-06 | 2012-04-12 | Arvind Pruthi | Distributed cache coherency protocol |
WO2012065265A1 (en) * | 2010-11-16 | 2012-05-24 | Rayan Zachariassen | Endpoint caching for data storage systems |
Non-Patent Citations (2)
Title |
---|
ET OSOSANYA等: "Design and performance evaluation of an expendable modular directory scheme for maintaining cache coherency in multiprocessor systems", 《SOUTHEASTERN SYMPOSIUM ON SYSTEM THEORY》 * |
黄安文等: "多核处理器非一致Cache体系结构延迟优化技术研究综述", 《计算机研究与发展》 * |
Also Published As
Publication number | Publication date |
---|---|
CN103631564B (zh) | 2017-03-22 |
DE102013109088A1 (de) | 2014-02-27 |
US20140059293A1 (en) | 2014-02-27 |
KR20140027885A (ko) | 2014-03-07 |
KR102145358B1 (ko) | 2020-08-18 |
TW201418984A (zh) | 2014-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8621144B2 (en) | Accelerated resume from hibernation in a cached disk system | |
US8595451B2 (en) | Managing a storage cache utilizing externally assigned cache priority tags | |
KR101347285B1 (ko) | 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록매체 그리고 이에 적합한 장치 | |
JP5663060B2 (ja) | フラッシュメモリシステムの高速起動を容易にする方法およびシステム | |
KR101702201B1 (ko) | 솔리드 스테이트 드라이브(ssd)에 대한 최적화된 컨텍스트 드롭 | |
US20150039837A1 (en) | System and method for tiered caching and storage allocation | |
US20140195725A1 (en) | Method and system for data storage | |
US20140258628A1 (en) | System, method and computer-readable medium for managing a cache store to achieve improved cache ramp-up across system reboots | |
US20110258487A1 (en) | Nand power fail recovery | |
US9710283B2 (en) | System and method for pre-storing small data files into a page-cache and performing reading and writing to the page cache during booting | |
US20180150390A1 (en) | Data Storage Device and Operating Method Therefor | |
US9378152B2 (en) | Systems and methods for I/O processing using out-of-band hinting to block driver or storage controller | |
US20140372710A1 (en) | System and method for recovering from an unexpected shutdown in a write-back caching environment | |
US20170031771A1 (en) | Dynamically Growing and Shrinking Snapshot Repositories Without Impacting Performance or Latency | |
US20230153012A1 (en) | Memory system and control method | |
US9785552B2 (en) | Computer system including virtual memory or cache | |
US20140059291A1 (en) | Method for protecting storage device data integrity in an external operating environment | |
JP2006099802A (ja) | 記憶制御装置およびキャッシュメモリの制御方法 | |
CN103631564A (zh) | 保护被高速缓存盘的数据完整性的方法 | |
US10162573B2 (en) | Storage management system, storage management method, storage medium and information processing system | |
US9384135B2 (en) | System and method of caching hinted data | |
US11494112B2 (en) | Storage device and accessing method for operation log thereof | |
US20150242155A1 (en) | Method for protecting storage device data integrity in an external operating environment | |
US20130326146A1 (en) | Information processing apparatus, memory apparatus, and data management method | |
JP2015158902A (ja) | メモリおよびコントローラを備える装置およびデータ記憶装置を備える装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |