为什么我的 tumbleweed opensuse fstab 包含这么多 btrfs subvol 条目?

为什么我的 tumbleweed opensuse fstab 包含这么多 btrfs subvol 条目?

为什么我的 opensuse tumbleweed 系统有如此多的文件系统文件夹“包装”(不确定这个词是否正确)作为 btrfs 上的子卷,其目的/推理/技术原因是什么?

和btrfs快照有关系吗?

许多条目都是 的子目录/var,然后我的主目录在 fstab 中映射为 xfs。这两种文件系统类型的原因是什么?我怀疑这与 btrfs 可以使用其快照“恢复”失败的系统更新有关,但我不明白为什么不直接创建一个微小的非 btrfs 文件系统并将其安装在 /var 上?

除了许多 /var 目录之外,它似乎/opt /src还有/tmp子卷条目。这是我的风滚草系统中完整的、未修改的、仅适用于工厂默认值的 fstab。

除了通常的 SWAP 和 btrfs 的 / 之外,令我惊讶的是子卷的数量之多。

UUID=fd443d26-5ded-4f57-a51e-824eec3d2199 swap swap defaults 0 0
UUID=7126f15f-0443-4e1d-b74e-406266534887 / btrfs defaults 0 0
UUID=7126f15f-0443-4e1d-b74e-406266534887 /opt btrfs subvol=@/opt 0 0
UUID=7126f15f-0443-4e1d-b74e-406266534887 /srv btrfs subvol=@/srv 0 0
UUID=7126f15f-0443-4e1d-b74e-406266534887 /tmp btrfs subvol=@/tmp 0 0
UUID=7126f15f-0443-4e1d-b74e-406266534887 /usr/local btrfs subvol=@/usr/local 0 0
UUID=7126f15f-0443-4e1d-b74e-406266534887 /var/crash btrfs subvol=@/var/crash 0 0
UUID=7126f15f-0443-4e1d-b74e-406266534887 /var/lib/libvirt/images btrfs subvol=@/var/lib/libvirt/images 0 0
UUID=7126f15f-0443-4e1d-b74e-406266534887 /var/lib/mailman btrfs subvol=@/var/lib/mailman 0 0
UUID=7126f15f-0443-4e1d-b74e-406266534887 /var/lib/mariadb btrfs subvol=@/var/lib/mariadb 0 0
UUID=7126f15f-0443-4e1d-b74e-406266534887 /var/lib/mysql btrfs subvol=@/var/lib/mysql 0 0
UUID=7126f15f-0443-4e1d-b74e-406266534887 /var/lib/named btrfs subvol=@/var/lib/named 0 0
UUID=7126f15f-0443-4e1d-b74e-406266534887 /var/lib/pgsql btrfs subvol=@/var/lib/pgsql 0 0
UUID=7126f15f-0443-4e1d-b74e-406266534887 /var/log btrfs subvol=@/var/log 0 0
UUID=7126f15f-0443-4e1d-b74e-406266534887 /var/opt btrfs subvol=@/var/opt 0 0
UUID=7126f15f-0443-4e1d-b74e-406266534887 /var/spool btrfs subvol=@/var/spool 0 0
UUID=7126f15f-0443-4e1d-b74e-406266534887 /var/tmp btrfs subvol=@/var/tmp 0 0
UUID=7126f15f-0443-4e1d-b74e-406266534887 /.snapshots btrfs subvol=@/.snapshots 0 0
UUID=edf9aa3f-621f-40d2-9e7a-433b50673642 /home                xfs        defaults              1 2

答案1

Btrfs 子卷主要排除包含临时文件、数据库数据等的目录。它减少了快照的大小。从上游文档复制https://www.suse.com/documentation/sles-12/stor_admin/data/sec_filesystems_major.htmlopenSUSE 文档更简短,但我认为 Btrf 子卷的用途也很清楚https://doc.opensuse.org/documentation/leap/reference/html/book.opensuse.reference/cha.snapper.html#sec.snapper.setup

根分区的默认子卷设置

/boot/grub2/i386-pc,/boot/grub2/x86_64-efi, /boot/grub2/powerpc-ieee1275, /boot/grub2/s390x-emu

不支持回滚引导加载程序配置。上面列出的目录是特定于体系结构的。前两个目录存在于 x86_64 机器上,后两个目录分别存在于 IBM POWER 和 IBM z Systems 上。

/home

如果 /home 不驻留在单独的分区上,则将其排除以避免回滚时数据丢失。

/opt, /var/opt

第三方产品和附加组件通常安装到 /opt。排除它是为了避免在回滚时卸载这些应用程序。

/srv

包含 Web 和 FTP 服务器的数据。排除它是为了避免回滚时数据丢失。

/tmp, /var/tmp, /var/crash

所有包含临时文件的目录均从快照中排除。

/usr/local

手动安装软件时会用到该目录。排除它是为了避免在回滚时卸载这些安装。

/var/lib/libvirt/images

通过 libvirt 创建的所有 VM 映像的默认目录。从快照中排除。默认情况下,该子卷是使用“写入时不复制”选项创建的。

/var/lib/named

包含 DNS 服务器的区域数据。从快照中排除,以确保名称服务器在回滚后可以运行。

/var/lib/mailman, /var/spool

包含邮件队列或邮件的目录将被排除,以避免回滚后邮件丢失。

/var/lib/mariadb

对于 MariaDB 数据。从快照中排除。默认情况下,该子卷是使用“写入时不复制”选项创建的。

/var/lib/pgsql

包含 PostgreSQL 数据。从快照中排除。默认情况下,该子卷是使用“写入时不复制”选项创建的。

/var/log

日志文件位置。从快照中排除,以便在回滚损坏的系统后允许进行日志文件分析。

所以,是的,Btrfs 是 root 的默认文件系统。

答案2

相信如果您想将整个磁盘(或大部分)分配给文件系统,btrfs 现在是首选文件系统。现在经常(总是)选择它作为 root。是的,快照是其中的重要组成部分。启动系统现在可以实际从以前的快照启动,并且快照是自动拍摄的。它救了我一次。

仅当您选择将 xfs 文件系统与根目录分开时,才会为主目录选择 xfs 文件系统,并且我相信这与主目录中的文件更改的频率有关,但我可能正在吸烟。如今它似乎比 ext3 或 ext4 受到更多支持。这是一个关于这个问题的 openSUSE 线程,没有真正的答案:https://forums.opensuse.org/showthread.php/501150-BTRFS-Question-gt-13-1-to-13-2

相关内容