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