![各种子卷的 btrfs 配置](https://linux22.com/image/219428/%E5%90%84%E7%A7%8D%E5%AD%90%E5%8D%B7%E7%9A%84%20btrfs%20%E9%85%8D%E7%BD%AE.png)
是否有根据不同子卷的使用目的建议压缩多少?
就我而言,我有子卷@、@home、.snapshots/@root、.snapshots/@home、@srv、var/@log、var/@cache。这样我就只能快照@和@home。
我决定将 compress-force=zstd:2 作为默认值,但在 compress-force=zstd:5 处更多地压缩 /var/@log 和 .snapshots,因为它们可能不会影响性能。我不知道压缩对快照程序快照是否有效。我也很好奇缓存目录(var/cache、home/username/.cache)的压缩将如何影响性能。
我还可以创建一个单独的数据子卷,其中包含游戏、视频、音乐等媒体的文件夹,如果需要,我可以对不同的操作系统进行符号链接。
也许它也应该像其他的一样 compress-force=zstd:2 ?因为较高的压缩会影响性能。而 compress=lzo 会因为数据量很大而放弃太多空间。
这有道理吗?
我有一个额外的切线相关问题是我是否应该为 /var/lib/machines、/var/lib/portables、/var/lib/docker 创建单独的子卷。我读到,如果需要,前两个可以自动创建。我还了解到 docker 可能存在 btrfs 问题。但是,我没有找到任何关于这是否只是由于 btrfs 存储驱动程序所致,并且 btrfs 文件系统上的 Overlay2 没有问题,或者是否仍然存在问题(在这种情况下,在其中挂载 ext4 分区是否有意义)。 /var/lib/docker?)。
编辑:所以我只是运行命令来挂载这些子卷(在 Arch chroot 中),mount -o noatime,space_cache=v2,compress-force=zstd:5,subvol=var/@log /dev/nvme0n1p2 /mnt/var/log
并注意到 mount -l 显示它不允许我设置不同的压缩级别,/var/log 设置为 compress-force=zstd:2。是否有一条规则要求安装点应具有与其安装到的父目录相同的压缩选项或其他内容?
答案1
第一个安装的子卷中的压缩标志将生效。
从https://btrfs.readthedocs.io/en/latest/Compression.html:
通常,可以在为安装点指定的整个文件系统上启用压缩。请注意,压缩挂载选项在同一文件系统的所有挂载(绑定挂载或子卷挂载)之间共享。请参阅安装选项部分。