在安装过程中,您可以为您的分区选择不同文件系统,这些分区也将因为您的选择而被以不同的算法格式化
选择合适的操作系统对非专家来说是非常困难的。下面我们会简单介绍一些目前流行的文件系统,它们都可以在 Mandrakelinux 下实现。
第二扩展文件系统(简称 ext2 或者 ext2) 很多年前就已经成为 GNU/Linux 默认的文件系统了。ext2 代替了扩展文件系统(这是 “第二代” 的前身)。它纠正了它前身的一些错误并突破了一些限制。
ext2 遵循了 UNIX® 类文件系统的一贯标准。ext2 从它出现的第一天起,就注定要在提供鲁棒性和高性能的同时演化。
第三扩展文件系统从名字上就可以看出是 ext2 的继任者。它兼容 ext2 并提高了对日志的支持。
ext2 这种“传统”意义上的文件系统的一个主要缺点就是不能经受系统突然崩溃(停电或者软件造成的崩溃)。一般说来,一旦系统再次重启,上次的崩溃会导致系统对文件系统的结构进行长时间检查并试图改正错误。而这些过程有时会导致问题部分被扩大并最终造成部分或全部已保存文件的丢失。
使用日志解决了以上问题。为了简单起见,假设我们在实际执行一个命令(比如保存文件)之前就已经记录下这个命令。这个操作就像船长在航海日志上记录每天发生的事情一样。记录都是前后联系紧密的文件系统。问题发生后会被迅速确认,最终的修复方法也会被限定在很小的范围内。用于确定文件系统问题的时间正比于对系统使用的时间使用而不是文件系统的大小。
ext3 在使用 ext2 结构保证兼容性的同时提供了日志文件系统。这使得 ext2 到 ext3 之间的相互转换非常容易。
表 9.1. 文件系统特征
Ext2 | Ext3 | ReiserFS | JFS | XFS | |
---|---|---|---|---|---|
稳定性 | 出色 | 好 | 好 | 一般 | 好 |
反删除工具 | 有(复杂) | 有(复杂) | 无 | 无 | 无 |
系统崩溃后的重启时间 | 非常非常长 | 快 | 非常快 | 非常快 | 非常快 |
系统崩溃后数据的状态 | 一般来说不错,但是要冒丢失部分或全部数据的巨大风险 | 很好 | 一般[a] | 很好 | 很好 |
ACL支持 | 是 | 是 | 无 | 无 | 是 |
[a] 通过在 /etc/fstab 中添加 data=journal 的选项,日志记录不仅记录了 元数据,还记录了 数据。这将有得到更好的崩溃恢复结果。 |
文件的最大尺寸是由很多参数决定的(比如 ext2/ext3 的磁盘块大小),而且它还非常可能随内核版本及结构而变化。目前的文件系统限制最大文件大小为接近或者大于2 TB (1TB=1024GB)。而 JFS 的最大文件可达4 PB (1 pb=1024 TB)。不过这些值还受限于最大块设备的容量。在目前的 2.4.X 内核版本下(只对X86来所),这种限制是2 TB[20]。在2.6.X版内核中,这个块设备极限可以通过在编译内核时打开大块设备支持选项(CONFIG_LBD=y)而突破。详细情况可以参考 Adding Single UNIX Specification,Large File Support in Linux,以及Large Block Devices.
比较文件系统间的性能差别往往是很困难的。所有的测试都有缺陷,结果都要小心地解释。目前 ext2 已经很成熟了,但是它的发展也日趋缓慢; ext3 和 reiserfs 在这点上较为成熟。 reiserfs 的新特性已经被加入到了 reiserfs4[21]版内核中。另一方面, XFS 有很多独到之处,而且随着时间的推移,更多高级特性和 Linux 工作得更好。JFS 这次选择了不同的路线,它的特性已经被一个接一个地集成到了 Linux 中。这虽然使得它的进展缓慢,但却换来了干净的代码。几个月或几周前的比较已经过时了。您要知道现在硬件的性能(特别是和硬盘容量有关的)已经极大地平衡了不同文件系统之间的区别。 XFS 目前在对大的流文件的处理上表现最好,这是它的优点。
每个系统都有优点和缺点。实际上,这些都取决于您对自己计算机的使用。一个简单的桌面机使用 ext2 就足够了。对于服务器来说, ext3 这样的日志系统是不错的选择。reiserfs 可能会因为它的起源而更适合于数据库服务器。JFS 适用于主要追求大的文件系统吞吐量的系统。如果您需要XFS的高级特性,那么它是一个非常有趣的选择。
对于 “普通” 使用,这四种文件系统会有几乎相同的性能。 reiserfs 允许您迅速进入小文件,但它处理大文件(几兆)的速度较慢。在大多数情况下,reiserfs 处理日志的能力会使人忽略掉它的缺点。值得注意的是,在默认情况下 reiserfs 是通过 notail 选项创建的。这意味着系统没有对处理小文件进行优化,因此系统会以普通速度运行大文件。