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.
Estou tentando decidir sobre um sistema de arquivos e gostaria de saber se é possível substituir uma unidade com falha no RAID do 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 gradualmente, mostrando S.M.A.R.T. erros - nessa situação, posso adicionar um novo dispositivo com btrfs device add /dev/sde /mnt; btrfs filesystem balance /mnt
e depois remover o antigo com btrfs device delete /dev/sdc /mnt
.
Mas se de repente falhar, tornando-se ilegível ... Uma pesquisa na Web diz que nesta situação eu preciso primeiro desmontar o sistema de arquivos, montar em 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, haveria tempo de inatividade - qualquer aplicativo que utilizasse o sistema de arquivos receberia um erro de E / S. Mas esses tipos de "tutoriais" no btrfs parecem ultrapassados, considerando que o btrfs está sob strong desenvolvimento.
A pergunta é: considerando o estado atual do btrfs, é possível fazer isso online, ou seja, sem desmontar?
Se não, existe uma solução somente de software que pode atender a essa necessidade?
correção pequena, a sintaxe atual é:
btrfs replace start OLDDEV NEWDEV MOUNTPOINT
que, então, origens.
Você pode verificar o status com
btrfs replace status MOUNTPOINT
, que mostrará a você um status continuamente atualizado da operação de substituição.
Tags hard-drive raid btrfs linux