云网牛站
所在位置:首页 > Linux教程 > 在Fedora Workstation 34系统下启用Btrfs透明压缩功能

在Fedora Workstation 34系统下启用Btrfs透明压缩功能

2021-04-15 10:42:51作者:游俊梧稿源:云网牛站

本文介绍在Fedora Workstation Linux 34系统下启用Btrfs透明压缩功能的方法。透明压缩是复杂的,但是从本质上讲它很容易理解:它使文件占用的空间更少,它有点像压缩的tar文件或ZIP文件,透明压缩会将文件系统的位和字节动态优化为更小的可逆格式。这具有许多好处,但是从本质上讲,它使文件更小。Fedora使用的是非常高效的zstd:1算法,多项测试表明,缺点是可以忽略的,更好的磁盘空间使用是最大的好处,还可能会减少写放大(可以增加SSD的使用寿命),并提高读/写性能。

在Fedora Workstation 34系统下启用Btrfs透明压缩功能

 

操作方法

注:在Fedora 34或Fedora 34 Beta全新安装中,默认情况下应启用它。不过在从Fedora 33升级之前和之后启用它也很简单。如果您还没有准备好升级,您甚至可以在Fedora 33中启用它。

1、(可选)备份任何重要数据,不过通常该过程本身是完全安全的。

2、要真正开始,您将要编辑fstab。在具有默认Btrfs布局的Fedora 33安装中,/etc/fstab文件可能看起来像这样:

在Fedora Workstation 34系统下启用Btrfs透明压缩功能

忽略/boot和/boot/efi目录,因为它们未压缩。您将添加参数compress=zstd:1。这告诉计算机,如果新写入的文件可以从中受益,则应透明地压缩它们。在第四列中添加此选项,该列当前仅包含/home和/的subvol选项:

在Fedora Workstation 34系统下启用Btrfs透明压缩功能

完成后,只需保存并退出(在默认的Nano编辑器上,则为CTRL-X,SHIFT-Y,然后按ENTER)。

3、既然fstab已被编辑,请告诉计算机再次读取它。之后,它将进行所有需要的更改:

$ sudo mount -o remount / /home/

完成此操作后,您将正式为所有新写入的文件启用透明压缩。

相关参考:将文件系统转换为Btrfs,即将当前分区迁移到Btrfs文件系统

 

追溯压缩旧文件

您的计算机上可能已经有很多文件。虽然先前的配置将压缩所有新写入的文件,但那些旧文件将无益。我建议采取下一步的步骤,以获取透明压缩的全部好处。

1、(可选)清除所有不需要的数据,这样可以加快速度。但是,这不是必需的。

2、是时候压缩您的数据了。一个简单的命令可以做到这一点,但是它的形式取决于您的系统。Fedora Workstation应使用:

$ sudo btrfs filesystem defrag -czstd -rv / /home/

Fedora Silverblue用户应使用:

$ sudo btrfs filesystem defrag -czstd -rv / /var/home/ 

注意:您可能会收到一些警告,提示类似“Cannot compress permission denied”之类的警告。这是因为用户无法轻松修改某些文件,尤其是在Silverblue系统上。这是文件的一小部分。随着系统升级,它们很可能会及时自行压缩。

压缩可能需要几分钟到一个小时,具体取决于您拥有多少数据。幸运的是,由于所有新写入都已压缩,因此您可以在此过程完成后继续工作。

该命令完成后,您将被正式完全压缩。

 

使用了多少文件空间,我的文件有多大

由于透明压缩的性质,诸如du之类的实用程序仅会报告准确的,未压缩的文件空间使用情况。这不是他们在磁盘上占用的实际空间。compsize实用程序是查看文件实际在磁盘上占用多少空间的最佳方法。compsize命令的一个示例是:

$ sudo compsize -x / /home/ 

此示例提供了有关如何透明地当前压缩/和/home/这两个位置的确切信息。如果未安装,则该实用程序在Fedora Linux存储库中可用。

 

相关主题

在Btrfs和LVM-ext4之间怎么选择:附详细的高级功能介绍

精选文章
热门文章