云网牛站
所在位置:首页 > Linux新闻 > 在Btrfs和LVM-ext4之间怎么选择:附详细的高级功能介绍

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

2020-12-31 11:59:57作者:浦洪稿源:云网牛站

如果不知道Btrfs和LVM-ext4该怎么选择?请看本文的介绍,掌握以下知识对使用Fedora 33 Linux系统的用户来说非常有用,它能帮您做出正确的选择。

 

前言

Fedora 33在桌面版本Btrfs中引入了新的默认文件系统。经过数年的Fedora在逻辑卷管理器(LVM)卷之上使用ext4之后,这是一个巨大的转变。更改默认文件系统需要令人信服的原因。虽然Btrfs是令人兴奋的下一代文件系统,但LVM上的ext4已经建立并稳定。本文旨在探索每种功能的高级功能,并使其更容易在Btrfs和LVM-ext4之间进行选择。

 

关于Fedora 33所使用的默认文件系统

最简单的建议是坚持使用默认值。全新的Fedora 33安装默认为Btrfs(参考安装Fedora 33指导:附Fedora 33安装全过程截图),升级以前的Fedora版本将继续使用最初安装的内容,通常是LVM-ext4。对于现有的Fedora用户,获取Btrfs的最全面的方法是全新安装。但是,全新安装比简单升级更具破坏性。除非有特殊需要,否则这种破坏可能是不必要的。Fedora开发团队仔细考虑了两种默认设置,因此请对两种选择都充满信心。

Linux系统有大量文件系统。那么为什么要专注于Btrfs和LVM-ext4?对于Fedora用户来说,这两种设置可能是最常见的。LVM之上的Ext4成为Fedora 11中的默认磁盘布局,而LVM之上的ext3在此之前。

既然Btrfs是Fedora 33的默认设置,那么绝大多数现有用户将在考虑他们应该留在原地还是向前迈进。面对全新的Fedora 33安装,经验丰富的Linux用户可能会怀疑是使用此新文件系统还是退回到他们熟悉的文件系统。因此,在可能的存储选项的广泛领域中,许多Fedora用户会想知道如何在Btrfs和LVM-ext4之间进行选择。

 

共性

尽管这两种设置之间存在核心差异,但Btrfs和LVM-ext4实际上有很多共同点。两者都是成熟且经过测试的存储技术。自Fedora Core诞生以来,LVM就一直在使用,而ext4在2009年成为Fedora 11的默认值。Btrfs在2009年合并到主线Linux内核中,Facebook广泛使用它。SUSE Linux Enterprise 12在2014年将其设置为默认值。因此,生产运行时间也很多。

两种系统都非常出色,可以防止由于意外的电源中断而导致文件系统损坏,即使它们的完成方式不同。支持的配置包括单个驱动器设置以及跨多个设备,并且两者都能够创建近乎即时的快照。存在多种通过命令行和图形界面来帮助管理任一系统的工具。两种解决方案在家用台式机和高端服务器上均能很好地工作。

 

Btrfs的优势

显示Btrfs文件系统与硬盘驱动器分区和已挂载目录的关系,Btrfs结构:

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

从前几代中学到的经验指导了Btrfs内置的功能。与ext4不同,它可以直接跨越多个设备,因此它具有通常仅在卷管理器中才能找到的功能。它还具有Linux文件系统空间中独有的功能(ZFS具有相似的功能集,但Linux内核中不希望使用此功能)。

1、Btrfs的主要功能

也许最重要的功能是所有数据的校验和。校验和与写时复制一起,是确保意外断电后确保文件系统完整性的关键方法。更独特的是,校验和可以检测数据本身中的错误。大多数人意识到,无声的数据损坏(有时也称为bitrot)更常见。没有主动验证,损坏最终可能会传播到所有可用备份。这使用户没有有效的副本。通过透明地校验所有数据,Btrfs能够立即检测到任何此类损坏。启用正确的dup或raid选项可使文件系统也透明地修复损坏。

写入时复制(COW)也是Btrfs的基本功能,因为它对提供文件系统完整性和即时子卷快照至关重要。从通用子卷创建快照后,快照会自动共享基础数据。此外,事后重复数据删除使用相同的技术来消除相同的数据块。单个文件可以通过使用带有reflink选项的cp来使用COW功能。 Reflink副本对于复制大型文件(例如虚拟机映像)特别有用,例如,随着时间的流逝,这些文件通常具有几乎相同的数据。

Btrfs支持跨多个设备,而无需卷管理器。多设备支持可解锁数据镜像以实现冗余,而条带化则可提高性能。实验上还支持更高级的RAID级别,例如RAID5和RAID6。与标准RAID设置不同,Btrfs raid1选项实际上允许奇数个设备。例如,即使它们的大小不同,它也可以使用3个设备。

所有RAID和dup选项都在文件系统级别指定。因此,各个子卷不能使用不同的选项。请注意,将RAID1选项与多个设备一起使用意味着即使一个设备发生故障,并且校验和功能仍可保持数据本身的完整性,卷中的所有数据均可用。这超出了当前典型的RAID设置所能提供的范围。

2、附加功能

Btrfs还支持快速简便的远程备份。子卷快照可以发送到远程系统进行存储。通过利用文件系统中固有的COW元数据,这些传输通过仅发送先前发送的快照中的增量更改而非常有效。快照程序等用户应用程序使管理这些快照变得容易。

此外,Btrfs卷可以进行透明压缩,而chattr+c将标记单个文件或目录进行压缩。压缩不仅可以减少数据消耗的空间,还可以通过减少写入操作量来帮助延长SSD的寿命。压缩当然会带来额外的CPU开销,但是有很多选项可用于权衡取舍。

Btrfs集成了文件系统和卷管理器功能,这意味着总体维护比LVM-ext4更简单。当然,这种集成的灵活性较低,但是对于大多数台式机甚至服务器而言,设置已足够。

 

LVM-ext4的优点

显示LVM-ext4文件系统与硬盘驱动器分区和已挂载目录的关系,LVM上ext4的结构:

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

ext4文件系统专注于高性能和可伸缩性,它有效地防止了长时间的碎片,并为碎片何时发生提供了很好的工具。Ext4坚如磐石,因为它建立在以前的ext3文件系统上,并带来了多年的系统内测试和错误修复。参考了解ext4及和其他Linux文件系统的区别

LVM-ext4设置中的大多数高级功能都来自LVM本身。LVM位于文件系统“below”,这意味着它支持任何文件系统。逻辑卷(LV)是通用块设备,因此虚拟机可以直接使用它们。这种灵活性允许每个逻辑卷在各种情况下使用具有正确选项的正确文件系统。这种分层方法还遵循小型工具协同工作的Unix哲学。

来自硬件的卷组(VG)抽象允许LVM创建灵活的逻辑卷。每个LV从相同的存储池中拉出,但具有自己的配置。卷的大小比调整物理分区的大小容易得多,因为对数据的有序放置没有限制。LVM物理卷(PV)可以是任意数量的分区,甚至可以在系统运行时在设备之间移动。

LVM支持只读和读写快照,这使从活动系统创建一致的备份变得容易。每个快照都有定义的大小,并且从那里更改源或快照卷的使用空间。或者,逻辑卷也可以是精简配置池的一部分。这使快照可以自动使用池中的数据,而无需消耗在创建卷时定义的固定大小的块。

下面介绍具有LVM的多个设备内容:

当有多个设备时,LVM确实不错。它具有对大多数RAID级别的本机支持,并且每个逻辑卷可以具有不同的RAID级别。LVM将自动为RAID配置选择适当的物理设备,或者用户可以直接指定它。基本的RAID支持包括用于性能的数据条带化(RAID0)和用于冗余的镜像(RAID1)。逻辑卷也可以使用高级设置,例如RAID5、RAID6和RAID10。LVM RAID支持已经成熟,因为LVM在后台使用了mdadm使用的相同的设备映射器(dm)和多设备(md)内核支持。

对于具有快速和慢速驱动器的系统,逻辑卷也可以是缓存的卷。经典示例是SSD和旋转磁盘驱动器的组合。高速缓存的卷使用更快的驱动器来存储更频繁访问的数据(或用作写缓存),而慢速的驱动器使用批量数据。

LVM中大量稳定的功能以及ext4的可靠性能证明了它们已使用了多长时间。当然,具有更多功能会带来复杂性。在配置LVM时,为正确的功能找到正确的选项可能具有挑战性。对于单驱动器台式机系统,LVM的功能(例如RAID和缓存卷)不适用。但是,逻辑卷比物理分区更灵活,快照也很有用。对于正常的桌面使用,LVM的复杂性也可能成为从典型用户可能遇到的问题中恢复的障碍。

 

Btrfs on LVM

Btrfs可以就地转换ext3/ext4文件系统。就地转换意味着没有数据可以复制出来然后再返回。数据块本身甚至都没有被修改。结果,现有LVM-ext4系统的一种选择是将LVM保留在原处,然后简单地将ext4转换为Btrfs。虽然可行且受支持,但有一些原因使它不是最佳选择。

Btrfs的吸引力之一是与卷管理器集成的文件系统附带的更轻松的管理。通过在LVM之上运行,还可以使用其他卷管理器来进行任何系统维护。同样,LVM设置通常具有多个具有独立文件系统的固定大小的逻辑卷。虽然Btrfs在给定的计算机上支持多个卷,但是许多不错的功能都希望单个卷具有多个子卷。如果每个LVM卷都有一个独立的Btrfs卷,则用户仍然无法手动管理固定大小的LVM卷。但是,收缩挂载的Btrfs文件系统的功能确实使处理固定大小的卷的工作变得更轻松。通过在线收缩,无需启动实时映像。

使用Btrfs的多设备支持时,必须仔细考虑逻辑卷的物理位置。对于Btrfs而言,每个LV都是一个单独的物理设备,如果实际情况并非如此,则某些数据可用性功能可能会做出错误的决定。例如,如果单个驱动器发生故障,对数据使用raid1通常可以提供保护。如果实际逻辑卷在同一物理设备上,则没有冗余。

如果强烈需要某些特定的LVM功能(例如原始块设备或缓存的逻辑卷),则在LVM之上运行Btrfs是有意义的。在这种配置下,Btrfs仍然提供其大多数优点,例如校验和和易于发送增量快照。尽管使用LVM会产生一些操作开销,但Btrfs不会比其他任何文件系统更多。

 

结语

当尝试在Btrfs和LVM-ext4之间进行选择时,没有一个正确的答案。每个用户都有独特的要求,并且同一用户可能拥有具有不同需求的不同系统。查看每种配置的功能集,并确定是否有令人信服的功能。如果没有,坚持默认值没有错。总之,选择这两种设置都有很好的理由,就看个人的需求来定。

 

相关主题

在Linux系统中创建LVM物理卷、扩展卷组及LVM逻辑卷的方法

精选文章
热门文章