Como criar um array USB HDD RAID 1 de auto-cura btrfs externo?

6

O hardware é um disco USB alimentado por barramento externo de 2TB.

O que eu quero é uma configuração RAID1 de 2x 1TB btrfs.

Isso é possível? Como?

__

Motivação

A motivação para eu usar o RAID1 btrfs é porque eu apenas filesystems / 2 "title=" section: Matrizes redundantes com auto-recuperação "> leia um artigo falando sobre como tal configuração pode reparar arquivos corrompidos automaticamente quando a soma de verificação de um volume falha.

Exemplo do que pode acontecer com um .jpeg apenas invertendo um bit (usei o vim para isso. :%!xxd -b )

    
por king_julien 15.01.2014 / 22:56

2 respostas

4

Suponho que você use duas unidades externas ou uma caixa com 2 ou mais unidades. Teoricamente, não importa se os dispositivos estão conectados via USB ou SATA, o btrfs deve ser capaz de montar o array assim que encontrar os drives / partições individuais.

Você deve dar uma olhada no wiki do kernel btrfs . O primeiro uso parece cobrir o que você pediu:

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

Mas não tenho certeza sobre a parte de auto-cura. Eu só sei disso do ZFS.

    
por LiveWireBT 16.01.2014 / 01:28
5

Esta resposta é um guia para mostrar como eu fiz isso.

Minha configuração é:

  • 1 drive USB externo (1 gabinete com 1 unidade)

Como:

  1. Eu criei uma tabela de partição GPT com duas partições btrfs primárias de tamanho igual usando gparted . Nomeie as partições como você quiser, os nomes serão perdidos ao criar o RAID.

  2. ObtenhaosIDsdosdispositivos:

    $sudobtrfsfilesystemshowLabel:noneuuid:607b4153-7aa9-444d-bc15-c5fe9038f255Totaldevices2FSbytesused28.00KBdevid1size1.82TBused2.03GBpath/dev/sdc***SomedevicesmissingLabel:'Max'uuid:b6647427-9f27-4157-b47b-77f74054b885Totaldevices1FSbytesused28.00KBdevid1size931.49GBused2.04GBpath/dev/sdc1//firstoneLabel:'Moritz'uuid:d0eaf97d-249e-4b7c-88a5-b60cc2d489d9Totaldevices1FSbytesused28.00KBdevid1size931.49GBused2.04GBpath/dev/sdc2//secondone
  3. CrieoRAID:

    $sudomkfs.btrfs-LRAID-Datensicherung-mraid1-draid1/dev/sdc1/dev/sdc2
  4. Comovocêaindanãopodeescrever,vocêprecisasetornaroproprietáriodonovodispositivoealteraraspermissões.Montarodispositivoemnautiilusounoentantoe,emseguida:

    $cd/media$sudochownjulien:julienRAID-Datensicherung$sudochmod700RAID-Datensicherung
  5. Depoisdedesmontareremontarodispositivonovamente,vocêpodecopiararquivosusandoorecursodearrastaresoltar.

Aomontarodispositivononautilus,doisvolumesaparecem,masapenasumdelesseráexibidocomomontado.

Depois de copiar os arquivos para o disco de outra unidade externa, você verá que a velocidade de gravação para o volume RAID é duas vezes maior que a velocidade de leitura do outro dispositivo externo devido ao espelhamento de invasão.

Euaindatenhoquedescobrircomoverificarseaautocurafuncionaeatualizareiarespostadeacordo.

Atualização1

Ousuário@Oliestáperguntandoao problema sobre inverter apenas um bit . Assim como ele, eu preciso fazer isso furioso , ou seja, sem timestamps da minha interação ou qualquer coisa assim.

Se você alterar um bit enquanto o sistema de arquivos estiver montado, a alteração será registrada e imediatamente espelhada. O arquivo alterado / 'corrompido' é visto como uma mera atualização - não como bitrot .

    
por king_julien 16.01.2014 / 11:13

Tags