存储装置上的数据的微日志的制作方法

文档序号:6775263阅读:136来源:国知局
专利名称:存储装置上的数据的微日志的制作方法
技术领域
本发明的实施例涉及数据存储的领域。
背景技术
几乎在所有的计算机系统操作中都使用硬盘驱动器。事实上,在没有某些类型的硬盘驱动器来存储诸如引导操作、操作系统、应用程序等的最基本的计算信息的情况下,大多数计算系统不能工作。通常,硬盘驱动器是可以或不可以拆卸的装置,但是,在没有硬盘驱动器的情况下,计算系统通常不能工作。
基本硬盘驱动器模型在大约50年前被建立,并且,类似于留声机。也就是说,硬盘驱动器模型包括以基本恒定的转速旋转的存储盘或硬盘。利用致动器臂或滑块,以伸出到盘上方。该臂具有由悬架、挠件(flexure)和承载读/写部件的滑块组成的磁头万向架组件(head-gimbal-assembly,HGA)。
在操作中,通过具有中央驱动轴的主轴马达组件,在设置速度下转动硬盘。此外,跨越盘而存在以已知间隔均匀隔开的磁道。当接收到对特定部分或磁道的读取的请求时,硬盘的致动器和伺服系统经由该臂将磁头调准到特定磁道位置上方,并且,磁头从盘读取信息。以相同的方式,当接收到对特定部分或磁道的写入的请求时,硬盘经由该臂将磁头调准到特定磁道位置上方,并且,磁头将信息写入到盘。
过去,512字节的扇区是硬盘驱动器上可用的最小单独存储单元。然而,随着硬盘驱动器的容量的增长,以512字节扇区的方式实现存储变得越来越没有效率。结果,硬盘驱动器技术的最近趋势已实现了较大的扇区(例如4096字节)。然而,较老的操作系统的文件系统可能不兼容这些较大的扇区。由此,为反向兼容这些较老的文件系统,将较大的扇区划分为512字节的“逻辑块”。
因为扇区是可写入数据的最小的单独单元,所以将较新的硬盘驱动器限制为写入整个4096字节扇区,即使正在修改小于该扇区的整个4096字节容量时也是这样。由此,在与较老的文件系统一起工作的时候,当正在修改一个逻辑块时,将整个扇区读取到存储器中,修改一个或更多个逻辑块中的数据,并且,重写该数据来覆盖该扇区中的原始数据。典型地,由硬盘驱动器显式地管理此过程,使得该硬盘驱动器对主机系统呈现为由512字节扇区组成。
然而,如果由于例如主机系统的突然断电而造成未完成重写操作,那么,这产生了潜在的数据完整性问题。更具体地,如果在断电前仅已覆写了扇区中原始数据的一部分,则整个扇区无效,并且,扇区中的原始数据可能无法恢复地丢失了。此外,可能不存在确定原始数据被断电影响的途径。这在未对齐(unaligned)的写操作(例如,正在覆写仅一部分原始数据的写操作)中尤其成为问题。尽管当前系统在正在被写入到扇区的数据包括完整的新数据(例如,对齐的写操作)时提供数据恢复,但是,它们不在未对齐的写操作中提供数据恢复。

发明内容
本发明的实施例阐述了保护硬盘驱动器上的数据的方法。在一个实施例中,从硬盘驱动器的至少一个扇区读取数据的第一拷贝,并将其存储在第一位置中。将数据的第二拷贝存储在硬盘驱动器的非易失性存储位置中。随后,修改数据的第一拷贝,以创建修改的拷贝。随后,使用数据的第二拷贝来验证已将数据的修改的拷贝正确地写入到硬盘驱动器的至少一个扇区。


被合并、并形成此说明书一部分的附解了本发明的实施例,并且与描述一起用来说明本发明的原理。除非特别注明,此描述中所指的图均应被理解为未按比例绘制。
图1A和1B示出了根据本发明的实施例的硬盘驱动器的部件。
图2是根据本发明的实施例的保护硬盘驱动器上的数据的方法的流程图。
图3是示出根据本发明的实施例的硬盘驱动器的扇区中的数据的存储的框图。
图4示出了根据本发明的实施例的示例的数据流程。
具体实施例方式
现在,将详细参考本发明的实施例,在附图中示出了本发明的示例。尽管将结合下面的实施例来说明本发明,但是,应理解,它们不意图将本发明仅限于这些实施例。相反,本发明意图涵盖可被包括在如由所附权利要求定义的本发明的精神和范围内的替换、修改和等价物。另外,在以下本发明的详细描述中,阐述大量特定细节,以便提供对本发明的完全的理解。但是,也可在没有这些特定细节的情况下实践本发明的实施例。在其它实例中,未详细描述公知的方法、过程、部件和电路,以便不会不必要地混淆本发明的各个方面。
现在,参考图1A,其示出了用于计算机系统的磁硬盘文件或驱动器100的一个实施例的示意图。驱动器100具有下部外壳或基座113,其包含具有至少一个介质或磁盘102的盘组。应注意,典型地,在硬盘驱动器100的正常操作期间,上部外壳(未示出)与外壳113耦接。由具有中央驱动轴117的主轴马达组件旋转(见箭头141)一个盘或多个盘102。将包括多个梳齿状形式的平行致动器臂105(示出了一个)的致动器以可移动或枢轴方式围绕着枢轴(pivot)组件123安装到基座113上。还将控制器(未示出)安装到基座113,用于相对于盘102而选择性地移动臂105的梳齿(comb)。
在所示出的实施例中,每个臂105具有从其延伸出的至少一个悬臂负载梁和悬架106。将磁读/写换能器或磁头安装在滑块101上,并且,将其牢固地固定到被挠性地安装在每个悬架106上的挠件。读/写磁头以磁性方式从盘102读取数据、和/或以磁性方式向盘102磁写入数据。被称为磁头万向架组件(HGA)的集成级(level of integration)是被安装在悬架106上的磁头和滑块101。通常将滑块101联结到悬架106的末端。典型地,磁头是微微级别大小(pico size)的(大约1245×1000×300微米),并且由陶瓷或金属间材料形成。磁头还可以是“毫微微”级别大小(femto size)的(大约850×700×230微米),并且,由悬架106相对盘102的表面预加载磁头(在2到10克的范围内)。
悬架106具有类似弹簧的性质,其使滑块101的空气承载(air-bearing)表面相对盘102而偏离(bias)或推进(urge),以使滑块101在与盘的精确距离下飞行(fly)。将音圈磁组件104安装到下部外壳113,并还将其安装到与磁头万向架组件相对的臂105。通过控制器引起的音圈磁组件104的移动沿着跨越盘102上的磁道的径向弧线而移动磁头万向架组件,直到将读/写换能器置于期望的数据磁道上方为止。磁头万向架组件以传统方式操作,并且,典型地,以相互一致的方式移动,除非驱动器100使用臂可相互独立地移动的多个独立的致动器(未示出)。
根据本发明的实施例,驱动器100还包括驱动电子卡140,其被用作集成控制器。在图1B中,总线142与处理器143耦接。处理器143用于控制硬盘驱动器100的操作。例如,处理器143可用于控制用来旋转硬盘102的主轴马达、控制定位臂105的致动器、管理所有读和写操作、实现功率管理和几何变换、优化多重请求、管理内部高速缓冲存储器、以及预取(pre-fetch)操作等。可将处理器143与非易失性存储器144(例如,闪存器件)、用于存储由处理器143使用的信息和指令的非易失性只读存储器(ROM)145、以及易失性存储器148以通信方式耦接。应注意,在本发明的实施例中,ROM 145可包括闪存器件。可替换地,在本发明的实施例中,可将通常被存储在ROM 145中的信息和指令存储在非易失性存储器144中。典型地,可使用易失性存储器148来对正在被写入到硬盘102、或正在从硬盘102读取的数据进行高速缓存。
经由输入/输出接口(例如,I/O 146)来读取数据、或向硬盘102写入数据,典型地,该输入/输出接口经由读放大电路(未示出)而耦接到总线142。第二输入/输出接口(例如,I/O 147)与总线142耦接,并向和从主机计算机系统(未示出)传送数据和指令,其中,将硬盘驱动器100耦接到该主机计算机系统。
图2是根据本发明的实施例的用于保护硬盘驱动器上的数据的方法200的流程图。应注意,方法200描述了由单个硬盘驱动器(例如,100)执行的读-修改-写操作。在图2的步骤210中,从硬盘驱动器的至少一个扇区读取的数据的拷贝被存储在硬盘驱动器的非易失性存储位置中。为了本发明的目的,术语“扇区”是指由硬盘驱动器访问的硬盘上的空间的最小连续单位。在本发明的实施例中,所述非易失性存储位置可在硬盘自身上,或为硬盘驱动器100的另一非易失性存储位置(例如,非易失性存储器144)。在本发明的实施例中,可保留硬盘102的多个位置,用于接收数据的拷贝。将该数据存储在物理上最接近原始数据的位置中是有利的。
在图2的步骤220中,使用被存储在非易失性存储位置中的数据的拷贝,来验证已将数据的修改的拷贝正确地写入到至少一个扇区。在本发明的实施例中,当成功地将修改的数据写入到先前在上面的步骤210中访问的扇区中时,将被存储在非易失性存储位置中的数据的拷贝标记为数据的无效拷贝,或者将其从该位置擦除。
有利地,本发明的实施例有助于将数据写入到硬盘驱动器,其中,如果中断了数据覆写(尤其是在未对齐的写操作中),则本发明的实施例允许原始数据的复原。如将在下面更详细地描述的,尽管当正在被写入到扇区的数据包括完整的新数据时(例如,对齐的写操作)、当前系统提供数据恢复,但是,当正在覆写原始数据的仅一部分时(例如,未对齐的写操作),它们不提供数据恢复。
在传统的硬盘驱动器中,使用易失性存储器148作为读/写高速缓冲存储器意味着如果例如计算机系统断电,则存储在其中的数据将丢失。由此,如果在未对齐的写操作中已覆写了扇区的一部分,那么,当发生断电时,在易失性存储器148中高速缓存的数据丢失,并且,传统系统没有恢复或复原被部分覆写的扇区的准备措施。此外,可能完全没有途径来检测数据丢失。
通过使用非易失性存储器(例如,硬盘102和/或非易失性存储器144)来存储数据的拷贝,本发明的实施例提供了一种系统,用于恢复和复原如上所述的可能被破坏的扇区中的原始数据。此外,因为仅在将修改的数据写入到扇区中之后、数据的拷贝才被标记为无效或被擦除,所以,本发明的实施例利用所存储的数据的拷贝来指示是否已成功地将修改的数据写入到扇区。
现在,参考图3,在本发明的实施例中,将数据存储在硬盘102上的扇区(例如,310、320、330、340以及350)中。在早先的实现中,典型地,扇区大小为512字节。然而,如上面所讨论的,由于硬盘驱动器的更大的容量,现在使用如此小的扇区是不方便的。由此,在本发明的实施例中,扇区(例如,310、320、330、340以及350)可以是(但不限于)4096字节的大小。
如上所述,因为一些先前的文件系统不能以大于512字节的扇区的方式来工作,所以,可将每个扇区(例如,310、320、330和340)划分为多个512字节的逻辑数据扇区(例如,310a、310b、310c、310d、310e、310f、310g、310h),以便反向兼容这些文件系统。作为示例,即使逻辑数据扇区310f中的数据是仅有的要被修改的数据,在修改逻辑数据扇区310f中的数据之前也仍然必须读取整个扇区(例如,310)。这样,包括逻辑数据扇区310f的修改的数据的整个扇区310被写入覆盖在扇区310中存储的原始数据。将其称为未对齐写入,这是因为,与覆写扇区310中的所有数据(例如,从逻辑数据扇区310a开始,然后是所有其它逻辑数据扇区)不同,仅覆写数据的一部分(例如,逻辑数据扇区310f)。应注意,取决于已从原始数据修改的数据的量,未对齐写操作可能包括多于一个逻辑数据扇区(例如,扇区310的逻辑数据扇区310f、310g和310h),并且,可能在多于一个扇区(例如,扇区310和330)上被执行。例如,如果修改扇区310、320和330中的数据,那么,可能发生修改扇区310和330中的仅一些逻辑数据扇区(例如,未对齐写操作),而修改居于其间的扇区320中的逻辑数据扇区中的全部。
如果当用修改的数据来覆写扇区310中的原始数据时发生断电、或其它中断,那么,在传统系统中,没有恢复或复原数据(不论是原始数据,还是修改的数据)的准备措施,这是因为,典型地,数据被高速缓存在硬盘驱动器的易失性存储器件中。然而,在本发明的实施例中,因为将来自扇区310的原始数据的拷贝存储在非易失性存储器144中,所以,可在恢复对主机计算机系统的供电之后,使用该拷贝来恢复扇区310中的原始数据。
图4示出了根据本发明的实施例的示例的数据流程。在图4的实施例中,包括扇区310、320和330的原始数据401被存储在硬盘102上。在事件405中,响应于数据读取,将原始数据401的拷贝(例如,403)高速缓存在易失性存储器148中。在事件410中,由硬盘驱动器100经由总线142接收用于修改原始数据的数据402,并且,也将数据402高速缓存在易失性存储器148中。处理器143还接收用数据402来修改或替换原始数据401中的至少一些的命令,由此创建包括扇区310’、320’和330’的数据的修改的拷贝404。
在本实施例中,当由数据的修改的拷贝404覆写原始数据401时,仅要部分地覆写扇区310和330中的数据(例如,未对齐的写操作)。响应于覆写原始数据401的命令,如图4所示,在事件420,将扇区310和330的原始数据的拷贝408存储在硬盘102的替换位置。可替换地,如图4所示,在事件425,可将扇区310和330的原始数据的拷贝408’存储在非易失性存储器144中。注意,在本发明的实施例中,还可连同拷贝408和/或408’一起包括附加信息,如扇区310和330原始所处的硬盘102的位置。
在将拷贝408存储在硬盘102上、或将拷贝408’存储在非易失性存储器144中之后,通过用数据402修改拷贝403,来创建数据的修改的拷贝404。注意,尽管本实施例教导了在存储拷贝408或408’之后创建数据的修改的拷贝404,但是,在本发明的实施例中,可在存储拷贝408或408’之前创建数据的修改的拷贝404。然后,在事件430,将修改的拷贝404存储在硬盘102上的原始数据401的物理位置中,由此覆写原始数据401。一旦成功地写入数据的修改的拷贝404来覆盖原始数据401,便将硬盘102上的拷贝408、或非易失性存储器144中的拷贝408’标记为扇区310和330的无效拷贝。可替换地,一旦成功地写入修改的数据404来覆盖原始数据401,便可从硬盘102或非易失性存储器144擦除拷贝408或拷贝408’。
然而,如果当正在由数据的修改拷贝404覆写原始数据401时、中断主机计算机系统的供电,则扇区310和/或330中的数据可能丢失或破坏。因此,在本发明的实施例中,拷贝408或408’将不会被标记为无效拷贝和/或被从硬盘102或非易失性存储器144擦除。一旦恢复对主机计算机系统的供电,处理器143便确定拷贝408或408’是扇区310和330的有效拷贝,并且,在这些扇区中的数据可被复原为原始数据401。
由此描述了本发明的优选实施例,即存储装置上的数据的微日志(micro-journaling)。尽管已在特定实施例中描述了本发明,但是,应理解,本发明不应被解释为受这些实施例限制,而应根据所附权利要求来解释本发明。
权利要求
1.一种用于保护硬盘驱动器上的数据的方法,所述方法包括将从硬盘的至少一个扇区读取的数据的拷贝存储在所述硬盘驱动器的非易失性存储位置上;以及使用所述数据的拷贝来验证已将数据的修改的拷贝正确地写入到所述至少一个扇区。
2.如权利要求1所述的方法,还包括确定尚未将所述数据的修改的拷贝正确地写入到所述至少一个扇区;以及在所述至少一个扇区中复原所述数据的拷贝。
3.如权利要求1所述的方法,其中,使用所述数据的拷贝来验证已将所述修改的拷贝正确地写入到所述至少一个扇区的步骤还包括确定所述数据的拷贝包括数据的有效拷贝。
4.如权利要求1所述的方法,其中,存储所述数据的拷贝的步骤还包括将所述数据的拷贝存储在与所述硬盘分离的、所述硬盘驱动器的非易失性存储位置中。
5.如权利要求1所述的方法,其中,所述方法还包括保留所述硬盘的多个位置,用于存储所述数据的拷贝。
6.如权利要求1所述的方法,其中,所述方法还包括与所述数据的拷贝一起存储所述至少一个扇区的位置的指示。
7.如权利要求1所述的方法,还包括接收对所述至少一个扇区执行未对齐的写操作的命令;以及从所述硬盘读取所述数据的拷贝。
8.一种用于保护硬盘驱动器上的数据的系统,所述系统包括外壳;盘组,其被安装到所述外壳,并包括可相对于所述外壳旋转的至少一个硬盘,该盘组限定旋转轴、以及相对于该轴的径向方向;安装到所述外壳的非易失性存储器,其与所述至少一个硬盘分离;以及安装到所述外壳的控制器,所述控制器包括与所述至少一个硬盘分离的非易失性存储器,所述控制器还用于实现保护硬盘驱动器上的数据的方法,所述方法包括将从硬盘的至少一个扇区读取的数据的拷贝存储在所述硬盘驱动器的非易失性存储位置中;以及使用所述数据的拷贝来验证已将数据的修改的拷贝正确地写入到所述至少一个扇区。
9.如权利要求8所述的系统,其中,所述方法还包括确定尚未将所述数据的修改的拷贝正确地写入到所述至少一个扇区;以及在所述至少一个扇区中复原所述数据的拷贝。
10.如权利要求8所述的系统,其中,使用所述数据的拷贝来验证已将所述修改的拷贝正确地写入到所述至少一个扇区的步骤还包括确定所述数据的拷贝包括数据的有效拷贝。
11.如权利要求8所述的系统,其中,存储所述数据的拷贝的步骤还包括将所述数据的拷贝存储在与所述硬盘分离的、所述硬盘驱动器的非易失性存储位置中。
12.如权利要求8所述的系统,其中,所述方法还包括保留所述硬盘的多个位置,用于存储所述数据的拷贝。
13.如权利要求8所述的系统,其中,所述方法还包括与所述数据的拷贝一起存储所述至少一个扇区的位置的指示。
14.如权利要求8所述的系统,其中,所述方法还包括接收对所述至少一个扇区执行未对齐的写操作的命令;以及从所述硬盘读取所述数据的拷贝。
15.一种硬盘驱动器系统,包括盘组,其包括至少一个硬盘;存储部件,用于存储从所述盘组的至少一个扇区读取的数据的拷贝;以及控制部件,用于使用所述数据的拷贝来验证已将所述数据的拷贝的修改的拷贝正确地写入到所述至少一个扇区。
16.如权利要求15所述的硬盘驱动器系统,其中,所述控制部件还用于响应于确定尚未将所述数据的所述修改的拷贝正确地写入到所述至少一个扇区,而将所述数据的拷贝复原到所述至少一个扇区。
17.如权利要求15所述的硬盘驱动器系统,其中,所述存储部件处于所述硬盘驱动器系统的与所述至少一个硬盘分离的位置上。
18.如权利要求15所述的硬盘驱动器系统,其中,所述控制部件还用于指示当已将所述修改的拷贝正确地写入到所述至少一个扇区时,所述数据的所述拷贝包括数据的无效拷贝。
19.如权利要求15所述的硬盘驱动器系统,其中,所述存储部件还用于与所述数据的拷贝一起存储所述至少一个扇区的位置的指示。
全文摘要
本发明的实施例说明了保护硬盘驱动器上的数据的方法。在一个实施例中,从硬盘驱动器的至少一个扇区读取数据的第一拷贝,并将其存储在第一位置中。将数据的第二拷贝存储在硬盘驱动器的非易失性存储位置中。随后,修改数据的第一拷贝,以创建修改的拷贝。随后,使用数据的第二拷贝来验证已将数据的修改的拷贝正确地写入到硬盘驱动器的至少一个扇区。
文档编号G11B19/04GK1959827SQ200610142420
公开日2007年5月9日 申请日期2006年10月23日 优先权日2005年11月3日
发明者丹尼尔·J·科尔格罗夫, 理查德·M·H·纽 申请人:日立环球储存科技荷兰有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1