你应该使用哪个Linux文件系统?

在Linux PC上格式化分区时,您将看到各种各样的文件系统选项。 这些选项不需要是压倒性的。 如果你不确定要使用哪个Linux文件系统,有一个简单的答案。

快速回答:如果您不确定,请使用Ext4

我们会进入杂草并在一段时间内消除各种文件系统之间的差异,但如果您不确定:使用Ext4。

Ext4是大多数Linux发行版上的默认文件系统的原因。 它是旧版Ext3文件系统的改进版本。 它不是最前沿的文件系统,但是很好:这意味着Ext4是岩石坚固和稳定。

在未来,Linux发行版将逐渐向BtrFS转移。 BtrFS仍然是前沿的,看到很多开发,所以你会想要避免它在生产系统。 数据损坏或其他问题的风险不值得潜在的速度提高。

注意,虽然,“使用Ext4”建议只适用于Linux系统分区和其他磁盘分区只有Linux将访问。 如果要格式化要与其他操作系统共享的外部驱动器,则不应使用Ext4,因为Windows,macOS和其他设备无法读取Ext4文件系统。 在Linux上格式化外部驱动器时,您将需要使用exFAT或FAT32

如果您在主要Linux引导驱动器上设置分区,则还需要在设置这些分区时创建一个大小至少为几GB的交换分区 此分区用于“交换空间”。 它类似于Windows上的分页文件。 当它的RAM已满时,Linux将交换内存到交换空间。 此分区必须格式化为“swap”,而不是特定的文件系统。

什么是日记?

在文件系统之间选择时,你会注意到有些事情被标记为“日志记录”文件系统,有些不是。 这个很重要。

日志记录旨在防止崩溃和突然断电导致数据损坏。 让我们说,你的系统是通过写一个文件到磁盘的一部分,它突然失去力量。 没有日志,您的计算机将不知道文件是否已完全写入磁盘。 该文件将保留在磁盘上,损坏。

使用日志,您的计算机会注意到它将在日志中将特定文件写入磁盘,将该文件写入磁盘,然后从日志中删除该作业。 如果电源通过写入文件中途出来,Linux将在启动时检查文件系统的日志,并恢复任何未完成的作业。 这防止数据丢失和文件损坏。

日志记录使磁盘写性能降低了一点点,但它在桌面或笔记本电脑上是非常值得的。 这不是你可能想象的开销。 完整文件不会写入日志。 相反,只有文件元数据,inode或磁盘位置在写入磁盘之前记录在日志中。

每个现代文件系统都支持日志记录,在设置台式机或笔记本电脑时,您需要使用支持日志记录的文件系统。

不提供日志记录的文件系统可用于高性能服务器和其他管理员想要提高额外性能的系统。 它们也是可移动闪存驱动器的理想选择,您不需要更高的开销和额外的日志写入。

所有这些Linux文件系统之间的区别是什么?

虽然Microsoft开发Windows和Apple控制macOS,但Linux是由社区开发的一个开源项目。 任何具有技能和时间的人(或任何公司)都可以创建一个新的Linux文件系统。 这就是为什么有这么多选项的一个原因。 这里有区别:

  • Ext代表“扩展文件系统”,是第一个专门为Linux创建的。 它有四个主要修订。 “Ext”是文件系统的第一个版本,在1992年推出。这是从当时使用的Minix文件系统的一个重大升级,但缺乏重要的功能。 许多Linux发行版不再支持Ext。
  • Ext2不是日志文件系统。 介绍时,它是第一个支持扩展文件属性和2 TB驱动器的文件系统。 Ext2缺少日志意味着它写入磁盘较少,这使得它有用的闪存像USB驱动器。 但是,像exFAT和FAT32这样的文件系统也不使用日志记录,并且与不同的操作系统更兼容,因此我们建议您避免Ext2,除非您知道由于某种原因需要它。
  • Ext3基本上只是Ext2与日志。 Ext3旨在向后兼容Ext2,允许在Ext2和Ext3之间转换分区,而不需要任何格式化。 它比Ext4更长,但是Ext4自2008年以来一直在使用,并经过广泛测试。 在这一点上,你最好使用Ext4。
  • Ext4也被设计为向后兼容。 您可以将Ext4文件系统安装为Ext3,或将Ext2或Ext3文件系统安装为Ext4。 它包括更新的功能,减少文件碎片,允许更大的卷和文件,并使用延迟分配来提高闪存的寿命。 这是Ext文件系统的最新版本,是大多数Linux发行版的默认版本。

  • BtrFS ,发音为“黄油”或“更好的”FS,最初由Oracle设计。 它代表“B树文件系统”,并允许驱动器池,即时快照,透明压缩和在线碎片整理。 它与ReiserFS有相同的想法,一些文件系统默认使用一些Linux发行版。 BtrFS被设计成从Ext系列的文件sytstem中的一个干净的突破。 Ext4文件系统的维护者Ted Ts'o认为Ext4是一个短期解决方案,并认为BtrFS是前进的方向 期望看到BtrFS在未来几年内在企业服务器和消费者桌面Linux发行版中成为默认值,因为它进一步测试。
  • ReiserFS是Linux文件系统在2001年推出时的一个大的飞跃,它包括许多新功能Ext永远不能实现。 ReiserFS被Reiser4取代, Reiser4在2004年改进了在初始版本中不完整或缺乏的许多功能。但Reiser4开发停滞了,主要开发商Hans Reiser在2008年被送往监狱 。Reiser4仍然不是在主要的Linux内核和不太可能得到那里。 BtrFS是更好的长期选择。

  • ZFS由Sun Microsystems为Solaris设计,现在由Oracle拥有。 ZFS支持许多高级功能,包括驱动器池,快照和动态磁盘条带化 - 默认情况下,BtrFS会将许多这些功能带到Linux。 每个文件都有一个校验和,因此ZFS可以判断文件是否已损坏。 Sun开源的ZFS在Sun CDDL许可证下,这意味着它不能包括在Linux内核中。 但是,您可以在任何Linux发行版上安装ZFS支持 Ubuntu现在提供官方的ZFS支持,从Ubuntu 16.04开始 Ubuntu对容器默认使用ZFS。
  • XFS由Silicon Graphics于1994年为SGI IRX操作系统开发,并于2001年移植到Linux。它在某些方面类似于Ext4,因为它还使用延迟分配来帮助文件碎片,并且不允许挂载快照。 它可以放大,但不缩小,在飞行。 XFS在处理大文件时具有良好的性能,但在处理许多小文件时性能比其他文件系统差。 它对于主要需要处理大文件的某些类型的服务器可能是有用的。
  • JFS或“日志文件系统”是由IBM为AIX AIX操作系统于1990年开发的,后来移植到Linux。 它拥有低CPU使用率和大文件和小文件的良好性能。 JFS分区可以动态调整大小,但不能缩减。 它是非常好的计划和支持在大多数的每个主要分布,但是在Linux服务器上的生产测试不像Ext,因为它是为AIX设计。 Ext4是更常用的和更广泛的测试。
  • 在格式化驱动器时, 交换是一个选项,但不是实际的文件系统。 它用作虚拟内存,没有文件系统结构。 您无法装载它以查看其内容。 Swap被Linux内核用作“临时空间”,用于临时存储不能容纳在RAM中的数据。 它也用于休眠。 虽然Windows将其分页文件作为文件存储在其主系统分区上,但Linux仅为交换空间保留单独的空分区。
  • FAT16FAT32exFAT :在Linux中格式化驱动器时,Microsoft的FAT文件系统通常是一个选项。 这些文件系统不包括日志,因此它们是外部USB驱动器的理想选择。 它们是每个操作系统(Windows,macOS,Linux和其他设备)都可以读取的事实标准。 这使它们成为在格式化外部驱动器时希望与其他操作系统一起使用的理想文件系统。 FAT32较旧。 exFAT是理想的选择,因为它支持大小超过4 GB的文件和大小超过8 TB的分区,不像FAT32。

还有其他Linux文件系统,包括专门为嵌入式设备和SD卡中的闪存存储设计的文件系统 但是这些是在使用Linux时最常见的选项。

你应该选择哪个Linux文件系统?

文件系统是你的操作系统下面的一层,你不需要考虑 - 除非你面对Linux中的大量选项。 下面是如何做出有根据的决定要使用哪个文件系统。

Linux文件系统支持的格局与Windows和OS X有很大的不同。在Windows和OS X中,您可以找到将支持非标准文件系统的软件,但是这两个操作系统只能安装在其本机文件系统并在事后添加第三方支持。

另一方面,Linux内置了大量支持的文件系统。 但是你怎么知道安装时选择哪个文件系统呢? 我们将看看一些最受欢迎的选择,并给你用例来考虑 - 选择最终取决于你的需要。

图片由DijutalTim

什么是日记?

在我们深入到兔子洞之前谈论选项,我们需要首先快速浏览日志。 关于日志记录,你需要知道的唯一真正的事情是,每个现代文件系统使用日志以某种形式或另一个,在任何台式机或笔记本电脑上,你正在设置与Linux,你会想使用日志文件系统。

日志记录只用于写入磁盘时,它对所有写入都是一种打孔时钟。 这修复了当事情写入硬盘驱动器,然后计算机崩溃或电源丢失时磁盘损坏的问题。 没有日志,操作系统将无法知道文件是否已完全写入磁盘。

使用日志,文件首先写入日志,插入,然后日志在准备好时将文件写入磁盘。 一旦成功写入磁盘,它将从日志中删除,打孔,操作完成。 如果在写入磁盘时电源丢失,文件系统可以检查日志中所有尚未完成的操作,并记住它在哪里停止。

日志记录的最大缺点是它牺牲了一些性能来换取稳定性。 将文件写入磁盘有更多的开销,但文件系统通过不将完整文件写入日志来避免这种开销。 相反,在实际写入磁盘之前,仅记录文件元数据,inode或磁盘位置。

文件系统选项

在我们查看一些Linux可用的主要文件系统时,我们将简要介绍一下每个文件系统,并给出几个建议,表示您何时可能希望使用基于功能的文件系统。 这绝不意味着这些文件系统不能在其他情况下使用,这些建议只是每个文件系统将出色的领域。

分机代表扩展文件系统,并首次为Linux创建的。 它有四个修订,每个都增加了相当重要的功能。 Ext的第一个版本是当时使用的Minix文件系统的一个主要升级,但它缺乏当今计算中使用的主要功能。

  • 在这个时候,你可能不应该使用Ext在任何机器,由于其限制和年龄。 它在许多发行版中不再支持。

EXT2不是一个日志文件系统,以及推出的时候是第一个允许扩展文件属性和2 TB的硬盘。 因为Ext2不使用日志,所以对磁盘应用的写操作明显更少。

  • 由于较低的写入要求,因此较低的擦除,它是闪存,特别是在USB闪存驱动器的理想选择。
  • 现代SSD具有更长的寿命和额外的功能,可以否定使用非日志文件系统的需要。

Ext3的基本上只是用日记的Ext2。 Ext3的目标是向后兼容Ext2,因此磁盘可以在两者之间转换,而不需要格式化驱动器。 保持兼容性的问题是Ext2在Ext3中仍然存在的许多限制。 保持向后兼容性的好处是,Ext2的大多数测试,错误修复和用例也适用于Ext3,使其稳定和快速。

  • 如果需要升级先前的Ext2文件系统以具有日志记录,请使用。
  • 由于多年的优化,您可能会从Ext3获得最佳的数据库性能。
  • 不是文件服务器的最佳选择,因为它缺少磁盘快照,如果删除,文件恢复非常困难。

EXT4 ,就像Ext3的在它之前,保持与它的前辈的向后兼容性。 事实上,您可以将Ext2和Ext3作为Ext4文件系统安装在Linux中,这样可以在某些情况下提高性能。 您也可以将Ext4文件系统作为Ext3加载,而不会产生不良影响。

Ext4减少文件碎片,允许更大的卷和文件,并采用延迟分配,有助于闪存寿命以及碎片。 虽然它用于其他文件系统,延迟分配有潜在的数据丢失,并已受到一些审查。

  • SSD是Ext3的更好选择,并且在以前的Ext版本上提高了一般性能。 如果这是您的发行版的默认支持的文件系统,您应该坚持它为您设置的任何台式机或笔记本电脑。
  • 它还显示了数据库服务器有前途的性能数字,但是只要Ext3就没有。

BTRFS ,发音为“黄油”或ReiserFS文件系统中“更好”的FS,正在由Oracle开发并包含类似的功能。 它停留在B树文件系统,并允许驱动器池,即时快照,透明压缩和在线碎片整理。 它是专为企业设计的,但大多数每个消费者发行版都计划移动到它作为默认文件系统最终。

虽然它在一些发行版不稳定,它最终将是Ext4的默认替代品,并且目前提供从Ext3 / 4的即时转换。 还要注意的是,ext3 / 4的主要开发人员Theodore Tso说,BtrFS是“前进的方向”。

  • BtrFS是一个伟大的服务器文件系统,由于它的性能,快照和许多其他功能。
  • Oracle还在努力替代NFS和CIFS,名为CRFS,它拥有更好的性能和更多的功能。 使其成为文件服务器的最佳选择。
  • 性能测试表明,它在闪存存储器(如SSD),数据库服务器,甚至一般系统读/写的某些情况下落后于Ext4。
  • Ubuntu 10.10只允许您安装BtrFS,如果您使用文本基本备用安装CD和您的/ boot分区仍然需要一个Ext文件系统。

ReiserFS文件系统是一个很大的飞跃Linux文件系统,当它在2001年推出,并包括许多新功能,分机将永远无法实现。 ReiserFS是由取代的Reiser4在2004年对其中许多是不完整或在初始发行缺乏的功能改善。 但是Reiser4开发非常缓慢,它仍然没有在主要的Linux内核中的支持。 ReiserFS是目前在许多发行版中唯一可用的版本。

  • 对小文件(如日志)有很好的性能,适用于数据库和电子邮件服务器。
  • ReiserFS可以动态扩展但不收缩,并且不支持FS级加密。
  • Reiser4的未来是可疑的,BtrFS可能是一个更好的选择。

XFS是由Silicon Graphics公司于1994年开发了自己的操作系统,并于2001年,是具有可比性到ext4后来被移植到Linux是某些方面,因为它也使用延迟分配,以帮助文件碎片,并不允许安装的快照。 XFS已经展示了它自己为大型文件提供良好的性能,并且能够调整大小,但是您不能缩小XFS卷。

  • 适合媒体文件服务器,因为大文件的恒定吞吐量。
  • 大多数发行版需要单独的/ boot分区,因为XFS和GRUB可能是不可预测的
  • 小文件的性能不如其他文件系统那么好,这使得它对于具有大量日志的数据库,电子邮件和其他服务器来说是一个糟糕的选择。
  • 不支持作为Ext个人计算机,并没有重大的性能改进或功能超过Ext3 / 4。

JFS是由IBM于1990年开发的,后来移植到Linux。 它拥有低CPU使用率和大文件和小文件的良好性能。 JFS分区可以动态调整大小,但不会像ReiserFS和XFS那样收缩。 它是非常好的计划和支持在大多数的每个主要分布,但是在Linux服务器上的生产测试不像Ext为AIX设计的那么广泛。

  • 大型和小型文件的良好性能,并且由于其低CPU使用率可能是最好的低功耗服务器和计算机
  • 它没有内置的驱动器池工具,所以它可能不像像BtrFS那样可扩展,但是只有一个硬盘驱动器的上网本可能是一个好的选择
  • 它还具有快速磁盘检查与Ext,但有一些报告,磁盘损坏长期使用后。

ZFS是值得一提,因为它也正在由Oracle开发,具有相似的功能,增加了Btrfs和ReiserFS。 这是在最近几年的新闻,当时苹果传闻移动到它作为他们的默认文件系统。 由于它的许可,Sun CDDL,它不兼容包括在Linux内核中。 然而它通过Linux的用户空间文件系统(FUSE)支持,这使得使用ZFS成为可能。

  • 在大型磁盘阵列中表现出巨大的性能。
  • 支持大量高级功能,包括驱动器池,快照和动态磁盘条带化。
  • 可能很难在Linux中安装,因为它需要FUSE,并且可能不受您的发行版支持。

交换实际上不是一个文件系统。 它用作虚拟内存,没有文件系统结构。 它不能被装载和读取,但是仅被内核用于将内存页写入磁盘。 它通常仅在您用完物理内存或将计算机置于休眠状态时使用,但是当要求交换空间时,了解分区工具的意义非常重要。

如需了解更多,你可以检查出的维基百科页面文件系统的比较

那么你应该选择哪一个?

对于笔记本电脑或台式机上的一般用例,您可能希望坚持使用ext4(如果您的发行版将其作为默认设置),因为它是大多数发行版都支持的现代文件系统,但如果您有具体需要,现在你有更多的信息,使你的决定。


所以现在你了解文件系统之间的差异,你会选择哪一个?

赞 (0)
分享到:更多 ()