文件系统
文件系统
文件系统是操作系统用于明确存储设备(常见的是硬盘)或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。更通俗的解释就是文件系统决定了数据如何存储在硬盘上,如何从硬盘读取数据。
文件系统的类型
- 硬盘或本地文件系统
- 网络或客户端/服务器文件系统
- 共享存储或共享磁盘文件系统
- 特殊文件系统
本地文件系统概述
本地文件系统是在单个本地服务器上运行并直接连接到存储的文件系统。例如,本地文件系统是内部S-ATA或SAS磁盘的唯一选择,当您的服务器具有带本地驱动器的内部硬件RAID控制器时使用。当SAN的导出设备未共享时,本地文件系统也是SAN连接存储上最常用的文件系统。
传统上,Red Hat Enterprise Linux 4和Red Hat Enterprise Linux 5平台为Ext2和Ext3类系统提供了两个主要文件系统。自5.6以来,所有版本的Red Hat Enterprise Linux都完全支持最新版本的Ext文件系统Ext4。Windows自Windows 7以来默认均为NTFS文件系统,Linux默认不支持这种文件系统,常见的两者通用的文件系统为fat32、exfat
XFS文件系统
XFS是一个强大而成熟的64位日志文件系统,它支持单个主机上的超大文件和文件系统。它是红帽企业版Linux 7中的默认文件系统。日志记录通过记录系统重新启动时可以重播的文件系统操作的记录,确保文件系统在系统崩溃后(例如,由于停电)系统重新安装。
虽然XFS可扩展至exabytes,但Red Hat最大支持的XFS文件系统映像为Red Hat Enterprise Linux 5为100TB,Red Hat Enterprise Linux 6为300TB,Red Hat Enterprise Linux 7为500TB,XFS支持以下丰富的功能:
- 延迟分配
- 动态分配的inode
- B树索引,用于自由空间管理的可扩展性
- 能够支持大量并发操作
- 广泛的运行时元数据一致性检查
- 复杂的元数据预读算法
- 紧密集成的备份和恢复实用程序
- 在线碎片整理
- 在线文件系统不断增长
- 全面的诊断功能
- 可扩展且快速的维修工具
- 流式视频工作负载的优化
Ext文件系统系列
Ext4文件系统
Ext4是Ext文件系统系列的第四代,是Red Hat Enterprise Linux 6中的默认文件系统。Ext4可以读写Ext2或Ext3文件系统,但Ext4文件系统格式与Ext2和Ext3不兼容驱动程序。但是,Ext4增加了几个新的和改进的功能,这些功能在大多数现代文件系统中很常见,如下所示:
- 基于程度的元数据
- 延迟分配
- 日志校验和
- 大容量存储支持
选择本地文件系统
如果你的服务器和你的存储设备都很大,XFS很可能是最好的选择。即使使用较小的存储阵列,当平均文件大小很大(例如,数百兆字节大小)时,XFS也能很好地运行。
如果您的现有工作负载在Ext3中表现良好,那么在红帽企业Linux 5上使用Ext3或在红帽企业Linux 6或红帽企业Linux 7上迁移到Ext4应该为您和您的应用程序提供非常熟悉的环境。 Ext4在Ext3上同样存储的两个关键优势包括更快的文件系统检查和修复时间以及高速设备上更高的流式读写性能。
表征这一点的另一种方法是Ext4文件系统变体往往在具有有限I / O能力的系统上表现更好。 Ext3和Ext4在有限的带宽(<200MB / s)和高达~100的IOPS能力下表现更好。对于具有更高性能的任何东西,XFS往往更快。与Ext3和Ext4相比,XFS还消耗了大约两倍的每元数据CPU操作,因此如果您的CPU绑定工作负载很少并发,那么Ext3或Ext4变体将更快。通常,如果应用程序使用单个读/写线程和小文件,则Ext3或Ext4会更好,而当应用程序使用多个读/写线程和更大的文件时,XFS会发光。
网络文件系统
网络文件系统(也称为客户机/服务器文件系统)允许客户机访问存储在共享服务器上的文件。这使得多台机器上的多个用户可以共享文件和存储资源。这样的文件系统是从一个或多个服务器构建的,这些服务器将一组文件系统导出到一个或多个客户端。客户端节点无法访问底层块存储,而是使用允许更好访问控制的协议与存储进行交互。历史上,这些系统已经使用千兆以太网等L2网络技术为一组客户端提供相当好的性能。
红帽企业Linux客户最常用的客户端/服务器文件系统是NFS文件系统。红帽企业Linux提供了一个用于通过网络导出本地文件系统的NFS服务器组件和一个可用于导入这些文件系统的NFS客户端。
Red Hat Enterprise Linux还包括一个CIFS客户端,支持用于Windows互操作性的流行Microsoft SMB文件服务器。为了向Windows客户端提供来自Red Hat Enterprise Linux服务器的Microsoft SMB服务,Red Hat Enterprise Linux提供了用户空间Samba服务器。
共享存储文件系统
共享存储文件系统(有时称为群集文件系统)通过本地存储区域网络(SAN)为群集中的每个服务器直接访问共享块设备。像上面提到的客户端/服务器文件系统一样,共享存储文件系统在一组服务器上工作,这些服务器都是群集的成员。然而,与NFS不同,没有一台服务器可以访问其他成员的数据或元数据:群集的每个成员都可以直接访问同一个存储设备(“共享存储”),并且所有群集成员节点都可以访问同一组文件。
在网络和共享存储文件系统之间进行选择
网络文件系统更便捷,方便共享,但是共享存储文件系统性能更高
特殊文件系统
特殊文件系统并不管理磁盘空间(无论是磁盘的还是在网络上的),这些文件系统通常由系统内核或者应用程序动态管理,以达到反映系统运行状况、进行进程间通讯、获取临时文件空间等目的。常见的这类特殊文件系统有:proc文件系统、tmpfs文件系统、devfs文件系统、rootfs文件系统等。