文件系统总结

上传人:添*** 文档编号:189761417 上传时间:2021-08-07 格式:DOC 页数:12 大小:161.94KB
返回 下载 相关 举报
文件系统总结_第1页
第1页 / 共12页
文件系统总结_第2页
第2页 / 共12页
文件系统总结_第3页
第3页 / 共12页
文件系统总结_第4页
第4页 / 共12页
文件系统总结_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《文件系统总结》由会员分享,可在线阅读,更多相关《文件系统总结(12页珍藏版)》请在金锄头文库上搜索。

1、1 文件系统概述文件系统定义了把文件存储于磁盘时所必须的数据结构及磁盘数据的管理方式。我们知道,磁盘是由很多个扇区(Sector)组成的,如果扇区之间不建立任何的关系,写入其中的文件就无法访问,因为无法知道文件从哪个扇区开始,文件占多少个扇区,文件有什么属性。为了访问磁盘中的数据,就必需在扇区之间建立联系,也就是需要一种逻辑上的数据存储结构。建立这种逻辑结构就是文件系统要做的事情,在磁盘上建立文件系统的过程通常称为“格式化”。以Windows平台下最常见的FAT文件系统为例。FAT文件系统有两个重要的组成部分:FAT表(File Allocation Table)和数据存储区。FAT表是FAT

2、文件系统的名称来源,它定义了存储数据的簇(Cluster,由2的n次方个Sector组成,n值根据分区大小而定,需综合考虑数据存取效率和存储空间的利用率)之间的链接关系,这种链接关系是一个单向链表,指向0xFF表示结束。依据一个簇编号所用bit数的不同,可分为FAT12、FAT16和FAT32文件系统。数据区存储的数据包含文件目录项(Directory Entries)和文件数据。文件目录项存储的是一个文件或目录的属性信息,包括文件名称(把目录也看成是文件)、读写属性、文件大小、创建时间、起始簇编号等,一个目录下的每个子目录和文件都对应一个表项记录。文件目录项以固定32字节的长度存储,以树型结

3、构管理,其中根目录的位置是确定的。也就是说,根据分区根目录可以找到下级子目录和文件的起始簇编号,根据下级子目录又可以找到更下级目录或文件的起始簇编号。可见,FAT表和文件目录项是为了文件的访问和管理而建立的。应用程序要访问一个文件时,根据文件路径(逻辑分区号目录,如F:software)和文件名称(如setup.exe)可从文件目录项中获得存储文件数据的起始簇号,之后从FAT表查询这个簇号对应的链表,就可以获得该文件对应的全部簇编号。从这些簇中读出全部数据,就得到一个完整的文件。一般来说,文件系统是和操作系统紧密结合在一起的,不同的操作系统使用不同的文件系统,但有时为了兼容,不同操作系统也使用

4、相同的文件系统。2 常见文件系统2.1 Windows 常见文件系统l FAT/FAT32/NTFS l EXT2/EXT3/ReiserFSl JFS/UFS/VXFSl H3CFS上面列举了几种常见的文件系统,Windows系统下有FAT、FAT32、NTFS,linux下有EXT2、EXT3、ReiserFS等,IBM AIX 下有JFS,SUN solaries下有UFS ,HP-UX 下有VXFS, 还有很多各厂商自己开发的文件系统,比如我司监控产品中的H3CFS就是为特定应用开发的文件系统。对于windows下,我们重点要了解几种文件系统的区别,他们各自的优点,一般来说后开发出来的

5、文件系统各方面都比老的文件系统要好,但实际上也不一定,在实际情况下,要根据满足不同的需求进行选择。比如对于小容量磁盘,适合用FAT32,可以提高磁盘利用率,对于装多个操作系统,也要求在启动分区使用FAT32格式。NTFS 比 FAT 或 FAT32 的功能更强大,它包括提供 Active Directory 所需的功能以及其他重要安全性功能。只有选择 NTFS 作为文件系统才能使用诸如 Active Directory 和基于域的安全性等功能。 将分区转换为 NTFS 很容易。要维护文件和文件夹访问控制并支持有限个帐户,必须使用 NTFS。NTFS 是一种最适合处理大磁盘的文件系统。2.2 L

6、inux常见文件系统(EXT3与EXT2)EXT2和EXT3是linux下最常用的两种文件系统,EXT3较EXT2,主要有以下优点,l 可用性高l 数据完整性l 读写性能好l 数据转换安全简单(1) 可用性高在异常断电或系统崩溃发生时,每个在系统上挂载了ext2文件系统必须使用e2fasck程序来检查其一致性。在这期间,经历的时间很长,而且文件卷上的所有数据都不能访问,使用了ext3文件系统后,即使在非正常关机后,系统也不需要检查文件系统,而且恢复ext3文件系统的时间只要数十秒钟。(2) 数据完整性Ext3文件系统能够极大地提高文件系统的完整性,避免了意外关机对文件系统的破坏。在保证数据完整

7、性方面,ext3文件系统有2种模式可供选择。其中之一就是同时保持文件系统及数据一致性0模式。 采用这种方式,不再会看到由于非正常关机而存储在磁盘上的垃圾文件。(3) 读写性能好尽管使用ext3文件系统, 有时在存储数据时可能要多次写数据,但是, 从总体上看来,ext3比ext2的性能还要好一些,这是因为ext3的日志功能对磁盘的驱动器读写头进行了优化。因此,文件系统的读写性能较之ext2文件系统来说,性能并没有降低。(4) 数据转换安全简单由于ext3直接从ext2文件系统发展而来,系统由ext2文件系统过渡到ext3日志文件系统升级过程平滑,可以最大限度地保证系统数据的安全性。由ext2文件

8、系统转换成ext3文件系统非常容易,只要简单地键入两条命令即可完成整个转换过程,用户不用花时间备份!恢复!格式化分区等。用一个ext3文件系统提供的小工具tune2fs,它可以将ext2文件系统轻松转换为ext3日志文件系统。另外,ext3文件系统可以不经任何更改,而直接加载成为ext2文件系统。3 文件系统结构3.1 文件系统定义操作系统用以表明磁盘或分区上的文件的一种方法以及数据结构,也即磁盘上文件组织的方法。Linux文件系统使用索引节点来记录文件信息,作用像Windows的文件分配表。索引节点是一个结构,它包含了一个文件的长度!创建及修改时间!权限!所属关系!磁盘中的位置等信息。每个文

9、件或目录都与索引节点数组中的唯一一个元素对应。系统给每个索引节点分配了一个号码,称为索引节点号。Linux文件系统将文件索引节点号和文件名同时保存在目录中,目录只是将文件的名称和它的索引节点号结合在一起的一张表。3.2 建立文件系统过程建立文件系统过程简单描述如下:物理磁盘初始化分区格式化(高级)装载对于一块物理磁盘,一般在出厂以后就已经初始化了,主要是对盘片划分道、扇区,以及磁头放置初始位置等等,初始化后,我们利用分区工具对磁盘进行分区,就是在一块物理磁盘上进行逻辑划分成一个一个分区,便于进行管理。在linux下,可以使用如Fdisk工具进行分区。分区后,就可以在上面建立文件系统,建立文件系

10、统就是根据特定的文件系统格式,对分区上的扇区块进行编址和重新组织,这个建立文件系统的过程通常叫高级格式化,与高级格式化对应的是低级格式化,比如将所有扇区清零,就是一种低级格式化。建立文件系统后,对于linux和unix系统,需要进行装栽到内核,以便系统进行统一管理,使用完之后要进行卸载。3.3 文件系统分区与目录的区别对于刚刚接触linux或unix的新手,经常对目录和文件系统搞混淆。实际上目录本身只是一个路径的标识,在unix中看作一个文件,本身只是占用非常小的存储空间,而文件系统却是对应一个独立的分区,我们使用它必须进行挂载,它的挂载点恰恰就是某个目录,我们常常用这个目录名来代表这个特定的

11、文件系统。所以我们常常把它弄混了。比如我们用ls命令查看根目录,会看到很多如/bin, /tmp, /etc ,/var 等目录标识,那么这些都是目录还是挂载了文件系统呢?实际上我们只要简单地用df命令查看一下就知道,df列出的就是文件系统。如下图,/ 和 /tmp 都是文件系统。 文件系统有自己单独的空间,如果在目录下的文件总大小超过整个文件系统分区大小,就再不能写文件进去了,特别注意的是根文件系统通常很小,要经常关注其使用率,若超过85就要清理或考虑扩容。否则常常会造成登录不了或系统异常。4 文件分类4.1 Unix四种基本类型文件l 普通文件l 目录文件l 连接文件l 设备文件(一) 普

12、通文件普通文件是用户大部分时间都在进行操作的文件。普通文件包括文本文件!C语言源代码!shell脚本(由Linuxshell解释的程序) !二进制的可执行程序和各种类型的数据。对Linux来说,文件就是文件,Linux要知道的文件之间唯一区别是它是不是可执行文件。可执行文件可以直接执行,当然,这种文件应该含有要执行的内容,并且这种文件要在所查找路径中。可执行文件是二进制文件(也就是说,它包含可执行机器代码) 和shell脚本的文件。(二) 目录文件目录也是文件,它们包含文件名和子目录名,并包含指向那些文件和子目录的指针。目录文件是Linux存储文件名的唯一地方,使用ls命令可以列出一个目录的内

13、容,但还没有触及文件本身。如果把一个文件从一个目录移到另一个目录中,事实上只是把这个文件的说明从一个目录文件移到另一个目录文件中。Linux系统中的每个文件都被赋予一个唯一的数值,这个数值称做索引节点inode(IndexNode) 。索引节点存储在一个称作索引节点表(InodeTable) 中,该表在磁盘格式化时被分配。每个实际的磁盘或分区都有其自己的索引节点节。一个索引节点包含文件的所有信息,包括磁盘上数据的地址和文件类型。Linux文件系统把索引节点号值1赋予根目录,可以通过查找从根目录开始的一个目录链来找到系统中的任何文件。(3) 连接文件连接是Linux比较独特而非常有用的一种文件。

14、连接的作用与Windows下的快捷方式相似,它自己不包含内容,它指向别的文件或目录。Linux及大多数UNIX的现代版本的连接,实际上是符号连接,它的数据是它所连接的文件的路径名。符号连接的目录条目包含一个文件的索引节点,而该索引节点本身又是对Linux逻辑文件系统上某处的另一个文件的引用。一个符号连接可以指向同一磁盘或另一磁盘上的另一个文件或目录,也可以指向另一台计算机上的一个文件或目录。使用符号连接,当原始文件被删除时,所有对该文件的符号连接也都被删除。(4) 设备文件Linux将所有的设备都用文件来表示。大多数设备文件都放在/dev目录中,它们的内容就是所有设备名的一个完整清单。这里,设

15、备名Hd代表IDE硬盘驱动器,sd代表SCSI硬盘驱动器,sr代表SCSICD-ROM驱动器,fd代表软盘驱动器,tty代表终端,lp代表打印机,modem代表对调制解调器设备文件的链接,cdrom代表对CD-ROM设备文件的链接。下面是查看文件属性的常用命令: 4.2 软连接和硬连接连接文件分为软连接和硬连接。1个inode号码肯定和一片完全属于一个文件的数据区一一对应。那么一个文件系统中两个或更多个不同的文件名能否对应同一个文件呢?答案是肯定的。 我们知道inode号码是记录在文件名对应的目录项中的,我们可以使两个或多个文件的目录项具有相同的inode值,实际上就使它们对应着同一个文件。

16、有几个目录项具有相同的inode号,我们就说这个文件有几个硬连接(hardlink) , 对于普通文件,ls -l命令的连接计数count域的数值就是本文件拥有的硬连接数。硬连接可以通过ln命令建立,例如: # ln /home/zyd/mytext hardlink_mytext 就建立了一个新的文件hardlink_mytext,这个文件的inode同样是262457。建立硬连接实际上只是增加了一个目录项,但并复制文件数据区,原文件的数据区由两个文件共享。这一方面能够节约大量磁盘空间,同时可以保证两个文件能同步更新。 ls -il可以显示文件的inode(在下面最左边) : 262456 -rw-rw-r- 1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 存储

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号