Uma unidade Btrfs com falha no RAID-1 pode ser substituída ao vivo?

15

Estou tentando decidir sobre um sistema de arquivos e gostaria de saber se é possível substituir uma unidade com falha no RAID btrfs sem tempo de inatividade.

  1. Suponha que eu crie um novo sistema de arquivos btrfs usando o comando

    mkfs.btrfs -d raid1 /dev/sdb /dev/sdc
    
  2. Agora, suponha que um dia /dev/sdcfalhe. Há duas possibilidades: ele pode falhar gradualmente, mostrando erros SMART - nessa situação, posso adicionar um novo dispositivo btrfs device add /dev/sde /mnt; btrfs filesystem balance /mnte remover o antigo btrfs device delete /dev/sdc /mnt.

  3. Mas se ele falhar repentinamente, tornando-se ilegível ... Uma pesquisa na Web diz que nessa situação devo primeiro desmontar o sistema de arquivos, montar no modo degradado, adicionar um novo dispositivo e remover o dispositivo ausente.

    umount /mnt
    mount -o degraded /dev/sdb /mnt
    btrfs device add /dev/sdf /mnt 
    btrfs device delete missing /mnt
    

Uma desmontagem é obviamente uma operação disruptiva, portanto haverá tempo de inatividade - qualquer aplicativo que utilize o sistema de arquivos receberá um erro de E / S. Mas esses tipos de "tutoriais" sobre btrfs parecem desatualizados, considerando que o btrfs está em desenvolvimento pesado.

A questão é: considerando o estado atual do btrfs, é possível fazer isso online, ou seja, sem desmontar?

Caso contrário, existe uma solução apenas de software que pode atender a essa necessidade?

Nada é impossível
fonte
11
Se uma unidade pegar fogo, o resto do seu sistema provavelmente também está pegando fogo
Journeyman Geek
11
@ JourneymanGeek Engraçado você .. :) Eu só queria deixar bem claro que eu quis dizer uma falha catastrófica, repentina e imprevisível - a unidade simplesmente para de funcionar. Isto é bastante incomum, disco rígido geralmente falham de forma gradual e com efetivo monitoramento posso substituí-los antes que isso aconteça, mas o que se ...
NothingsImpossible
2
No Linux 3.8 btrfs replace mountpoint old_disk new_diskfoi adicionado.
28713 Brian
@ Brian woow ... Essa é a resposta. Eu pesquisei por "btrfs replace" e isso apareceu no lwn.net/Articles/524589 . É exatamente o que eu estava procurando. Poste-o como resposta para que eu possa aceitá-lo.
usar o seguinte

Respostas:

11

No Linux 3.8, btrfs replace mountpoint old_disk new_diskfoi adicionado. Se você estiver executando um kernel recente, ele fornecerá a funcionalidade que você está procurando.

Brian
fonte
4
Isso seria agora btrfs replace start /dev/old /dev/new /mountpoint(o início foi adicionado). Veja também man btrfs-replace.
basic6
1

correção pequena, a sintaxe atual é:

btrfs substitui start OLDDEV NEWDEV MOUNTPOINT

que então origens.

Você pode verificar o status com

btrfs substitui o status MOUNTPOINT

que mostrará um status atualizado continuamente da operação de substituição.

Volker
fonte
11
Esta não é uma resposta para a pergunta original. Para criticar ou solicitar esclarecimentos a um autor, deixe um comentário abaixo da postagem - você sempre pode comentar em suas próprias postagens e, quando tiver reputação suficiente , poderá comentar em qualquer post .
DavidPostill