在这篇文章中,我们探讨了不同类型的文件系统,如分布式文件系统、闪存文件系统等,并列举了每种类型的例子,以及它们如何在实际应用中使用。
目录
- 文件系统简介
- 各种文件系统类型
- 磁盘文件系统
- 闪存文件系统
- 面向记录的文件系统
- 共享磁盘文件系统
- 分布式文件系统
- 分布式容错文件系统
- 分布式并行文件系统
- 分布式并行容错文件系统
- 特殊文件系统
文件系统简介
文件系统,有时被称为fs,是一种机制和数据结构,由操作系统用来规范数据的保存和访问。如果没有文件系统,存放在存储介质中的数据将是一个巨大的数据体,没有办法知道一个数据在哪里结束,下一个数据在哪里开始,或者当需要检索的时候,任何一个数据被放置在哪里。通过将数据分割成比特,并给每个比特起个名字,数据就很容易被提取和识别。每组数据被称为 "文件",其方式与基于纸张的数据管理系统的说法相同。一个 "文件系统 "是用来组织数据组及其名称的结构和逻辑规则。
文件管理系统的目标
-
满足用户的数据管理需求和要求,其中包括数据存储和执行上述任务的能力。
-
在最大程度上确保文件中的数据是正确的。
-
从用户的角度提高响应时间的性能,以及从系统的角度提高整体吞吐量的性能。
-
在I/O方面支持广泛的存储设备类型。
-
消除或减少数据丢失或破坏的风险
提供一套标准化的I/O接口程序
在多用户系统的情况下为众多用户提供I/O支持
利用文件系统
文件系统的API被实用程序、特定语言的运行时库和用户程序用来向文件系统提出请求。数据传输、放置、元数据更新、控制目录、管理访问规范和删除都在其中。
各种文件系统类型
有许多类型的文件系统。每一种都有自己的结构和逻辑,以及诸如速度、适应性、安全性和大小等特点。有些文件系统是为特定的应用而创建的。
磁盘/磁带文件系统、网络文件系统和特殊用途文件系统是文件系统的三个主要类别。
文件系统的不同类型有:
- 磁盘文件系统
- 闪存文件系统
- 面向记录的文件系统
- 共享磁盘文件系统
- 分布式文件系统
- 分布式容错文件系统
- 分布式并行文件系统
- 分布式并行容错文件系统
- 特殊文件系统
磁盘文件系统
磁盘文件系统利用了磁盘存储介质在短时间内随机处理数据的能力。需要考虑的其他因素是,在第一次请求的数据之后,可以访问数据的速度,以及未来可能会有更多的数据被请求。这允许几个用户(或进程)访问磁盘上不同类型的数据,而不管它们出现的顺序。

磁盘文件系统实例
- FAT(文件分配表)--最初是为DOS和微软视窗开发的,现在被广泛用于便携式USB存储和其他各种设备。
- NTFS(新技术文件系统)于1993年随Windows NT首次发布,现在是运行Windows的最终用户PC最广泛使用的文件系统。这种格式也被大多数的Windows服务器操作系统所使用。
- 通用磁盘格式(UDF)文件系统是在DVD(数字多功能光盘或数字视频光盘)等光学媒体上存储数据的工业标准。
- HPFS(高性能文件系统)是由微软与IBM合作开发的,并在1989年首次与OS/2 1.20一起发布,作为服务器的文件系统,可能提供比FAT明显更高的性能。
- F2FS是由三星电子开发的一个Linux文件系统,它是为基于NAND闪存的存储设备的需求而定制的,这些设备在现代智能手机和其他计算系统中很常见。
- Unix文件系统(UFS)是一个文件系统,用于Solaris和早期的BSD系统。
闪存文件系统
闪存文件系统是一种文件系统,旨在与基于闪存的存储设备一起使用。虽然闪存文件系统与一般的文件系统相似,但它们是针对闪存的性质和特点(如避免写放大)以及在某些操作系统中的使用而设计的。
以记录为导向的文件系统
在面向记录的文件系统中,文件被保存为记录的集合。它们通常与大型机和微型计算机的操作系统相联系。程序读取和写入整个记录,而不是字节或随机的字节范围,他们可以搜索到记录的边界,但不是在其内部。更高级的面向记录的文件系统与基本的数据库更相似,而不是其他文件系统。
共享磁盘文件系统
共享磁盘文件系统(也被称为共享存储文件系统、SAN文件系统、集群文件系统,甚至是集群文件系统)通常用于存储区域网络,所有节点都可以直接访问存储文件系统的块存储。这允许节点发生故障而不干扰其他节点对文件系统的访问。在一个高可用性的集群中,共享磁盘文件系统通常与硬件RAID的存储结合使用。
分布式文件系统
分布式文件系统也被称为网络文件系统。
网络文件系统是一个文件系统,它通过充当远程文件访问协议的客户端来提供对服务器上文件的访问。本地接口程序可以透明地创建、维护和访问远程网络连接的机器上的分层目录和文件。

分布式文件系统实例
- 安德鲁文件系统(AFS)是一个可扩展的、与位置无关的文件系统,有一个大的客户端缓存和Kerberos认证。来自IBM(以前的Transarc)、Arla和OpenAFS的原版是实现之一。
- MapR文件系统(MapR FS)是一个集群文件系统,为大规模和高性能应用而设计。
- 谷歌文件系统(GFS或GoogleFS)是一个专有的分布式文件系统,由谷歌设计,允许使用商品硬件的大规模集群进行高效、可靠的数据访问。它不能与GFS Linux文件系统相混淆。
- Apache Hadoop是一套开源软件工具,用于解决涉及大量数据和使用众多计算机网络进行处理的问题。它是一个软件框架,使用MapReduce编程风格,以分布式方式存储和处理大量数据。
- OrangeFS是一个开源的并行文件系统,是并行虚拟文件系统(PVFS)的下一个版本。并行文件系统是一种分布式文件系统,它将文件数据分布在众多的服务器上,并允许一个并行应用程序的多个任务同时访问它。OrangeFS是一个大规模的集群计算文件系统,被世界各地的企业、学院、国家实验室和其他组织所利用。
分布式容错文件系统
为了实现高可用性和离线(断开)操作,采用了跨节点(服务器或服务器/客户端之间)的分布式容错数据复制。
分布式并行文件系统
为了获得高性能,分布式并行文件系统在众多服务器之间进行数据剥离。它们最常出现在高性能计算(HPC)中。
分布式并行容错文件系统
在分布式文件系统中,在众多服务器上剥离和复制数据,以获得出色的性能和数据完整性,这些系统也是并行的和抗故障的。即使一个服务器发生故障,也不会有数据丢失。高性能计算(HPC)和高可用性集群都采用文件系统。
特殊文件系统
特殊文件系统将操作系统中的非文件元素视为文件,允许使用文件系统API对它们进行操作。这在类似Unix的操作系统中最常见,但在一些非Unix的操作系统中也有这种做法。
特殊文件系统实例
- Configfs是一个基于RAM的虚拟文件系统。Configfs看起来很像sysfs,但它们不是一回事。Configfs用于创建、管理和删除来自用户空间的内核对象,而sysfs则用于检查和操作由内核创建和销毁的用户空间对象。
- proc文件系统(procfs)是一个类似于Unix操作系统的文件系统,它以一个类似于文件的分层结构来展示进程信息和其他系统信息,使得动态访问内核中保存的进程数据比传统的跟踪方法或直接访问内核内存更加方便和规范。在启动时,它通常被分配到一个名为/proc的挂载点。proc文件系统为执行进程提供对内核内部数据结构的访问。它也可以用来获取关于内核的信息,并在Linux的运行时改变内核的参数(sysctl)。
通过OpenGenus的这篇文章,你一定对不同类型的文件系统有了深刻的认识,并举出了例子。