对于安装Fedora的笔记本电脑和工作站,我们希望以透明的方式向用户提供文件系统功能。我们希望添加新功能,同时减少处理磁盘空间不足等情况所需的专业知识。Btrfs通过设计哲学很好地适应了这一角色,让我们将其作为默认设置。
对于新安装,Fedora桌面版/Spin变体将在默认情况下切换到使用Btrfs作为文件系统。从这些变体派生的实验室继承了此更改,其他版本可能会选择加入此更改。
此更改基于安装程序的自定义分区Btrfs预设。它已经经过7年的良好测试了。
挂载于/的当前分区VG/root LV和挂载于/home的VG/home LV。这些是单独的文件系统卷,具有单独的可用/已用空间。
建议对挂载在/上的根子卷和挂载在/home上的HOME子卷进行分区。子卷没有大小,它们的作用主要像目录一样,空间是共享的。
未更改的/boot将是一个较小的ext4卷。需要单独的引导来引导dm-crypt sysroot安装;无论sysroot是否加密,保持布局不变都比较简单。将不会有自动快照/回滚。
如果您选择加密数据,仍然会像现在一样使用Luk(dm-crypt)(只是使用了Btrfs而不是LVM+ext4)。上游的工作是为Btrf提供原生加密,一旦准备就绪,将在未来的Fedora版本中提出不同的更改建议。
上面的详细描述就是提案。它的目的是成为一种极简主义和透明的开关。它也与Fedora 16的建议(和接受)相同。以下优化改进了建议,但不是关键的。它们对大多数用户也是透明的。总体思路是先同意基本提案,然后再将其视为增强功能。
优势:可以包含在快照和回滚机制中。GRUB对Btrfs的稳定支持已超过10年。
范围:取决于引导加载程序和安装程序团队的审查和批准。blivet应该使用mkfs.btrfs--Mixed。
优势:通过减少写入放大,节省空间并显著延长基于闪存的介质的使用寿命。在某些情况下,它可能会提高性能。
范围:取决于安装人员团队的审查和批准,以增强anaconda以使用mount-o compress=zstd执行安装,然后为每个目录设置适当的XATTR。只有通过基于rsync、rpm或unsquashfs的安装创建目录后,才能设置XATTR。
优势:更容易从快照、回滚和发送/接收中排除它们。(Btrfs快照不是递归的,它在嵌套的子卷上停止。)。
作用域:蟒蛇已经知道如何做到这一点,只需更改kickstart以添加额外的子卷(减去~/中的子卷即可。GNOME盒需要增强才能检测用户主目录是否在Btrfs上,并创建~/.local/share/gnome-box/images/作为子卷。
红帽在许多方面都很好地支持费多拉。但Fedora已经与上游密切合作,并依赖于上游。这将是其中之一。这是这项建议的一个重要考虑因素。确保它得到支持对社区有利害关系。如果Fedora拒绝Btrf,RedHat将永远不会支持它。软呢帽必然需要是第一个,并提出有说服力的理由,即它比其他选择解决了更多的问题。功能所有者毫不犹豫地相信它是这样的。
Btrfs社区的用户在过去十年的大部分时间里都在大规模使用它。自2014年以来,它一直是openSUSE(和SUSE Linux Enterprise)的默认设置,Facebook在其数据中心将其用于所有操作系统和数据卷的时间几乎与此相当。Btrfs是一个成熟的、易于理解且经过战斗测试的文件系统,可用于桌面/容器和服务器/云使用案例。我们确实有Btrfs文件系统的开发人员维护和支持Fedora中的代码,其中一个是更改所有者,因此固定在Btrfs上的问题可以快速解决。
DM-Thin(精简资源调配):[问题#152仍然发生,因为默认情况下安装程序赢得了资源调配。用户仍需要手动干预才能识别和解决问题。在DM-Thin上增长文件系统时,池会过度使用,文件系统大小成为幻想:它们加起来不等于可用物理存储总量。已用空间和可用空间的真实情况仅由精简池知道,CLI和GUI程序没有为此做好准备。像rpm空闲空间检查或GNOME磁盘空间警告这样的集成点也必须进行调整。
DM-VDO:尚未合并,并且不像在/var/lib/flatpaks/上使用chattr+c在Btrfs上有选择地启用每个目录和每个文件那样简单。
Btrfs解决了需要解决的问题,对用户几乎没有副作用或陷阱。它有更多我们可以立即、透明地利用的功能:压缩、完整性和IO隔离。许多Btrfs特性和优化可以根据目录或文件有选择地选择,例如压缩和nodatacow,而不是作为一个打开或关闭的层。
如果Btrfs不是默认文件系统,则没有承诺,也没有理由进行任何UI/UX集成。有一些想法可以让某些功能变得可发现:选择性压缩;systemd-homed可以利用btrfs在线调整大小或近期计划的本地加密,这可以使将未加密的家庭实时转换为加密的家庭成为可能;以及系统快照和回滚。
此功能的主要目标是在很大程度上对用户透明。它不需要或不期望用户学习新命令,也不需要进行特殊的维护程序。
Fedora中将启用被认为稳定且默认情况下上游启用的全套Btrfs功能。软呢帽是一个社区项目。Fedora内部支持什么取决于社区决定在资源方面提出什么。
就GUI和CLI中的导航而言,子卷的行为类似于目录,例如cp、mv、du、所有者/权限和SELinux标签。它们还共享空间,就像目录一样。
子卷是独立的文件树,有自己的POSIX命名空间,有自己的inode池。这意味着索引节点编号在Btrfs卷上重复。信息节点仅在给定子卷内是唯一的。子卷有自己的st_dev,因此如果您使用stat file,它会报告一个引用该文件所在子卷的设备值。这也意味着不能在子卷之间创建硬链接。从这个角度来看,子卷开始看起来更像一个单独的文件系统。但是子卷共享大多数其他树,因此它们不是真正独立的文件系统。它们也不会阻止设备。
存储设备可能会松散,从而导致数据损坏导致EIO(输入/输出错误),而不是导致应用程序混乱,并且无法复制到备份和归档中。
复杂的存储设置是.。复杂、简单、高效的文件系统复制,包括增量备份,使用btrfs发送和btrfs接收。
将为现有的Btrfs用户提供文档,以便将他们的设置改造为默认Btrfs安装的设置(基础和任何批准的选项)。
今天,执行自定义分区安装;将方案下拉菜单更改为Btrfs;单击蓝色的Automatic Create Partitions;并安装。Feddora 31,32,Rawhide,在x86_64和ARM上。
已用空间和空闲空间的实用程序(CLI和GUI)应该具有相同的行为。不需要特殊命令。
当/home是绑定挂载时,updatedb不会索引/home,这也会影响rpm-ostree安装,包括SilverBlue。
GNOME用法:使用多个btrfs子卷时数字不正确这不是btrfs特定的,在一个大的ext4;#34;卷中也会发生这种情况。
GNOME BOAKS,RFE:在btrfs/home上使用';nocoo';选项创建qco2这是特定于btrfs的,建议对GNOME BOX和virt-manager进行优化。
严格地说,用户不需要阅读任何文档。但将会有一些Fedora文档来帮助推动这项工作。
man 5 btrfs包含:装载选项、功能、交换文件支持、校验和算法等man btrfs包含btrfs子命令的概述manbtrfs;子命令&>将显示该子命令的手册页。
注意:btrfs命令将接受子命令名的开头部分,只要它不是模棱两可的。以下是等效命令:btrfs子卷快照btrfssub snap btrfs su sn。
你会发现你自己的惯例。在论坛和列表上写出完整的命令可能更好,但是也许有些人不知道这个有用的快捷方式?
版权所有©2020 Red Hat,Inc.。还有其他人。版权所有。如有意见或疑问,请与我们联系。
Fedora项目由社区维护和推动,并由红帽公司赞助。这是一个社区维护的站点。红帽不对内容负责。