我想在两个镜像驱动器 ( RAID 1 ) 上使用Btrfs,用于在桌面系统(媒体文件等)上存档数据,以实现冗余/可用性和潜在的自我修复功能,以防驱动器发生故障。
这意味着我不想要任何额外的(面向服务器的)功能,例如文件系统上的重复数据删除、文件压缩或 ARC,与 CPU 和 RAM 空间有限的常规桌面系统相比,这应该会减少资源需求NAS 或服务器系统。
如何在最近的 Ubuntu 系统 (18.04+) 上正确设置具有核心功能的 Btrfs 而没有这些额外的、要求更高的功能?还有什么可以配置来减少系统资源的消耗?
我已经阅读了各种指南,并认为我知道如何安装 Btrfs,并且这些功能中的大多数默认情况下都没有启用,但是由于在这种情况下正确的初始设置非常重要,我想绝对确保没有误解或Ubuntu 特定设置的差异。
详细问题:
安装 btrfs-tools 来设置它是否足够,或者是否需要其他东西,也用于清理和碎片整理?
您提到磁盘可以带或不带分区使用,这两个选项的(缺点)优点是什么?
您是否碰巧知道默认情况下是否使用任何类型的(L2)自适应替换缓存?(我宁愿定期进行碎片整理,而不是为其留出 RAM。)
您写道,lzo-compression 将提高(读/写?)速度,而无需过多详细说明,这是如何工作的?
您可以在使用 btrfs 时使用或不使用分区。
分区首先在两个磁盘上创建分区表和分区。让我们说
/dev/sdb1
和/dev/sdc1
。然后
btrfs
通过运行创建文件系统你完成了。
注意: 前面的命令
btrfs
在指定的分区上创建一个文件系统。在运行此命令之前或之后,您都不需要“格式化”它。mkfs.btrfs
完全足以创建文件系统。现在您可以通过以下方式将此 raid 挂载到您喜欢的任何目录
您可以挂载任何一个磁盘,结果相同:raid 将被挂载。
您可以将其永久安装在
/etc/fstab
. 如果您没有在此处设置特定选项,例如压缩,则不会使用它们。或者,您不必创建分区,并且可以通过以下方式直接在设备上创建 raid:
两种方法没有太大区别,但我更喜欢传统上的分区。
我不知道任何会“减少系统资源消耗”的设置。内核模块本身并不消耗太多。如果您不需要重复数据删除或压缩等任何功能,请不要使用它们。
但要考虑到
lzo
压缩在大多数情况下会加快磁盘速度并增加存储空间,因为解压缩比从磁盘读取要快。回答详细问题:
btrfs-tools
默认情况下安装,不需要其他任何东西来管理btrfs
文件系统。如果您打算仅将磁盘用于 RAID,则没有太大区别。它不会以任何方式影响性能。但是,如果您在磁盘上创建分区表,您将能够缩小一个或两个磁盘的 btrfs raid 分区,并在部分磁盘上创建一些其他文件系统。它为未来增加了一点灵活性。即使磁盘正在使用中,您也可以缩小 btrfs 分区。
我不知道有关 L2 缓存使用的任何用户设置可用。您可以进行手动或自动碎片整理。有
autodefrag
可用于自动碎片整理的安装选项。我没有注意到 RAM 的使用量很大autodefrag
,但是如果 RAM 是一个真正的问题,那就需要测试了。compress=lzo
您可以使用选项挂载您的突袭。如果你在一个空的raid上做,所有的文件都会被压缩。您也可以稍后启用压缩,但在这种情况下,不会自动压缩现有数据,只会压缩新数据。但是您始终可以使用-clzo
选项对现有数据进行碎片整理。这将压缩现有数据。我总是使用
lzo
它,因为它为 HDD 增加了一些性能,为 SSD 节省了一些读/写周期,并为两者提供了额外的空间。使用和
fstab
输入的示例:autodefrag
lzo
UUID 可以取自
sudo blkid
或gparted
。这样,您可以使用以下方式压缩文件系统
lzo
: