欢迎 on it road

在线调整大小和碎片整理

Btrfs 具有在线调整大小和碎片整理功能。

我们可以在文件系统保持联机时添加或者删除设备。

当一个设备被移除时,存储在它上面的盘区被重新分配到文件系统中的其他设备。

我们也可以在 Btrfs 在线时更换设备。
Btrfs 在新磁盘上重新平衡范围,然后我们可以从 Btrfs 数组中删除旧磁盘。

内置 RAID 支持

Btrfs 还具有对 RAID-0、RAID-1 和 RAID-10 级别的内置 RAID 支持。

Btrfs 的 RAID 不像使用 mdadm 命令创建的软件 RAID 设备那样是多磁盘 RAID。
它也不是块 RAID,因为它不镜像块设备。

Btrfs 的 RAID 只是确保对于每个块,都有“x”个副本。
例如,对于 RAID-1,Btrfs 只是将所有内容的两个副本存储在两个不同的设备上。

Btrfs 维护所有元数据和数据的 CRC,因此所有内容都经过校验和以保护数据的完整性以防损坏。
对于 RAID-1 或者 RAID-10 配置,如果第一次读取校验和失败,数据将从另一个副本中提取。

Btrfs 的性能通过使用 ssd 提高

Btrfs 自动检测固态驱动器 (SSD) 并关闭所有旋转媒体优化。

例如,在旋转磁盘上,重要的是将相关数据靠近存储以减少查找。
这需要 CPU 周期才能在旋转磁盘上获得良好的数据位置,而这对于 SSD 来说并不重要。

TRIM 支持也是对 SSD 的优化。
它告诉 SSD 哪些块不再需要并且可以被覆盖。

“Btrfs”文件系统

Btrfs 是一个用于 Linux 的开源通用文件系统。
该名称源自使用 B 树来存储内部文件系统结构。
文件系统使用了不同的名称,包括“Butter F S”和“B-tree F S”。
Btrfs 的开发始于 2007 年的 Oracle,现在许多(包括 Red Hat、Fujitsu、Intel、SUSE 和许多其他)都在为开发工作做出贡献。
Btrfs 包含在主线 Linux 内核中。

写时复制数据和元数据

Btrfs 提供基于extent 的文件存储,最大文件大小为50 TB,最大文件系统大小为50 TB。

所有数据和元数据都是写时复制。
这意味着磁盘上的数据块不会更改。
Btrfs 只是复制块,然后将副本写出到不同的位置。

不更新原始位置可消除电源故障期间部分更新或者数据损坏的风险。

Btrfs 的写时复制特性还促进了文件系统功能,例如数据的复制、迁移、备份和恢复。

Btrfs 快照

Btrfs 允许我们创建可读和可写的快照。

快照是在给定时间点拍摄的整个 Btrfs 子卷的副本。

快照显示为普通目录,我们可以像访问任何其他目录一样访问快照。

可写快照允许我们将文件系统回滚到以前的状态。
如果升级导致问题,我们可以拍摄快照、执行系统升级并重新启动到快照。
默认情况下,所有快照都是可写的,但我们也可以选择创建只读快照。

只读快照对于备份很有用,然后可以在备份完成时删除。

小文件的高效存储

Btrfs 为小文件提供了高效的存储。

所有 Linux 文件系统都以块大小寻址存储,例如 4 KB。
对于其他文件系统,小于 4 KB 的文件会浪费剩余空间。

Btrfs 将这些较小的文件直接存储到元数据中,从而在创建和读取小文件时提供明显优于其他文件系统的性能优势。

透明压缩

Btrfs 具有透明压缩,目前支持两种压缩方式:zlib 和 LZO(默认)。

LZO 提供更好的压缩比,而 zlib 提供更快的压缩。

Btrfs 可以确定块是否可以压缩,因此,仅在可能的情况下进行压缩。

我们可以使用挂载选项启用压缩并指定压缩方法。
例如,要启用 LZO 或者 zlib 压缩:

# mount -o compress=lzo|zlib [device] [mount_point]

我们还可以强制 Btrfs 始终压缩数据:

# mount -o compress-force [device] [mount_point]
日期:2020-09-17 00:14:18 来源:oir作者:oir