博客网 >

通用磁盘格式文件系统研究
作者:分类:默认分类标签:

通用磁盘格式文件系统研究

王昭顺1,刘黎明2

1. 北京科技大学信息工程学院计算机系,北京 100083

摘要:通用磁盘格式(Universal Disk Format, 简称UDF)文件系统是光学存储技术委员会Optical Storage Technology Association, 简称OSTA)制定的文件系统标准。UDF文件系统的目标之一是取代ISO9660文件系统(国际标准化组织于1985年颁布的通用光盘文件系统)。介绍了UDF文件系统的特点,描述了UDF文件系统的卷结构、分区结构、寻址方式、目录和文件结构和扩展属性,并指出了UDF文件系统存在的一些缺陷。

关键词通用磁盘格式文件系统卷结构分区结构

中图分类号TP319

Universal Disk Format File System Research

(1.School of Information Engineering , University of Science & Technology of Beijing, City Zip Code100083, China)

AbstractUniversal Disk Format is a file system specification defined by Optical Storage Technology Association, One objective of UDF is to replace the ISO9660 file system. Introduce the characteristics of UDF file system, describe UDF file system’s volume structure, partition structure, space allocation, and directory and file structure, extended attributes. Point out some terminologies of UDF.

Key words: Universal Disk Format, File System, Volume Structure, Partition Structure

1序言

UDF文件系统包括两个规范:ECMA-167UDFECMA (European Computer Manufacturer's Association) 是一个制定计算机技术标准的组织。ECMA-167是一个关于卷和文件结构的标准,它也被称作ISO/IEC 13346ECMA-167有两个版本:ECMA-167/2 ECMA-167/3UDF1.x 是基于ECMA-167/2 UDF2.x则基于ECMA-167/3UDF是由OSTA制定的,它是基于ECMA-167框架,补充了一些必要的细节,阐明了一些ECMA-167中模糊的概念。

UDF文件系统具有如下特点:

a.能被多种平台识别。这使得在不同平台之间文件传递成为可能。

b.拥有丰富的功能,几乎是所有通用文件系统功能的合集,这使得文件在不同的平台之间传递时信息不会丢失。

c.支持不同种类的光学介质。光学介质与硬盘有很大的不同。有些光学介质只能一次写入,有些则需要缺陷管理,还有些需要在写入前作扩展。

d.格式简单。在嵌入式设备上实现文件系统时,这一点尤其重要。

e.格式向后兼容性,所以老式的介质仍然可以被最新的系统访问。文件系统的每一次变动都会考虑到兼容性。

f.支持许多现代文件系统的功能,如:大容量分区; 64位比特数表示的文件大小; 无大小限制的扩展属性(如命名流); 对文件名采用同一字符编码标准编码; 支持稀疏文件、硬 链接、符号链接;支持元数据校验和、元数据备份和缺陷管理。

2UDF卷结构

卷结构对文件和目录来说是透明的。卷结构规定了卷信息如何组织,及如何识别和确认该文件系统。卷结构的识别过程就是查找和读取卷识别序列(Volume recognition sequence,简称VRS)和卷描述符序列(Volume Descriptor Sequence, 简称VDS)的过程,这个过程从介质的起始地址开始。对于多区段光学介质,这个初始地址是最后一个区段的起始地址。

卷识别序列从初始地址偏移32K字节的地址开始,由以下三部分组成:开始扩展区域描述符(Beginning Extended Area Descriptor);卷结构描述符序列(Volume Structure Descriptor Sequence);结束扩展区域描述符(Terminating Extended Area Descriptor)

上述描述符的验证过程可以完成部分确认工作,接下来还要完成下列过程:

a.查找卷描述符关键指针(Anchor Volume Descriptor Pointer,简称AVDP)。该指针应该在扇区地址256NN-256三个中的至少两个地址中找到(N为卷空间的最大逻辑扇区号)。该指针中包含了卷描述符主序列(Main Volume Descriptor Sequence,简称MVDS)和卷描述符次序列(Main Volume Descriptor Sequence,简称MVDS)的地址和长度,主序列和次序列中的内容完全一致。

b.读取卷描述符主序列。卷描述符序列包含如下几种类型的描述符:卷主描述符(Primary Volume Descriptor),实现用途卷描述符(Implementation Use Volume Descriptor),分区描述符(Partition Descriptor),卷逻辑描述符(Logical Volume Descriptor),未分配空间描述符(Unallocated Space Descriptor)。卷主描述符用来标识该卷,指出该卷属于哪个卷集合,该卷的属性以及该描述符使用的字符集。实现用途卷描述符用来标识一种实现以及该实现的相关信息。分区描述符描述一个指定的分区的属性以及该分区的标识符。卷逻辑描述符描述一个指定的卷的大小、分区和标识符等信息。未分配空间描述符用来标识可用于分配给分区或记录卷描述符序列的卷空间。

卷空间的布局如图1所示,N为卷空间的最大逻辑扇区号,逻辑块N在有虚拟分区的介质上存储虚拟空间分配表(VATVirtual Allocation Table)的文件入口(File Entry)


<!--[if !vml]-->
<!--[endif]-->

1 UDF文件系统卷空间

3UDF分区结构

UDF定义了5种不同的分区,各个分区都隐藏了物理属性的不同,向文件系统层提供一个统一的接口。每个分区都有一个序号,这个序号也是在卷逻辑描述符中分区映射信息(Partition Map)序列的下标。一个分区中的数据块从0开始索引,分区的大小可以变化。5种分区分别是:

a.第一类分区(Type1 Partition)

第一类分区有一个起始逻辑扇区号S和分区大小N(N表示该分区的逻辑扇区数)。一个该分区的逻辑块号x按照如下规则得到逻辑扇区号:y=S+x*K(K为逻辑块包含的逻辑扇区数)。对某些具体的光学介质,分区的起始地址需要包大小对齐。分区的可用空间由为分配空间位图描述符来管理。分区的每一个块对应该描述符中的一个比特位,如果该比特值为1,表示该块没有被使用,如果该比特值为0,则对应块已经被使用。

b.虚拟分区(Virtual Partition)

虚拟分区用于一次写入介质上,为一次写入介质提供类似可覆盖写入介质的特性。虚拟空间分配表用来将虚拟分区中的逻辑地址映射到该虚拟分区对应的一个第一类分区中的逻辑地址。

虚拟空间分配表作为一个特殊文件存放在第一类分区中,并且最后更新的虚拟空间分配表的文件入口总是在介质上写入的最后一个扇区。

c.备用分区(Sparing Partition)

备用分区用于可覆盖写介质上。文件系统中的重要元数据可能会经常被覆盖写,反复写入可能造成该部分损坏。而备用分区则将损坏部分的地址映射到为损坏部分,使得上层看起来该部分并没有损坏。备用分区映射信息中描述了24个备用分区表。每个分区表都包含相同的内容。当一个备用分区表损坏时,可以使用另一个替代。备用分区的起始地址必须是包大小的整数倍,分区大小也是包大小的整数倍。

d.元数据分区(Metadata Partition)

元数据分区用来集中存放元数据以获得更好的性能。这些元数据包括文件入口、分配空间描述符(Allocation Descriptor)、目录,但不包括命名流和扩展属性。

元数据分区在其它几个分区之上,包括:第一类分区、备用分区和伪覆盖分区。元数据分区由三个文件组成:元数据文件、元数据镜像文件和元数据位图文件。元数据文件和元数据镜像文件包含在其它分区中已经存在的内容:一些文件入口和空间分配扩展描述符。元数据文件和元数据镜像文件可以有部分内容完全相同。元数据位图文件的内容是为分配空间位图描述符(Unallocated Space Bitmap Descriptor),用比特位来表示该分区内块的使用情况。

e.伪覆盖分区(Pseudo Partition)

伪覆盖分区用于在下一代只能取动上使用的下一代一次写入介质上。这些驱动在内部完成地址转换,使得一次写入介质上的分区表现出可覆盖写入的特性。

4UDF目录和文件结构

描述目录和文件结构的主要元数据是信息控制块(Information Control Block)。信息控制块的大小最多是一个逻辑块,它的主要内容是文件入口或扩展文件入口(EFE , Extended File Entry)。文件入口所指的文件是广义的概念,它代表具有某些属性的字节流。一个文件入口或扩展文件入口可以代表一个文件、一个目录、一段具有扩展属性的逻辑空间、一个流目录、一个命名流、一个符号链接、一个特殊的设备节点等。

一个目录和一个文件的存储很相似,用一个文件入口来存储其内容,只是在信息控制块中目录的文件类型被设置为目录。其文件入口所指向的数据中顺序存储着一些信息控制块的地址。每个信息控制块中包含了一个文件标识描述符。第一个信息控制块地址指向该目录的上层目录。文件标识描述符纪录了文件名、文件入口和一个实现用的变长空间、标识文件属性的字节。如果该文件被删除,则将该字节的删除标识比特置为1

读取一个文件中数据的过程如图2所示。从卷描述符关键指针找到卷描述符序列,其中的卷逻辑描述符指出了文件集描述符(File set descriptor, 简称FSD)的地址,文件集描述符包含根目录的信息控制块,目录的文件内容是文件标识符描述符(File identifier descriptor,简称FID,FID则有地址指针指向其对应的信息控制块。通过遍历文件标识符描述符和信息控制块,可以读取到所有文件的数据。

<!--[if !vml]-->
<!--[endif]-->

2 UDF文件系统读取文件数据流程图

5UDF寻址

UDF文件系统中,有两种地址:物理地址(LSNLogical Sector Number)、逻辑地址(LBNLogical Block Number)。物理地址用于对所有分区外的元数据的寻址(卷逻辑描述符)。逻辑寻址用于分区内数据块的寻址。逻辑地址包含两部分:逻辑块号和分区引用号。

分区引用号是在卷逻辑描述符中分区映射信息块序列的下标。一个分区描述符描述了唯一对应的一个分区,并为该分区分配了一个分区号,而多个分区映射信息块可能对应同一个分区号。

文件入口和扩展文件入口用基于扩展的寻址方式确定哪些逻辑块属于该文件。UDF规定了三种扩展寻址描述符:

近寻址描述符:文件数据与寻址描述符在同一个分区。每个近寻址描述符记录了该扩展的起始逻辑块号和长度。

远寻址描述符:文件数据与寻址描述符可能在不同的分区。每个远寻址描述符记录了该扩展的起始逻辑块号和长度,以及分区引用号。

嵌入寻址描述符:文件数据嵌在文件入口或扩展文件入口所在的逻辑块中。

每一种寻址方式分三种不同的类型,分别是:分配并刻录、未分配未刻、已分配未刻录。除了文件的最后一个寻址描述符,每一种寻址描述符代表的数据长度都应该是逻辑块大小的整数倍。

6扩展属性

扩展属性记录了文件的一些附加属性。有两个空间可以用来存储扩展属性:嵌入式扩展属性空间和外部扩展属性空间。嵌入式扩展属性空间在文件入口中,位于文件入口的固定区域之后、分配空间描述符之前。这种存储具有很快的访问速度,但只适合于存储少量附加属性。外部扩展属性空间是一个特殊的文件入口——扩展属性文件入口,其地址存储在对应的文件入口中。

扩展属性分三种:标准扩展属性、实现用扩展属性、应用用扩展属性。嵌入式扩展属性空间和外部扩展属性空间中可能顺序存储这三种属性中的若干种。

7结束语

UDF文件系统代表了当前主流的文件系统发展方向,但也存在一些问题需要解决或改进,这些问题存在于以下几个方面:

a.分区大小,用32比特数表示的数据块号决定了:使用512字节的块大小时,分区大小最多2T字节。这对目前的光学介质是足够的,但在将来仍可能会不够。

b.灾难后恢复机制。介质容量越来越大,而灾难后恢复也越来越重要。在装载一个文件系统之前对一个低速的光学介质进行完整的检查是不现实的。虽然某种具体的实现可以用日志系统来保护元数据完整性,但因为日志系统并不是规范的一部分,该方法在不同平台之间无法使用。

c.支持压缩和加密文件与目录。存储设备的空间越来越大,压缩显得不是很必要。但因为UDF文件系统主要用在可移动的存储设备上,因而加密功能需要尽早加入规范中。

d.复杂度越来越高。UDF2.5 引入了元数据分区以提高性能。文件系统的元数据都被存放在元数据分区中以提高对它们的访问速度。这种增加复杂度以提高性能的做法是否值得还有待证明。事实上,如果以合适的形式组织元数据,可以达到与引入元数据分区一样甚至更好的性能。

eUDF文件系统目前还不如FAT(File Allocation Table)ISO9660文件系统使用广泛。但是,已经有越来越多的系统支持UDF文件系统。

献:

[1] ISO/IEC 13346, Volume and file structure of write-once and rewritable media using non-sequential recording for information interchange[S]

[2] Universal Disk Format Specification. http://www.osta.org/specs/pdf/udf260.pdf,2006-06-01

联系人:刘黎明

E-mailliuliming2008@126.com

电话:13817716098

通讯地址:

邮编:200032

<< 64位虚拟机SPANVM的设计与... / 有点无聊了 >>

专题推荐

不平凡的水果世界

不平凡的水果世界

平凡的水果世界,平凡中的不平凡。 今朝看水果是水果 ,看水果还是水果 ,看水果已不是水果。这境界,谁人可比?在不平凡的水果世界里,仁者见仁,智者见智。

中国春节的那些习俗

中国春节的那些习俗

正月是农历新年的开始,人们往往将它看作是新的一年年运好坏的兆示期。所以,过年的时候“禁忌”特别多。当然,各个地方的风俗习惯不一样,过年的禁忌也是不一样的。

评论
0/200
表情 验证码:

liming2008

  • 文章总数0
  • 画报总数0
  • 画报点击数0
  • 文章点击数0
个人排行
        博文分类
        日期归档