Btrfs 对最终用户有哪些优势?

21 filesystems btrfs

Btrfs已经开始在取代 ext4 作为少数发行版(如Fedora Core 16)的默认文件系统选择方面获得一些动力。它在许多其他发行版中实验性可用(来自维基百科: openSUSE 11.3、SLES 11 SP1、Ubuntu 10.10、Sabayon Linux、RHEL6、MeeGo、Debian 6.0 和 Slackware 13.37)。我当然还没有准备好转换我所有的工作场所服务器(我的文件系统选择通常是保守的),我正在考虑在家里和工作中选择的非关键任务生产机器上使用它。

Btrfs 带来了在很多方面与 ZFS 相似的功能集。我可以理解为什么这在“企业”环境中是可取的,尤其是对于专注于存储交付的系统。但是这个相同的功能集对最终用户有什么用呢?Btrfs 的特性列表在主要功能不是存储呈现的机器上给了我什么优势?它对我的笔记本电脑有什么好处?

在企业存储之外,我为什么要费心从久经考验的真正 Ext 文件系统切换到 Btrfs?

Ruf*_*ufo 21

来自维基

Extent based file storage
2^64 byte == 16 EiB maximum file size
Space-efficient packing of small files
Space-efficient indexed directories
Dynamic inode allocation
Writable snapshots, read-only snapshots
Subvolumes (separate internal filesystem roots)
Checksums on data and metadata
Compression (gzip and LZO)
Integrated multiple device support 
    RAID-0, RAID-1 and RAID-10 implementations 
Efficient incremental backup
Background scrub process for finding and fixing errors on files with redundant copies
Online filesystem defragmentation 
Run Code Online (Sandbox Code Playgroud)

桌面用户说明:

  • 节省空间的小文件打包:对于拥有数万个文件(邮件目录、带有代码的存储库等)的桌面很重要。
  • 动态 inode 分配:避免 Ext2/3/4 的 inode 数量限制。Btrfs inode 限制完全不同(而 ext4 的 inode 在文件系统创建时分配,创建后无法调整大小,通常为 1-2 百万,硬限制为 40 亿,btrfs 的 inode 根据需要动态分配,并且硬限制是 2^64,大约 18.4 千亿,大约是 ext4 硬限制的 46 亿倍)。
  • 只读快照:快速备份。
  • 数据和元数据校验和:对于数据完整性至关重要。Ext4 仅具有元数据完整性。
  • 压缩:LZO 压缩非常快。
  • 用于查找和修复具有冗余副本的文件的错误的后台清理过程:数据完整性。
  • 在线文件系统碎片整理:3.0 中的 autodefrag 将对某些类型的文件进行碎片整理,例如数据库(例如 firefox 配置文件或 akonadi 存储)。

我推荐你内核3.0。btrfs 也是一个很好的 SSD FS。

  • 快速备份**和**完整系统回滚 (4认同)

roz*_*acz 11

好处:我相信它将主要是备份和镜像功能。

但是为什么您会如此草率地将 btrfs 视为准备好替换您当前任何文件系统的文件系统?您参考的两个维基:

(...) it is currently possible to corrupt a filesystem irrecoverably if your 
machine crashes or loses power on disks that don't handle flush requests
correctly. This will be fixed when the fsck tool is ready.
Run Code Online (Sandbox Code Playgroud)

和 3.0 内核文档

  Btrfs filesystem (EXPERIMENTAL) Unstable disk format
  (...)
  Btrfs is highly experimental, and THE DISK FORMAT IS NOT FINALIZED. 
  You should say N here unless you are interested in testing Btrfs 
  with non-critical data.
Run Code Online (Sandbox Code Playgroud)

显然不鼓励您将 btrfs 用于测试以外的任何其他目的。

但是说到形式,我相信对于最终用户来说,只有像个人主目录中的东西这样的私人数据才有价值。将不需要将东西移到垃圾箱的安全网——实际上需要重新定义桌面环境中的“垃圾箱”。其余功能可能最终(对用户而言)感觉更快(如果有的话),但会更快地消耗磁盘空间。


bas*_*ic6 6

多年来,BTRFS 已经相当成熟(自从提出这个问题以来)。对于大多数简单的用例,它现在非常稳定,即使对于不同的 RAID 级别(例如,RAID-1 - 稳定且易于设置)。鉴于 BTRFS 存储校验和的事实,它能够可靠地检测损坏(与只有奇偶校验可用的经典 RAID 系统不同)。
当前版本甚至能够修复 BTRFS RAID-5 文件系统中的典型错误(例如通过更换故障驱动器)(尽管 raid56 仍需要改进,请参阅下面的更新)。
如果修复/替换操作崩溃,首先更新内核(这可能会解决这个问题)——如果有必要,BTRFS 有一些恢复功能。即使在最坏的情况下(例如多个驱动器出现故障),您通常也可以复制仍然正常的文件,并且您会知道哪些文件已损坏。因此,忽略所有其他功能(如快照、CoW 副本、子卷),如果检测数据/文件损坏是主要优先事项,则可以使用 BTRFS。

更新:2016 年 6 月,发现 BTRFS 中的 RAID-5/6 实现存在缺陷。BTRFS 总体上是稳定的——但是raid56 实现是非常新的,无论如何都被认为是实验性的,现在应该只用于测试,直到它被修复。如果您使用的是 RAID-5/6,您可能需要转换为 RAID-1。它仍然为最终用户提供了一些优势,比如校验和(其他文件系统可能根本不知道损坏的文件)和在驱动器出现故障时提供保护。

参考:BTRFS 有时会计算错误的奇偶校验