Как создать внешний самовосстанавливающийся массив btrfs USB HDD RAID 1?

Аппаратное обеспечение представляет собой USB-диск с питанием от внешней шины 2 ТБ.

То, что я хочу, это настройка RAID1 2x 1 ТБ btrfs.

Возможно ли это? Как?

__

Мотивация

Мотивация для меня использовать RAID1 btrfs, потому что я только что прочитал статью , рассказывающую о том, как такая установка будет автоматически восстанавливать поврежденные файлы при сбое контрольной суммы на одном томе.

Пример того, что может произойти с .jpeg, просто перевернув один бит (я использовал vim для этого. :%!xxd -b)

enter image description here enter image description here

6
задан 16 January 2014 в 21:50

2 ответа

Я предполагаю, что вы используете 2 внешних диска или 1 корпус корпуса 2 или более дисков. Теоретически не должно иметь значения, подключены ли устройства через USB или SATA, btrfs должен иметь возможность собирать массив, как только он находит отдельные диски / разделы.

Вы должны взглянуть на ядро ​​btrfs wiki . Первый вариант использования, кажется, охватывает то, что вы просили:

mkfs.btrfs -m raid1 -d raid1 /dev/sda1 /dev/sdb1

Но я не уверен насчет самовосстановления. Я знаю это только из ZFS.

0
ответ дан 16 January 2014 в 21:50

Этот ответ - руководство, показывающее, как я это сделал.

Моя настройка:

  • 1 внешний USB-накопитель (1 корпус с 1 диском)

Как:

  1. Я создал таблицу разделов GPT с двумя первичными разделами btrfs одинакового размера, используя gparted. Назовите разделы как хотите, имена будут потеряны в любом случае при создании RAID.

    enter image description here

  2. Получить идентификаторы устройств:

    $ 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
    
  3. Создать RAID:

    $ sudo mkfs.btrfs -L RAID-Datensicherung -m raid1 -d raid1 /dev/sdc1 /dev/sdc2
    
  4. Поскольку вы еще не можете писать в него, вам нужно стать владельцем нового устройства и изменить разрешения. Смонтируйте устройство в nautiilus или как-нибудь, а затем:

    $ cd /media
    $ sudo chown julien:julien RAID-Datensicherung
    $ sudo chmod 700 RAID-Datensicherung
    
  5. После того, как вы снова размонтируете и перемонтируете устройство, вы можете копировать файлы с помощью перетаскивания.

При установке устройства в наутилус появляются два тома, но только один из них будет отображаться как смонтированный.

enter image description here

Как только вы скопируете файлы на диск с другого внешнего диска, вы увидите, что скорость записи на том RAID в два раза выше скорости чтения с другого внешнего устройства из-за зеркальное отражение рейда.

enter image description here

Я все еще должен выяснить, как проверить, работает ли самовосстановление, и обновлю этот ответ соответствующим образом.

Обновление 1

Пользователь @Oli задает связанный вопрос о переворачивании только одного бита . Так же, как и ему, мне нужно сделать это скрытно , то есть никаких временных меток моего взаимодействия или чего-то в этом роде.

Если вы измените один бит во время монтирования файловой системы, изменение будет зарегистрировано и немедленно отражено. Измененный / поврежденный файл рассматривается как простое обновление, а не как bitrot .

0
ответ дан 16 January 2014 в 21:50
  • 1
    sed опция... первую вещь не называют t1, это - n1... перепутал его..., но я попробовал sed ' s/^(\w*)\t\n/1$ \t/' нечто – user3069326 7 July 2015 в 11:08

Другие вопросы по тегам:

Похожие вопросы: