如何在两个镜像驱动器上安装和配置 Btrfs 以供桌面使用?

如何在两个镜像驱动器上安装和配置 Btrfs 以供桌面使用?

我想使用文件系统在两个镜像驱动器上(RAID 1),用于在桌面系统上存档数据(媒体文件等),以实现冗余/可用性,并在驱动器发生故障时实现潜在的自我修复功能。

这意味着我不需要任何额外的(面向服务器的)功能,例如文件系统上的重复数据删除、文件压缩或 ARC,与 NAS 或服务器系统相比,这应该会减少对具有更有限的 CPU 和 RAM 空间的常规桌面系统的资源需求。

如何在最新的 Ubuntu 系统 (18.04+) 上正确设置具有核心功能的 Btrfs,而不设置这些额外的、要求更高的功能?还可以配置哪些内容来减少系统资源的消耗?

我读过各种指南,思考我知道如何安装 Btrfs,并且大多数功能默认情况下未启用,但由于正确的初始设置在这种情况下非常重要,因此我想绝对确保在 Ubuntu 特定的设置中没有误解或差异。

详细问题:

  1. 安装 btrfs-tools 来完成这个设置是否足够,或者是否还需要其他东西,也用于清理和碎片整理?

  2. 您提到磁盘可以在有或无分区的情况下使用,这两种选择的优缺点是什么?

  3. 您是否知道默认情况下是否使用任何类型的 (L2) 自适应替换缓存?(我宁愿定期进行碎片整理,而不是为其留出 RAM。)

  4. 您写道 lzo 压缩将增加(读/写?)速度,但不必过多赘述,它是如何工作的?

答案1

使用 btrfs 时,您可以选择使用分区,也可以不使用分区。

首先在分区时在两个磁盘上创建分区表和分区。假设/dev/sdb1/dev/sdc1

然后btrfs通过运行创建文件系统

sudo mkfs.btrfs -m raid1 -d raid1 /dev/sdb1 /dev/sdc1

你已经完成了。

笔记: 上述命令btrfs在指定分区上创建文件系统。您无需在运行此命令之前或之后对其进行“格式化”。mkfs.btrfs足以创建文件系统。

现在,你可以将此 raid 安装到你喜欢的任何目录,方法是:

sudo mount /dev/sdb1 /mount_directory

您可以安装任一磁盘,结果相同:RAID 将被安装。

您可以将其永久挂载在 中/etc/fstab。如果您没有在那里设置特定选项(例如压缩),它们将不会被使用。

或者,您不必创建分区,而可以通过以下方式直接在设备上创建 raid:

sudo mkfs.btrfs -m raid1 -d raid1 /dev/sdb /dev/sdc

这两种方法没有太大区别,但我更喜欢传统的分区。

我不知道有任何设置可以“减少系统资源消耗”。内核模块本身消耗的资源并不多。如果您不需要重复数据删除或压缩等功能,就不要使用它们。

但请考虑到,lzo在大多数情况下,压缩会加快磁盘速度并增加存储空间,因为解压缩比从磁盘读取更快。

回答详细问题:

  1. btrfs-tools是默认安装的,不需要任何其他东西来管理btrfs文件系统。

  2. 如果您计划仅将磁盘用于 RAID,则没有太大区别。它不会以任何方式影响性能。但是,如果您在磁盘上创建分区表,您将能够缩小一个或两个磁盘上的 btrfs RAID 分区,并在部分磁盘上创建其他文件系统。这为未来增加了一点灵活性。即使磁盘正在使用中,您也可以缩小 btrfs 分区。

  3. 我不知道有任何可供用户使用的有关 L2 缓存使用的设置。您可以进行手动或自动碎片整理。有autodefrag可用于自动碎片整理的安装选项。我没有注意到 RAM 使用量很大autodefrag,但如果 R​​AM 确实存在问题,则需要进行测试。

  4. 您可以使用选项安装 RAID compress=lzo。如果您在空 RAID 上执行此操作,则所有文件都将被压缩。您也可以稍后启用压缩,但在这种情况下,现有数据不会自动压缩,只有新数据才会压缩。但您始终可以使用-clzo选项对现有数据进行碎片整理。这将压缩现有数据。

我一直使用它,lzo因为它为 HDD 增加了一些性能,为 SSD 节省了一些读/写周期,并为两者提供了额外的空间。

fstab带有autodefrag和 的条目示例lzo

UUID=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx /mount_point btrfs compress=lzo,autodefrag 0 0 

sudo blkidUUID 可以从或中获取gparted

您可以使用以下方式压缩文件系统lzo

sudo btrfs fi defrag -r -v -clzo /mount_point

相关内容