Linux文件系统精通指南

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  文件名通过 dentry 对象(用户看到的是目录文件)链接到一个 inode 编号。数据块保存实际的文件数据。

  Linux 支持任何具备 VFS 定义的基本函数集的文件管理系统。对于像 vfat 这样的文件管理系统,Linux 项目提供了它自己的设备驱动程序。

  您可以从以下输出中看到,同的文件管理系统可以存在于同一系统的不同分区上。

  df -T

  Filesystem Type 1K Blocks Used Available Use% Mounted on

  /dev/hda6 reiserfs 4195632 2015020 2180612 49% /

  /dev/hda5 ext2 14607 3778 10075 8% /boot

  /dev/hda9 reiserfs 937372 202368 735004 22% /home

  /dev/hda8 reiserfs 6297248 3882504 2414744 62% /opt

  shmfs shm 256220 0 256220 0% /dev/shm

  /dev/hda1 vfat 2159992 1854192 305800 86% /windows/C

  当前,Oracle 用户遇到的最常用的文件管理系统是 ext2/ext3、ReiserFS(不受 Oracle 支持)和 OCFS。以下是非 Oracle 分区主要特性的汇总表。

特性ext2ext3ReiserFS3.6(不受 Oracle 支持)最大分区大小4TB4TB16TB最大文件大小2GB-4GB2GB-4GB8TB块大小1KB-4KB1KB-4KB只有 4KB日志功能无是有崩溃后重新启动慢快非常快用于恢复清除文件的工具有有无崩溃后数据的状态良好非常好一般ACL 支持有有无稳定性优秀良好良好

  由于 ext2 和 ReiserFS 均提供了用户级安全性以及更高效的磁盘空间使用等特性,因此尽管至少 ext2 确实提供了碎片整理工具,但几乎不需要这些工具。Ext2 是传统的、事实上的标准 Linux 文件管理系统。它是 Red Hat 版本 Linux 的默认文件管理系统,而 ReiserFS 是 SUSE 的默认文件管理系统。ext2/ext3 的最大文件大小实际上取决于所选择的块大小和硬件体系结构。ext2 的许多特性之一是它允许由磁盘分区决定块大小。ReiserFS 技术允许在磁盘分区中使用可变的文件大小(这是因为它基于平衡树技术而不是基于范围),因此除日志功能以外,高效的空间使用也是其设计所固有的。

  日志文件管理系统(如 ext3 和 ReiserFS)记录对文件系统元数据:inode、空闲块分配映射、inode 映射等的更改。当系统崩溃时,可以通过此方式检查日志以获得最近修改的元数据,从而确保快速恢复文件系统。此功能对大型系统尤其重要。如果没有此功能,则在出现硬件故障后,对于 ext2 等文件系统,需要在重新启动时运行 fsck 工具。对于大型文件系统,此过程可能要花费几个小时。

  当然,记录日志需要付出一定的代价,即需要在处理时间和恢复之间寻求一个平衡。对于 ext3,可以选择日志记录模式,这些模式允许在寻求上述平衡时做出某些自主决定。journal 模式(记录所有文件系统数据,包括数据块和元数据)是最安全但也是最慢的模式。默认模式(称作 orderd)只记录元数据,但在写元数据之前先将数据块写入磁盘,从而在快速恢复和快速性能之间取得折衷。最快的模式是 writeback 模式,该模式只记录元数据。在此模式中,可能会丢失文件数据,但文件系统自身的完整性将得到维护。

  在编写本文档期间,Reiser4 刚好已经发布。同 ReiserFS3.6 一样,ReiserFS4 只记录元数据。与 ReiserFS3.6 不同的是,它基于新的舞蹈树算法,此算法似乎比平衡树算法更快。它还可以扩展到使用无数个 CPU,而且在磁盘写入时具有内置加密和压缩功能。

  OCFS 是 Oracle 真正应用程序集群 (RAC)、配置文件和数据库文件的指定文件管理系统。其他文件(甚至是 Oracle 软件文件)将在 ext2/ext3 或 ReiserFS 上获得更好的性能。

  当前,就文件管理系统的选择来讲,共同的见解是,除少数情况外,ext2、ext3 和 ReiserFS 之间的性能基本相当。然而在各种系统的拥护者之间却爆发了激烈的争论。ReiserFS 由于能够处理可变的文件大小,因此更适用于具有许多小文件的系统。当然,如果您正要或计划在 Linux 上运行 Oracle RAC,则可能需要为 Oracle 数据文件和配置文件安装 OCFS 或使用自动存储管理 (ASM)。

  除了最常见的 ext2/ext3 和 ReiserFS 文件系统以外,Linux 还支持其他本地文件系统,包括 IBM 的 jsf 和 SGI 的 xfs。对传统 UNIX 文件系统的支持包括 SYSV、BSD、Solaris、Next 和 Veritas VxFS。在各个级别支持的其他文件系统包括

  Microsoft 的 fat、ntfs、vfat、fat32

  IBM 的 hpfs (OS/2)

  Apple 的 Macintosh hfs

  Amiga 的 affs

  Acorn 磁盘文件系统 adfs

  请注意,Oracle 不支持某些文件系统,因此在使用这些文件系统时风险自负。

  Linux 内核 2.6 版中最重要的新特性是访问控制列表 (ACL)。ACL 允许为一个或多个用户列表或用户组授予对单个文件的使用权限。其他新特性包括:

  对 CD-ROM 上使用的 ISO 9660 文件系统的增强支持

  可以存储在文件系统中的默认挂载选项

  用于加速文件搜索的索引目录

  对 Windows 的逻辑磁盘管理器(动态磁盘)的支持

  能够将 ntfs 挂载为读/写,但写仍处于试验状态

  对 fat12(旧 DOS 文件系统)的增强支持

  处理分区和文件系统的工具

  要添加一个新磁盘或调整现有磁盘的大小,您需要使用 fdisk 或 cfdisk。尽管 cfdisk 表面上更易于使用,但 fdisk 已被证实最适用于磁盘分区。以下是有关使用 Linux 版本 fdisk 的几个原则,帮助您了解其可能得到的结果。

  首先,以超级用户身份用设备名称调用 fdisk:

  # fdisk /dev/hda

  The number of cylinders for this disk is set to 1940.

  There is nothing wrong with that, but this is larger than 1024,

  and could in certain setups cause problems with:

  1) software that runs at boot time (e.g., old versions of LILO)

  2) booting and partitioning software from other OSs

  (e.g., DOS FDISK, OS/2 FDISK)

  Command (m for help):m

[1][2][3]

没有什么可留恋,只有抑制不住的梦想,

Linux文件系统精通指南

相关文章:

你感兴趣的文章:

标签云: