UFS文件系统

[复制链接]

该用户从未签到

12

主题

77

回帖

298

积分

[INTOHARD]工兵

Rank: 1

积分
298
发表于 2009-2-7 15:56:27 | 显示全部楼层 |阅读模式
UFS文件系统来源于伯克利的快速文件系统(Fast File System-FFS)。在UFS中,重要数据结构的拷贝贯穿于整个文件系统,并且数据做到了局部化,因此在读取文件的时候,磁头的运动量大大降低。UFS使用“柱面组”对数据进行分段组织,每个柱面组的大小与磁盘的几何特性关联。
提示:柱面组类似于ExtX的块组。
        UFS在文件系统的起始处有一个称为“超级块”的数据结构,包含基本的布局信息。
        每个文件的内容被保存在“块”中,“块”是一组连续的扇区。
        块通常又被分成若干个“片段”,用以保存文件尾部的少量数据,从而不必为其分配一个整块,这样就减少了空间的浪费。
        每个文件和目录的元数据(存储文件或目录的描述信息)被存放在称为“i-节点(i-node)”的数据结构中。文件的名字保存在目录项中,目录项则位于为目录分配的块内。目录项结构是基本的数据结构,它包含文件的文件名和一个指向该文件i-节点的指针。它们之间的这种关联关系如图6.1所示。
        每个柱面组包含它自己的i-节点表、片段分配情况的位图和超级块的拷贝。
图6.1.JPG
图6.1  目录项、i-节点与数据内容间的关系
可以看到,UFS的很多概念与前面所讲的ExtX有很多相同之处。略微不同的是UFS对各种数据的组织方式以及它包含了一些附加的特性。
UFS1文件系统是OpenBSD和Solaris的默认文件系统。UFS1也曾是NetBSD和FreeBSD的默认文件系统,但NetBSD2.0和FreeBSD5.0以后版本开始使用UFS2做默认的文件系统。UFS2增加了对大文件和大容量磁盘的支持和一些先进的特性。目前似乎还只有FreeBSD和NetBSD支持UFS2。Apple OS X和Linux也支持UFS1,但并不做为它们的默认文件系统。
UFS存储单元
UFS使用片段和块存储数据。
        “片段”由一组连续的扇区组成,“块”则是由一组连续的片段组成。
        所有的片段又被分成若干个“柱面组”,除最后一个柱面组可能会略小外,其它的柱面组大小相等。
        所有的片段由0开始进行编号,每个片段都有一个自己的地址,第一个块和片段起始于文件系统的第一个扇区。
        一个块中的第一个片段的地址又用来做为这个块的地址,例如,假设每个块的片段数为8个,0~7号片段为第一个块,块号为0;8~15号片段为第二个块,块号为8。UFS中块的最小值为4,096字节,每个块中最大片段数为8个。
提示:UFS之所以对数据使用两种类型的存储单元是了为在为大文件分配连续空间时,可以尽可能避免在为其分配的最后一个块中浪费空间。如果一个文件可以占用一个整块,则为其分配一个完整的块。而文件尾部不够一个块的剩余数据,则只为其分配足够的片段。当文件增大可以占用整个块时,如果需要则会将其移动到另一个块中。如图6.2所示,假设一个文件系统的每个块大小为8,192字节,每个片段的大小为1,024字节。一个大小为11,260字节的文件需要1个块和3个片段进行存储。为其分配的块为40号块,包含40~47号片段,可以存储8,192个字节。剩余的3,086个字节则存放在50~52号这3个片段中。这3个片段位于48号块中,该块中的其它片段可以分配给另外的文件使用。
图6.2.JPG
图6.2  片段的使用
        块和片段的分配情况用两个位图分别进行说明。一个位图的每个bit对应一个片段,称为片段位图。另一个位图的每个bit对应一个块,称为块位图。片段位图和块位图描述的信息基本相同,只是利用块位图可以更快地为大文件找到连续的存储空间。
注意:UFS位图与正常的位图正好相反,它是一个“空闲”位图。也就是说,当位图中某个位为1时,说明这个位所对应的块或者片段是空闲的,而为0则说明这个位所对应的块或片段已经被使用。
        UFS将整个文件系统分成若干个柱面组的做法类似于ExtX的块组。每个柱面组有一个称为“柱面组描述符”的结构,片段位图及块位图被保存在它所在的柱面组的组描述符中。因此在确定一个块的分配情况前,首先需要确定它位于哪个组中。这很容易,因为我们所需要做的只是用片段地址对每柱面组片段数做取整运算就可以了。
  • TA的每日心情
    开心
    2022-7-20 14:42
  • 签到天数: 1987 天

    [LV.Master]三朝元老

    4

    主题

    2285

    回帖

    9841

    积分

    [INTOHARD]团长

    Rank: 8Rank: 8

    积分
    9841
    发表于 2009-3-20 21:57:05 | 显示全部楼层
    第一次看到这个文件系统,学习一下,多谢分享
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表