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. Há duas possibilidades: ele pode falhar gradualmente, mostrando erros SMART - nessa situação, posso adicionar um novo dispositivobtrfs device add /dev/sde /mnt; btrfs filesystem balance /mnt
e remover o antigobtrfs device delete /dev/sdc /mnt
.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?
fonte
btrfs replace mountpoint old_disk new_disk
foi adicionado.Respostas:
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ê está procurando.fonte
btrfs replace start /dev/old /dev/new /mountpoint
(o início foi adicionado). Veja tambémman btrfs-replace
.correção pequena, a sintaxe atual é:
que então origens.
Você pode verificar o status com
que mostrará um status atualizado continuamente da operação de substituição.
fonte