如何创建外部自愈 btrfs USB HDD RAID 1 阵列?

kin*_*ien 7 btrfs raid

硬件是一个外部 2TB 总线供电的 USB 磁盘。

我想要的是 2x 1TB btrfs 的 RAID1 设置。

这可能吗?如何?

__

动机

我使用 RAID1 btrfs 的动机是因为我刚刚阅读了一篇文章,讨论了当一个卷上的校验和失败时,这种设置如何自动修复损坏的文件

.jpeg只需翻转一位就会发生什么的示例(我为此使用了 vim。:%!xxd -b

在此处输入图片说明 在此处输入图片说明

kin*_*ien 5

这个答案是一个指南,用于展示我是如何做到这一点的。

我的设置是:

  • 1 个外置 USB 驱动器(1 个带 1 个驱动器的机箱)

如何:

  1. 我创建了一个 GPT 分区表,其中使用gparted. 随意命名分区,创建 RAID 时这些名称无论如何都会丢失。

    在此处输入图片说明

  2. 获取设备 ID:

    $ sudo btrfs filesystem show
    Label: none  uuid: 607b4153-7aa9-444d-bc15-c5fe9038f255
        Total devices 2 FS bytes used 28.00KB
        devid    1 size 1.82TB used 2.03GB path /dev/sdc
        *** Some devices missing
    Label: 'Max'  uuid: b6647427-9f27-4157-b47b-77f74054b885
        Total devices 1 FS bytes used 28.00KB
        devid    1 size 931.49GB used 2.04GB path /dev/sdc1        // first one
    Label: 'Moritz'  uuid: d0eaf97d-249e-4b7c-88a5-b60cc2d489d9
        Total devices 1 FS bytes used 28.00KB
        devid    1 size 931.49GB used 2.04GB path /dev/sdc2        // second one
    
    Run Code Online (Sandbox Code Playgroud)
  3. 创建 RAID:

    $ sudo mkfs.btrfs -L RAID-Datensicherung -m raid1 -d raid1 /dev/sdc1 /dev/sdc2
    
    Run Code Online (Sandbox Code Playgroud)
  4. 由于您还不能写入它,您需要成为新设备的所有者并更改权限。将设备安装在鹦鹉螺中,或者然后:

    $ cd /media
    $ sudo chown julien:julien RAID-Datensicherung
    $ sudo chmod 700 RAID-Datensicherung
    
    Run Code Online (Sandbox Code Playgroud)
  5. 卸载并再次重新安装设备后,您可以通过拖放操作复制文件。

在 nautilus 中安装设备时,会显示两个卷,但只有其中一个会显示为已安装。

在此处输入图片说明

一旦您将文件从另一个外部驱动器复制到磁盘,您将看到由于 RAID 镜像,RAID 卷的写入速度是其他外部设备读取速度的两倍。

在此处输入图片说明

我仍然需要找出如何检查自我修复是否有效,并将相应地更新此答案。

更新 1

用户@Oli 正在询问有关翻转一位的相关问题。就像他一样,我需要隐秘地做这件事,即没有我互动的时间戳或类似的东西。

如果在挂载文件系统时更改一位,则会注册更改并立即镜像。更改/“损坏”的文件仅被视为更新 - 而不是bitrot

  • 再看看@Oli 的问题。我回答了如何对文件进行离线编辑以模拟磁盘损坏。 (2认同)

Liv*_*eBT 4

我假设您使用 2 个外部驱动器或 1 个容纳 2 个或更多驱动器的机柜。理论上,设备是否通过 USB 或 SATA 连接并不重要,btrfs 一旦找到各个驱动器/分区就应该能够组装阵列。

您应该查看btrfs 内核 wiki。第一个用例似乎涵盖了您的要求:

mkfs.btrfs -m raid1 -d raid1 /dev/sda1 /dev/sdb1
Run Code Online (Sandbox Code Playgroud)

但我不确定自我修复部分。我只从ZFS知道这一点。

  • 至于自我修复:[如何监控 BTRFS 文件系统 raid 的错误](http://superuser.com/a/999542) (2认同)