
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.
Suponha que eu crie um novo sistema de arquivos btrfs usando o comando
mkfs.btrfs -d raid1 /dev/sdb /dev/sdc
Agora suponha que um dia
/dev/sdc
falhe. Existem duas possibilidades: pode falhar gradativamente, apresentando erros SMART - nesta situação posso adicionar um novo dispositivo combtrfs device add /dev/sde /mnt; btrfs filesystem balance /mnt
e depois remover o antigo combtrfs device delete /dev/sdc /mnt
.Mas se falhar repentinamente, tornando-se ilegível... Uma pesquisa na web diz que nesta situação devo primeiro desmontar o sistema de arquivos, montar no modo degradado, adicionar um novo dispositivo e, em seguida, 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 perturbadora, portanto haveria tempo de inatividade - qualquer aplicativo que usasse o sistema de arquivos receberia um erro de E/S. Mas esse tipo de "tutorial" sobre o btrfs parece desatualizado, considerando que o btrfs está em forte desenvolvimento.
A pergunta é: 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 possa atender a essa necessidade?
Responder1
No Linux 3.8, btrfs replace mountpoint old_disk new_disk
foi adicionado. Se você estiver executando um kernel recente, ele fornecerá a funcionalidade que você procura.