在磁盘上存储数据和元数据的方法

文档序号:6459389阅读:372来源:国知局
专利名称:在磁盘上存储数据和元数据的方法
技术领域
本发明涉及一种数据存储技术领域的方法,具体是一种在磁盘上存储数据和 元数据的方法。
背景技术
数据在磁盘上存储需要适当的格式。为此,磁盘的盘面被格式化为磁道,磁 道进一步被划分为扇区,而扇区则是磁盘实际存储数据的单位。除了扇区可作为 磁盘数据存储的单位,若干扇区也可以被组织为一个访问单位,比如页或者簇。 为了能够管理扇区以及由扇区组成的页或簇,还需要相关的元数据,以指明扇区 /页/簇等所在的位置、属性等。文件分配表所包含的信息就是典型的元数据;这 样的元数据指明了一个文件使用了哪些具体的页或簇来存储该文件的数据,从而 在访问该文件时能够定位到正确的磁盘位置来存取数据。
同数据一样,元数据往往也需要存储在磁盘中。现有技术通常是将数据和元 数据分别存储;例如Windows系统所使用的FAT16/FAT32文件分配表,是在磁盘 的某一区域集中存储文件数据所对应的元数据。数据和元数据的存储位置会影响 到磁盘访问的性能。如果需要同时访问数据及其对应的元数据,那么,磁头就需 要在数据的存储位置和元数据的存储位置之间进行移动。这种移动可能会在访问 中引入额外的寻道延迟和/或旋转延迟。在需要频繁地同时访问数据与元数据 的场合,磁头在数据存储位置和元数据存储位置之间的频繁移动就会影响磁盘访 问的性能。

发明内容
本发明的目的在于针对现有技术的不足,提供一种在磁盘上存储数据和元数 据的方法,使其在同时需要访问数据以及元数据时,减少寻道延迟和/或旋转延 迟,从而具有好的访问性能。
本发明是通过以下的技术方案实现的,本发明方法中由两个以上数目的扇区组成访问单元;
组成同一访问单元的扇区,既存储该访问单元包含的数据,也存储该访问单 元所包含数据对应的元数据;
组成同一访问单元的扇区,具有标识扇区在磁盘上所在位置的地址,且组成 同一访问单元的扇区中第一个扇区到最后一个扇区所对应的地址,其取值是逐一 递增的。
本发明组成同一访问单元的扇区,在被依次访问时,具有最小的访问延迟。 本发明具有如下有益效果依据本发明所提出的方法而实现的磁盘存储,在 需要同时访问数据以及元数据时,能够减少磁头在数据存储位置和元数据存储位 置之间移动所带来的寻道和/或旋转延迟,从而提高磁盘访问的性能。


图1是本发明在磁盘上存储数据与元数据的物理布局图。
具体实施例方式
下面结合附图对本发明的实施例作详细说明本实施例在以本发明技术方案 为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护 范围不限于下述的实施例。
本实施例所述的扇区是磁盘访问的基本单位或最小单位。除去标识、纠错码 等信息,扇区用于存储数据的尺寸通常为512字节。尽管还存在其它尺寸的扇区 长度,通过对512字节扇区的描述,可以直接类推运用于其它尺寸的扇区。
扇区可以被理解为磁道上分布的弧段。按照磁盘访问的过程,磁头首先寻道 (即,移动到目标扇区所在的磁道上),然后,通过盘面的旋转,读取滑过磁头 的弧段而得到目标扇区的数据。显然,对于访问依次排列在同一磁道上的相邻弧 段组成的扇区,将不需要磁头进行额外寻道和等待盘面额外旋转而能够以最小的 延迟滑过磁头;从而,访问这样的多个扇区比起访问其它位置关系的多个扇区, 性能要更好。在实际中,由于处理完上一扇区的数据需要一定时间,磁盘会设置 交叉因子;交叉因子的设置,使得能够不需要磁头额外的移动和等待盘面额外的 旋转而以最小的延迟被访问的连续两个扇区之间会间隔一段距离。扇区总有一个 称为"地址"的能够确定其位置的信息。假定当前扇区地址为k,那么,位于同 一磁道上,经过交叉因子设定的距离而得到的下一扇区,地址就编为k+l。显然,具有连续地址的扇区就是能够以最小延迟被连续访问的扇区,从而能够以最好的 性能存取这些扇区所包含的数据。
除了扇区具有地址,其它尺寸的磁盘存储单位,如页或簇等,也具有地址。 页或簇的地址与扇区地址仅是编址形式的不同,它们相互之间可以转换而实质上 是一致的。
如图1所示,本实施例为校验磁盘900的一个扇区801中所存储数据的完整 性而为其创建一个消息认证码;此时,该消息认证码就是扇区801所存储数据的 元数据。同样地,为扇区802、扇区803和扇区804中的数据也创建有消息认证 码。取创建消息认证码的函数是MD5散列函数,则消息认证码的长度为128位。 为了存储元数据(即,扇区数据的消息认证码),把扇区801、扇区802、扇区 803和扇区804中数据所对应的消息认证码,存储在扇区800中。由此,扇区800、 扇区801、扇区802、扇区803和扇区804就组成一个访问单元;其中,扇区801、 扇区802、扇区803和扇区804用于存储该访问单元所包含的数据,而扇区800 用于存储该访问单元所包含数据的元数据(即,扇区801、扇区802、扇区803 和扇区804中数据的消息认证码)。为了能够以最小的访问延迟而获取该访问单 元的数据和元数据,就令扇区800、扇区801、扇区802、扇区803和扇区804 取地址连续的扇区。也就是说,如果扇区800的地址为j,则扇区801、扇区802、 扇区803和扇区804的地址分别为j+l、 j+2、 j+3和j+4。类似地,扇区810、 扇区811、扇区812、扇区813和扇区814也组成一个访问单元,其中,扇区810 用于存储扇区811、扇区812、扇区813和扇区814中数据的元数据。同样,扇 区810、扇区811、扇区812、扇区813和扇区814取地址连续的扇区。
如图1所示,当系统需要同时访问数据与元数据时,磁头将首先滑过元数据 扇区800而读取元数据,并经过交叉因子设置的距离而立即滑过与所读元数据对 应的数据所在的扇区801、扇区802、扇区803和扇区804。这样一来,就避免 了为同时访问数据和元数据而作额外的寻道延迟或者等待额外的旋转延迟所带 来的访问性能损失。
如图1所示,以扇区800存储元数据。对于元数据长度为128位的情况,由 于扇区尺寸与元数据长度之比为(512字节128位=32:1),为了提高元数据存 储的效率,可以将32个元数据置于扇区800中,而将从扇区801开始的32个扇区,作为存储数据的扇区;并且,由扇区800以及从扇区801开始的32个扇区,
组成一个访问单元。
如图1所示,扇区800、扇区801、扇区802、扇区803和扇区804组成一 个访问单元时,扇区800存储元数据,而扇区801、扇区802、扇区803和扇区 804存储数据。扇区800可以不具有与扇区801、扇区802、扇区803和扇区804 编址方式相一致的地址;例如,扇区800被标记为"坏扇区"而未被编有与正常 扇区相一致的地址。但这样的"坏扇区"也依然存在定位信息,并且,其定位信 息也能够转换为实质上与正常扇区相连续的地址,从而也实质上与正常扇区同属 于地址连续的扇区。
如图1所示,扇区800、扇区801、扇区802、扇区803和扇区804组成一 个访问单元时,扇区800存储元数据,而扇区801、扇区802、扇区803和扇区 804存储数据。从所在位置上看,属于同一访问单元的元数据存储于数据之前。 这种元数据和数据的位置关系可以简单地变化为由扇区800、扇区801、扇区 802和扇区803存储数据,而由扇区804存储元数据;也就是,属于同一访问单 元的元数据存储于数据之后。这种元数据和数据的位置关系还可以简单地变化 为由扇区800、扇区801、扇区802、扇区803和扇区804中的任4个扇区存 储数据,而由剩余的l个扇区存储元数据;也就是,属于同一访问单元的元数据 的存储位置可以在数据存储位置之前、之后或之间。
除了以扇区作为数据和元数据的存储单位,本实施例给出的物理布局方案可 以推广到其它的存储单位形式。文件系统常使用页或者簇来作为磁盘读写的单 位;以页/簇为单位可以同样地运用本发明所提出的存储布局方案。
例如,当文件系统使用4KB的磁盘页时(即,连续的8个扇区作为一个磁盘 存储单位),可以为每个4KB的磁盘页创建一个消息认证码;将页地址为m+l 的磁盘页到页地址为m+n的磁盘页所对应的n个消息认证码作为元数据而存储到 页地址为m的磁盘页中;这样,页地址为m的磁盘页到页地址为m+n的磁盘页就
组成一个访问单元。
再例如,当文件系统使用4KB的磁盘页时,可以为每个4KB的磁盘页创建 一个消息认证码;将页地址为s+l的磁盘页到页地址为s+p的磁盘页所对应的p 个消息认证码作为元数据而存储到位于页地址s+l磁盘页所含扇区的第一个扇区的之前一个扇区中,或者存储到位于页地址S+p磁盘页所含扇区的最后一个扇 区的之后一个扇区中。
还例如,当文件系统使用4KB的磁盘页时,可以将4KB磁盘页所含8个扇 区中的7个扇区作为存储数据的扇区,而将该7个扇区中数据对应的消息认证码 存储到剩余的扇区中。
对于元数据种类有两种或两种以上的情况,也可以类推地将两种或两种以上 的元数据与数据存储在地址连续的扇区中。比如,系统为每个数据扇区创建有 64位的IV和128位的區C两种元数据。可以将64个64位IV元数据存储在 地址为y的扇区中,将64个128位MAC元数据存储在地址为y+l和y+2的两个 扇区中,而地址从y+3到y+66的64个扇区则用于存储数据。也可以将f (比 如,f =2、 4、 8、 16等)个IV元数据和f个MAC元数据存储在地址为z的扇 区中,而地址从z+l到z+f的f个扇区则用于存储数据。
权利要求
1.一种在磁盘上存储数据和元数据的方法,其特征在于由两个以上数目的扇区组成访问单元;组成同一访问单元的扇区,既存储该访问单元包含的数据,也存储该访问单元所包含数据对应的元数据;组成同一访问单元的扇区,具有标识扇区在磁盘上所在位置的地址,且组成同一访问单元的扇区中第一个扇区到最后一个扇区所对应的地址,其取值是逐一递增的。
2. 根据权利要求1所述的在磁盘上存储数据和元数据的方法,其特征是, 所述的组成同一访问单元的扇区,在被依次访问时,具有最小的访问延迟。
全文摘要
本发明涉及一种数据存储技术领域的在磁盘上存储数据和元数据的方法。具体为由两个以上数目的扇区组成访问单元;组成同一访问单元的扇区,既存储该访问单元包含的数据,也存储该访问单元所包含数据对应的元数据;组成同一访问单元的扇区,具有标识扇区在磁盘上所在位置的地址,且组成同一访问单元的扇区中第一个扇区到最后一个扇区所对应的地址,其取值是逐一递增的。本发明可用于磁盘数据存储等场合,在同时需要访问数据以及元数据时,减少寻道延迟和/或旋转延迟,从而具有好的访问性能。
文档编号G06F17/30GK101295310SQ20081003883
公开日2008年10月29日 申请日期2008年6月12日 优先权日2008年6月12日
发明者侯方勇, 宋宁楠, 张媛媛, 曾梦歧, 谷大武 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1