什么是文件系统,文件系统可以进行怎样的分类?这是本篇将要谈论的问题。
文件系统[i]是存储和组织计算机文件和文件中所包含的数据,以方便地找到和存取它们的方法。更加正式地说,文件系统是一个用来存储、分级管理、处理、导航(navigation)、访问和恢复数据的抽象数据种类(例如元数据)的集合。
本篇[ii]从各个方面对诸多常见文件系统进行了对比。
文件系统可以分为磁盘文件系统、网络文件系统和特殊目的的文件系统。进一步的,可以通过以下几个概念对文件系统的概念进行区分。
1.1 磁盘文件系统
磁盘文件系统是为在磁盘这样的存储器中存储数据而设计的文件系统。存储器都直接或者间接地与计算机相连。一些磁盘文件系统使用日志文件系统(journaling file system)或者版本文件系统(versioning file system)。
版本文件系统是和日志文件系统不同的概念。版本文件系统是允许在同一时刻文件存在多个版本的文件系统,因此是版本控制的一种形式。大多数的版本文件系统保存文件的多个旧复本。一些版本文件系统限制了每分钟或者每小时的修改次数,以防止存储大量琐碎更改。另外的版本文件系统则定期采集快照,快照的内容能够像正常文件那样访问。
1.2 闪存文件系统
闪存文件系统是为在闪存上存储数据而设计的文件系统。随着移动设备的日渐流行和闪存容量的不断扩大,闪存文件系统也变得普遍起来。
虽然磁盘文件系统能够在闪存上使用,但是由于闪存与磁盘的不同特性,使得这种方法有很多缺陷。例如,闪存在重写时需要进行整块擦除,这是一件耗时的操作,所以在存储器处于空闲状态时才进行擦除操作是有益的。闪存与磁盘的另外一个不同点是,磁盘移动磁头的机械运动可以通过优化而减少寻道(seek)时间,闪存却可以随机存取,寻道时间可以忽略。另外,闪存具有写入次数的限制,如果闪存的一个块被过多次地重写后,可能会严重影响其使用时间,所以闪存文件系统需要设计为各存储块写入次数较为均匀。
诸如JFFS2 和 YAFFS等日志结构文件系统有许多闪存文件系统所需的特性。
1.3 数据库文件系统
文件管理的一个新的概念是基于数据库的文件系统。作为结构化管理(hierarchical structured management)的替代或者补充,基于数据库的文件系统用文件的种类、主题、作者、类似的元数据等特征来标识文件。
1.4 事务文件系统
在操作系统中,事务有着原子性,即要么全有要么全无的特性。在文件系统中,也有一些操作具有事物的特性。在这些操作中,需要改变多个文件和磁盘结构。这些改变是相关的,需要同时执行的。
事物文件系统(transactional file system)就是保证了这些操作要么被全部完成,要么被完全恢复。这意味着当系统崩溃或者掉电时,在恢复之后,存储状态将会保持一致。
日志文件系统是可用来在文件系统结构中引入事务级别的一致性的技术之一。
1.5 网络文件系统
网络文件系统是一种为客户提供存取服务器上文件的功能的远程文件存取协议。
NFS、AFS、SMB等协议就是典型的网络文件系统。
1.6 共享磁盘文件系统
在共享磁盘文件系统(shared disk file system)中,若干机器(通常为服务器)都访问同一个外部磁盘子系统。文件系统为对该存储子系统的存取进行仲裁,以防止写冲突。
Redhat的GFS和IBM的GPFS就是共享磁盘文件系统。
1.7 特殊目的的文件系统
不是磁盘文件系统或者网络文件系统的文件系统都可以称为是特殊目的的文件系统(special purpose file system)。
本文章欢迎转载,请保留原始博客链接http://blog.csdn.net/fsdev/article
[i] http://en.wikipedia.org/wiki/File_system
[ii] http://en.wikipedia.org/wiki/Comparison_of_file_systems