创作

Linux文件系统类型介绍,你应该使用哪一种?

[复制链接]
QQ截图20210426090716.png

Linux支持各种文件系统,例如ext4,ZFS,XFS,Btrfs,Reiser4等。不同类型的文件系统可解决不同类型的问题,并且它们的用法是特定于应用程序的。

选择适合您的应用程序的Linux文件系统非常重要。本教程描述了一些主要的Linux文件系统,并针对适合您的应用程序的正确文件系统提供了建议。

什么是Linux文件系统

引导Linux系统并使之保持正常工作所需的几乎所有数据和程序都保存在文件系统中。例如,操作系统本身,编译器,应用程序,共享库,配置文件,日志文件,介质安装点等。

文件系统在后台运行。像操作系统内核的其余部分一样,它们在日常使用中基本上是不可见的。

Linux文件系统通常是Linux操作系统的内置层,用于处理存储的数据管理。它控制数据的存储和检索方式。它管理文件名,文件大小,创建日期以及有关文件的更多信息。

ext4文件系统

在1992年,Extended File System或ext专门针对Linux操作系统启动。它起源于Minix操作系统。1993年,随后发布了称为扩展文件系统2或ext2的更新,并且多年来一直是许多Linux发行版中的默认文件系统。到2001年,ext2升级到ext3,引入了日记功能,以防止崩溃或电源故障时的损坏。

Ext4(第四扩展文件系统)于2008年推出,是自2010年以来的默认Linux文件系统。它被设计为ext3文件系统的渐进修订版,并克服了ext3的诸多限制。与以前的产品相比,它具有显着的优势,例如改进的设计,更好的性能,可靠性和新功能。

如今,ext4是大多数Linux发行版中的默认文件系统。它可以支持最大16 TB的文件和文件系统。它还支持无限数量的子目录(ext3文件系统最多仅支持32,000个)。此外,ext4与ext3和ext2向后兼容,从而允许这些较旧的版本与ext4驱动程序一起安装。

对于大多数Linux发行版,ext4是默认选择是有原因的。它经过尝试,测试,稳定,性能出色,并得到广泛支持。如果您正在寻找稳定性,那么ext4是最适合您的Linux文件系统。

尽管ext4具有所有功能,但它不支持透明压缩,透明加密或重复数据删除。

XFS文件系统

XFS是高度可扩展的文件系统,由Silicon Graphics开发,并于1994年首次部署在基于Unix的IRIX操作系统中。它是一种日记文件系统,因此,在将更改提交到之前,它会跟踪日志中的更改。主文件系统。优点是可以保证文件系统的一致性,并在断电或系统崩溃的情况下加快恢复速度。

最初,XFS的创建是为了支持超大型文件系统,其大小最大为16 EB,文件大小最大为8 EB。它在大型服务器和存储阵列上运行的历史悠久。

XFS的一项显着功能是保证速率IO。这允许应用程序保留带宽。文件系统将计算可用性能,并根据现有预留量调整其操作。

XFS在要求高性能和可伸缩性的环境中运行而享有盛誉,因此通常被视为具有企业工作负载的大型系统上性能最高的文件系统之一。

如今,大多数Linux发行版都支持XFS,并且XFS现已成为Red Hat Enterprise Linux,Oracle Linux,CentOS和许多其他发行版上的默认文件系统。

XFS文件系统的最佳用例

那么,您有大型服务器吗?您是否有较大的存储要求,或者是否有本地慢速SATA驱动器?

如果服务器和存储设备都很大,并且不需要减小文件系统的大小,则XFS可能是最佳选择。XFS是一个很棒的文件系统,可以很好地用于大型服务器。但是,即使使用较小的存储阵列,当平均文件大小很大(例如数百兆字节)时,XFS也会表现出色。

Btrfs文件系统

Btrfs是下一代通用Linux文件系统,具有独特的功能,如高级集成设备管理,可伸缩性和可靠性。它是根据GPL许可的,可以向任何人开放。文件系统使用了不同的名称,包括“ Butter FS”,“ B-tree FS”和“ Better FS”。

Btrfs的开发始于2007年的Oracle。2009年初,它被合并到主线Linux内核中,并在Linux 2.6.29版本中首次亮相。

Btrfs并不是大多数Linux发行版中使用的默认ext4文件系统的继承者,但它提供了更好的可伸缩性和可靠性。Btrfs是写时复制(CoW)文件系统,旨在解决当前Linux文件系统中的各种弱点。它主要侧重于容错能力,自我修复特性和易于管理。

Btrfs最多可以支持16 exbibyte分区和相同大小的文件。如果您对数字感到困惑,那么您只需要知道Btrfs最多可以支持Ext4数据的16倍。

写时复制如何工作以及您为什么要这么做

在传统的文件系统上,修改文件将读取数据,对其进行更改,然后将其写回到同一位置。在写文件复制系统中,它读取数据,更改数据并将其写入新位置。由于数据始终在磁盘上,因此可以防止在读-修改-写事务期间丢失数据。

由于在完全写出新块之前不会“指向”,如果在写过程中断电或崩溃,则最终会出现旧块或新块,但半写入损坏堵塞。因此,您无需在启动时就对fsck文件系统进行操作,从而降低了数据损坏的风险。

您可以随时对文件系统进行快照,并使用当前的指针集在元数据中创建快照条目。这样可以防止旧块在以后被垃圾回收,并允许文件系统像快照期间一样显示卷。换句话说,您具有即时回滚功能。您甚至可以克隆该卷以使其基于快照成为可写卷。

您的另一个选择是Linux上的ZFS,它可能更稳定,但需要更多步骤才能在典型的Linux发行版上安装。

Btrfs功能

写入时复制(CoW)和快照 –即使从“热”文件系统或虚拟机(VM)进行增量备份也不会造成麻烦。

文件级校验和 –每个文件的元数据都包含一个校验和,用于检测和修复错误。

压缩 –可以动态压缩和解压缩文件,从而提高读取性能。

自动碎片整理 –在使用文件系统时,将通过后台线程对其进行调整。

子卷 –文件系统可以共享一个空间池,而不必放在自己的分区中。

RAID  – Btrfs拥有自己的RAID实现,因此不需要LVM或mdadm即可拥有RAID。当前支持RAID 0、1和10。RAID 5和6被认为是不稳定的。

分区是可选的 –虽然Btrfs可以使用分区,但它有可能直接使用原始设备(/ dev / <device>)。

重复数据删除 –重复数据删除支持有限;但是,重复数据删除最终将成为Btrfs中的标准功能。这使Btrfs可以通过比较二进制差异文件来节省空间。

Btrfs是一个文件系统,实现后就不需要管理,也就是说,您永远不必在其上运行fsck。每当出现任何错误或不一致时,它都应自行处理并按自己的方式行事。

虽然Btrfs仍被认为是实验性的,并且正在积极开发中,但Btrfs成为Linux系统默认文件系统的时间越来越近了。一些Linux发行版已经开始使用其当前发行版切换到该发行版。

但是,如果您不担心必须面对一个不太成熟的生态系统,那么Btrfs可能是您的更好选择。

ZFS文件系统

自2005年10月问世以来,ZFS(Zettabyte文件系统)仍然是技术上最先进,功能最完整的文件系统之一。它是Sun Microsystems创建的本地文件系统(即ext4)和逻辑卷管理器(即LVM)。ZFS是在开源许可证下发布的,直到Oracle购买Sun Microsystems并关闭了许可证的源。

您可以将ZFS看作是卷管理器和一个RAID阵列,可以将额外的磁盘添加到ZFS卷中,从而可以一次将额外的空间添加到文件系统中。此外,ZFS还具有传统RAID不具备的一些其他功能。

ZFS在很大程度上取决于内存,因此您至少需要8GB才能启动。在实践中,尽可能多地获取硬件/预算。

ZFS通常由数据data积者,NAS用户和其他极客使用,他们更希望将信任放在自己的冗余存储系统上,而不是云上。 这是一个很棒的文件系统,可用于管理多个数据磁盘,并且可以与一些最出色的RAID设置相媲美。

ZFS与其他存储管理方法类似,但是在某些方面,它是根本不同的。ZFS通常不使用Linux逻辑卷管理器(LVM)或磁盘分区,通常在为zpool准备媒体之前删除分区和LVM结构是很方便的。

zpool是LVM的类似物。zpool跨越一个或多个存储设备,并且zpool的成员可以是几种不同的类型。基本存储元素是单个设备,镜像和raidz。所有这些存储元素都称为vdevs。

ZFS能够比任何RAID控制器更好地实施存储完整性,因为ZFS对文件系统的结构有深入的了解。数据安全是ZFS的重要设计功能。积极地对zpool中写入的所有块进行校验和,以确保数据的一致性和正确性。

对于要完全消除数据丢失的任何可能性的服务器使用,稳定性是游戏的名称,您可能需要研究ZFS。

ZFS功能

无止境的可扩展性。嗯,从技术上讲,它不是无止境的,但是它是一个128位的文件系统,能够管理zettabytes(十亿TB)的数据。因此,无论您有多少硬盘空间,ZFS都将适合对其进行管理。

最高诚信。您在ZFS中执行的所有操作均使用校验和来确保文件完整性。您可以放心,您的文件及其冗余副本不会遇到静默数据损坏的情况。另外,当ZFS忙于静静地检查您的数据的完整性时,它会在任何可能的时候进行自动修复。

驱动器池。ZFS的创建者希望您将其视为类似于计算机使用RAM的方式。当您的计算机需要更多内存时,您可以放另一根木棍,然后完成。与ZFS相似,当您需要更多硬盘驱动器空间时,请放入另一个硬盘驱动器,然后完成。无需花费时间对磁盘进行分区,格式化,初始化或其他任何操作。当您需要更大的存储“池”时,只需添加磁盘即可。

RAID。ZFS具有许多不同的RAID级别,同时提供的性能可与硬件RAID控制器相媲美。这样可以节省资金,简化设置,并可以访问ZFS改进的高级RAID级别。

Reiser4文件系统

ReiserFS是由Hans Reiser领导的Namesys团队最初设计和实现的通用日记计算机文件系统。它是Linux内核2.4.1版中引入的,它是第一个包含在标准内核中的日志文件系统。

除了安全更新和重要的错误修复以外,Namesys已停止在ReiserFS上进行开发。Reiser4是ReiserFS的后继文件系统。它增加了加密,提高了性能等等。

Reiser4需要修补的内核。它仍然没有包含在正式的Linux内核中,但是Linux-5.x的补丁已经可用。Reiser4不在今天的Linux内核中的原因可以概括为要求进一步测试的说法。

在所有方案和工作负载下,Reiser4在所有文件系统中提供最有效的磁盘空间使用。ReiserFS提供了优于其他文件系统的优势,尤其是在处理大量小文件时。它支持日记功能,以便在出现问题时快速恢复。文件系统结构基于树。另外,Reiser4比其他文件系统消耗更多的CPU。

Reiser4具有优化小文件(少于一个块)占用的磁盘空间的独特能力。它们完全存储在其inode中,而没有在数据区域中分配块。

除了实现传统的Linux文件系统功能外,reiser4还为用户提供了许多附加功能:文件的透明压缩和加密,完整的数据日志记录以及几乎无限的扩展性(借助插件体系结构)。

但是,当前不支持直接IO(已开始实施),配额和POSIX ACL。

结论

选择满足您特定应用程序需求的文件系统需要对各种参数进行咨询和研究。本文概述了ext4,ZFS,XFS,Btrfs和Reiser4文件系统选项的优点,并帮助您针对应用程序环境选择正确的文件系统。谢谢您在这里花时间。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2019 Comsenz Inc.  Powered by Discuz! X3.4  渝ICP备17007481号-6