当前位置: 首页 > 工具软件 > Btrfs > 使用案例 >

Btrfs 与 Ext4 - 功能、优势和劣势

周承天
2023-12-01

文件系统控制从存储设备存储和检索数据的位置、方式和时间。日常系统进程需要一个高效的文件系统。Linux 内核支持多种文件系统。最常用的是 Ext4、Btrfs、XFS 和 ZFS,这是 2018 年发布的最新文件系统。这些文件系统中的每一个都有自己的数据组织方式、优点和缺点。

在本教程中,我们将对照Ext4文件系统检查Btrfs,并试图了解它们的功能、优势和劣势。

Ext4 文件系统

Ext4是许多 Linux 发行版的默认文件系统。它于 2008 年 10 月发布,带有 Linux 内核 2.6.28。Ext4 是扩展文件系统的第四个版本,是 Ext3 的继承者。 

Ext4 是一个健壮的文件系统,已经使用了很长时间。它是一个日志文件系统,这意味着它会保留文件在磁盘上的位置的“日志”,并跟踪对磁盘的任何其他更改。

Btrfs 文件系统

BtrfsB-Tree文件系统是一种更新的、现代的、开源的文件系统。它是为 Linux 系统量身定制的写时复制 (CoW) 文件系统,其名称来源于使用 B-trees 存储内部文件结构。在 CoW 文件系统设置中,当数据被修改时,文件系统会复制修改后的数据,并将数据写回文件系统上的可用位置。

由于数据被复制和修改到文件系统上的不同位置,这消除了断电时数据损坏的风险,仅举一个例子。需要指出的是,在修改过程中,原始数据被保留并保持不变。

Btrfs 文件系统的最大缺点是大文件容易碎片化,因此需要定期进行碎片整理。

Btrfs 的开发早在 2007 年就在甲骨文开始,但包括 SUSE、Facebook、Redhat 在内的其他主要公司也在为其开发做出贡献。Btrfs 的存在是因为开发人员希望扩展文件系统的功能以包含快照、校验和等功能。

BTRFS 功能

btrfs 提供的一些有趣的功能包括:

1) 支持大文件

Btrfs 文件系统最多可以支持 2个 64 字节,相当于16EiBexbibytes!现在这是一个巨大的存储空间!

2) 高效的文件存储

Btrfs 提供基于范围的文件存储。这被描述为为文件存储保留的连续区域。文件元数据的开销大大减少,小元数据直接有助于提高存储效率和性能。

Btrfs 仍然是高效的文件存储,它通过将较小的文件打包为元数据来为它们提供高效的存储。

3) 内置 RAD 支持

Btrfs 文件系统包括对 RAID 0(数据剥离)、1(数据镜像)和 RAID 10(数据剥离和镜像)的支持

4)在线碎片整理和调整大小

使用 Btrfs,即使文件系统处于联机状态,也可以执行碎片整理和调整大小。

5)动态inode分配

Btrfs 提供 inode 的动态分配。它会在需要时将 inode 分配给文件,这有助于防止在文件系统上有很多小文件的情况下 inode 耗尽。

6) 可写和只读快照

Btrfs 提供的另一个出色功能是对快照的支持。您可以轻松地创建文件系统的快照,并在数据意外删除或损坏时利用它来恢复其他地方的数据。

7) 支持校验和

另一个重要特性是对校验和的支持。校验和是小块数据,可以避免静默文件或数据损坏的可能性,这是其他文件系统不提供的。校验和存储在文件系统中,并持续关注文件系统错误和数据损坏的迹象。

8) 优化对 SSD 驱动器的支持

SSD(固态硬盘)驱动器确实在 PC 中提供了相当程度的速度、可靠性和稳定性。Btrfs 文件系统通过优化它们的读写性能进一步提高了它们的性能,从而提高了 SSD 的寿命。

Ext4 和 Btrfs 文件系统的比较

让我们知道在各种关键特性上对两个文件系统进行比较。

1. 日志和写时复制支持

这是两个文件系统之间出现的第一个主要区别。Ext4 文件系统是一个日志文件系统,而 Btrfs 是一个 Copy-on-Write (CoW) 文件系统。

2.多设备支持

将单个文件系统分布在多个设备上提供了某些优势,例如容量增加和可靠性更高。Btrfs 具有内置的 RAID 支持,可以轻松地在文件系统级别管理多个设备。

Ext4 文件系统没有对多设备的内置支持。您将不得不使用LVM 2之类的第 3 方逻辑卷管理器将文件系统跨越多个设备和磁盘。

3.文件系统级重复数据删除: 

重复数据删除是一种自动从文件系统中删除重复数据副本以节省磁盘空间的功能。Btrfs 文件系统通过将文件系统中的相同块替换为指向该块的单个副本的逻辑链接来支持重复数据删除。此功能可节省大量磁盘空间。

Ext4 文件系统不支持重复数据删除。

4. 文件系统级压缩

Btrfs 使用压缩算法来支持文件系统级别的数据压缩。这意味着数据将在写入文件系统时自动压缩。

Ext4 文件系统没有内置的压缩​​支持。

5. 最大分区和文件大小 

使用 ext4 可以创建的最大分区是 1 exbibyte——相当于大约 1,152,921.5 TB。最大文件大小为 16 TiB,比普通消费者目前可以购买的任何硬盘都要大得多。

Btrfs 支持的最大分区和文件大小高达 16Eib。 

Ext4 允许您创建最多 232 个(= 4,294,967,296 ~= 40 亿)文件。Btrfs 允许您创建最多 264 个(= 18,446,744,073,709,551,616 ~= 18 quintillion)文件。

6.校验和/ECC支持

Btrfs 文件系统使用 CRC32C 校验和来确保数据完整性并避免数据损坏。Ext4 文件系统不保证数据的完整性。

7. 快照支持

Btrfs 文件系统支持文件的只读和可写快照。快照是一个子卷,它使用 COW 功能与另一个子卷共享其数据和元数据。

Ext4 文件系统不支持创建文件系统的快照。

8. 分块分块和尾打包

块子分配是一种功能,将大文件存储在块中,同时有效利用最后一个块末尾的尾部空间。块子分配是一种将另一个文件块的一部分存储到尾块并节省磁盘空间的方法。

Btrfs 旨在利用此可用空间,并可以将多个块的尾部与其他文件打包在一起。这提高了文件系统性能并提高了存储效率。

Ext4 不支持尾部打包。

结论

Ext4 文件系统是扩展文件系统的最新版本。Ext4 已经存在了很长时间,并且被证明是可靠和稳定的。建议日常使用。万一停电,ext4 很有可能会确保您保存的数据安全。

Ext4 专注于高性能和可扩展性。这是一个坚如磐石的选择,因为它已经存在很长时间了,它带来了多年来的系统测试和错误修复。不管其所有功能如何,它都不支持重复数据删除、压缩或加密。

另一方面,Btrfs 是一个现代文件系统,可以处理多达 16 倍于 Ext4 的数据。这种改进特别重要,因为 Linux 现在在企业实体中使用。Btrfs 有很多上面提到的很好的特性,例如 Copy-on-Write、快照、校验和和复制。Btrfs 正在快速增长,但仍被认为不稳定。

到目前为止,ext4 似乎是桌面系统上更好的选择,因为它是默认文件系统,并且在传输文件时比 btrfs 更快。btrfs 文件系统值得研究,但要在桌面 Linux 上完全取代 ext4 可能需要几年时间。 

 

 

 类似资料: